Files
supabase/packages/common/enabled-features/enabled-features.schema.json
Charis 8cd5e10038 feat: alternate search index for nimbus (#38662)
* feat: alternate search index for nimbus

Create an alternate search index for Nimbus that filters out
feature-flagged pages (equivalent to setting all feature flags to
false).

Notes:
- Creates two new DB tables, `page_nimbus` and `page_section_nimbus`,
  which are filtered versions of `page` and `page_section`
- Makes `nimbus` versions of all the DB search functions
- Refactored the embedding upload script. Changes to make it faster (got
  annoyed by how slow it was when testing...), incorporate retries, and
  produce better summary logs.
- Upload script, when run with the environment variable
  ENABLED_FEATURES_OVERRIDE_DISABLE_ALL, produces and uploads the
  alternate search index
- Changed all the search calls in frontend/API to check for
  `isFeatureEnabled('search:fullIndex')` to determine whether to search
  the full or alternate index

* ci: produce nimbus search indexes on merge

* fix: turn full search index on
2025-09-16 12:37:53 -04:00

327 lines
10 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"ai:opt_in_level_disabled": {
"type": "boolean",
"description": "Enable the AI opt in level 'disabled'"
},
"ai:opt_in_level_schema": {
"type": "boolean",
"description": "Enable the AI opt in level 'schema'"
},
"ai:opt_in_level_schema_and_log": {
"type": "boolean",
"description": "Enable the AI opt in level 'schema_and_log'"
},
"ai:opt_in_level_schema_and_log_and_data": {
"type": "boolean",
"description": "Enable the AI opt in level 'schema_and_log_and_data'"
},
"authentication:sign_in_providers": {
"type": "boolean",
"description": "Enable the authentication sign in / providers page"
},
"authentication:third_party_auth": {
"type": "boolean",
"description": "Enable the authentication third party auth page"
},
"authentication:rate_limits": {
"type": "boolean",
"description": "Enable the authentication rate limits page"
},
"authentication:emails": {
"type": "boolean",
"description": "Enable the authentication emails page"
},
"authentication:multi_factor": {
"type": "boolean",
"description": "Enable the authentication multi factor page"
},
"authentication:attack_protection": {
"type": "boolean",
"description": "Enable the authentication attack protection page"
},
"authentication:advanced": {
"type": "boolean",
"description": "Enable the authentication advanced page"
},
"authentication:show_providers": {
"type": "boolean",
"description": "Show the providers section in the authentication Sign In / Providers page"
},
"authentication:show_manual_linking": {
"type": "boolean",
"description": "Show the manual linking toggle in the authentication Sign In / Providers page under User Signups"
},
"authentication:show_send_invitation": {
"type": "boolean",
"description": "Show the send invitation option in the authentication users page"
},
"authentication:show_provider_filter": {
"type": "boolean",
"description": "Show the provider filter in the authentication users page"
},
"authentication:show_sort_by_email": {
"type": "boolean",
"description": "Show the sort by email option in the authentication users page"
},
"authentication:show_sort_by_phone": {
"type": "boolean",
"description": "Show the sort by phone option in the authentication users page"
},
"authentication:show_user_type_filter": {
"type": "boolean",
"description": "Show the user type filter in the authentication users page"
},
"billing:all": {
"type": "boolean",
"description": "Enable the billing settings page"
},
"dashboard_auth:sign_up": {
"type": "boolean",
"description": "Enable the sign up page in the dashboard"
},
"dashboard_auth:sign_in_with_github": {
"type": "boolean",
"description": "Enable the sign in with github provider"
},
"dashboard_auth:sign_in_with_sso": {
"type": "boolean",
"description": "Enable the sign in with sso provider"
},
"dashboard_auth:sign_in_with_email": {
"type": "boolean",
"description": "Enable the sign in with email/password provider"
},
"dashboard_auth:show_testimonial": {
"type": "boolean",
"description": "Enable the testimonial on the sign in/up page"
},
"database:replication": {
"type": "boolean",
"description": "Enable the database replication page"
},
"database:roles": {
"type": "boolean",
"description": "Enable the database roles page"
},
"docs:compliance": {
"type": "boolean",
"description": "Enable documentation on compliance"
},
"docs:self-hosting": {
"type": "boolean",
"description": "Enable documentation for self-hosting"
},
"feedback:docs": {
"type": "boolean",
"description": "Enable feedback submission for docs site"
},
"integrations:vercel": {
"type": "boolean",
"description": "Enable the vercel integration section in the organization and project settings pages"
},
"integrations:show_stripe_wrapper": {
"type": "boolean",
"description": "Show the Stripe wrapper under project integrations"
},
"logs:templates": {
"type": "boolean",
"description": "Enable the logs templates page"
},
"logs:collections": {
"type": "boolean",
"description": "Enable the logs collections page"
},
"organization:show_sso_settings": {
"type": "boolean",
"description": "Show the SSO settings tab in the organization settings page"
},
"profile:show_email": {
"type": "boolean",
"description": "Show the user's email address in the toolbar"
},
"profile:show_information": {
"type": "boolean",
"description": "Shows the user's profile information (first name, last name) in account preferences"
},
"profile:show_analytics_and_marketing": {
"type": "boolean",
"description": "Shows the analytics and marketing section in account preferences"
},
"profile:show_account_deletion": {
"type": "boolean",
"description": "Shows the account deletion section in account preferences"
},
"project_connection:javascript_example": {
"type": "boolean",
"description": "Show the javascript example in the project connection settings. If off, it'll show up as Typescript example instead (both are the same code example)"
},
"project_connection:dart_example": {
"type": "boolean",
"description": "Show the dart example in the project connection settings"
},
"project_connection:show_app_frameworks": {
"type": "boolean",
"description": "Show the app frameworks tab in the connect modal"
},
"project_connection:show_mobile_frameworks": {
"type": "boolean",
"description": "Show the mobile frameworks tab in the connect modal"
},
"project_connection:show_orms": {
"type": "boolean",
"description": "Show the orms tab in the connect modal"
},
"project_creation:show_advanced_config": {
"type": "boolean",
"description": "Show the advanced configuration option in the project creation flow"
},
"project_homepage:show_instance_size": {
"type": "boolean",
"description": "Show the instance size badge in the project homepage and infrastructure settings"
},
"project_homepage:show_examples": {
"type": "boolean",
"description": "Show the example projects in the project homepage"
},
"project_addons:dedicated_ipv4_address": {
"type": "boolean",
"description": "Show the dedicated IPv4 address addon"
},
"project_addons:show_compute_price": {
"type": "boolean",
"description": "Show the compute price in the compute and disk page"
},
"project_settings:custom_domains": {
"type": "boolean",
"description": "Show the custom domain configuration section + custom domain addon"
},
"project_settings:show_disable_legacy_api_keys": {
"type": "boolean",
"description": "Show the disable legacy API keys section in project settings API Keys page"
},
"project_settings:legacy_jwt_keys": {
"type": "boolean",
"description": "Enable the legacy JWT secret page in project settings"
},
"project_settings:log_drains": {
"type": "boolean",
"description": "Enable the log drains page in project settings"
},
"reports:all": {
"type": "boolean",
"description": "Enable the project reports page"
},
"sdk:csharp": {
"type": "boolean",
"description": "Enable the C# SDK"
},
"sdk:dart": {
"type": "boolean",
"description": "Enable the Dart/Flutter SDK"
},
"sdk:kotlin": {
"type": "boolean",
"description": "Enable the Kotlin SDK"
},
"sdk:python": {
"type": "boolean",
"description": "Enable the Python SDK"
},
"sdk:swift": {
"type": "boolean",
"description": "Enable the Swift SDK"
},
"search:fullIndex": {
"type": "boolean",
"description": "Enable the full search index. When true, uses the full search; when false, uses the alternate search index."
}
},
"required": [
"ai:opt_in_level_disabled",
"ai:opt_in_level_schema",
"ai:opt_in_level_schema_and_log",
"ai:opt_in_level_schema_and_log_and_data",
"authentication:sign_in_providers",
"authentication:third_party_auth",
"authentication:rate_limits",
"authentication:emails",
"authentication:multi_factor",
"authentication:attack_protection",
"authentication:advanced",
"authentication:show_providers",
"authentication:show_manual_linking",
"authentication:show_provider_filter",
"authentication:show_send_invitation",
"authentication:show_sort_by_email",
"authentication:show_sort_by_phone",
"authentication:show_user_type_filter",
"billing:all",
"dashboard_auth:sign_up",
"dashboard_auth:sign_in_with_github",
"dashboard_auth:sign_in_with_sso",
"dashboard_auth:sign_in_with_email",
"database:replication",
"database:roles",
"docs:compliance",
"docs:self-hosting",
"feedback:docs",
"integrations:vercel",
"integrations:show_stripe_wrapper",
"profile:show_email",
"profile:show_information",
"profile:show_analytics_and_marketing",
"profile:show_account_deletion",
"logs:templates",
"logs:collections",
"organization:show_sso_settings",
"project_creation:show_advanced_config",
"project_homepage:show_instance_size",
"project_homepage:show_examples",
"project_addons:dedicated_ipv4_address",
"project_addons:show_compute_price",
"project_settings:custom_domains",
"project_settings:show_disable_legacy_api_keys",
"project_settings:legacy_jwt_keys",
"project_settings:log_drains",
"project_connection:javascript_example",
"project_connection:dart_example",
"project_connection:show_app_frameworks",
"project_connection:show_mobile_frameworks",
"project_connection:show_orms",
"reports:all",
"sdk:csharp",
"sdk:dart",
"sdk:kotlin",
"sdk:python",
"sdk:swift",
"search:fullIndex"
],
"additionalProperties": false
}