AutoGPT/autogpt_platform/frontend/.env.example

18 lines
1006 B
Plaintext
Raw Normal View History

NEXT_PUBLIC_AUTH_CALLBACK_URL=http://localhost:8006/auth/callback
NEXT_PUBLIC_AGPT_SERVER_URL=http://localhost:8006/api
NEXT_PUBLIC_AGPT_WS_SERVER_URL=ws://localhost:8001/ws
NEXT_PUBLIC_AGPT_MARKETPLACE_URL=http://localhost:8015/api/v1/market
feat(builder): Add Supabase Auth, session and sign in UI (#7655) This PR adds Supabase Auth (cloud) integration, login and profile UI, configures password login and three OAuth providers: Google, GitHub and Discord. For `Account` button to show up and ability to login two env vars need to be set in `.env.local`: `NEXT_PUBLIC_SUPABASE_URL` and `NEXT_PUBLIC_SUPABASE_ANON_KEY`. OAuth providers are by the Supabase and don't require env vars. Email confirmation (for email/password signup) is disabled because there's limit of 3 emails per hour without custom SMTP server configuration. [Link](https://supabase.com/dashboard/project/adfjtextkuilwuhzdjpf/auth/templates) to configure custom SMTP server and email template. ### Added dependencies: - "@supabase/ssr": "^0.4.0" - "@supabase/supabase-js": "^2.45.0" - "react-icons": "^5.2.1" ### Added pages/routes: - `app/auth/auth-code-error/page.tsx`: displayed when login using OAuth provider fails - `app/auth/callback/route.ts`: route accessed when logging in using OAuth provider; it passes session code to Supabase - `app/auth/confirm/route.ts`: accessed when confirming email, users will be directed here from email they get after signing in. - `app/error/page.tsx`: Generic error page without explanation (any errors should be visible in the console) - `app/login/page.tsx` and `app/login/actions.ts`: Login page and related login/signup server actions - `app/profile/page.tsx`: Profile page, displays email address of the user and button to logout ### Changes - Update `layout.tsx`: add `Log In` button and make icons consistent. The log in button shows up if user is logged out, avatar is shown when logged in, and if supabase is unavailable nothing shows up. - Login form is verified using `zod` on the frontend (recommended by shadcn) and in case login fails feedback is displayed. On successful login users are redirected to `/profile` - Add `PasswordInput` component, [source](https://gist.github.com/mjbalcueva/b21f39a8787e558d4c536bf68e267398) - Add `SupabaseProvider` with context for Supabase accessed via hook `useSupabase(): { supabase: SupabaseClient | null, isLoading: boolean }` - Add `useUser` hook to get `{ user, session, isLoading, error }` on the client - Add `getServerUser`: async function to get `{ user: User | null, error: string | null }` on the server side - Add `src/middleware.ts` and `client.ts`, `server.ts`, `middleware.ts` in `src/lib/supabase` which are utility functions and middleware to refresh auth token
2024-08-02 11:58:28 +00:00
## Supabase credentials
NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
feat(builder): Add Supabase Auth, session and sign in UI (#7655) This PR adds Supabase Auth (cloud) integration, login and profile UI, configures password login and three OAuth providers: Google, GitHub and Discord. For `Account` button to show up and ability to login two env vars need to be set in `.env.local`: `NEXT_PUBLIC_SUPABASE_URL` and `NEXT_PUBLIC_SUPABASE_ANON_KEY`. OAuth providers are by the Supabase and don't require env vars. Email confirmation (for email/password signup) is disabled because there's limit of 3 emails per hour without custom SMTP server configuration. [Link](https://supabase.com/dashboard/project/adfjtextkuilwuhzdjpf/auth/templates) to configure custom SMTP server and email template. ### Added dependencies: - "@supabase/ssr": "^0.4.0" - "@supabase/supabase-js": "^2.45.0" - "react-icons": "^5.2.1" ### Added pages/routes: - `app/auth/auth-code-error/page.tsx`: displayed when login using OAuth provider fails - `app/auth/callback/route.ts`: route accessed when logging in using OAuth provider; it passes session code to Supabase - `app/auth/confirm/route.ts`: accessed when confirming email, users will be directed here from email they get after signing in. - `app/error/page.tsx`: Generic error page without explanation (any errors should be visible in the console) - `app/login/page.tsx` and `app/login/actions.ts`: Login page and related login/signup server actions - `app/profile/page.tsx`: Profile page, displays email address of the user and button to logout ### Changes - Update `layout.tsx`: add `Log In` button and make icons consistent. The log in button shows up if user is logged out, avatar is shown when logged in, and if supabase is unavailable nothing shows up. - Login form is verified using `zod` on the frontend (recommended by shadcn) and in case login fails feedback is displayed. On successful login users are redirected to `/profile` - Add `PasswordInput` component, [source](https://gist.github.com/mjbalcueva/b21f39a8787e558d4c536bf68e267398) - Add `SupabaseProvider` with context for Supabase accessed via hook `useSupabase(): { supabase: SupabaseClient | null, isLoading: boolean }` - Add `useUser` hook to get `{ user, session, isLoading, error }` on the client - Add `getServerUser`: async function to get `{ user: User | null, error: string | null }` on the server side - Add `src/middleware.ts` and `client.ts`, `server.ts`, `middleware.ts` in `src/lib/supabase` which are utility functions and middleware to refresh auth token
2024-08-02 11:58:28 +00:00
## OAuth Callback URL
## This should be {domain}/auth/callback
## Only used if you're using Supabase and OAuth
AUTH_CALLBACK_URL=http://localhost:3000/auth/callback
GA_MEASUREMENT_ID=G-FH2XK2W4GN
# When running locally, set NEXT_PUBLIC_BEHAVE_AS=CLOUD to use the a locally hosted marketplace (as is typical in development, and the cloud deployment), otherwise set it to LOCAL to have the marketplace open in a new tab
NEXT_PUBLIC_BEHAVE_AS=LOCAL