- {TEMPLATES.sort((a, b) => a.label!.localeCompare(b.label!))
+ {allTemplates
+ .sort((a, b) => a.label!.localeCompare(b.label!))
.filter((template) => template.mode === 'custom')
.map((template, i) => {
return
diff --git a/packages/common/enabled-features/enabled-features.json b/packages/common/enabled-features/enabled-features.json
index 3ecd75981cfaf..e6a8f46bbc041 100644
--- a/packages/common/enabled-features/enabled-features.json
+++ b/packages/common/enabled-features/enabled-features.json
@@ -14,14 +14,14 @@
"authentication:attack_protection": true,
"authentication:advanced": true,
- "authentication:show_providers": true,
+ "authentication:show_email_phone_columns": true,
"authentication:show_manual_linking": true,
- "authentication:show_send_invitation": true,
"authentication:show_provider_filter": true,
+ "authentication:show_providers": true,
+ "authentication:show_send_invitation": true,
"authentication:show_sort_by_email": true,
"authentication:show_sort_by_phone": true,
"authentication:show_user_type_filter": true,
-
"billing:all": true,
"dashboard_auth:sign_up": true,
@@ -32,6 +32,8 @@
"database:replication": true,
"database:roles": true,
+ "database:restore_to_new_project": true,
+ "database:network_restrictions": true,
"docs:auth_architecture": true,
"docs:auth_configuration": true,
@@ -59,11 +61,15 @@
"feedback:docs": true,
"integrations:partners": true,
- "integrations:show_stripe_wrapper": true,
+ "integrations:wrappers": true,
"integrations:vercel": true,
+ "infrastructure:read_replicas": true,
+
"logs:templates": true,
"logs:collections": true,
+ "logs:metadata": true,
+ "logs:show_metadata_ip_template": true,
"organization:show_sso_settings": true,
"organization:show_security_settings": true,
@@ -91,6 +97,8 @@
"project_settings:show_disable_legacy_api_keys": true,
"project_settings:legacy_jwt_keys": true,
"project_settings:log_drains": true,
+ "project_settings:database_upgrades": true,
+ "project_settings:restart_project": true,
"quickstarts:hide_nimbus": true,
diff --git a/packages/common/enabled-features/enabled-features.schema.json b/packages/common/enabled-features/enabled-features.schema.json
index e678d317abcfe..54ba07676190c 100644
--- a/packages/common/enabled-features/enabled-features.schema.json
+++ b/packages/common/enabled-features/enabled-features.schema.json
@@ -80,6 +80,10 @@
"type": "boolean",
"description": "Show the user type filter in the authentication users page"
},
+ "authentication:show_email_phone_columns": {
+ "type": "boolean",
+ "description": "Show the email and phone columns in the authentication users page"
+ },
"billing:all": {
"type": "boolean",
@@ -115,6 +119,14 @@
"type": "boolean",
"description": "Enable the database roles page"
},
+ "database:restore_to_new_project": {
+ "type": "boolean",
+ "description": "Enable the restore to new project page under backups"
+ },
+ "database:network_restrictions": {
+ "type": "boolean",
+ "description": "Show the network restrictions setting under database settings"
+ },
"docs:auth_architecture": {
"type": "boolean",
@@ -211,15 +223,20 @@
"type": "boolean",
"description": "Show all third-party-managed integrations"
},
- "integrations:show_stripe_wrapper": {
+ "integrations:wrappers": {
"type": "boolean",
- "description": "Show the Stripe wrapper under project integrations"
+ "description": "Show all wrappers (FDW) under project integrations"
},
"integrations:vercel": {
"type": "boolean",
"description": "Enable the vercel integration section in the organization and project settings pages"
},
+ "infrastructure:read_replicas": {
+ "type": "boolean",
+ "description": "Enable read replicas management"
+ },
+
"logs:templates": {
"type": "boolean",
"description": "Enable the logs templates page"
@@ -228,6 +245,14 @@
"type": "boolean",
"description": "Enable the logs collections page"
},
+ "logs:metadata": {
+ "type": "boolean",
+ "description": "Show the metadata field for logs in logs explorer"
+ },
+ "logs:show_metadata_ip_template": {
+ "type": "boolean",
+ "description": "Show the Metadata IP template in the logs explorer"
+ },
"organization:show_sso_settings": {
"type": "boolean",
@@ -315,6 +340,14 @@
"type": "boolean",
"description": "Enable the log drains page in project settings"
},
+ "project_settings:restart_project": {
+ "type": "boolean",
+ "description": "Show the option to restart project in project settings (If off, only fast database reboot will be shown)"
+ },
+ "project_settings:database_upgrades": {
+ "type": "boolean",
+ "description": "Show database upgrade callouts in the project settings infrastructure page"
+ },
"quickstarts:hide_nimbus": {
"type": "boolean",
@@ -366,20 +399,21 @@
"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:advanced",
+ "authentication:attack_protection",
"authentication:emails",
"authentication:multi_factor",
- "authentication:attack_protection",
- "authentication:advanced",
- "authentication:show_providers",
+ "authentication:rate_limits",
+ "authentication:show_email_phone_columns",
"authentication:show_manual_linking",
"authentication:show_provider_filter",
+ "authentication:show_providers",
"authentication:show_send_invitation",
"authentication:show_sort_by_email",
"authentication:show_sort_by_phone",
"authentication:show_user_type_filter",
+ "authentication:sign_in_providers",
+ "authentication:third_party_auth",
"billing:all",
"dashboard_auth:sign_up",
"dashboard_auth:sign_in_with_github",
@@ -387,6 +421,8 @@
"dashboard_auth:sign_in_with_email",
"database:replication",
"database:roles",
+ "database:restore_to_new_project",
+ "database:network_restrictions",
"docs:auth_architecture",
"docs:auth_configuration",
"docs:auth_flows",
@@ -408,14 +444,17 @@
"docs:web_apps",
"feedback:docs",
"integrations:partners",
- "integrations:show_stripe_wrapper",
+ "integrations:wrappers",
"integrations:vercel",
+ "infrastructure:read_replicas",
"profile:show_email",
"profile:show_information",
"profile:show_analytics_and_marketing",
"profile:show_account_deletion",
"logs:templates",
"logs:collections",
+ "logs:metadata",
+ "logs:show_metadata_ip_template",
"organization:show_sso_settings",
"project_creation:show_advanced_config",
"project_homepage:show_instance_size",
@@ -426,6 +465,8 @@
"project_settings:show_disable_legacy_api_keys",
"project_settings:legacy_jwt_keys",
"project_settings:log_drains",
+ "project_settings:restart_project",
+ "project_settings:database_upgrades",
"project_connection:javascript_example",
"project_connection:dart_example",
"project_connection:show_app_frameworks",
diff --git a/packages/common/telemetry-constants.ts b/packages/common/telemetry-constants.ts
index 4b1f69133b79d..f12911ecde72d 100644
--- a/packages/common/telemetry-constants.ts
+++ b/packages/common/telemetry-constants.ts
@@ -14,6 +14,16 @@ type TelemetryGroups = {
organization: string
}
+export const TABLE_EVENT_ACTIONS = {
+ TableCreated: 'table_created',
+ TableDataAdded: 'table_data_added',
+ TableRLSEnabled: 'table_rls_enabled',
+} as const
+
+export type TableEventAction = (typeof TABLE_EVENT_ACTIONS)[keyof typeof TABLE_EVENT_ACTIONS]
+
+export const TABLE_EVENT_VALUES: TableEventAction[] = Object.values(TABLE_EVENT_ACTIONS)
+
/**
* Triggered when a user signs up. When signing up with Email and Password, this is only triggered once user confirms their email.
*
@@ -1744,6 +1754,84 @@ export interface HipaaRequestButtonClickedEvent {
groups: Omit
}
+/**
+ * User successfully created a table in the project.
+ *
+ * @group Events
+ * @source studio
+ * @page /dashboard/project/{ref}/editor or /dashboard/project/{ref}/sql
+ */
+export interface TableCreatedEvent {
+ action: 'table_created'
+ properties: {
+ /**
+ * Method used to create the table
+ */
+ method: 'sql_editor' | 'table_editor'
+ /**
+ * Schema where table was created
+ */
+ schema_name?: string
+ /**
+ * Name of the table created
+ */
+ table_name?: string
+ }
+ groups: Partial
+}
+
+/**
+ * User successfully added data to a table.
+ *
+ * @group Events
+ * @source studio
+ * @page /dashboard/project/{ref}/editor or /dashboard/project/{ref}/sql
+ */
+export interface TableDataAddedEvent {
+ action: 'table_data_added'
+ properties: {
+ /**
+ * Method used to insert data
+ */
+ method: 'sql_editor' | 'table_editor' | 'spreadsheet_import'
+ /**
+ * Schema of the table
+ */
+ schema_name?: string
+ /**
+ * Name of the table
+ */
+ table_name?: string
+ }
+ groups: Partial
+}
+
+/**
+ * User successfully enabled RLS on a table.
+ *
+ * @group Events
+ * @source studio
+ * @page /dashboard/project/{ref}/editor or /dashboard/project/{ref}/sql
+ */
+export interface TableRLSEnabledEvent {
+ action: 'table_rls_enabled'
+ properties: {
+ /**
+ * Method used to enable RLS
+ */
+ method: 'sql_editor' | 'table_editor'
+ /**
+ * Schema of the table
+ */
+ schema_name?: string
+ /**
+ * Name of the table
+ */
+ table_name?: string
+ }
+ groups: Partial
+}
+
/**
* @hidden
*/
@@ -1851,3 +1939,6 @@ export type TelemetryEvent =
| DpaRequestButtonClickedEvent
| DocumentViewButtonClickedEvent
| HipaaRequestButtonClickedEvent
+ | TableCreatedEvent
+ | TableDataAddedEvent
+ | TableRLSEnabledEvent