diff --git a/apps/studio/pages/api/auth/[ref]/config.ts b/apps/studio/pages/api/auth/[ref]/config.ts index 26d07e972e..a01dcca261 100644 --- a/apps/studio/pages/api/auth/[ref]/config.ts +++ b/apps/studio/pages/api/auth/[ref]/config.ts @@ -1,5 +1,7 @@ import { NextApiRequest, NextApiResponse } from 'next' import apiWrapper from 'lib/api/apiWrapper' +import { get } from 'lib/common/fetch' +import { constructHeaders } from 'lib/api/apiHelpers' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -18,6 +20,11 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { + const headers = constructHeaders({}) + const url = `${process.env.SUPABASE_URL}/auth/v1/settings` + const { external, disable_signup, mailer_autoconfirm, phone_autoconfirm } = await get(url, { + headers, + }) // Platform only API return res.status(200).json({ app_version: '', @@ -27,13 +34,13 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { isFreeTier: true, SITE_URL: '', OPERATOR_TOKEN: null, - DISABLE_SIGNUP: false, + DISABLE_SIGNUP: disable_signup ?? false, RATE_LIMIT_HEADER: null, JWT_EXP: 3600, JWT_AUD: '', JWT_DEFAULT_GROUP_NAME: '', URI_ALLOW_LIST: '', - MAILER_AUTOCONFIRM: false, + MAILER_AUTOCONFIRM: mailer_autoconfirm ?? false, MAILER_OTP_EXP: 86400, MAILER_URLPATHS_INVITE: '', MAILER_URLPATHS_CONFIRMATION: '', @@ -46,65 +53,65 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { SMTP_USER: null, SMTP_PASS: null, SMTP_MAX_FREQUENCY: 0, - EXTERNAL_ANONYMOUS_USERS_ENABLED: true, - EXTERNAL_EMAIL_ENABLED: true, - EXTERNAL_PHONE_ENABLED: true, - EXTERNAL_APPLE_ENABLED: false, + EXTERNAL_ANONYMOUS_USERS_ENABLED: external?.anonymous_users ?? true, + EXTERNAL_EMAIL_ENABLED: external?.email ?? true, + EXTERNAL_PHONE_ENABLED: external?.phone ?? true, + EXTERNAL_APPLE_ENABLED: external?.apple ?? false, EXTERNAL_APPLE_CLIENT_ID: null, EXTERNAL_APPLE_SECRET: null, - EXTERNAL_AZURE_ENABLED: false, + EXTERNAL_AZURE_ENABLED: external?.azure ?? false, EXTERNAL_AZURE_CLIENT_ID: null, EXTERNAL_AZURE_SECRET: null, EXTERNAL_AZURE_URL: null, - EXTERNAL_BITBUCKET_ENABLED: false, + EXTERNAL_BITBUCKET_ENABLED: external?.bitbucket ?? false, EXTERNAL_BITBUCKET_CLIENT_ID: null, EXTERNAL_BITBUCKET_SECRET: null, - EXTERNAL_DISCORD_ENABLED: false, + EXTERNAL_DISCORD_ENABLED: external?.discord ?? false, EXTERNAL_DISCORD_CLIENT_ID: null, EXTERNAL_DISCORD_SECRET: null, - EXTERNAL_FACEBOOK_ENABLED: false, + EXTERNAL_FACEBOOK_ENABLED: external?.facebook ?? false, EXTERNAL_FACEBOOK_CLIENT_ID: null, EXTERNAL_FACEBOOK_SECRET: null, - EXTERNAL_FIGMA_ENABLED: false, + EXTERNAL_FIGMA_ENABLED: external?.figma ?? false, EXTERNAL_FIGMA_CLIENT_ID: null, EXTERNAL_FIGMA_SECRET: null, - EXTERNAL_GITHUB_ENABLED: false, + EXTERNAL_GITHUB_ENABLED: external?.github ?? false, EXTERNAL_GITHUB_CLIENT_ID: null, EXTERNAL_GITHUB_SECRET: null, - EXTERNAL_GITLAB_ENABLED: false, + EXTERNAL_GITLAB_ENABLED: external?.gitlab ?? false, EXTERNAL_GITLAB_CLIENT_ID: null, EXTERNAL_GITLAB_SECRET: null, EXTERNAL_GITLAB_REDIRECT_URI: null, - EXTERNAL_GOOGLE_ENABLED: false, + EXTERNAL_GOOGLE_ENABLED: external?.google ?? false, EXTERNAL_GOOGLE_CLIENT_ID: null, EXTERNAL_GOOGLE_SECRET: null, - EXTERNAL_KAKAO_ENABLED: false, + EXTERNAL_KAKAO_ENABLED: external?.kakao ?? false, EXTERNAL_KAKAO_CLIENT_ID: null, EXTERNAL_KAKAO_SECRET: null, - EXTERNAL_KEYCLOAK_ENABLED: false, + EXTERNAL_KEYCLOAK_ENABLED: external?.keycloak ?? false, EXTERNAL_KEYCLOAK_CLIENT_ID: null, EXTERNAL_KEYCLOAK_SECRET: null, EXTERNAL_KEYCLOAK_URL: null, - EXTERNAL_NOTION_ENABLED: false, + EXTERNAL_NOTION_ENABLED: external?.notion ?? false, EXTERNAL_NOTION_CLIENT_ID: null, EXTERNAL_NOTION_SECRET: null, - EXTERNAL_SPOTIFY_ENABLED: false, + EXTERNAL_SPOTIFY_ENABLED: external?.spotify ?? false, EXTERNAL_SPOTIFY_CLIENT_ID: null, EXTERNAL_SPOTIFY_SECRET: null, - EXTERNAL_SLACK_ENABLED: false, + EXTERNAL_SLACK_ENABLED: external?.slack ?? false, EXTERNAL_SLACK_CLIENT_ID: null, EXTERNAL_SLACK_SECRET: null, - EXTERNAL_TWITTER_ENABLED: false, + EXTERNAL_TWITTER_ENABLED: external?.twitter ?? false, EXTERNAL_TWITTER_CLIENT_ID: null, EXTERNAL_TWITTER_SECRET: null, - EXTERNAL_TWITCH_ENABLED: false, + EXTERNAL_TWITCH_ENABLED: external?.twitch ?? false, EXTERNAL_TWITCH_CLIENT_ID: null, EXTERNAL_TWITCH_SECRET: null, - EXTERNAL_WORKOS_ENABLED: false, + EXTERNAL_WORKOS_ENABLED: external?.workos ?? false, EXTERNAL_WORKOS_CLIENT_ID: null, EXTERNAL_WORKOS_SECRET: null, EXTERNAL_WORKOS_URL: null, - EXTERNAL_ZOOM_ENABLED: false, + EXTERNAL_ZOOM_ENABLED: external?.zoom ?? false, EXTERNAL_ZOOM_CLIENT_ID: null, EXTERNAL_ZOOM_SECRET: null, MAILER_SUBJECTS_INVITE: 'You have been invited', @@ -129,7 +136,7 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { '

Magic Link

\n\n

Follow this link to login:

\n

Log In

', PASSWORD_MIN_LENGTH: 6, SMTP_SENDER_NAME: null, - SMS_AUTOCONFIRM: false, + SMS_AUTOCONFIRM: phone_autoconfirm ?? false, SMS_MAX_FREQUENCY: 0, SMS_OTP_EXP: 60, SMS_OTP_LENGTH: 6, diff --git a/docker/.env.example b/docker/.env.example index cdc6a10c37..132fe8ffa3 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -60,6 +60,7 @@ SMTP_PORT=2500 SMTP_USER=fake_mail_user SMTP_PASS=fake_mail_password SMTP_SENDER_NAME=fake_sender +ENABLE_ANONYMOUS_USERS=false ## Phone auth ENABLE_PHONE_SIGNUP=true diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 39ee0df13b..16cf05e137 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -116,6 +116,7 @@ services: GOTRUE_JWT_SECRET: ${JWT_SECRET} GOTRUE_EXTERNAL_EMAIL_ENABLED: ${ENABLE_EMAIL_SIGNUP} + GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED: ${ENABLE_ANONYMOUS_USERS} GOTRUE_MAILER_AUTOCONFIRM: ${ENABLE_EMAIL_AUTOCONFIRM} # GOTRUE_MAILER_SECURE_EMAIL_CHANGE_ENABLED: true # GOTRUE_SMTP_MAX_FREQUENCY: 1s