Phase 1 Files List - JSON Format
cgen-5fcec798056f47b2b42c31611d3dad1c
This commit is contained in:
parent
868ae76195
commit
7577670566
1 changed files with 222 additions and 0 deletions
222
docs/PHASE1-FILES.json
Normal file
222
docs/PHASE1-FILES.json
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
{
|
||||
"phase": 1,
|
||||
"mission": "Copy auth code from aethex.dev (Vercel) to aethex.foundation (Replit)",
|
||||
"total_files": 30,
|
||||
"estimated_hours": "17-25",
|
||||
"files": {
|
||||
"pages": [
|
||||
{
|
||||
"source": "code/client/pages/Login.tsx",
|
||||
"category": "auth",
|
||||
"priority": "high",
|
||||
"notes": "Contains Discord OAuth button"
|
||||
},
|
||||
{
|
||||
"source": "code/client/pages/Onboarding.tsx",
|
||||
"category": "auth",
|
||||
"priority": "high",
|
||||
"notes": "Realm/arm selection, profile setup"
|
||||
},
|
||||
{
|
||||
"source": "code/client/pages/DiscordVerify.tsx",
|
||||
"category": "auth",
|
||||
"priority": "high",
|
||||
"notes": "Verification code entry for linking"
|
||||
},
|
||||
{
|
||||
"source": "code/client/pages/Dashboard.tsx",
|
||||
"category": "profile",
|
||||
"priority": "high",
|
||||
"notes": "User dashboard + OAuthConnections"
|
||||
},
|
||||
{
|
||||
"source": "code/client/pages/SubdomainPassport.tsx",
|
||||
"category": "passport",
|
||||
"priority": "medium",
|
||||
"notes": "Creator passport for *.aethex.me"
|
||||
}
|
||||
],
|
||||
"contexts": [
|
||||
{
|
||||
"source": "code/client/contexts/AuthContext.tsx",
|
||||
"category": "state",
|
||||
"priority": "high",
|
||||
"notes": "Central auth state, linkProvider('discord')"
|
||||
},
|
||||
{
|
||||
"source": "code/client/contexts/DiscordActivityContext.tsx",
|
||||
"category": "state",
|
||||
"priority": "low",
|
||||
"notes": "Optional; only if Activity needed"
|
||||
},
|
||||
{
|
||||
"source": "code/client/contexts/ThemeContext.tsx",
|
||||
"category": "state",
|
||||
"priority": "medium",
|
||||
"notes": "Dependency for theme switching"
|
||||
}
|
||||
],
|
||||
"components": [
|
||||
{
|
||||
"source": "code/client/components/settings/OAuthConnections.tsx",
|
||||
"category": "oauth",
|
||||
"priority": "high",
|
||||
"notes": "OAuth provider cards (Discord, etc.)"
|
||||
},
|
||||
{
|
||||
"source": "code/client/components/passport/PassportSummary.tsx",
|
||||
"category": "passport",
|
||||
"priority": "medium",
|
||||
"notes": "Renders creator passport"
|
||||
},
|
||||
{
|
||||
"source": "code/client/components/Layout.tsx",
|
||||
"category": "layout",
|
||||
"priority": "high",
|
||||
"notes": "App layout & header"
|
||||
},
|
||||
{
|
||||
"source": "code/client/components/ErrorBoundary.tsx",
|
||||
"category": "util",
|
||||
"priority": "medium",
|
||||
"notes": "Error handling"
|
||||
},
|
||||
{
|
||||
"source": "code/client/components/LoadingScreen.tsx",
|
||||
"category": "util",
|
||||
"priority": "medium",
|
||||
"notes": "Loading UI"
|
||||
},
|
||||
{
|
||||
"source": "code/client/components/ui/*",
|
||||
"category": "ui",
|
||||
"priority": "high",
|
||||
"notes": "All Radix UI components (accordion, alert, toast, etc.)"
|
||||
}
|
||||
],
|
||||
"api_endpoints": [
|
||||
{
|
||||
"source": "code/api/discord/oauth/start.ts",
|
||||
"endpoint": "GET /api/discord/oauth/start",
|
||||
"category": "oauth",
|
||||
"priority": "high",
|
||||
"notes": "Redirect to Discord authorization"
|
||||
},
|
||||
{
|
||||
"source": "code/api/discord/oauth/callback.ts",
|
||||
"endpoint": "GET /api/discord/oauth/callback",
|
||||
"category": "oauth",
|
||||
"priority": "high",
|
||||
"notes": "Handle Discord callback, link user"
|
||||
},
|
||||
{
|
||||
"source": "code/api/discord/verify-code.ts",
|
||||
"endpoint": "POST /api/discord/verify-code",
|
||||
"category": "oauth",
|
||||
"priority": "high",
|
||||
"notes": "Verify 6-digit code for linking"
|
||||
},
|
||||
{
|
||||
"source": "code/api/discord/link.ts",
|
||||
"endpoint": "POST /api/discord/link",
|
||||
"category": "oauth",
|
||||
"priority": "high",
|
||||
"notes": "Link Discord account by code"
|
||||
},
|
||||
{
|
||||
"source": "code/api/discord/sync-roles.ts",
|
||||
"endpoint": "POST /api/discord/sync-roles",
|
||||
"category": "oauth",
|
||||
"priority": "medium",
|
||||
"notes": "Assign Discord roles after linking"
|
||||
},
|
||||
{
|
||||
"source": "code/api/discord/activity-auth.ts",
|
||||
"endpoint": "POST /api/discord/activity-auth",
|
||||
"category": "oauth",
|
||||
"priority": "low",
|
||||
"notes": "Activity token verification (optional)"
|
||||
},
|
||||
{
|
||||
"source": "code/api/profile/ensure.ts",
|
||||
"endpoint": "POST /api/profile/ensure",
|
||||
"category": "profile",
|
||||
"priority": "high",
|
||||
"notes": "Create or ensure user profile exists"
|
||||
},
|
||||
{
|
||||
"source": "code/api/passport/subdomain/[username].ts",
|
||||
"endpoint": "GET /api/passport/subdomain/:username",
|
||||
"category": "passport",
|
||||
"priority": "medium",
|
||||
"notes": "Creator passport JSON API"
|
||||
}
|
||||
],
|
||||
"database": [
|
||||
{
|
||||
"source": "code/supabase/migrations/20250107_add_discord_integration.sql",
|
||||
"type": "migration",
|
||||
"priority": "high",
|
||||
"tables": ["discord_links", "discord_verifications", "discord_role_mappings"]
|
||||
}
|
||||
],
|
||||
"config": [
|
||||
{
|
||||
"source": "code/client/global.css",
|
||||
"type": "styles",
|
||||
"priority": "high"
|
||||
},
|
||||
{
|
||||
"source": "code/tailwind.config.js",
|
||||
"type": "config",
|
||||
"priority": "high"
|
||||
},
|
||||
{
|
||||
"source": "code/tsconfig.json",
|
||||
"type": "config",
|
||||
"priority": "high"
|
||||
}
|
||||
]
|
||||
},
|
||||
"environment_variables": {
|
||||
"VITE_SUPABASE_URL": "https://kmdeisowhtsalsekkzqd.supabase.co",
|
||||
"VITE_SUPABASE_ANON_KEY": "sb_publishable_DfTB6qME8BkTmHNJ3dCBew_t1NLATEq",
|
||||
"SUPABASE_SERVICE_ROLE": "eyJhbGc...",
|
||||
"DISCORD_CLIENT_ID": "578971245454950421",
|
||||
"DISCORD_CLIENT_SECRET": "JKlilGzcTWgfmt2wEqiHO8wpCel5VEji",
|
||||
"DISCORD_BOT_TOKEN": "NTc4OTcx...",
|
||||
"VITE_API_BASE": "https://aethex.foundation"
|
||||
},
|
||||
"npm_packages": [
|
||||
"@supabase/supabase-js@^2.x",
|
||||
"@discord/embedded-app-sdk@^2.x",
|
||||
"react-router-dom@^6.x",
|
||||
"react-hook-form@^7.x",
|
||||
"zod@^3.x",
|
||||
"next-themes@^0.3.x",
|
||||
"lucide-react",
|
||||
"sonner@^1.x",
|
||||
"@radix-ui/*"
|
||||
],
|
||||
"critical_adaptations": [
|
||||
"Update VITE_API_BASE to https://aethex.foundation (not aethex.dev)",
|
||||
"Convert Vercel /api/* functions to Express routes on Replit",
|
||||
"Update Discord OAuth app redirect URI",
|
||||
"Fix all import paths for new directory structure",
|
||||
"Ensure Supabase environment variables are set on Replit"
|
||||
],
|
||||
"success_criteria": [
|
||||
"Users can log in via Discord",
|
||||
"Users can see their profile after login",
|
||||
"Users can link additional OAuth providers",
|
||||
"Passports display correctly",
|
||||
"OAuth callbacks complete without errors",
|
||||
"Supabase queries work (user_profiles table accessible)"
|
||||
],
|
||||
"next_steps": [
|
||||
"Copy all files listed above",
|
||||
"Update import paths & environment variables",
|
||||
"Test login flow end-to-end",
|
||||
"Once Phase 1 is complete, proceed to Phase 2"
|
||||
]
|
||||
}
|
||||
Loading…
Reference in a new issue