{ "$schema": "./../../node_modules/turbo/schema.json", "extends": ["//"], "tasks": { "build": { "dependsOn": ["^build"], "env": [ "ANALYZE", "CI", "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", "PGRST_DB_SCHEMAS", "PGRST_DB_MAX_ROWS", "PGRST_DB_EXTRA_SEARCH_PATH", "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_PUBLISHABLE_KEY", "SUPABASE_SECRET_KEY", "SUPABASE_PUBLIC_URL", "DEFAULT_PROJECT_NAME", "DEFAULT_ORGANIZATION_NAME", "OPENAI_API_KEY", "BRAINTRUST_API_KEY", "BRAINTRUST_PROJECT_ID", // Gates the dashboard assistant between the remote MCP server and the // legacy in-process one (see lib/ai/tools/mcp-tools.ts). "USE_REMOTE_MCP", "AUTH_JWT_SECRET", "LOGFLARE_API_KEY", "LOGFLARE_PUBLIC_ACCESS_TOKEN", "LOGFLARE_PRIVATE_ACCESS_TOKEN", "LOGFLARE_URL", "SENTRY_ORG", "SENTRY_PROJECT", "SENTRY_AUTH_TOKEN", "SKIP_ASSET_UPLOAD", "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_BRAINTRUST_PUSH", "GITHUB_HEAD_REF", "GITHUB_REF_NAME", "GITHUB_PR_NUMBER", "IS_THROTTLED", "AI_PRO_MODEL", "AI_NORMAL_MODEL", "SUPPORT_SUPABASE_SECRET_KEY", "STATUSPAGE_API_KEY", "STATUSPAGE_PAGE_ID", "INCIDENT_IO_API_KEY", "LIVE_SUPABASE_SECRET_KEY", // Selects the build mode for the studio's `build`/`start` scripts // (e.g. e2e sets `MODE=test`). Listed so turbo invalidates the // cache when it changes — without this, switching between test and // production builds reuses a stale cached output. "MODE", // Read by scripts/serve.js (the Node host for `pnpm start`). // Declared here so the studio-package turbo env lint rule passes // even though turbo doesn't directly drive `start`. "PORT", // Gates the TanStack vs Next path in api/server.js, vercel.ts, // and scripts/dispatch.js (the dev/build/start dispatcher). "STUDIO_FRAMEWORK", // Vite's built-in `import.meta.env.SSR` flag (used in ConnectStepsSection // to gate Vite-only `import.meta.glob`). Not a real process env var // but turbo's `no-undeclared-env-vars` lint flags any `env.SSR` access. "SSR", ], "passThroughEnv": [ "CURRENT_CLI_VERSION", "VERCEL_GIT_COMMIT_REF", "VERCEL_GIT_COMMIT_SHA", "SNIPPETS_MANAGEMENT_FOLDER", "EDGE_FUNCTIONS_MANAGEMENT_FOLDER", "S3_PROTOCOL_ACCESS_KEY_ID", "S3_PROTOCOL_ACCESS_KEY_SECRET", ], "outputs": [ ".next/**", "!.next/cache/**", "!.next/dev/**/*", "dist/**", ], }, }, }