mirror of
https://github.com/stack-auth/stack.git
synced 2026-07-20 21:29:36 +08:00
## Summary Threads `arePlanLimitsEnforced()` from the backend through the plan-usage API response so the dashboard can hide all usage limit banners when `HEXCLAVE_DISABLE_PLAN_LIMITS=true`. Backend adds `are_plan_limits_enforced` to `planUsageResponseSchema` (`.optional().default(true)` for backward compat with older backends) → SDK surfaces it as `PlanUsage.arePlanLimitsEnforced` with `?? true` runtime fallback (since `getPlanUsage()` returns raw JSON without yup validation) → banner components early-return `null` when `!arePlanLimitsEnforced`. For the projects page (outside admin-app context, no project selected), a server action reads the env var directly via `getEnvVariable(\"STACK_DISABLE_PLAN_LIMITS\", \"false\")`. Link to Devin session: https://app.devin.ai/sessions/09ca53f13c294c8e98c7a7227a52217d Requested by: @Developing-Gamer <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added support for a “plan limits enforced” flag to control messaging across usage and billing-related screens. * Projects and team invitation capacity checks now respect the same enforcement toggle (including admin-seat invitation blocking). * **Bug Fixes** * Limit banners and “plan limit exceeded” alerts now only render when enforcement is enabled (and overage/threshold conditions are met). * Updated usage payload handling to default to enforcement enabled when the flag is missing; added/updated tests for both enabled and disabled scenarios. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: armaan <armaan@stack-auth.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
18 lines
908 B
Plaintext
18 lines
908 B
Plaintext
NEXT_PUBLIC_HEXCLAVE_API_URL=http://localhost:${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}02
|
|
NEXT_PUBLIC_HEXCLAVE_DOCS_BASE_URL=http://localhost:${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}04
|
|
NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX=.localhost:${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}09
|
|
NEXT_PUBLIC_HEXCLAVE_IS_LOCAL_EMULATOR=false
|
|
|
|
NEXT_PUBLIC_HEXCLAVE_PROJECT_ID=internal
|
|
NEXT_PUBLIC_HEXCLAVE_PUBLISHABLE_CLIENT_KEY=this-publishable-client-key-is-for-local-development-only
|
|
HEXCLAVE_SECRET_SERVER_KEY=this-secret-server-key-is-for-local-development-only
|
|
|
|
NEXT_PUBLIC_HEXCLAVE_SVIX_SERVER_URL=http://localhost:${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}13
|
|
HEXCLAVE_ARTIFICIAL_DEVELOPMENT_DELAY_MS=50
|
|
|
|
NEXT_PUBLIC_HEXCLAVE_DEBUGGER_ON_ASSERTION_ERROR=false
|
|
NEXT_PUBLIC_HEXCLAVE_ENABLE_DEVELOPMENT_FEATURES_PROJECT_IDS='["internal"]'
|
|
|
|
HEXCLAVE_DISABLE_PLAN_LIMITS=false
|
|
HEXCLAVE_FEATUREBASE_JWT_SECRET=secret-value
|