mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
## What is the current behaviour? Functions page on self-hosted differs from Platform ## What is the new behaviour? Adds the possibility to see a list of edge-functions in Self-Host version. ## Summary by CodeRabbit * **New Features** * Added self-hosted edge functions support with filesystem-based artifact listing and a new API endpoint to list local functions. * Improved functions UI: unified view, enhanced search and adjacent sort controls, and clearer local-hosting guidance. * **Chores** * Added environment configuration and docker volume for edge functions management. * Updated build/task config to pass through edge functions env and include contentlayer outputs. Co-authored-by: Ali Waseem <waseema393@gmail.com> Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com> Co-authored-by: Terry Sutton <saltcod@gmail.com>
295 lines
8.3 KiB
JSON
295 lines
8.3 KiB
JSON
{
|
|
"$schema": "https://turbo.build/schema.json",
|
|
"ui": "stream",
|
|
"tasks": {
|
|
"build": {
|
|
"dependsOn": [
|
|
"^build"
|
|
],
|
|
"outputs": [
|
|
"dist/**",
|
|
".next/**"
|
|
]
|
|
},
|
|
"cms#build": {
|
|
"dependsOn": [
|
|
"^build"
|
|
],
|
|
"env": [
|
|
"BLOG_APP_URL",
|
|
"CRON_SECRET",
|
|
"DATABASE_URI",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_SERVER_URL",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NODE_ENV",
|
|
"PAYLOAD_SECRET",
|
|
"PREVIEW_SECRET",
|
|
"S3_BUCKET",
|
|
"S3_ACCESS_KEY_ID",
|
|
"S3_SECRET_ACCESS_KEY",
|
|
"S3_REGION",
|
|
"S3_ENDPOINT",
|
|
"VERCEL_PROJECT_PRODUCTION_URL"
|
|
],
|
|
"outputs": [
|
|
".next/**",
|
|
"!.next/cache/**"
|
|
]
|
|
},
|
|
"design-system#build": {
|
|
"dependsOn": [
|
|
"^build"
|
|
],
|
|
"env": [
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_APP_URL",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY"
|
|
],
|
|
"outputs": [
|
|
".next/**",
|
|
"!.next/cache/**",
|
|
".contentlayer/**"
|
|
]
|
|
},
|
|
"studio#build": {
|
|
"dependsOn": [
|
|
"^build"
|
|
],
|
|
"env": [
|
|
"ANALYZE",
|
|
"NEXT_PUBLIC_SUPPORT_API_URL",
|
|
"NEXT_PUBLIC_CONTENT_API_URL",
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_STRIPE_PUBLIC_KEY",
|
|
"NEXT_PUBLIC_SUPPORT_ANON_KEY",
|
|
"NEXT_PUBLIC_ENVIRONMENT",
|
|
"NEXT_PUBLIC_IS_PLATFORM",
|
|
"NEXT_PUBLIC_SITE_URL",
|
|
"NEXT_PUBLIC_API_URL",
|
|
"NEXT_PUBLIC_DOCS_URL",
|
|
"NEXT_PUBLIC_CONFIGCAT_SDK_KEY",
|
|
"NEXT_PUBLIC_CONFIGCAT_PROXY_URL",
|
|
"NEXT_PUBLIC_HCAPTCHA_SITE_KEY",
|
|
"NEXT_PUBLIC_SUPABASE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_NODE_ENV",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_GOOGLE_MAPS_KEY",
|
|
"NEXT_RUNTIME",
|
|
"NIMBUS_PROD_PROJECTS_URL",
|
|
"NIMBUS_PROD_PROJECTS_URL_WS",
|
|
"NODE_ENV",
|
|
"SUPABASE_URL",
|
|
"VERCEL",
|
|
"VERCEL_ENV",
|
|
"MAINTENANCE_MODE",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NEXT_PUBLIC_USERCENTRICS_RULESET_ID",
|
|
"NEXT_PUBLIC_MCP_URL",
|
|
"NEXT_PUBLIC_IS_NIMBUS",
|
|
"NEXT_PUBLIC_ONGOING_INCIDENT",
|
|
// These envs are technically passthrough env vars because they're only used on the server side of Nextjs
|
|
"PLATFORM_PG_META_URL",
|
|
"STUDIO_PG_META_URL",
|
|
"PG_META_CRYPTO_KEY",
|
|
"POSTGRES_PASSWORD",
|
|
"POSTGRES_HOST",
|
|
"POSTGRES_USER_READ_WRITE",
|
|
"POSTGRES_USER_READ_ONLY",
|
|
"POSTGRES_DB",
|
|
"POSTGRES_PORT",
|
|
"READ_ONLY_URL",
|
|
"READ_ONLY_API_KEY",
|
|
"SUPABASE_SERVICE_KEY",
|
|
"SUPABASE_ANON_KEY",
|
|
"SUPABASE_PUBLIC_URL",
|
|
"DEFAULT_PROJECT_NAME",
|
|
"DEFAULT_ORGANIZATION_NAME",
|
|
"OPENAI_API_KEY",
|
|
"BRAINTRUST_API_KEY",
|
|
"BRAINTRUST_PROJECT_ID",
|
|
"AUTH_JWT_SECRET",
|
|
"LOGFLARE_API_KEY",
|
|
"LOGFLARE_PUBLIC_ACCESS_TOKEN",
|
|
"LOGFLARE_PRIVATE_ACCESS_TOKEN",
|
|
"LOGFLARE_URL",
|
|
"SENTRY_ORG",
|
|
"SENTRY_PROJECT",
|
|
"SENTRY_AUTH_TOKEN",
|
|
"NEXT_PUBLIC_SENTRY_DSN",
|
|
"AWS_BEDROCK_PROFILE",
|
|
"AWS_BEDROCK_ROLE_ARN",
|
|
"AWS_ACCESS_KEY_ID",
|
|
"AWS_SECRET_ACCESS_KEY",
|
|
"FORCE_ASSET_CDN",
|
|
"ASSET_CDN_S3_ENDPOINT",
|
|
"SITE_NAME",
|
|
"VERCEL_URL",
|
|
"IS_THROTTLED",
|
|
"AI_PRO_MODEL",
|
|
"AI_NORMAL_MODEL",
|
|
"SUPPORT_SUPABASE_SECRET_KEY",
|
|
"STATUSPAGE_API_KEY",
|
|
"STATUSPAGE_PAGE_ID"
|
|
],
|
|
"passThroughEnv": [
|
|
"CURRENT_CLI_VERSION",
|
|
"VERCEL_GIT_COMMIT_SHA",
|
|
"SNIPPETS_MANAGEMENT_FOLDER",
|
|
"EDGE_FUNCTIONS_MANAGEMENT_FOLDER"
|
|
],
|
|
"outputs": [
|
|
".next/**",
|
|
"!.next/cache/**"
|
|
]
|
|
},
|
|
"www#build": {
|
|
"dependsOn": [
|
|
"^build"
|
|
],
|
|
"env": [
|
|
"ANALYZE",
|
|
"CI",
|
|
"CF_ACCESS_CLIENT_ID",
|
|
"CF_ACCESS_CLIENT_SECRET",
|
|
"CMS_API_KEY",
|
|
"CMS_PREVIEW_SECRET",
|
|
"CMS_SITE_ORIGIN",
|
|
"NEXT_PUBLIC_MISC_USE_URL",
|
|
"NEXT_PUBLIC_MISC_USE_ANON_KEY",
|
|
"NEXT_PUBLIC_STUDIO_URL",
|
|
"NEXT_PUBLIC_DOCS_URL",
|
|
"NEXT_PUBLIC_REFERENCE_DOCS_URL",
|
|
"NEXT_PUBLIC_UI_LIBRARY_URL",
|
|
"NEXT_PUBLIC_SUPABASE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_VERCEL_ENV",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_API_URL",
|
|
"NEXT_PUBLIC_HCAPTCHA_SITE_KEY",
|
|
"HCAPTCHA_SECRET_KEY",
|
|
"NODE_ENV",
|
|
"NEXT_PUBLIC_SENTRY_DSN",
|
|
"NEXT_PUBLIC_SURVEY_SUPABASE_URL",
|
|
"NEXT_PUBLIC_SURVEY_SUPABASE_ANON_KEY",
|
|
"VERCEL",
|
|
"VERCEL_ENV",
|
|
"VERCEL_GIT_COMMIT_SHA",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID",
|
|
"NEXT_PUBLIC_IS_PLATFORM",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_EXAMPLES_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_EXAMPLES_SUPABASE_URL",
|
|
"NEXT_PUBLIC_USERCENTRICS_RULESET_ID",
|
|
// These envs are technically passthrough env vars because they're only used on the server side of Nextjs
|
|
"LIVE_SUPABASE_COM_SERVICE_ROLE_KEY",
|
|
"GITHUB_CHANGELOG_APP_ID",
|
|
"GITHUB_CHANGELOG_APP_INSTALLATION_ID",
|
|
"GITHUB_CHANGELOG_APP_REST_KEY",
|
|
"GITHUB_CHANGELOG_APP_PRIVATE_KEY",
|
|
"NEXT_PUBLIC_EMAIL_ABUSE_URL",
|
|
"EMAIL_ABUSE_SERVICE_KEY",
|
|
"HUBSPOT_PORTAL_ID",
|
|
"HUBSPOT_ENTERPRISE_FORM_GUID",
|
|
"HUBSPOT_PARTNERSHIP_FORM_GUID",
|
|
"OPENAI_API_KEY",
|
|
"EMAIL_REPORT_SLACK_WEBHOOK",
|
|
"npm_lifecycle_event",
|
|
"AWS_ACCESS_KEY_ID",
|
|
"AWS_SECRET_ACCESS_KEY",
|
|
"FORCE_ASSET_CDN",
|
|
"ASSET_CDN_S3_ENDPOINT",
|
|
"SITE_NAME",
|
|
"LUMA_API_KEY",
|
|
"NEXT_RUNTIME",
|
|
// These env vars are used by some community and marketing integrations
|
|
"SENTRY_DSN_COMMUNITY",
|
|
"NOTION_SUPASQUAD_API_KEY",
|
|
"NOTION_SUPASQUAD_APPLICATIONS_DB_ID",
|
|
"NEXT_PUBLIC_SUPASQUAD_APPLICATION_FORM_URL",
|
|
"CUSTOMERIO_SITE_ID",
|
|
"CUSTOMERIO_API_KEY",
|
|
"CUSTOMERIO_APP_API_KEY"
|
|
],
|
|
"outputs": [
|
|
".next/**",
|
|
"!.next/cache/**",
|
|
".contentlayer/**"
|
|
]
|
|
},
|
|
"ui-library#build": {
|
|
"dependsOn": [
|
|
"^build"
|
|
],
|
|
"env": [
|
|
"NEXT_PUBLIC_BASE_PATH",
|
|
"NEXT_PUBLIC_APP_URL",
|
|
"NEXT_PUBLIC_VERCEL_TARGET_ENV",
|
|
"NEXT_PUBLIC_VERCEL_BRANCH_URL",
|
|
"NEXT_PUBLIC_API_URL",
|
|
"NODE_ENV",
|
|
"HIDE_TAILWIND_INDICATOR",
|
|
// These envs are used in the packages
|
|
"NEXT_PUBLIC_STORAGE_KEY",
|
|
"NEXT_PUBLIC_AUTH_DEBUG_KEY",
|
|
"NEXT_PUBLIC_AUTH_PERSISTED_KEY",
|
|
"NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY",
|
|
"NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL",
|
|
"NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID",
|
|
"NEXT_PUBLIC_GOTRUE_URL",
|
|
"NEXT_PUBLIC_SUPABASE_ANON_KEY",
|
|
"NEXT_PUBLIC_USERCENTRICS_RULESET_ID",
|
|
"SUPABASE_MANAGEMENT_API_TOKEN",
|
|
"OPENAI_API_KEY"
|
|
],
|
|
"outputs": [
|
|
".next/**",
|
|
"!.next/cache/**",
|
|
".contentlayer/**"
|
|
]
|
|
},
|
|
"lint": {
|
|
"outputs": []
|
|
},
|
|
"clean": {
|
|
"outputs": [],
|
|
"cache": false
|
|
},
|
|
"dev": {
|
|
"cache": false
|
|
},
|
|
"test": {
|
|
"cache": false
|
|
},
|
|
"typecheck": {
|
|
"dependsOn": [
|
|
"^typecheck"
|
|
],
|
|
"outputs": []
|
|
}
|
|
}
|
|
}
|