Appearance
本頁由
docs-site/scripts/sync-api-docs.sh從proto/gen/grpc-doc/自動產生。 不要直接編輯本檔;改 proto + 跑make proto後重新同步。
Protocol Documentation
Table of Contents
store/access_grant.proto
AccessGrant
AccessGrantPayload
| Field | Type | Label | Description |
|---|---|---|---|
| issue_id | int64 | The issue associated with the access grant. | |
| targets | string | repeated | The target databases for this access grant. Format: instances/{instance}/databases/ |
| query | string | The query permission granted. | |
| unmask | bool | Whether the grant allows unmasking sensitive data. | |
| reason | string | ||
| requested_duration | google.protobuf.Duration | The requested duration for the access grant. Stored when the user provides a TTL instead of an absolute expire_time. The server computes expire_time from this value at activation time. |
AccessGrant.Status
| Name | Number | Description |
|---|---|---|
| STATUS_UNSPECIFIED | 0 | |
| PENDING | 1 | |
| ACTIVE | 2 | |
| REVOKED | 3 |
store/common.proto
PageToken
PageToken is used internally for obfuscating pagination tokens.
| Field | Type | Label | Description |
|---|---|---|---|
| limit | int32 | Maximum number of items to return. | |
| offset | int32 | Number of items to skip before starting to return results. |
Position
Position in a text expressed as one-based line and one-based column. We use 1-based numbering to match the majority of industry standards:
- Monaco Editor uses 1-based (https://microsoft.github.io/monaco-editor/typedoc/interfaces/IPosition.html)
- GitHub Actions uses 1-based (https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message)
- Most text editors display 1-based positions to users Note: LSP uses 0-based (https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#position), but we follow the canonical user-facing standards.
Handling unknown positions:
- If the entire position is unknown, leave this field as nil/undefined
- If only line is known, set line and leave column as 0 (e.g., line=5, column=0)
- If only column is known (rare), set column and leave line as 0 Frontends should check for nil/undefined/zero values and handle them appropriately.
| Field | Type | Label | Description |
|---|---|---|---|
| line | int32 | Line position in a text (one-based). First line of the text is line 1. A value of 0 indicates the line information is unknown. | |
| column | int32 | Column position in a text (one-based). Column is measured in Unicode code points (characters/runes), not bytes or grapheme clusters. First character of the line is column 1. A value of 0 indicates the column information is unknown. |
Examples: - "SELECT * FROM t" - column 8 is '*' - "SELECT 你好 FROM t" - column 8 is '你' (even though it's at byte offset 7) - "SELECT 😀 FROM t" - column 8 is '😀' (even though it's 4 bytes in UTF-8) |
Range
Range represents a span within a text or sequence. Whether the indices are byte offsets or character indices depends on the context. Check the documentation of the field using Range for specific semantics.
| Field | Type | Label | Description |
|---|---|---|---|
| start | int32 | Start index (inclusive). | |
| end | int32 | End index (exclusive). |
Engine
Engine represents the type of database system.
| Name | Number | Description |
|---|---|---|
| ENGINE_UNSPECIFIED | 0 | |
| CLICKHOUSE | 1 | |
| MYSQL | 2 | |
| POSTGRES | 3 | |
| SNOWFLAKE | 4 | |
| SQLITE | 5 | |
| TIDB | 6 | |
| MONGODB | 7 | |
| REDIS | 8 | |
| ORACLE | 9 | |
| SPANNER | 10 | |
| MSSQL | 11 | |
| REDSHIFT | 12 | |
| MARIADB | 13 | |
| OCEANBASE | 14 | |
| STARROCKS | 15 | |
| DORIS | 16 | |
| HIVE | 17 | |
| ELASTICSEARCH | 18 | |
| BIGQUERY | 19 | |
| DYNAMODB | 20 | |
| DATABRICKS | 21 | |
| COCKROACHDB | 22 | |
| COSMOSDB | 23 | |
| TRINO | 24 | |
| CASSANDRA | 25 |
ExportFormat
ExportFormat represents the file format for exported data.
| Name | Number | Description |
|---|---|---|
| FORMAT_UNSPECIFIED | 0 | |
| CSV | 1 | |
| JSON | 2 | |
| SQL | 3 | |
| XLSX | 4 |
RiskLevel
RiskLevel represents the assessed risk level of a database operation.
| Name | Number | Description |
|---|---|---|
| RISK_LEVEL_UNSPECIFIED | 0 | |
| LOW | 1 | |
| MODERATE | 2 | |
| HIGH | 3 |
SchemaChangeType
SchemaChangeType represents the strategy for schema changes.
| Name | Number | Description |
|---|---|---|
| SCHEMA_CHANGE_TYPE_UNSPECIFIED | 0 | |
| VERSIONED | 1 | Versioned migration with explicit migration scripts. |
| DECLARATIVE | 2 | Declarative schema definition (state-based). |
StatementType
StatementType represents the type of SQL statement.
| Name | Number | Description |
|---|---|---|
| STATEMENT_TYPE_UNSPECIFIED | 0 | |
| CREATE_DATABASE | 1 | DDL - CREATE statements |
| CREATE_TABLE | 2 | |
| CREATE_VIEW | 3 | |
| CREATE_INDEX | 4 | |
| CREATE_SEQUENCE | 5 | |
| CREATE_SCHEMA | 6 | |
| CREATE_FUNCTION | 7 | |
| CREATE_TRIGGER | 8 | |
| CREATE_PROCEDURE | 9 | |
| CREATE_EVENT | 10 | |
| CREATE_EXTENSION | 11 | |
| CREATE_TYPE | 12 | |
| DROP_DATABASE | 20 | DDL - DROP statements |
| DROP_TABLE | 21 | |
| DROP_VIEW | 22 | |
| DROP_INDEX | 23 | |
| DROP_SEQUENCE | 24 | |
| DROP_SCHEMA | 25 | |
| DROP_FUNCTION | 26 | |
| DROP_TRIGGER | 27 | |
| DROP_PROCEDURE | 28 | |
| DROP_EVENT | 29 | |
| DROP_EXTENSION | 30 | |
| DROP_TYPE | 31 | |
| ALTER_DATABASE | 40 | DDL - ALTER statements |
| ALTER_TABLE | 41 | |
| ALTER_VIEW | 42 | |
| ALTER_SEQUENCE | 43 | |
| ALTER_EVENT | 44 | |
| ALTER_TYPE | 45 | |
| ALTER_INDEX | 46 | |
| TRUNCATE | 50 | DDL - Other |
| RENAME | 51 | |
| RENAME_INDEX | 52 | |
| RENAME_SCHEMA | 53 | |
| RENAME_SEQUENCE | 54 | |
| COMMENT | 55 | |
| INSERT | 60 | DML statements |
| UPDATE | 61 | |
| DELETE | 62 |
VCSType
VCSType represents the type of version control system.
| Name | Number | Description |
|---|---|---|
| VCS_TYPE_UNSPECIFIED | 0 | |
| GITHUB | 1 | |
| GITLAB | 2 | |
| BITBUCKET | 3 | |
| AZURE_DEVOPS | 4 |
WebhookType
| Name | Number | Description |
|---|---|---|
| WEBHOOK_TYPE_UNSPECIFIED | 0 | Unspecified type. |
| SLACK | 1 | Slack integration. |
| DISCORD | 2 | Discord integration. |
| TEAMS | 3 | Microsoft Teams integration. |
| DINGTALK | 4 | DingTalk integration. |
| FEISHU | 5 | Feishu integration. |
| WECOM | 6 | WeCom (WeChat Work) integration. |
| LARK | 7 | Lark integration. |
| GOOGLE_CHAT | 8 | Google Chat integration. |
| TELEGRAM | 9 | [Argus P1-4 M4.0] Telegram Bot API integration. Added to support emergency-pause + alert routing notifications in regions where Telegram is the standard ops channel. |
store/advice.proto
Advice
| Field | Type | Label | Description |
|---|---|---|---|
| status | Advice.Status | The advice status. | |
| code | int32 | The advice code. | |
| title | string | The advice title. | |
| content | string | The advice content. | |
| start_position | Position | The start_position is inclusive and the end_position is exclusive. TODO: use range instead. | |
| end_position | Position |
Advice.Status
Status represents the result status of the advice.
| Name | Number | Description |
|---|---|---|
| STATUS_UNSPECIFIED | 0 | |
| SUCCESS | 1 | |
| WARNING | 2 | |
| ERROR | 3 |
store/approval.proto
ApprovalFlow
ApprovalFlow defines the sequence of approvals required.
| Field | Type | Label | Description |
|---|---|---|---|
| roles | string | repeated | List of role names that must approve, in order. |
ApprovalTemplate
ApprovalTemplate defines the approval workflow and requirements for an issue.
| Field | Type | Label | Description |
|---|---|---|---|
| flow | ApprovalFlow | The approval workflow specification. | |
| title | string | Human-readable title of the approval template. | |
| description | string | Detailed description of when this template applies. |
IssuePayloadApproval
IssuePayloadApproval records the approval template used and approval history for an issue.
| Field | Type | Label | Description |
|---|---|---|---|
| approval_template | ApprovalTemplate | The approval template being used for this issue. | |
| approvers | IssuePayloadApproval.Approver | repeated | List of approvers and their current status. |
| approval_finding_done | bool | Whether the system has finished finding a matching approval template. False means the backend is still searching for matching templates. |
IssuePayloadApproval.Approver
Approver represents a user who can approve or reject an issue.
| Field | Type | Label | Description |
|---|---|---|---|
| status | IssuePayloadApproval.Approver.Status | The current approval status. | |
| principal | string | The principal who is the approver. Format: users/{email}. |
IssuePayloadApproval.Approver.Status
Status represents the approver's decision state.
| Name | Number | Description |
|---|---|---|
| STATUS_UNSPECIFIED | 0 | |
| PENDING | 1 | Approval is pending from this approver. |
| APPROVED | 2 | Approver has approved the issue. |
| REJECTED | 3 | Approver has rejected the issue. |
store/audit_log.proto
AuditLog
| Field | Type | Label | Description |
|---|---|---|---|
| parent | string | The project or workspace the audit log belongs to. Formats: - projects/{project} - workspaces/ | |
| method | string | Example: /argus.v1.SQLService/Query | |
| resource | string | The resource name. Example: projects/ | |
| user | string | Format: users/{email}. | |
| severity | AuditLog.Severity | ||
| request | string | Marshalled request. | |
| response | string | Marshalled response. Some fields are omitted because they are too large or contain sensitive information. | |
| status | google.rpc.Status | ||
| latency | google.protobuf.Duration | The latency of the RPC. | |
| service_data | google.protobuf.Any | The service-specific data about the request, response, and other activities. | |
| request_metadata | RequestMetadata | Metadata about the operation. |
RequestMetadata
Metadata about the request.
| Field | Type | Label | Description |
|---|---|---|---|
| caller_ip | string | The IP address of the caller. | |
| caller_supplied_user_agent | string | The user agent of the caller. This information is not authenticated and should be treated accordingly. |
AuditLog.Severity
| Name | Number | Description |
|---|---|---|
| SEVERITY_UNSPECIFIED | 0 | |
| DEBUG | 1 | |
| INFO | 2 | |
| NOTICE | 3 | |
| WARNING | 4 | |
| ERROR | 5 | |
| CRITICAL | 6 | |
| ALERT | 7 | |
| EMERGENCY | 8 |
store/auth.proto
EmailVerificationCodePurpose
EmailVerificationCodePurpose distinguishes login codes from password reset codes. Stored as the enum name string in email_verification_code.purpose column.
| Name | Number | Description |
|---|---|---|
| EMAIL_VERIFICATION_CODE_PURPOSE_UNSPECIFIED | 0 | |
| LOGIN | 1 | |
| PASSWORD_RESET | 2 |
store/changelog.proto
ChangelogPayload
| Field | Type | Label | Description |
|---|---|---|---|
| task_run | string | Format: projects/{project}/plans/{plan}/rollout/stages/{stage}/tasks/{task}/taskRuns/ | |
| git_commit | string |
store/database.proto
BoundingBox
BoundingBox defines the bounding box for spatial indexes.
| Field | Type | Label | Description |
|---|---|---|---|
| xmin | double | ||
| ymin | double | ||
| xmax | double | ||
| ymax | double |
CheckConstraintMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the check constraint. | |
| expression | string | The expression is the expression of a check constraint. |
ColumnCatalog
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the column. | |
| semantic_type | string | ||
| labels | ColumnCatalog.LabelsEntry | repeated | The user labels for a column. |
| classification | string | ||
| object_schema | ObjectSchema | optional |
ColumnCatalog.LabelsEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
ColumnMetadata
ColumnMetadata is the metadata for columns.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the column. | |
| position | int32 | The position is the position in columns. | |
| default | string | The default value of the column. | |
| default_on_null | bool | Oracle specific metadata. The default_on_null is the default on null of a column. | |
| on_update | string | The on_update is the on update action of a column. For MySQL like databases, it's only supported for TIMESTAMP columns with CURRENT_TIMESTAMP as on update value. | |
| nullable | bool | The nullable is the nullable of a column. | |
| type | string | The type is the type of a column. | |
| character_set | string | The character_set is the character_set of a column. | |
| collation | string | The collation is the collation of a column. | |
| comment | string | The comment is the comment of a column. | |
| generation | GenerationMetadata | The generation is for generated columns. | |
| is_identity | bool | ||
| identity_generation | ColumnMetadata.IdentityGeneration | The identity_generation is for identity columns, PG only. | |
| identity_seed | int64 | The identity_seed is for identity columns, MSSQL only. | |
| identity_increment | int64 | The identity_increment is for identity columns, MSSQL only. | |
| default_constraint_name | string | The default_constraint_name is the name of the default constraint, MSSQL only. In MSSQL, default values are implemented as named constraints. When modifying or dropping a column's default value, you must reference the constraint by name. This field stores the actual constraint name from the database. |
Example: A column definition like: CREATE TABLE employees ( status NVARCHAR(20) DEFAULT 'active' )
Will create a constraint with an auto-generated name like 'DF__employees__statu__3B75D760' or a user-defined name if specified: ALTER TABLE employees ADD CONSTRAINT DF_employees_status DEFAULT 'active' FOR status
To modify the default, you must first drop the existing constraint by name: ALTER TABLE employees DROP CONSTRAINT DF__employees__statu__3B75D760 ALTER TABLE employees ADD CONSTRAINT DF_employees_status DEFAULT 'inactive' FOR status
This field is populated when syncing from the database. When empty (e.g., when parsing from SQL files), the system cannot automatically drop the constraint. |
DatabaseConfig
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| schemas | SchemaCatalog | repeated | The schema_configs is the list of configs for schemas in a database. |
DatabaseMetadata
DatabaseMetadata is the metadata for databases.
| Field | Type | Label | Description |
|---|---|---|---|
| labels | DatabaseMetadata.LabelsEntry | repeated | |
| last_sync_time | google.protobuf.Timestamp | ||
| backup_available | bool | ||
| datashare | bool | ||
| release | string | The release that was last applied to this database. Format: projects/{project}/releases/ | |
| sync_status | SyncStatus | The sync status of the database. | |
| sync_error | string | The error message if sync failed. |
DatabaseMetadata.LabelsEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
DatabaseSchemaMetadata
DatabaseSchemaMetadata is the schema metadata for databases.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| schemas | SchemaMetadata | repeated | The list of schemas in a database. |
| character_set | string | The character set of the database. | |
| collation | string | The collation of the database. | |
| extensions | ExtensionMetadata | repeated | The list of extensions in a database. |
| datashare | bool | The database belongs to a datashare. | |
| service_name | string | The service name of the database. It's an Oracle-specific concept. | |
| linked_databases | LinkedDatabaseMetadata | repeated | |
| owner | string | ||
| search_path | string | The search_path is the search path of a PostgreSQL database. | |
| event_triggers | EventTriggerMetadata | repeated | The list of event triggers in a database (PostgreSQL specific). Event triggers are database-level objects, not schema-scoped. |
DependencyColumn
DependencyColumn is the metadata for dependency columns.
| Field | Type | Label | Description |
|---|---|---|---|
| schema | string | The schema is the schema of a reference column. | |
| table | string | The table is the table of a reference column. | |
| column | string | The column is the name of a reference column. |
DependencyTable
| Field | Type | Label | Description |
|---|---|---|---|
| schema | string | The schema is the schema of a reference table. | |
| table | string | The table is the name of a reference table. |
DimensionalConfig
DimensionalConfig defines dimensional and constraint parameters for spatial indexes.
| Field | Type | Label | Description |
|---|---|---|---|
| dimensions | int32 | Number of dimensions (2-4, default 2) | |
| data_type | string | Spatial data type Examples: GEOMETRY, GEOGRAPHY, POINT, POLYGON, etc. | |
| operator_class | string | PostgreSQL operator class Examples: gist_geometry_ops_2d, gist_geometry_ops_nd, etc. | |
| layer_gtype | string | Oracle geometry type constraint Examples: POINT, LINE, POLYGON, COLLECTION | |
| parallel_build | bool | Parallel index creation |
EnumTypeMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the enum type. | |
| values | string | repeated | The enum values of the type. |
| comment | string | ||
| skip_dump | bool |
EventMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the event. | |
| definition | string | The schedule of the event. | |
| time_zone | string | The time zone of the event. | |
| sql_mode | string | ||
| character_set_client | string | ||
| collation_connection | string | ||
| comment | string |
EventTriggerMetadata
EventTriggerMetadata is the metadata for PostgreSQL event triggers. Event triggers are database-level objects that fire on DDL events.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the event trigger. | |
| event | string | The event type: DDL_COMMAND_START, DDL_COMMAND_END, SQL_DROP, TABLE_REWRITE. | |
| tags | string | repeated | The tags filter (e.g., ['CREATE TABLE', 'DROP TABLE']). |
| function_schema | string | The schema of the function to execute. | |
| function_name | string | The name of the function to execute. | |
| enabled | bool | Whether the trigger is enabled. | |
| definition | string | The full CREATE EVENT TRIGGER definition from pg_get_event_trigger_def(). SDL output should prefer using this field. | |
| comment | string | The comment on the event trigger. | |
| skip_dump | bool | Skip dump flag (for extension-owned triggers). |
ExcludeConstraintMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the EXCLUDE constraint. | |
| expression | string | The expression is the full EXCLUDE constraint definition including "EXCLUDE" keyword. Example: "EXCLUDE USING gist (room_id WITH =, during WITH &&)" |
ExtensionMetadata
ExtensionMetadata is the metadata for extensions.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the extension. | |
| schema | string | The schema where the extension is installed. However, the extension usage is not limited to the schema. | |
| version | string | The version is the version of an extension. | |
| description | string | The description is the description of an extension. |
ExternalTableMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the external table. | |
| external_server_name | string | The external_server_name is the name of the external server. | |
| external_database_name | string | The external_database_name is the name of the external database. | |
| columns | ColumnMetadata | repeated | The columns is the ordered list of columns in a foreign table. |
ForeignKeyMetadata
ForeignKeyMetadata is the metadata for foreign keys.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the foreign key. | |
| columns | string | repeated | The columns are the ordered referencing columns of a foreign key. |
| referenced_schema | string | The referenced_schema is the referenced schema name of a foreign key. It is an empty string for databases without such concept such as MySQL. | |
| referenced_table | string | The referenced_table is the referenced table name of a foreign key. | |
| referenced_columns | string | repeated | The referenced_columns are the ordered referenced columns of a foreign key. |
| on_delete | string | The on_delete is the on delete action of a foreign key. | |
| on_update | string | The on_update is the on update action of a foreign key. | |
| match_type | string | The match_type is the match type of a foreign key. The match_type is the PostgreSQL specific field. It's empty string for other databases. |
FunctionMetadata
FunctionMetadata is the metadata for functions.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the function. | |
| definition | string | The definition is the definition of a function. | |
| signature | string | The signature is the name with the number and type of input arguments the function takes. | |
| character_set_client | string | MySQL specific metadata. | |
| collation_connection | string | ||
| database_collation | string | ||
| sql_mode | string | ||
| comment | string | ||
| dependency_tables | DependencyTable | repeated | The dependency_tables is the list of dependency tables of a function. For PostgreSQL, it's the list of tables that the function depends on the return type definition. |
| skip_dump | bool |
GenerationMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| type | GenerationMetadata.Type | ||
| expression | string |
GridLevel
GridLevel defines a grid level for spatial tessellation.
| Field | Type | Label | Description |
|---|---|---|---|
| level | int32 | 1-4 for SQL Server | |
| density | string | LOW, MEDIUM, HIGH |
IndexMetadata
IndexMetadata is the metadata for indexes.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the index. | |
| expressions | string | repeated | The expressions are the ordered columns or expressions of an index. |
For PostgreSQL, the canonical shape for each entry matches pg_get_indexdef(oid, col, true) — the tightest index_elem grammar form: - column key: bare identifier e.g. "id", "Name" - function-call key: bare func_expr_windowless e.g. "lower(name)" - expression key: parenthesized a_expr e.g. "(payload ->> 'k'::text)" The DDL emitter writes entries verbatim into the CREATE INDEX key list. | | key_length | int64 | repeated | The ordered list of key lengths for the index. If the key length is not specified, it is -1. | | descending | bool | repeated | The ordered list of descending flags for the index columns. | | type | string | | The type is the type of an index. | | unique | bool | | The unique is whether the index is unique. | | primary | bool | | The primary is whether the index is a primary key index. | | visible | bool | | The visible is whether the index is visible. | | comment | string | | The comment is the comment of an index. | | definition | string | | The definition of an index. | | parent_index_schema | string | | The schema name of the parent index. | | parent_index_name | string | | The index name of the parent index. | | granularity | int64 | | The number of granules in the block. It's a ClickHouse specific field. | | is_constraint | bool | | It's a PostgreSQL specific field. The unique constraint and unique index are not the same thing in PostgreSQL. | | spatial_config | SpatialIndexConfig | | Spatial index specific configuration | | opclass_names | string | repeated | https://www.postgresql.org/docs/current/catalog-pg-opclass.html Name of the operator class for each column. (PostgreSQL specific). | | opclass_defaults | bool | repeated | True if the operator class is the default. (PostgreSQL specific). |
InstanceRoleMetadata
InstanceRoleMetadata is the message for instance role.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The role name. It's unique within the instance. | |
| grant | string | The grant display string on the instance. It's generated by database engine. |
LinkedDatabaseMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| username | string | ||
| host | string |
MaterializedViewMetadata
MaterializedViewMetadata is the metadata for materialized views.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the materialized view. | |
| definition | string | The definition is the definition of a view. | |
| comment | string | The comment is the comment of a view. | |
| dependency_columns | DependencyColumn | repeated | The list of dependency columns of the view. |
| triggers | TriggerMetadata | repeated | The ordered list of columns in the materialized view. |
| indexes | IndexMetadata | repeated | The list of indexes in the materialized view. |
| skip_dump | bool |
ObjectSchema
| Field | Type | Label | Description |
|---|---|---|---|
| type | ObjectSchema.Type | ||
| struct_kind | ObjectSchema.StructKind | ||
| array_kind | ObjectSchema.ArrayKind | ||
| semantic_type | string |
ObjectSchema.ArrayKind
| Field | Type | Label | Description |
|---|---|---|---|
| kind | ObjectSchema |
ObjectSchema.StructKind
| Field | Type | Label | Description |
|---|---|---|---|
| properties | ObjectSchema.StructKind.PropertiesEntry | repeated |
ObjectSchema.StructKind.PropertiesEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | ObjectSchema |
PackageMetadata
PackageMetadata is the metadata for packages.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the package. | |
| definition | string | The definition is the definition of a package. |
ProcedureMetadata
ProcedureMetadata is the metadata for procedures.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the procedure. | |
| definition | string | The definition is the definition of a procedure. | |
| signature | string | The signature is the name with the number and type of input arguments the function takes. | |
| character_set_client | string | MySQL specific metadata. | |
| collation_connection | string | ||
| database_collation | string | ||
| sql_mode | string | ||
| comment | string | ||
| skip_dump | bool |
RuleMetadata
RuleMetadata is the metadata for PostgreSQL rules.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the rule. | |
| event | string | The event type of the rule: SELECT, INSERT, UPDATE, or DELETE. | |
| condition | string | The WHERE condition of the rule (optional). | |
| action | string | The command(s) to execute when the rule fires. | |
| is_instead | bool | The is_instead indicates whether this is an INSTEAD rule. | |
| is_enabled | bool | The is_enabled indicates whether the rule is enabled. | |
| definition | string | The full CREATE RULE statement. |
SchemaCatalog
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The schema name. It is an empty string for databases without such concept such as MySQL. | |
| tables | TableCatalog | repeated | The table_configs is the list of configs for tables in a schema. |
SchemaMetadata
SchemaMetadata is the metadata for schemas. This is the concept of schema in Postgres, but it's a no-op for MySQL.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The schema name. It is an empty string for databases without such concept such as MySQL. | |
| tables | TableMetadata | repeated | The list of tables in a schema. |
| external_tables | ExternalTableMetadata | repeated | The list of external tables in a schema. |
| views | ViewMetadata | repeated | The list of views in a schema. |
| functions | FunctionMetadata | repeated | The list of functions in a schema. |
| procedures | ProcedureMetadata | repeated | The list of procedures in a schema. |
| streams | StreamMetadata | repeated | The list of streams in a schema, currently only used for Snowflake. |
| tasks | TaskMetadata | repeated | The list of tasks in a schema, currently only used for Snowflake. |
| materialized_views | MaterializedViewMetadata | repeated | The list of materialized views in a schema. |
| sequences | SequenceMetadata | repeated | The list of sequences in a schema. |
| packages | PackageMetadata | repeated | The list of packages in a schema. |
| owner | string | ||
| comment | string | ||
| events | EventMetadata | repeated | |
| enum_types | EnumTypeMetadata | repeated | |
| skip_dump | bool |
SequenceMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of a sequence. | |
| data_type | string | The data type of a sequence. | |
| start | string | The start value of a sequence. | |
| min_value | string | The minimum value of a sequence. | |
| max_value | string | The maximum value of a sequence. | |
| increment | string | The increment value of a sequence. | |
| cycle | bool | Whether the sequence cycles. | |
| cache_size | string | Cache size of a sequence. | |
| last_value | string | The last value of a sequence. | |
| owner_table | string | The table that owns the sequence. | |
| owner_column | string | The column that owns the sequence. | |
| comment | string | ||
| skip_dump | bool |
SpatialIndexConfig
SpatialIndexConfig is the configuration for spatial indexes across different database engines.
| Field | Type | Label | Description |
|---|---|---|---|
| method | string | Index method/type (database-specific) Examples: "SPATIAL" (MySQL/SQL Server), "GIST"/"SPGIST" (PostgreSQL), "MDSYS.SPATIAL_INDEX_V2" (Oracle) | |
| tessellation | TessellationConfig | Tessellation configuration (primarily SQL Server) | |
| storage | StorageConfig | Storage and performance parameters | |
| dimensional | DimensionalConfig | Dimensional and constraint parameters | |
| engine_specific | SpatialIndexConfig.EngineSpecificEntry | repeated | Database-specific parameters (stored as key-value pairs for extensibility) |
SpatialIndexConfig.EngineSpecificEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
StorageConfig
StorageConfig defines storage and performance parameters for spatial indexes.
| Field | Type | Label | Description |
|---|---|---|---|
| fillfactor | int32 | PostgreSQL parameters |
10-100 | | buffering | string | | auto, on, off | | tablespace | string | | Oracle parameters | | work_tablespace | string | | | | sdo_level | int32 | | | | commit_interval | int32 | | | | pad_index | bool | | SQL Server parameters | | sort_in_tempdb | string | | ON, OFF | | drop_existing | bool | | | | online | bool | | | | allow_row_locks | bool | | | | allow_page_locks | bool | | | | maxdop | int32 | | | | data_compression | string | | NONE, ROW, PAGE |
StreamMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the stream. | |
| table_name | string | The table_name is the name of the table/view that the stream is created on. | |
| owner | string | The owner of the stream. | |
| comment | string | The comment of the stream. | |
| type | StreamMetadata.Type | The type of the stream. | |
| stale | bool | Indicates whether the stream was last read before the stale_after time. | |
| mode | StreamMetadata.Mode | The mode of the stream. | |
| definition | string | The definition of the stream. |
TableCatalog
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the table. | |
| columns | ColumnCatalog | repeated | The column_configs is the ordered list of configs for columns in a table. |
| object_schema | ObjectSchema | optional | |
| classification | string |
TableMetadata
TableMetadata is the metadata for tables.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the table. | |
| columns | ColumnMetadata | repeated | The columns is the ordered list of columns in a table. |
| indexes | IndexMetadata | repeated | The indexes is the list of indexes in a table. |
| engine | string | The engine is the engine of a table. | |
| collation | string | The collation is the collation of a table. | |
| charset | string | The character set of the table. | |
| row_count | int64 | The row_count is the estimated number of rows of a table. | |
| data_size | int64 | The data_size is the estimated data size of a table. | |
| index_size | int64 | The index_size is the estimated index size of a table. | |
| data_free | int64 | The data_free is the estimated free data size of a table. | |
| create_options | string | The create_options is the create option of a table. | |
| comment | string | The comment is the comment of a table. | |
| foreign_keys | ForeignKeyMetadata | repeated | The foreign_keys is the list of foreign keys in a table. |
| partitions | TablePartitionMetadata | repeated | The partitions is the list of partitions in a table. |
| check_constraints | CheckConstraintMetadata | repeated | The check_constraints is the list of check constraints in a table. |
| owner | string | ||
| sorting_keys | string | repeated | The sorting_keys is a tuple of column names or arbitrary expressions. ClickHouse specific field. Reference: https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#order_by |
| triggers | TriggerMetadata | repeated | |
| skip_dump | bool | ||
| rules | RuleMetadata | repeated | The rules is the list of rules in a table (PostgreSQL specific). |
| sharding_info | string | https://docs.pingcap.com/tidb/stable/information-schema-tables/ | |
| primary_key_type | string | https://docs.pingcap.com/tidb/stable/clustered-indexes/#clustered-indexes CLUSTERED or NONCLUSTERED. | |
| exclude_constraints | ExcludeConstraintMetadata | repeated | The exclude_constraints is the list of EXCLUDE constraints in a table (PostgreSQL specific). |
TablePartitionMetadata
TablePartitionMetadata is the metadata for table partitions.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the table partition. | |
| type | TablePartitionMetadata.Type | The type of a table partition. | |
| expression | string | The expression is the expression of a table partition. For PostgreSQL, the expression is the text of {FOR VALUES partition_bound_spec}, see https://www.postgresql.org/docs/current/sql-createtable.html. For MySQL, the expression is the expr or column_list of the following syntax. PARTITION BY { [LINEAR] HASH(expr) | |
| value | string | The value is the value of a table partition. For MySQL, the value is for RANGE and LIST partition types, - For a RANGE partition, it contains the value set in the partition's VALUES LESS THAN clause, which can be either an integer or MAXVALUE. - For a LIST partition, this column contains the values defined in the partition's VALUES IN clause, which is a list of comma-separated integer values. - For others, it's an empty string. | |
| use_default | string | The use_default is whether the users use the default partition, it stores the different value for different database engines. For MySQL, it's [INT] type, 0 means not use default partition, otherwise, it's equals to number in syntax [SUB]PARTITION {number}. | |
| subpartitions | TablePartitionMetadata | repeated | The subpartitions is the list of subpartitions in a table partition. |
| indexes | IndexMetadata | repeated | |
| check_constraints | CheckConstraintMetadata | repeated | |
| exclude_constraints | ExcludeConstraintMetadata | repeated |
TaskMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the task. | |
| id | string | The Snowflake-generated ID of the task. Example: 01ad32a0-1bb6-5e93-0000-000000000001. | |
| owner | string | The owner of the task. | |
| comment | string | The comment of the task. | |
| warehouse | string | The warehouse of the task. | |
| schedule | string | The schedule interval of the task. | |
| predecessors | string | repeated | The predecessor tasks of the task. |
| state | TaskMetadata.State | The state of the task. | |
| condition | string | The condition of the task. | |
| definition | string | The definition of the task. |
TessellationConfig
TessellationConfig defines tessellation parameters for spatial indexes.
| Field | Type | Label | Description |
|---|---|---|---|
| scheme | string | Tessellation scheme Examples: GEOMETRY_GRID, GEOGRAPHY_GRID, GEOMETRY_AUTO_GRID, GEOGRAPHY_AUTO_GRID | |
| bounding_box | BoundingBox | Bounding box for GEOMETRY indexes (SQL Server) | |
| grid_levels | GridLevel | repeated | Grid level configuration (SQL Server) |
| cells_per_object | int32 | Cells per object (SQL Server) |
TriggerMetadata
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the trigger. | |
| event | string | The event that triggers this action, such as INSERT, UPDATE, DELETE, or TRUNCATE. | |
| timing | string | The timing of when the trigger fires, such as BEFORE or AFTER. | |
| body | string | The body of the trigger. | |
| sql_mode | string | ||
| character_set_client | string | ||
| collation_connection | string | ||
| comment | string | ||
| skip_dump | bool |
ViewMetadata
ViewMetadata is the metadata for views.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The name of the view. | |
| definition | string | The definition is the definition of a view. | |
| comment | string | The comment is the comment of a view. | |
| dependency_columns | DependencyColumn | repeated | The list of dependency columns of a view. |
| columns | ColumnMetadata | repeated | The ordered list of columns in the view. |
| triggers | TriggerMetadata | repeated | The list of triggers in the view. |
| skip_dump | bool | ||
| rules | RuleMetadata | repeated | The rules is the list of rules in a view (PostgreSQL specific). |
ColumnMetadata.IdentityGeneration
| Name | Number | Description |
|---|---|---|
| IDENTITY_GENERATION_UNSPECIFIED | 0 | |
| ALWAYS | 1 | |
| BY_DEFAULT | 2 |
GenerationMetadata.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| TYPE_VIRTUAL | 1 | |
| TYPE_STORED | 2 |
ObjectSchema.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| STRING | 1 | |
| NUMBER | 2 | |
| BOOLEAN | 3 | |
| OBJECT | 4 | |
| ARRAY | 5 |
StreamMetadata.Mode
| Name | Number | Description |
|---|---|---|
| MODE_UNSPECIFIED | 0 | |
| MODE_DEFAULT | 1 | |
| MODE_APPEND_ONLY | 2 | |
| MODE_INSERT_ONLY | 3 |
StreamMetadata.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| TYPE_DELTA | 1 |
SyncStatus
SyncStatus is the status of the database sync operation.
| Name | Number | Description |
|---|---|---|
| SYNC_STATUS_UNSPECIFIED | 0 | |
| SYNC_STATUS_OK | 1 | |
| SYNC_STATUS_FAILED | 2 |
TablePartitionMetadata.Type
The type is the type of a table partition. Some database engines may not support all types. Only available for the following database engines now: MySQL: RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, LINEAR HASH, KEY, LINEAR_KEY (https://dev.mysql.com/doc/refman/8.0/en/partitioning-types.html) TiDB: RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, KEY PostgreSQL: RANGE, LIST, HASH (https://www.postgresql.org/docs/current/ddl-partitioning.html)
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| RANGE | 1 | |
| RANGE_COLUMNS | 2 | |
| LIST | 3 | |
| LIST_COLUMNS | 4 | |
| HASH | 5 | |
| LINEAR_HASH | 6 | |
| KEY | 7 | |
| LINEAR_KEY | 8 |
TaskMetadata.State
| Name | Number | Description |
|---|---|---|
| STATE_UNSPECIFIED | 0 | |
| STATE_STARTED | 1 | |
| STATE_SUSPENDED | 2 |
store/export_archive.proto
ExportArchivePayload
| Field | Type | Label | Description |
|---|---|---|---|
| file_format | ExportFormat | The exported file format. e.g. JSON, CSV, SQL |
store/group.proto
GroupMember
| Field | Type | Label | Description |
|---|---|---|---|
| member | string | Member is the principal who belongs to this group. |
Format: users/{email}. | | role | GroupMember.Role | | |
GroupPayload
| Field | Type | Label | Description |
|---|---|---|---|
| members | GroupMember | repeated | |
| source | string | The source indicates where the group comes from. For now we support Entra ID SCIM sync, so the source could be Entra ID. |
GroupMember.Role
| Name | Number | Description |
|---|---|---|
| ROLE_UNSPECIFIED | 0 | |
| OWNER | 1 | |
| MEMBER | 2 |
store/idp.proto
FieldMapping
FieldMapping saves the field names from user info API of identity provider. As we save all raw json string of user info response data into principal.idp_user_info, we can extract the relevant data based with FieldMapping.
| Field | Type | Label | Description |
|---|---|---|---|
| identifier | string | Identifier is the field name of the unique identifier in 3rd-party idp user info. Required. | |
| display_name | string | DisplayName is the field name of display name in 3rd-party idp user info. Optional. | |
| phone | string | Phone is the field name of primary phone in 3rd-party idp user info. Optional. | |
| groups | string | Groups is the field name of groups in 3rd-party idp user info. Optional. Mainly used for OIDC: https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/ |
IdentityProviderConfig
| Field | Type | Label | Description |
|---|---|---|---|
| oauth2_config | OAuth2IdentityProviderConfig | ||
| oidc_config | OIDCIdentityProviderConfig | ||
| ldap_config | LDAPIdentityProviderConfig |
IdentityProviderUserInfo
| Field | Type | Label | Description |
|---|---|---|---|
| identifier | string | Identifier is the value of the unique identifier in 3rd-party idp user info. | |
| display_name | string | DisplayName is the value of display name in 3rd-party idp user info. | |
| phone | string | Phone is the value of primary phone in 3rd-party idp user info. | |
| groups | string | repeated | Groups is the value of groups in 3rd-party idp user info. Mainly used for OIDC: https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/ |
| has_groups | bool |
LDAPIdentityProviderConfig
LDAPIdentityProviderConfig is the structure for LDAP identity provider config.
| Field | Type | Label | Description |
|---|---|---|---|
| host | string | Host is the hostname or IP address of the LDAP server, e.g. "ldap.example.com". | |
| port | int32 | Port is the port number of the LDAP server, e.g. 389. When not set, the default port of the corresponding security protocol will be used, i.e. 389 for StartTLS and 636 for LDAPS. | |
| skip_tls_verify | bool | SkipTLSVerify controls whether to skip TLS certificate verification. | |
| bind_dn | string | BindDN is the DN of the user to bind as a service account to perform search requests. | |
| bind_password | string | BindPassword is the password of the user to bind as a service account. | |
| base_dn | string | BaseDN is the base DN to search for users, e.g. "ou=users,dc=example,dc=com". | |
| user_filter | string | UserFilter is the filter to search for users, e.g. "(uid=%s)". | |
| security_protocol | LDAPIdentityProviderConfig.SecurityProtocol | SecurityProtocol is the security protocol to be used for establishing connections with the LDAP server. | |
| field_mapping | FieldMapping | FieldMapping is the mapping of the user attributes returned by the LDAP server. |
OAuth2IdentityProviderConfig
OAuth2IdentityProviderConfig is the structure for OAuth2 identity provider config.
| Field | Type | Label | Description |
|---|---|---|---|
| auth_url | string | ||
| token_url | string | ||
| user_info_url | string | ||
| client_id | string | ||
| client_secret | string | ||
| scopes | string | repeated | |
| field_mapping | FieldMapping | ||
| skip_tls_verify | bool | ||
| auth_style | OAuth2AuthStyle |
OIDCIdentityProviderConfig
OIDCIdentityProviderConfig is the structure for OIDC identity provider config.
| Field | Type | Label | Description |
|---|---|---|---|
| issuer | string | ||
| client_id | string | ||
| client_secret | string | ||
| scopes | string | repeated | |
| field_mapping | FieldMapping | ||
| skip_tls_verify | bool | ||
| auth_style | OAuth2AuthStyle |
IdentityProviderType
| Name | Number | Description |
|---|---|---|
| IDENTITY_PROVIDER_TYPE_UNSPECIFIED | 0 | |
| OAUTH2 | 1 | |
| OIDC | 2 | |
| LDAP | 3 |
LDAPIdentityProviderConfig.SecurityProtocol
| Name | Number | Description |
|---|---|---|
| SECURITY_PROTOCOL_UNSPECIFIED | 0 | |
| START_TLS | 1 | StartTLS is the security protocol that starts with an unencrypted connection and then upgrades to TLS. |
| LDAPS | 2 | LDAPS is the security protocol that uses TLS from the beginning. |
OAuth2AuthStyle
| Name | Number | Description |
|---|---|---|
| OAUTH2_AUTH_STYLE_UNSPECIFIED | 0 | |
| IN_PARAMS | 1 | IN_PARAMS sends the "client_id" and "client_secret" in the POST body as application/x-www-form-urlencoded parameters. |
| IN_HEADER | 2 | IN_HEADER sends the client_id and client_secret using HTTP Basic Authorization. This is an optional style described in the OAuth2 RFC 6749 section 2.3.1. |
store/instance.proto
DataSource
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| type | DataSourceType | ||
| username | string | ||
| password | string | ||
| obfuscated_password | string | ||
| use_ssl | bool | Use SSL to connect to the data source. By default, we use the system's SSL configuration. | |
| ssl_ca | string | ||
| obfuscated_ssl_ca | string | ||
| ssl_cert | string | ||
| obfuscated_ssl_cert | string | ||
| ssl_key | string | ||
| obfuscated_ssl_key | string | ||
| ssl_ca_path | string | ||
| obfuscated_ssl_ca_path | string | ||
| ssl_cert_path | string | ||
| obfuscated_ssl_cert_path | string | ||
| ssl_key_path | string | ||
| obfuscated_ssl_key_path | string | ||
| verify_tls_certificate | bool | verify_tls_certificate enables TLS certificate verification for SSL connections. Default is false (no verification) for backward compatibility. Set to true for secure connections (recommended for production). Only set to false for development or when certificates cannot be properly validated (e.g., self-signed certs, VPN environments). | |
| host | string | ||
| port | string | ||
| database | string | ||
| srv | bool | srv, authentication_database, and replica_set are used for MongoDB. srv is a boolean flag that indicates whether the host is a DNS SRV record. | |
| authentication_database | string | authentication_database is the database name to authenticate against, which stores the user credentials. | |
| replica_set | string | replica_set is used for MongoDB replica set. | |
| sid | string | sid and service_name are used for Oracle. | |
| service_name | string | ||
| ssh_host | string | SSH related The hostname of the SSH server agent. | |
| ssh_port | string | The port of the SSH server agent. It's 22 typically. | |
| ssh_user | string | The user to login the server. | |
| ssh_password | string | The password to login the server. If it's empty string, no password is required. | |
| obfuscated_ssh_password | string | ||
| ssh_private_key | string | The private key to login the server. If it's empty string, we will use the system default private key from os.Getenv("SSH_AUTH_SOCK"). | |
| obfuscated_ssh_private_key | string | ||
| authentication_private_key | string | PKCS#8 private key in PEM format. If it's empty string, no private key is required. Used for authentication when connecting to the data source. | |
| obfuscated_authentication_private_key | string | ||
| authentication_private_key_passphrase | string | Passphrase for the encrypted PKCS#8 private key. Only used when the private key is encrypted. | |
| obfuscated_authentication_private_key_passphrase | string | ||
| external_secret | DataSourceExternalSecret | ||
| authentication_type | DataSource.AuthenticationType | ||
| azure_credential | DataSource.AzureCredential | ||
| aws_credential | DataSource.AWSCredential | ||
| gcp_credential | DataSource.GCPCredential | ||
| sasl_config | SASLConfig | ||
| additional_addresses | DataSource.Address | repeated | additional_addresses is used for MongoDB replica set. |
| direct_connection | bool | direct_connection is used for MongoDB to dispatch all the operations to the node specified in the connection string. | |
| region | string | Region is the location of the database, used for AWS RDS. For example, us-east-1. | |
| warehouse_id | string | warehouse_id is used by Databricks. | |
| master_name | string | master_name is the master name used by connecting redis-master via redis sentinel. | |
| master_username | string | master_username and master_obfuscated_password are master credentials used by redis sentinel mode. | |
| master_password | string | ||
| obfuscated_master_password | string | ||
| redis_type | DataSource.RedisType | ||
| cluster | string | Cluster is the cluster name for the data source. Used by CockroachDB. | |
| extra_connection_parameters | DataSource.ExtraConnectionParametersEntry | repeated | Extra connection parameters for the database connection. For PostgreSQL HA, this can be used to set target_session_attrs=read-write |
DataSource.AWSCredential
| Field | Type | Label | Description |
|---|---|---|---|
| access_key_id | string | ||
| obfuscated_access_key_id | string | ||
| secret_access_key | string | ||
| obfuscated_secret_access_key | string | ||
| session_token | string | ||
| obfuscated_session_token | string | ||
| role_arn | string | ARN of IAM role to assume for cross-account access. See: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html | |
| external_id | string | Optional external ID for additional security when assuming role. See: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html |
DataSource.Address
| Field | Type | Label | Description |
|---|---|---|---|
| host | string | ||
| port | string |
DataSource.AzureCredential
| Field | Type | Label | Description |
|---|---|---|---|
| tenant_id | string | ||
| client_id | string | ||
| client_secret | string | ||
| obfuscated_client_secret | string |
DataSource.ExtraConnectionParametersEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
DataSource.GCPCredential
| Field | Type | Label | Description |
|---|---|---|---|
| content | string | ||
| obfuscated_content | string |
DataSourceExternalSecret
| Field | Type | Label | Description |
|---|---|---|---|
| secret_type | DataSourceExternalSecret.SecretType | ||
| url | string | ||
| auth_type | DataSourceExternalSecret.AuthType | ||
| app_role | DataSourceExternalSecret.AppRoleAuthOption | ||
| token | string | ||
| engine_name | string | engine name is the name for secret engine. | |
| secret_name | string | the secret name in the engine to store the password. | |
| password_key_name | string | the key name for the password. | |
| skip_vault_tls_verification | bool | TLS configuration for connecting to Vault server. These fields are separate from the database TLS configuration in DataSource. skip_vault_tls_verification disables TLS certificate verification for Vault connections. Default is false (verification enabled) for security. Only set to true for development or when certificates cannot be properly validated. | |
| vault_ssl_ca | string | CA certificate for Vault server verification. | |
| obfuscated_vault_ssl_ca | string | ||
| vault_ssl_cert | string | Client certificate for mutual TLS authentication with Vault. | |
| obfuscated_vault_ssl_cert | string | ||
| vault_ssl_key | string | Client private key for mutual TLS authentication with Vault. | |
| obfuscated_vault_ssl_key | string |
DataSourceExternalSecret.AppRoleAuthOption
| Field | Type | Label | Description |
|---|---|---|---|
| role_id | string | ||
| secret_id | string | The secret ID for the role without TTL. | |
| type | DataSourceExternalSecret.AppRoleAuthOption.SecretType | ||
| mount_path | string | The path where the approle auth method is mounted. |
Instance
Instance is the proto for instances.
| Field | Type | Label | Description |
|---|---|---|---|
| title | string | ||
| engine | Engine | ||
| version | string | ||
| external_link | string | ||
| data_sources | DataSource | repeated | |
| sync_interval | google.protobuf.Duration | The interval between automatic instance synchronizations. | |
| sync_databases | string | repeated | Enable sync for the following databases. Default empty, means sync all schemas & databases. |
| mysql_lower_case_table_names | int32 | The lower_case_table_names config for MySQL instances. It is used to determine whether the table names and database names are case sensitive. | |
| last_sync_time | google.protobuf.Timestamp | ||
| roles | InstanceRole | repeated | |
| labels | Instance.LabelsEntry | repeated | Labels are key-value pairs that can be attached to the instance. For example, { "org_group": "infrastructure", "environment": "production" } |
Instance.LabelsEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
InstanceRole
InstanceRole is the API message for instance role.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | The role name. | |
| connection_limit | int32 | optional | The connection count limit for this role. |
| valid_until | string | optional | The expiration for the role's password. |
| attribute | string | optional | The role attribute. For PostgreSQL, it contains super_user, no_inherit, create_role, create_db, can_login, replication and bypass_rls. Docs: https://www.postgresql.org/docs/current/role-attributes.html For MySQL, it is the global privileges as GRANT statements, which means it only contains "GRANT ... ON . TO ...". Docs: https://dev.mysql.com/doc/refman/8.0/en/grant.html |
KerberosConfig
| Field | Type | Label | Description |
|---|---|---|---|
| primary | string | ||
| instance | string | ||
| realm | string | ||
| keytab | bytes | ||
| kdc_host | string | ||
| kdc_port | string | ||
| kdc_transport_protocol | string |
SASLConfig
| Field | Type | Label | Description |
|---|---|---|---|
| krb_config | KerberosConfig |
DataSource.AuthenticationType
| Name | Number | Description |
|---|---|---|
| AUTHENTICATION_UNSPECIFIED | 0 | |
| PASSWORD | 1 | |
| GOOGLE_CLOUD_SQL_IAM | 2 | |
| AWS_RDS_IAM | 3 | |
| AZURE_IAM | 4 |
DataSource.RedisType
| Name | Number | Description |
|---|---|---|
| REDIS_TYPE_UNSPECIFIED | 0 | |
| STANDALONE | 1 | |
| SENTINEL | 2 | |
| CLUSTER | 3 |
DataSourceExternalSecret.AppRoleAuthOption.SecretType
| Name | Number | Description |
|---|---|---|
| SECRET_TYPE_UNSPECIFIED | 0 | |
| PLAIN | 1 | |
| ENVIRONMENT | 2 |
DataSourceExternalSecret.AuthType
| Name | Number | Description |
|---|---|---|
| AUTH_TYPE_UNSPECIFIED | 0 | |
| TOKEN | 1 | ref: https://developer.hashicorp.com/vault/docs/auth/token |
| VAULT_APP_ROLE | 2 | ref: https://developer.hashicorp.com/vault/docs/auth/approle |
DataSourceExternalSecret.SecretType
| Name | Number | Description |
|---|---|---|
| SECRET_TYPE_UNSPECIFIED | 0 | |
| VAULT_KV_V2 | 1 | ref: https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2 |
| AWS_SECRETS_MANAGER | 2 | ref: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html |
| GCP_SECRET_MANAGER | 3 | ref: https://cloud.google.com/secret-manager/docs |
| AZURE_KEY_VAULT | 4 | ref: https://learn.microsoft.com/en-us/azure/key-vault/secrets/about-secrets |
DataSourceType
| Name | Number | Description |
|---|---|---|
| DATA_SOURCE_UNSPECIFIED | 0 | |
| ADMIN | 1 | |
| READ_ONLY | 2 |
store/issue.proto
Issue
Issue is the metadata for issues that track database operations and access requests.
| Field | Type | Label | Description |
|---|---|---|---|
| approval | IssuePayloadApproval | Approval information for the issue workflow. | |
| role_grant | RoleGrant | Role grant details if this is a role grant issue. | |
| labels | string | repeated | Labels attached to categorize and filter the issue. |
| risk_level | RiskLevel | Risk level for the issue, calculated from statement types. | |
| access_grant_id | string | The access grant id for ACCESS_GRANT type issue. |
RoleGrant
RoleGrant contains details for requesting a project role.
| Field | Type | Label | Description |
|---|---|---|---|
| role | string | The role being requested for the user. Format: roles/EXPORTER. | |
| user | string | The user who will receive the role. Format: users/{email}. | |
| condition | google.type.Expr | Optional conditional expression that limits when the grant applies. | |
| expiration | google.protobuf.Duration | Duration after which the grant automatically expires. |
Issue.Status
Status represents the current state of the issue.
| Name | Number | Description |
|---|---|---|
| ISSUE_STATUS_UNSPECIFIED | 0 | |
| OPEN | 1 | Issue is open and pending action. |
| DONE | 2 | Issue has been completed successfully. |
| CANCELED | 3 | Issue was canceled and will not be completed. |
Issue.Type
Type represents the category of issue.
| Name | Number | Description |
|---|---|---|
| ISSUE_TYPE_UNSPECIFIED | 0 | |
| DATABASE_CHANGE | 1 | Issue for database schema or data changes. |
| ROLE_GRANT | 2 | Role grant request. |
| DATABASE_EXPORT | 3 | Issue for exporting data from databases. |
| ACCESS_GRANT | 4 | Temporary access grant request. |
store/issue_comment.proto
IssueCommentPayload
| Field | Type | Label | Description |
|---|---|---|---|
| comment | string | ||
| approval | IssueCommentPayload.Approval | ||
| issue_update | IssueCommentPayload.IssueUpdate | ||
| plan_spec_update | IssueCommentPayload.PlanSpecUpdate | ||
| ai_review | IssueCommentPayload.AIReview | [Argus P1-3] Comment created by the AI Reviewer module after a DBA review of the issue's SQL change. Carries the structured report so the UI can re-render the original report without re-running the LLM. The comment field is also populated with a markdown summary for systems that only consume free-text. |
IssueCommentPayload.AIReview
[Argus P1-3] Structured DBA-review payload. risk_level mirrors the storepb.RiskLevel enum (OQ-AIR-4 = B); raw_response keeps the unparsed LLM reply for admin debugging when status is PARSE_FAILED. status discriminates the "happy path" report from failure modes that left an audit trail without a usable report.
| Field | Type | Label | Description |
|---|---|---|---|
| status | IssueCommentPayload.AIReview.Status | ||
| risk_level | RiskLevel | ||
| lock_scope | string | TABLE | |
| estimated_affected_rows | int64 | ||
| replication_risk | string | HIGH | |
| potential_issues | string | repeated | |
| suggestions | string | repeated | |
| blocking_concerns | string | repeated | |
| raw_response | string | Raw LLM response. Populated even on success for admin / auditor debugging. Trimmed to 8 KiB to bound payload size. | |
| provider | string | LLM provider that produced this report (OPEN_AI / CLAUDE / GEMINI). Stamped server-side so users see which model spoke. |
IssueCommentPayload.Approval
| Field | Type | Label | Description |
|---|---|---|---|
| status | IssuePayloadApproval.Approver.Status |
IssueCommentPayload.IssueUpdate
| Field | Type | Label | Description |
|---|---|---|---|
| from_title | string | optional | |
| to_title | string | optional | |
| from_description | string | optional | |
| to_description | string | optional | |
| from_status | Issue.Status | optional | |
| to_status | Issue.Status | optional | |
| from_labels | string | repeated | |
| to_labels | string | repeated |
IssueCommentPayload.PlanSpecUpdate
Plan spec update event (tracks sheet changes to plan specs)
| Field | Type | Label | Description |
|---|---|---|---|
| spec | string | The spec that was updated Format: projects/{project}/plans/{plan}/specs/ | |
| from_sheet_sha256 | string | optional | The SHA256 hash of the previous sheet content (hex-encoded). |
| to_sheet_sha256 | string | optional | The SHA256 hash of the new sheet content (hex-encoded). |
IssueCommentPayload.AIReview.Status
| Name | Number | Description |
|---|---|---|
| STATUS_UNSPECIFIED | 0 | |
| OK | 1 | |
| PARSE_FAILED | 2 | LLM returned content but the parser couldn't extract a valid JSON report. UI shows raw_response instead. |
| LLM_FAILED | 3 | LLM call itself failed (rate limit / timeout / API down). raw_response carries the error message. |
store/oauth2.proto
OAuth2AuthorizationCodeConfig
| Field | Type | Label | Description |
|---|---|---|---|
| redirect_uri | string | ||
| code_challenge | string | ||
| code_challenge_method | string |
OAuth2ClientConfig
| Field | Type | Label | Description |
|---|---|---|---|
| client_name | string | ||
| redirect_uris | string | repeated | |
| grant_types | string | repeated | |
| token_endpoint_auth_method | string |
store/plan.proto
PlanConfig
| Field | Type | Label | Description |
|---|---|---|---|
| specs | PlanConfig.Spec | repeated | |
| has_rollout | bool | Whether the plan has started the rollout. |
PlanConfig.ChangeDatabaseConfig
| Field | Type | Label | Description |
|---|---|---|---|
| targets | string | repeated | The list of targets. Multi-database format: [instances/{instance-id}/databases/{database-name}]. Single database group format: [projects/{project}/databaseGroups/{databaseGroup}]. |
| sheet_sha256 | string | The SHA256 hash of the sheet content (hex-encoded). | |
| release | string | The resource name of the release. Format: projects/{project}/releases/ | |
| enable_prior_backup | bool | If set, a backup of the modified data will be created automatically before any changes are applied. | |
| rollback_sheet_sha256 | string | [Argus P0-5 G1] The SHA256 hash of the rollback SQL sheet content (hex-encoded). Empty when the change does not require rollback (e.g. SELECT) or has not yet been provided. PRE_FLIGHT check enforces presence for DDL / DML changes. |
PlanConfig.CreateDatabaseConfig
| Field | Type | Label | Description |
|---|---|---|---|
| target | string | The resource name of the instance on which the database is created. Format: instances/ | |
| database | string | The name of the database to create. | |
| table | string | table is the name of the table, if it is not empty, Argus should create a table after creating the database. For example, in MongoDB, it only creates the database when we first store data in that database. | |
| character_set | string | character_set is the character set of the database. | |
| collation | string | collation is the collation of the database. | |
| cluster | string | cluster is the cluster of the database. This is only applicable to ClickHouse for "ON CLUSTER <<cluster>>". | |
| owner | string | owner is the owner of the database. This is only applicable to Postgres for "WITH OWNER <<owner>>". | |
| environment | string | The environment resource. Format: environments/prod where prod is the environment resource ID. |
PlanConfig.ExportDataConfig
| Field | Type | Label | Description |
|---|---|---|---|
| targets | string | repeated | The list of targets. Multi-database format: [instances/{instance-id}/databases/{database-name}]. Single database group format: [projects/{project}/databaseGroups/{databaseGroup}]. |
| sheet_sha256 | string | The SHA256 hash of the sheet content (hex-encoded). | |
| format | ExportFormat | The format of the exported file. | |
| password | string | optional | The zip password provided by users. Leave it empty if there is no need to encrypt the zip file. |
PlanConfig.Spec
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | A UUID4 string that uniquely identifies the Spec. | |
| create_database_config | PlanConfig.CreateDatabaseConfig | ||
| change_database_config | PlanConfig.ChangeDatabaseConfig | ||
| export_data_config | PlanConfig.ExportDataConfig |
store/plan_check_run.proto
ChangedResourceDatabase
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| schemas | ChangedResourceSchema | repeated |
ChangedResourceSchema
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| tables | ChangedResourceTable | repeated |
ChangedResourceTable
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| table_rows | int64 | The estimated row count of the table. |
ChangedResources
| Field | Type | Label | Description |
|---|---|---|---|
| databases | ChangedResourceDatabase | repeated |
PlanCheckRunResult
| Field | Type | Label | Description |
|---|---|---|---|
| results | PlanCheckRunResult.Result | repeated | |
| error | string |
PlanCheckRunResult.Result
| Field | Type | Label | Description |
|---|---|---|---|
| status | Advice.Status | ||
| title | string | ||
| content | string | ||
| code | int32 | ||
| target | string | Target identification for consolidated results Format: instances/{instance}/databases/ | |
| type | PlanCheckType | ||
| sql_summary_report | PlanCheckRunResult.Result.SqlSummaryReport | ||
| sql_review_report | PlanCheckRunResult.Result.SqlReviewReport |
PlanCheckRunResult.Result.SqlReviewReport
| Field | Type | Label | Description |
|---|---|---|---|
| start_position | Position | Position of the SQL statement. | |
| end_position | Position |
PlanCheckRunResult.Result.SqlSummaryReport
| Field | Type | Label | Description |
|---|---|---|---|
| statement_types | StatementType | repeated | statement_types are the types of statements found in the SQL. |
| affected_rows | int64 | ||
| changed_resources | ChangedResources |
PlanCheckType
| Name | Number | Description |
|---|---|---|
| PLAN_CHECK_TYPE_UNSPECIFIED | 0 | |
| PLAN_CHECK_TYPE_STATEMENT_ADVISE | 1 | |
| PLAN_CHECK_TYPE_STATEMENT_SUMMARY_REPORT | 2 | |
| PLAN_CHECK_TYPE_GHOST_SYNC | 3 | |
| PLAN_CHECK_TYPE_PRE_FLIGHT | 4 | [Argus P0-5] Pre-flight checklist: rollback SQL presence (G1 / M1), maintenance window admission (G2 / M2, planned), replication-lag estimate (G3 / M3, planned). Result types share this enum value; sub-check kind is conveyed by the Result.title prefix ("Rollback SQL:" / "Maintenance window:" / "Replication lag:"). See docs/modules/preflight-checklist.md. |
store/policy.proto
Binding
| Field | Type | Label | Description |
|---|---|---|---|
| role | string | The role that is assigned to the members. Format: roles/ | |
| members | string | repeated | Specifies the principals requesting access for a Argus resource. For users, the member should be: users/{email} For groups, the member should be: groups/ |
| condition | google.type.Expr | The condition that is associated with this binding. If the condition evaluates to true, then this binding applies to the current request. If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. |
IamPolicy
| Field | Type | Label | Description |
|---|---|---|---|
| bindings | Binding | repeated | Collection of binding. A binding binds one or more members or groups to a single role. |
MaskingExemptionPolicy
MaskingExemptionPolicy is the allowlist of users who can access sensitive data.
| Field | Type | Label | Description |
|---|---|---|---|
| exemptions | MaskingExemptionPolicy.Exemption | repeated |
MaskingExemptionPolicy.Exemption
| Field | Type | Label | Description |
|---|---|---|---|
| members | string | repeated | Members who bind to this exemption. |
Format: users/{email} or groups/{group email} | | condition | google.type.Expr | | The condition that is associated with this exception policy instance. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec If the condition is empty, means the user can access all databases without expiration.
Support variables: resource.instance_id: the instance resource id. Only support "==" operation. resource.database_name: the database name. Only support "==" operation. resource.schema_name: the schema name. Only support "==" operation. resource.table_name: the table name. Only support "==" operation. resource.column_name: the column name. Only support "==" operation. request.time: the expiration. Only support "<" operation in request.time < timestamp("{ISO datetime string format}") All variables should join with "&&" condition.
For example: resource.instance_id == "local" && resource.database_name == "employee" && request.time < timestamp("2025-04-30T11:10:39.000Z") resource.instance_id == "local" && resource.database_name == "employee" |
MaskingRulePolicy
| Field | Type | Label | Description |
|---|---|---|---|
| rules | MaskingRulePolicy.MaskingRule | repeated |
MaskingRulePolicy.MaskingRule
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | A unique identifier for a node in UUID format. | |
| condition | google.type.Expr | ||
| semantic_type | string |
Policy
QueryDataPolicy
QueryDataPolicy is the policy configuration for querying data in the SQL Editor.
| Field | Type | Label | Description |
|---|---|---|---|
| disable_export | bool | workspace-level policy Disable exporting data in the SQL editor. | |
| maximum_result_rows | int32 | Support both project-level and workspace-level. The maximum number of rows to return in the SQL editor. The default value <= 0, means no limit. | |
| disable_copy_data | bool | workspace-level policy Disable copying data. | |
| allow_admin_data_source | bool | workspace-level policy Allow using the admin data source to query in the SQL editor. | |
| disallow_ddl | bool | ================ Deprecate following fields. Disallow running DDL statements in the SQL editor. | |
| disallow_dml | bool | Disallow running DML statements in the SQL editor. |
RolloutPolicy
| Field | Type | Label | Description |
|---|---|---|---|
| automatic | bool | ||
| roles | string | repeated |
TagPolicy
| Field | Type | Label | Description |
|---|---|---|---|
| tags | TagPolicy.TagsEntry | repeated | tags is the key-value map for resources. For example, the environment resource can have the SQL review config tag, such as "bb.tag.review_config": "reviewConfigs/{review config resource id}". |
TagPolicy.TagsEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
Policy.Resource
| Name | Number | Description |
|---|---|---|
| RESOURCE_UNSPECIFIED | 0 | |
| WORKSPACE | 1 | |
| ENVIRONMENT | 2 | |
| PROJECT | 3 |
Policy.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| ROLLOUT | 1 | |
| MASKING_EXEMPTION | 2 | |
| QUERY_DATA | 3 | |
| MASKING_RULE | 4 | |
| IAM | 5 | |
| TAG | 6 |
store/project.proto
Label
Label represents a categorization tag that can be applied to issues.
| Field | Type | Label | Description |
|---|---|---|---|
| value | string | The display text of the label. | |
| color | string | The color for the label in hex format (e.g., "#FF0000"). | |
| group | string | Optional group name for organizing related labels. |
Project
Project contains settings and configuration for a Argus project.
| Field | Type | Label | Description |
|---|---|---|---|
| issue_labels | Label | repeated | Available labels that can be applied to issues in this project. |
| force_issue_labels | bool | Force issue labels to be used when creating an issue. | |
| enforce_issue_title | bool | Enforce issue title created by user instead of generated by Argus. | |
| postgres_database_tenant_mode | bool | Whether to enable the database tenant mode for PostgreSQL. If enabled, the issue will be created with the prepend "set role <db_owner>" statement. | |
| allow_self_approval | bool | Whether to allow the issue creator to self-approve the issue. | |
| execution_retry_policy | Project.ExecutionRetryPolicy | Configuration for automatic retry on task execution failures. | |
| ci_sampling_size | int32 | The maximum number of databases to sample during CI data validation. If not specified, sampling is disabled, resulting in a full validation. | |
| parallel_tasks_per_rollout | int32 | The maximum number of parallel tasks to run during the rollout. | |
| labels | Project.LabelsEntry | repeated | Labels are key-value pairs that can be attached to the project. For example, { "environment": "production", "team": "backend" } |
| enforce_sql_review | bool | Whether to enforce SQL review checks to pass before issue creation. If enabled, issues cannot be created when SQL review finds errors. | |
| require_issue_approval | bool | Whether issue approval is required before proceeding with rollout. | |
| require_plan_check_no_error | bool | Whether to block rollout when plan check finds errors. | |
| allow_request_role | bool | ||
| data_classification_config_id | string | The data classification configuration ID for the project. | |
| allow_just_in_time_access | bool | Once enabled, users can request and use the just-in-time access in the SQL Editor. |
Project.ExecutionRetryPolicy
ExecutionRetryPolicy defines retry behavior for failed task executions.
| Field | Type | Label | Description |
|---|---|---|---|
| maximum_retries | int32 | The maximum number of retry attempts for lock timeout errors. |
Project.LabelsEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
store/project_webhook.proto
Activity
Activity types for webhook notifications.
ProjectWebhook
| Field | Type | Label | Description |
|---|---|---|---|
| type | WebhookType | Webhook type. | |
| title | string | Webhook title. | |
| url | string | Webhook URL. | |
| activities | Activity.Type | repeated | List of activities that trigger this webhook. |
| direct_message | bool | If direct_message is set, the notification is sent directly to the persons and url will be ignored. IM integration setting should be set for this function to work. |
Activity.Type
Activity type enumeration.
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | Unspecified type. |
| ISSUE_CREATED | 10 | ISSUE_CREATED represents a new issue creation event. |
| ISSUE_APPROVAL_REQUESTED | 11 | ISSUE_APPROVAL_REQUESTED represents an approval request event. |
| ISSUE_SENT_BACK | 12 | ISSUE_SENT_BACK represents an issue being sent back by an approver. |
| PIPELINE_FAILED | 13 | PIPELINE_FAILED represents a pipeline failure event. |
| PIPELINE_COMPLETED | 14 | PIPELINE_COMPLETED represents a pipeline completion event. |
| ISSUE_APPROVED | 15 | ISSUE_APPROVED represents an issue being fully approved. |
| ISSUE_REJECTED | 16 | [Argus P0-1 M3 / OQ-APP-7 = A] ISSUE_REJECTED represents an approver rejecting the issue (terminal decision until the creator calls RequestIssue to clear rejections + re-trigger approval). Lets second-line on-call surface red decisions through the standard webhook fan-out (Telegram/Slack/etc). |
store/query_history.proto
QueryHistoryPayload
| Field | Type | Label | Description |
|---|---|---|---|
| error | string | optional | |
| duration | google.protobuf.Duration |
store/release.proto
ReleasePayload
| Field | Type | Label | Description |
|---|---|---|---|
| files | ReleasePayload.File | repeated | |
| vcs_source | ReleasePayload.VCSSource | ||
| type | SchemaChangeType |
ReleasePayload.File
| Field | Type | Label | Description |
|---|---|---|---|
| path | string | The path of the file, e.g., 2.2/V0001_create_table.sql. | |
| sheet_sha256 | string | The SHA256 hash of the sheet content (hex-encoded). | |
| version | string |
ReleasePayload.VCSSource
| Field | Type | Label | Description |
|---|---|---|---|
| vcs_type | VCSType | ||
| url | string |
store/review_config.proto
ReviewConfigPayload
| Field | Type | Label | Description |
|---|---|---|---|
| sql_review_rules | SQLReviewRule | repeated |
SQLReviewRule
| Field | Type | Label | Description |
|---|---|---|---|
| type | SQLReviewRule.Type | ||
| level | SQLReviewRule.Level | ||
| naming_payload | SQLReviewRule.NamingRulePayload | ||
| number_payload | SQLReviewRule.NumberRulePayload | ||
| string_array_payload | SQLReviewRule.StringArrayRulePayload | ||
| comment_convention_payload | SQLReviewRule.CommentConventionRulePayload | ||
| string_payload | SQLReviewRule.StringRulePayload | ||
| naming_case_payload | SQLReviewRule.NamingCaseRulePayload | ||
| engine | Engine |
SQLReviewRule.CommentConventionRulePayload
| Field | Type | Label | Description |
|---|---|---|---|
| required | bool | ||
| max_length | int32 |
SQLReviewRule.NamingCaseRulePayload
| Field | Type | Label | Description |
|---|---|---|---|
| upper | bool |
SQLReviewRule.NamingRulePayload
Payload message types for SQL review rules
| Field | Type | Label | Description |
|---|---|---|---|
| max_length | int32 | ||
| format | string |
SQLReviewRule.NumberRulePayload
| Field | Type | Label | Description |
|---|---|---|---|
| number | int32 |
SQLReviewRule.StringArrayRulePayload
| Field | Type | Label | Description |
|---|---|---|---|
| list | string | repeated |
SQLReviewRule.StringRulePayload
| Field | Type | Label | Description |
|---|---|---|---|
| value | string |
SQLReviewRule.Level
The severity level for SQL review rules.
| Name | Number | Description |
|---|---|---|
| LEVEL_UNSPECIFIED | 0 | Unspecified level. |
| ERROR | 1 | Rule violation is an error. |
| WARNING | 2 | Rule violation is a warning. |
SQLReviewRule.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| ENGINE_MYSQL_USE_INNODB | 1 | |
| NAMING_FULLY_QUALIFIED | 2 | |
| NAMING_TABLE | 3 | |
| NAMING_COLUMN | 4 | |
| NAMING_INDEX_PK | 5 | |
| NAMING_INDEX_UK | 6 | |
| NAMING_INDEX_FK | 7 | |
| NAMING_INDEX_IDX | 8 | |
| NAMING_COLUMN_AUTO_INCREMENT | 9 | |
| NAMING_TABLE_NO_KEYWORD | 10 | |
| NAMING_IDENTIFIER_NO_KEYWORD | 11 | |
| NAMING_IDENTIFIER_CASE | 12 | |
| STATEMENT_SELECT_NO_SELECT_ALL | 13 | |
| STATEMENT_WHERE_REQUIRE_SELECT | 14 | |
| STATEMENT_WHERE_REQUIRE_UPDATE_DELETE | 15 | |
| STATEMENT_WHERE_NO_LEADING_WILDCARD_LIKE | 16 | |
| STATEMENT_DISALLOW_ON_DEL_CASCADE | 17 | |
| STATEMENT_DISALLOW_RM_TBL_CASCADE | 18 | |
| STATEMENT_DISALLOW_COMMIT | 19 | |
| STATEMENT_DISALLOW_LIMIT | 20 | |
| STATEMENT_DISALLOW_ORDER_BY | 21 | |
| STATEMENT_MERGE_ALTER_TABLE | 22 | |
| STATEMENT_INSERT_ROW_LIMIT | 23 | |
| STATEMENT_INSERT_MUST_SPECIFY_COLUMN | 24 | |
| STATEMENT_INSERT_DISALLOW_ORDER_BY_RAND | 25 | |
| STATEMENT_AFFECTED_ROW_LIMIT | 26 | |
| STATEMENT_DML_DRY_RUN | 27 | |
| STATEMENT_DISALLOW_ADD_COLUMN_WITH_DEFAULT | 28 | |
| STATEMENT_ADD_CHECK_NOT_VALID | 29 | |
| STATEMENT_ADD_FOREIGN_KEY_NOT_VALID | 30 | |
| STATEMENT_DISALLOW_ADD_NOT_NULL | 31 | |
| STATEMENT_SELECT_FULL_TABLE_SCAN | 32 | |
| STATEMENT_CREATE_SPECIFY_SCHEMA | 33 | |
| STATEMENT_CHECK_SET_ROLE_VARIABLE | 34 | |
| STATEMENT_DISALLOW_USING_FILESORT | 35 | |
| STATEMENT_DISALLOW_USING_TEMPORARY | 36 | |
| STATEMENT_WHERE_NO_EQUAL_NULL | 37 | |
| STATEMENT_WHERE_DISALLOW_FUNCTIONS_AND_CALCULATIONS | 38 | |
| STATEMENT_QUERY_MINIMUM_PLAN_LEVEL | 39 | |
| STATEMENT_WHERE_MAXIMUM_LOGICAL_OPERATOR_COUNT | 40 | |
| STATEMENT_MAXIMUM_LIMIT_VALUE | 41 | |
| STATEMENT_MAXIMUM_JOIN_TABLE_COUNT | 42 | |
| STATEMENT_MAXIMUM_STATEMENTS_IN_TRANSACTION | 43 | |
| STATEMENT_JOIN_STRICT_COLUMN_ATTRS | 44 | |
| STATEMENT_NON_TRANSACTIONAL | 45 | |
| STATEMENT_ADD_COLUMN_WITHOUT_POSITION | 46 | |
| STATEMENT_DISALLOW_OFFLINE_DDL | 47 | |
| STATEMENT_DISALLOW_CROSS_DB_QUERIES | 48 | |
| STATEMENT_MAX_EXECUTION_TIME | 49 | |
| STATEMENT_REQUIRE_ALGORITHM_OPTION | 50 | |
| STATEMENT_REQUIRE_LOCK_OPTION | 51 | |
| STATEMENT_OBJECT_OWNER_CHECK | 52 | |
| TABLE_REQUIRE_PK | 53 | |
| TABLE_NO_FOREIGN_KEY | 54 | |
| TABLE_DROP_NAMING_CONVENTION | 55 | |
| TABLE_COMMENT | 56 | |
| TABLE_DISALLOW_PARTITION | 57 | |
| TABLE_DISALLOW_TRIGGER | 58 | |
| TABLE_NO_DUPLICATE_INDEX | 59 | |
| TABLE_TEXT_FIELDS_TOTAL_LENGTH | 60 | |
| TABLE_DISALLOW_SET_CHARSET | 61 | |
| TABLE_DISALLOW_DDL | 62 | |
| TABLE_DISALLOW_DML | 63 | |
| TABLE_LIMIT_SIZE | 64 | |
| TABLE_REQUIRE_CHARSET | 65 | |
| TABLE_REQUIRE_COLLATION | 66 | |
| COLUMN_REQUIRED | 67 | |
| COLUMN_NO_NULL | 68 | |
| COLUMN_DISALLOW_CHANGE_TYPE | 69 | |
| COLUMN_SET_DEFAULT_FOR_NOT_NULL | 70 | |
| COLUMN_DISALLOW_CHANGE | 71 | |
| COLUMN_DISALLOW_CHANGING_ORDER | 72 | |
| COLUMN_DISALLOW_DROP | 73 | |
| COLUMN_DISALLOW_DROP_IN_INDEX | 74 | |
| COLUMN_COMMENT | 75 | |
| COLUMN_AUTO_INCREMENT_MUST_INTEGER | 76 | |
| COLUMN_TYPE_DISALLOW_LIST | 77 | |
| COLUMN_DISALLOW_SET_CHARSET | 78 | |
| COLUMN_MAXIMUM_CHARACTER_LENGTH | 79 | |
| COLUMN_MAXIMUM_VARCHAR_LENGTH | 80 | |
| COLUMN_AUTO_INCREMENT_INITIAL_VALUE | 81 | |
| COLUMN_AUTO_INCREMENT_MUST_UNSIGNED | 82 | |
| COLUMN_CURRENT_TIME_COUNT_LIMIT | 83 | |
| COLUMN_REQUIRE_DEFAULT | 84 | |
| COLUMN_DEFAULT_DISALLOW_VOLATILE | 85 | |
| COLUMN_ADD_NOT_NULL_REQUIRE_DEFAULT | 86 | |
| COLUMN_REQUIRE_CHARSET | 87 | |
| COLUMN_REQUIRE_COLLATION | 88 | |
| SCHEMA_BACKWARD_COMPATIBILITY | 89 | |
| DATABASE_DROP_EMPTY_DATABASE | 90 | |
| INDEX_NO_DUPLICATE_COLUMN | 91 | |
| INDEX_KEY_NUMBER_LIMIT | 92 | |
| INDEX_PK_TYPE_LIMIT | 93 | |
| INDEX_TYPE_NO_BLOB | 94 | |
| INDEX_TOTAL_NUMBER_LIMIT | 95 | |
| INDEX_PRIMARY_KEY_TYPE_ALLOWLIST | 96 | |
| INDEX_CREATE_CONCURRENTLY | 97 | |
| INDEX_TYPE_ALLOW_LIST | 98 | |
| INDEX_NOT_REDUNDANT | 99 | |
| SYSTEM_CHARSET_ALLOWLIST | 100 | |
| SYSTEM_COLLATION_ALLOWLIST | 101 | |
| SYSTEM_COMMENT_LENGTH | 102 | |
| SYSTEM_PROCEDURE_DISALLOW_CREATE | 103 | |
| SYSTEM_EVENT_DISALLOW_CREATE | 104 | |
| SYSTEM_VIEW_DISALLOW_CREATE | 105 | |
| SYSTEM_FUNCTION_DISALLOW_CREATE | 106 | |
| SYSTEM_FUNCTION_DISALLOWED_LIST | 107 | |
| ADVICE_ONLINE_MIGRATION | 108 | |
| BUILTIN_PRIOR_BACKUP_CHECK | 109 | |
| BUILTIN_WALK_THROUGH_CHECK | 110 | |
| STATEMENT_DISALLOW_TRUNCATE | 111 |
store/revision.proto
RevisionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| release | string | Format: projects/{project}/releases/{release} Can be empty. | |
| file | string | The file filepath. Can be empty. | |
| sheet_sha256 | string | The SHA256 hash of the sheet content (hex-encoded). | |
| task_run | string | The task run associated with the revision. Can be empty. Format: projects/{project}/plans/{plan}/rollout/stages/{stage}/tasks/{task}/taskRuns/ | |
| type | SchemaChangeType | The type of the revision. |
store/role.proto
RolePermissions
| Field | Type | Label | Description |
|---|---|---|---|
| permissions | string | repeated |
store/server_config.proto
ServerConfigPayload
ServerConfigPayload stores global server-level infrastructure configuration. Only contains settings that are truly cross-workspace and cannot be derived from any workspace context (e.g., JWT signing secret). All other settings live in per-workspace WORKSPACE_PROFILE.
| Field | Type | Label | Description |
|---|---|---|---|
| auth_secret | string | Authentication secret for token signing (32-character random string). |
store/setting.proto
AISetting
| Field | Type | Label | Description |
|---|---|---|---|
| enabled | bool | ||
| provider | AISetting.Provider | ||
| endpoint | string | ||
| api_key | string | ||
| model | string | ||
| version | string |
Algorithm
| Field | Type | Label | Description |
|---|---|---|---|
| full_mask | Algorithm.FullMask | ||
| range_mask | Algorithm.RangeMask | ||
| md5_mask | Algorithm.MD5Mask | ||
| inner_outer_mask | Algorithm.InnerOuterMask |
Algorithm.FullMask
| Field | Type | Label | Description |
|---|---|---|---|
| substitution | string | substitution is the string used to replace the original value, the max length of the string is 16 bytes. |
Algorithm.InnerOuterMask
| Field | Type | Label | Description |
|---|---|---|---|
| prefix_len | int32 | ||
| suffix_len | int32 | ||
| type | Algorithm.InnerOuterMask.MaskType | ||
| substitution | string |
Algorithm.MD5Mask
| Field | Type | Label | Description |
|---|---|---|---|
| salt | string | salt is the salt value to generate a different hash that with the word alone. |
Algorithm.RangeMask
| Field | Type | Label | Description |
|---|---|---|---|
| slices | Algorithm.RangeMask.Slice | repeated | We store it as a repeated field to face the fact that the original value may have multiple parts should be masked. But frontend can be started with a single rule easily. |
Algorithm.RangeMask.Slice
| Field | Type | Label | Description |
|---|---|---|---|
| start | int32 | start is the start character index (0-based) of the original value, should be less than end. Uses character indices (not byte offsets) for display-oriented masking. Example: For "你好world", character index 2 refers to 'w' (the 3rd character). | |
| end | int32 | end is the end character index (exclusive) of the original value. Uses character indices (not byte offsets) for display-oriented masking. | |
| substitution | string | OriginalValue[start:end) would be replaced with substitution. |
AppIMSetting
| Field | Type | Label | Description |
|---|---|---|---|
| settings | AppIMSetting.IMSetting | repeated |
AppIMSetting.DingTalk
| Field | Type | Label | Description |
|---|---|---|---|
| client_id | string | ||
| client_secret | string | ||
| robot_code | string |
AppIMSetting.Feishu
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| app_secret | string |
AppIMSetting.IMSetting
| Field | Type | Label | Description |
|---|---|---|---|
| type | WebhookType | ||
| slack | AppIMSetting.Slack | ||
| feishu | AppIMSetting.Feishu | ||
| wecom | AppIMSetting.Wecom | ||
| lark | AppIMSetting.Lark | ||
| dingtalk | AppIMSetting.DingTalk | ||
| teams | AppIMSetting.Teams | ||
| telegram | AppIMSetting.Telegram |
AppIMSetting.Lark
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| app_secret | string |
AppIMSetting.Slack
| Field | Type | Label | Description |
|---|---|---|---|
| token | string |
AppIMSetting.Teams
| Field | Type | Label | Description |
|---|---|---|---|
| tenant_id | string | Azure AD tenant ID (Directory ID). | |
| client_id | string | Azure AD application (client) ID. | |
| client_secret | string | Azure AD client secret. |
AppIMSetting.Telegram
[Argus P1-4 M4.0] Telegram Bot API credentials. The bot must be added to the target chat with permission to send messages. Argus never reads from the bot (no inline keyboard / commands in M4.0), so chat-write is the only scope required.
| Field | Type | Label | Description |
|---|---|---|---|
| bot_token | string | Bot token from @BotFather. Sensitive — never echoed back from GetSetting; UpdateSetting only writes when non-empty (empty preserves the existing token, mirroring how Slack.token works). | |
| chat_id | string | Target chat id. Either a numeric id (e.g. "-1001234567890" for a supergroup) or a @channelname for public channels. The bot must already be a member of this chat. |
AppIMSetting.Wecom
| Field | Type | Label | Description |
|---|---|---|---|
| corp_id | string | ||
| agent_id | string | ||
| secret | string |
DataClassificationSetting
| Field | Type | Label | Description |
|---|---|---|---|
| configs | DataClassificationSetting.DataClassificationConfig | repeated |
DataClassificationSetting.DataClassificationConfig
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | id is the uuid for classification. Each project can chose one classification config. | |
| title | string | ||
| levels | DataClassificationSetting.DataClassificationConfig.Level | repeated | levels is user defined level list for classification. |
| classification | DataClassificationSetting.DataClassificationConfig.ClassificationEntry | repeated | classification is the id - DataClassification map. The id should in [0-9]+-[0-9]+-[0-9]+ format. |
DataClassificationSetting.DataClassificationConfig.ClassificationEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | DataClassificationSetting.DataClassificationConfig.DataClassification |
DataClassificationSetting.DataClassificationConfig.DataClassification
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | id is the classification id in [0-9]+-[0-9]+-[0-9]+ format. | |
| title | string | ||
| level | int32 | optional | The sensitivity level. Maps to Level.level. |
DataClassificationSetting.DataClassificationConfig.Level
| Field | Type | Label | Description |
|---|---|---|---|
| title | string | ||
| level | int32 | The numeric level for ordering. Higher = more sensitive. |
EmailSetting
| Field | Type | Label | Description |
|---|---|---|---|
| from | string | ||
| from_name | string | ||
| type | EmailSetting.Type | ||
| smtp | EmailSetting.SMTPConfig |
EmailSetting.SMTPConfig
| Field | Type | Label | Description |
|---|---|---|---|
| host | string | ||
| port | int32 | ||
| username | string | ||
| password | string | ||
| encryption | EmailSetting.SMTPConfig.Encryption | ||
| authentication | EmailSetting.SMTPConfig.Authentication |
EmergencyPauseSetting
[Argus P1-4 G4] EmergencyPauseSetting is the workspace-singleton kill-switch payload. The pending scheduler reads this on every cycle and holds matching tasks in PENDING with a WaitingCause.EmergencyPause payload. See docs/modules/monitoring-bridge.md §5.
Semantics:
- workspace_wide=true pauses ALL environments
- per_environment[env]=true pauses just that environment
- the two are OR'd, so workspace_wide is a strict superset
- clearing is a separate write (workspace_wide=false + empty map); resolution_reason is captured by audit-log, NOT this payload, so a stale reason from the last clear doesn't leak into the next set
| Field | Type | Label | Description |
|---|---|---|---|
| workspace_wide | bool | When true, every task in every environment is held in PENDING. | |
| per_environment | EmergencyPauseSetting.PerEnvironmentEntry | repeated | Environment resource id → paused. Only true entries are meaningful; deleting the key is equivalent to setting false. |
| reason | string | Human-readable reason shown in the UI banner. Required when at least one of workspace_wide / per_environment is true (the RPC enforces this; the store accepts any value). | |
| set_by | string | login_id of the admin who last toggled this setting. Captured at RPC time so the banner can show who paused without re-fetching the audit log. | |
| set_at | google.protobuf.Timestamp | Server clock at the last toggle. |
EmergencyPauseSetting.PerEnvironmentEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | bool |
EnvironmentSetting
| Field | Type | Label | Description |
|---|---|---|---|
| environments | EnvironmentSetting.Environment | repeated |
EnvironmentSetting.Environment
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| id | string | The resource id of the environment. This value should be 4-63 characters, and valid characters are /[a-z][0-9]-/. | |
| title | string | The display name of the environment. | |
| tags | EnvironmentSetting.Environment.TagsEntry | repeated | |
| color | string |
EnvironmentSetting.Environment.TagsEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
MaintenanceWindowSetting
[Argus P0-5 G2] MaintenanceWindowSetting controls when rollout tasks are allowed to execute. Configured per-environment; an empty rule set means "no window enforced for that env". See docs/modules/preflight-checklist.md §5 (OQ-PFC-4 = per-environment, OQ-PFC-5 = block at approval gate in M2a; rollout-time PENDING-Window deferred to M2b).
| Field | Type | Label | Description |
|---|---|---|---|
| rules | MaintenanceWindowSetting.WindowRule | repeated |
MaintenanceWindowSetting.WindowRule
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | Display name shown in the settings UI, e.g. "weekday-nights". | |
| environment | string | Environment resource id this rule applies to (e.g. "prod"). Empty means "all environments". | |
| cron | string | Standard 5-field cron expression marking the start of each window. Parsed by github.com/robfig/cron/v3 using the Standard parser. | |
| duration_seconds | int64 | Window length once it starts. Must be > 0. | |
| timezone | string | IANA timezone name. Defaults to "Asia/Shanghai" when empty (the canonical operational timezone for Argus deployments per approval_seed.go's default templates). | |
| enabled | bool | When false the rule is ignored. |
MonitoringSetting
[Argus P1-4.1] MonitoringSetting holds the shared secret used by external monitors (AlertManager / Grafana / etc.) to authenticate against the /v1/internal/monitor-webhook endpoint plus the auto- response rules (G6) evaluated on every received alert.
Secret is stored as a bcrypt hash — the plaintext is shown to the admin once at generation time and never persisted. Rules are stored in plain form because their match predicates are non-secret CEL strings and the action targets reference existing IM settings by id.
| Field | Type | Label | Description |
|---|---|---|---|
| webhook_shared_secret_hash | string | bcrypt hash of the shared secret. Empty string = "no secret configured" → the webhook receiver MUST reject all requests (fail-closed) per docs/modules/monitoring-bridge.md §4.2. | |
| webhook_shared_secret_set_by | string | login_id of the admin who rotated the secret last. | |
| webhook_shared_secret_set_at | google.protobuf.Timestamp | Server clock at last rotation. nil = never configured. | |
| rules | MonitoringSetting.ResponseRule | repeated | [Argus P1-4.3 G6] Auto-response rules. Matched in (priority asc, name asc) order; the first matching enabled rule's action fires and evaluation stops. See docs/modules/monitoring-bridge.md §6. |
MonitoringSetting.EmergencyPauseAction
| Field | Type | Label | Description |
|---|---|---|---|
| target_environment | string | Empty = workspace_wide pause; non-empty = per-environment. | |
| reason_template | string | Free-form reason. May be a literal string or a CEL template interpolated from alert vars by the dispatcher (e.g. "auto-paused: {alert.name} on {alert.environment}"). Empty falls back to a stock "auto-paused by monitoring rule" string. |
MonitoringSetting.NotifyOnlyAction
| Field | Type | Label | Description |
|---|---|---|---|
| message_template | string | Optional message override. Empty falls back to the canonical "[Argus alert] <name> on <env>: <summary>" format the dispatcher emits. |
MonitoringSetting.ResponseAction
| Field | Type | Label | Description |
|---|---|---|---|
| emergency_pause | MonitoringSetting.EmergencyPauseAction | ||
| notify_only | MonitoringSetting.NotifyOnlyAction | ||
| im_types | string | repeated | Notification target — applies to both emergency_pause and notify_only. Each entry is a WebhookType enum value name (e.g. "TELEGRAM", "SLACK"). Empty list = broadcast to every configured IM channel. |
MonitoringSetting.ResponseRule
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | Display name; must be unique within the workspace. | |
| enabled | bool | When false the rule is skipped at evaluation time. | |
| priority | int32 | Lower = higher priority. Ties broken by name asc. | |
| match_predicate | string | CEL predicate evaluated against the alert vars. See backend/internal/monitoringbridge/matcher.go for the binding surface. Empty string = always-match (useful for catch-all notify rules but admins are encouraged to be explicit). | |
| action | MonitoringSetting.ResponseAction | Action to execute when the predicate matches. |
SSOGroupMappingSetting
[Argus P1-2] SSOGroupMappingSetting upgrades the existing OIDC syncUserGroups exact-match convention (OIDC group name == bb_group.title/email) into an admin-configurable rule layer. The legacy exact-match path is preserved per OQ-SGM-3 = B — when this setting is empty, behaviour is identical to the v0 deployment.
Each rule maps one OIDC group name to one target (either a bb_group membership or a direct workspace role binding). Multi- target requirements are expressed by adding multiple rules sharing the same oidc_group (OQ-SGM-4 = A).
v1 only grants — when a user no longer belongs to an OIDC group the corresponding bb_group / role binding sticks around until admin manual cleanup (OQ-SGM-2 = A; revocation tracking is P2).
| Field | Type | Label | Description |
|---|---|---|---|
| mappings | SSOGroupMappingSetting.GroupMapping | repeated |
SSOGroupMappingSetting.GroupMapping
| Field | Type | Label | Description |
|---|---|---|---|
| oidc_group | string | OIDC group name as it appears in the IdP's groups claim. Compared by exact string equality, case-sensitive. | |
| idp_name | string | Optional: restrict this rule to a specific IdP. Format: idps/<resource-id>. Empty = match any IdP — useful when an org has a single IdP and admin doesn't want to repeat the name on every rule. Required when two IdPs both emit a group by the same name with conflicting intent. | |
| bb_group | string | Add user to a workspace bb_group. The bb_group can carry IAM bindings the user transitively inherits. Format: groups/<email-or-name>. | |
| workspace_role | string | Direct workspace IAM role binding for the user. Skips the bb_group middleware. Format: roles/<role> — both built-in (roles/workspaceAdmin, roles/projectDeveloper, ...) and custom roles are accepted; the RPC validates against the current role catalogue at write time. | |
| enabled | bool | Disabled rules are skipped at login. Lets admin keep a historical rule visible without applying it. |
SemanticTypeSetting
| Field | Type | Label | Description |
|---|---|---|---|
| types | SemanticTypeSetting.SemanticType | repeated |
SemanticTypeSetting.SemanticType
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | id is the uuid for semantic type. | |
| title | string | the title of the semantic type, it should not be empty. | |
| description | string | the description of the semantic type, it can be empty. | |
| algorithm | Algorithm | ||
| icon | string | icon is the icon for semantic type, it can be emoji or base64 encoded image. |
SystemSetting
| Field | Type | Label | Description |
|---|---|---|---|
| license | string | Enterprise license JWT token. |
WorkspaceApprovalSetting
| Field | Type | Label | Description |
|---|---|---|---|
| rules | WorkspaceApprovalSetting.Rule | repeated |
WorkspaceApprovalSetting.Rule
| Field | Type | Label | Description |
|---|---|---|---|
| template | ApprovalTemplate | ||
| condition | google.type.Expr | ||
| source | WorkspaceApprovalSetting.Rule.Source |
WorkspaceProfileSetting
| Field | Type | Label | Description |
|---|---|---|---|
| external_url | string | The external URL is used for sso authentication callback. | |
| disallow_signup | bool | Disallow self-service signup, users can only be invited by the owner. | |
| require_2fa | bool | Require 2FA for all users. | |
| refresh_token_duration | google.protobuf.Duration | The duration for refresh token. Default is 7 days. | |
| announcement | WorkspaceProfileSetting.Announcement | The setting of custom announcement | |
| maximum_role_expiration | google.protobuf.Duration | The max duration for role expired. | |
| domains | string | repeated | The workspace domain, e.g., bytebase.com. |
| enforce_identity_domain | bool | Only user and group from the domains can be created and login. | |
| database_change_mode | WorkspaceProfileSetting.DatabaseChangeMode | The workspace database change mode. | |
| disallow_password_signin | bool | Whether to disallow password signin. (Except workspace admins) | |
| inactive_session_timeout | google.protobuf.Duration | The session expiration time if not activity detected for the user. Value <= 0 means no limit. | |
| enable_audit_log_stdout | bool | Whether to enable audit logging to stdout in structured JSON format. Requires TEAM or ENTERPRISE license. | |
| watermark | bool | Whether to display watermark on pages. Requires ENTERPRISE license. | |
| directory_sync_token | string | The token for directory sync authentication. | |
| password_restriction | WorkspaceProfileSetting.PasswordRestriction | Password restriction settings. | |
| access_token_duration | google.protobuf.Duration | The duration for access token. Default is 1 hour. | |
| enable_debug | bool | Whether debug mode is enabled. | |
| sql_result_size | int64 | The maximum result size limit in bytes for query and export, works for the SQL Editor and Export Center. The default value is 100MB, we will use the default value if the setting not exists, or the limit <= 0. | |
| query_timeout | google.protobuf.Duration | The query timeout duration for query and export, works for the SQL Editor and Export Center. | |
| allow_email_code_signin | bool | Allow signin/signup using email + a 6-digit one-time verification code. Requires the EMAIL setting to be configured on the workspace. | |
| disallow_self_approval_default | bool | [Argus P0-1] Zero-trust default: when true, the issue approval/reject path treats every project as if project.Setting.AllowSelfApproval is false, regardless of the project value. Projects can only loosen self- approval when this workspace flag is off. Default for new workspaces is true (seeded by internal/role::SeedDefaultApprovalTemplate). |
WorkspaceProfileSetting.Announcement
| Field | Type | Label | Description |
|---|---|---|---|
| level | WorkspaceProfileSetting.Announcement.AlertLevel | The alert level of the announcement. | |
| text | string | The text of the announcement. | |
| link | string | The optional link, user can follow the link to check extra details |
WorkspaceProfileSetting.PasswordRestriction
| Field | Type | Label | Description |
|---|---|---|---|
| min_length | int32 | min_length is the minimum length for password, should be no less than 8. | |
| require_number | bool | require_number requires the password must contain at least one number. | |
| require_letter | bool | require_letter requires the password must contain at least one letter, regardless of upper case or lower case | |
| require_uppercase_letter | bool | require_uppercase_letter requires the password must contain at least one upper case letter. | |
| require_special_character | bool | require_special_character requires the password must contain at least one special character. | |
| require_reset_password_for_first_login | bool | require_reset_password_for_first_login requires users to reset their password after the 1st login. | |
| password_rotation | google.protobuf.Duration | password_rotation requires users to reset their password after the duration. |
AISetting.Provider
| Name | Number | Description |
|---|---|---|
| PROVIDER_UNSPECIFIED | 0 | |
| OPEN_AI | 1 | |
| CLAUDE | 2 | |
| GEMINI | 3 | |
| AZURE_OPENAI | 4 |
Algorithm.InnerOuterMask.MaskType
| Name | Number | Description |
|---|---|---|
| MASK_TYPE_UNSPECIFIED | 0 | |
| INNER | 1 | |
| OUTER | 2 |
EmailSetting.SMTPConfig.Authentication
| Name | Number | Description |
|---|---|---|
| AUTHENTICATION_UNSPECIFIED | 0 | |
| AUTHENTICATION_NONE | 1 | |
| PLAIN | 2 | |
| LOGIN | 3 | |
| CRAM_MD5 | 4 |
EmailSetting.SMTPConfig.Encryption
| Name | Number | Description |
|---|---|---|
| ENCRYPTION_UNSPECIFIED | 0 | |
| ENCRYPTION_NONE | 1 | |
| STARTTLS | 2 | |
| SSL_TLS | 3 |
EmailSetting.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| SMTP | 1 |
SettingName
| Name | Number | Description |
|---|---|---|
| SETTING_NAME_UNSPECIFIED | 0 | |
| SYSTEM | 1 | |
| WORKSPACE_PROFILE | 2 | |
| WORKSPACE_APPROVAL | 3 | |
| APP_IM | 4 | |
| AI | 5 | |
| DATA_CLASSIFICATION | 6 | |
| SEMANTIC_TYPES | 7 | |
| ENVIRONMENT | 8 | |
| 9 | ||
| MAINTENANCE_WINDOW | 10 | [Argus P0-5 G2] Maintenance window configuration — payload type is MaintenanceWindowSetting (this file). See docs/modules/preflight-checklist.md §5 for the gate semantics. |
| EMERGENCY_PAUSE | 11 | [Argus P1-4 G4] Emergency kill-switch — workspace-wide or per-environment pause of all in-flight rollout tasks. Payload type is EmergencyPauseSetting (this file). See docs/modules/monitoring-bridge.md §5. |
| MONITORING | 12 | [Argus P1-4.1] Monitoring bridge configuration — shared secret for the inbound webhook receiver and (later) auto-response rules. Payload type is MonitoringSetting (this file). See docs/modules/monitoring-bridge.md §4. |
| SSO_GROUP_MAPPING | 13 | [Argus P1-2] OIDC SSO group → role mapping. Payload type is SSOGroupMappingSetting (this file). See docs/modules/sso-group-mapping.md §2. |
WorkspaceApprovalSetting.Rule.Source
| Name | Number | Description |
|---|---|---|
| SOURCE_UNSPECIFIED | 0 | |
| CHANGE_DATABASE | 1 | |
| CREATE_DATABASE | 2 | |
| EXPORT_DATA | 3 | |
| REQUEST_ROLE | 4 | |
| REQUEST_ACCESS | 5 |
WorkspaceProfileSetting.Announcement.AlertLevel
We support three levels of AlertLevel: INFO, WARNING, and ERROR.
| Name | Number | Description |
|---|---|---|
| ALERT_LEVEL_UNSPECIFIED | 0 | |
| INFO | 1 | |
| WARNING | 2 | |
| CRITICAL | 3 |
WorkspaceProfileSetting.DatabaseChangeMode
| Name | Number | Description |
|---|---|---|
| DATABASE_CHANGE_MODE_UNSPECIFIED | 0 | |
| PIPELINE | 1 | A more advanced database change process, including custom approval workflows and other advanced features. Default to this mode. |
| EDITOR | 2 | A simple database change process in SQL editor. Users can execute SQL directly. |
store/signal.proto
Signal
Signal represents a notification payload sent via PostgreSQL NOTIFY for HA coordination.
| Field | Type | Label | Description |
|---|---|---|---|
| type | Signal.Type | ||
| uid | int64 | ||
| project | string |
Signal.Type
Type represents the type of signal.
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| CANCEL_PLAN_CHECK_RUN | 1 | |
| CANCEL_TASK_RUN | 2 |
store/subscription.proto
SubscriptionPayload
SubscriptionPayload stores all subscription data for a workspace. Serialized as JSONB in the subscription table's payload column.
| Field | Type | Label | Description |
|---|---|---|---|
| status | SubscriptionPayload.Status | Lifecycle | |
| started_at | google.protobuf.Timestamp | ||
| expires_at | google.protobuf.Timestamp | ||
| plan | SubscriptionPayload.Plan | Billing details | |
| interval | SubscriptionPayload.BillingInterval | ||
| seat | int32 | ||
| instance_count | int32 | ||
| stripe_subscription_id | string | Stripe integration | |
| stripe_customer_id | string |
SubscriptionPayload.BillingInterval
| Name | Number | Description |
|---|---|---|
| BILLING_INTERVAL_UNSPECIFIED | 0 | |
| MONTH | 1 | |
| YEAR | 2 |
SubscriptionPayload.Plan
| Name | Number | Description |
|---|---|---|
| PLAN_UNSPECIFIED | 0 | |
| TEAM | 1 | |
| ENTERPRISE | 2 |
SubscriptionPayload.Status
| Name | Number | Description |
|---|---|---|
| STATUS_UNSPECIFIED | 0 | |
| ACTIVE | 1 | |
| PAUSED | 2 | |
| CANCELED | 3 |
store/task.proto
Task
Task is the metadata for database operation tasks.
| Field | Type | Label | Description |
|---|---|---|---|
| skipped | bool | Whether the task was skipped during execution. | |
| skipped_reason | string | Reason why the task was skipped. | |
| spec_id | string | UUID that identifies the spec this task implements. | |
| sheet_sha256 | string | The SHA256 hash of a single sheet content (hex-encoded). Used for non-release tasks. | |
| release | string | The release resource name: projects/{project}/releases/{release}. Used for GitOps release-based tasks that execute multiple files. | |
| enable_prior_backup | bool | Whether to create an automatic backup before applying changes. |
Task.Type
Type represents the type of database operation to perform.
| Name | Number | Description |
|---|---|---|
| TASK_TYPE_UNSPECIFIED | 0 | |
| DATABASE_CREATE | 1 | Create a new database. |
| DATABASE_MIGRATE | 2 | Apply schema/data migrations to an existing database. Execution strategy is determined by release type (VERSIONED/DECLARATIVE) or sheet content for non-release tasks. |
| DATABASE_EXPORT | 3 | Export data from a database. |
store/task_run.proto
SchedulerInfo
SchedulerInfo contains information about task scheduling and execution delays.
| Field | Type | Label | Description |
|---|---|---|---|
| report_time | google.protobuf.Timestamp | Timestamp when the scheduler reported this information. | |
| waiting_cause | SchedulerInfo.WaitingCause | Reason why the task run is currently waiting. |
SchedulerInfo.WaitingCause
WaitingCause indicates why a task run is waiting to execute.
| Field | Type | Label | Description |
|---|---|---|---|
| parallel_tasks_limit | bool | Task is waiting due to parallel execution limit. | |
| maintenance_window | SchedulerInfo.WaitingCause.MaintenanceWindow | [Argus P0-5 G2] Task is waiting for the next maintenance window. The pending scheduler holds the task in PENDING state and re-checks every 5s; on the next window opening the task is auto-promoted to AVAILABLE without operator intervention. See docs/modules/preflight-checklist.md §5.2 (OQ-PFC-5 = A). | |
| emergency_pause | SchedulerInfo.WaitingCause.EmergencyPause | [Argus P1-4 G4] Task is held by the workspace emergency kill-switch. Unlike maintenance_window there is no auto-resume — an admin must explicitly clear the kill-switch (with an audit resolution_reason). See docs/modules/monitoring-bridge.md §5. |
SchedulerInfo.WaitingCause.EmergencyPause
| Field | Type | Label | Description |
|---|---|---|---|
| reason | string | Free-form reason supplied by the admin who set the kill-switch. Surfaced verbatim in the task-run UI; no markdown rendering. | |
| set_by | string | login_id of the admin who set the kill-switch. Renders as "Paused by <set_by>" in the UI alongside the reason. |
SchedulerInfo.WaitingCause.MaintenanceWindow
| Field | Type | Label | Description |
|---|---|---|---|
| rule_name | string | The rule whose window the task is waiting for. May be empty when no rule matched (caller deduplicated to a generic message). | |
| next_window_start_unix | int64 | Unix timestamp (seconds) when the next window opens. Zero when the evaluator could not compute a next firing (rare; surface as an indefinite-wait state in the UI). |
TaskRun
TaskRun represents an execution attempt of a task.
TaskRunPayload
TaskRunPayload contains extensible runtime data for a task run. Stored in the payload JSONB column. New fields can be added here without database schema changes.
| Field | Type | Label | Description |
|---|---|---|---|
| scheduler_info | SchedulerInfo | Scheduler information about why a task is waiting. | |
| skip_prior_backup | bool | If true, prior backup is skipped for this task run. |
TaskRunResult
TaskRunResult contains the outcome and metadata from a task run execution.
| Field | Type | Label | Description |
|---|---|---|---|
| detail | string | Error message for failed task runs. Empty for successful or canceled runs. | |
| has_prior_backup | bool | Indicates whether a prior backup was created for this task run. When true, the task run can be rolled back using the backup tables. Backup details are available in the task run logs (PRIOR_BACKUP log entries). | |
| export_archive_id | string | Resource ID of the export archive generated for export tasks. |
TaskRun.Status
Status represents the current execution state of a task run.
| Name | Number | Description |
|---|---|---|
| STATUS_UNSPECIFIED | 0 | |
| PENDING | 1 | Task run is queued and waiting to execute. |
| RUNNING | 2 | Task run is currently executing. |
| DONE | 3 | Task run completed successfully. |
| FAILED | 4 | Task run encountered an error and failed. |
| CANCELED | 5 | Task run was canceled by user or system. |
| NOT_STARTED | 6 | Task run has not started yet. |
| SKIPPED | 7 | Task run was skipped and will not execute. |
| AVAILABLE | 8 | Task run is ready for immediate execution. |
store/task_run_log.proto
PriorBackupDetail
PriorBackupDetail contains information about automatic backups created before migration.
| Field | Type | Label | Description |
|---|---|---|---|
| items | PriorBackupDetail.Item | repeated | List of backup operations performed. |
PriorBackupDetail.Item
Item represents a single backup operation for a table.
| Field | Type | Label | Description |
|---|---|---|---|
| source_table | PriorBackupDetail.Item.Table | The original table that was backed up. | |
| target_table | PriorBackupDetail.Item.Table | The backup table where data was copied. | |
| start_position | Position | Starting position in SQL for this backup operation. | |
| end_position | Position | Ending position in SQL for this backup operation. |
PriorBackupDetail.Item.Table
Table identifies a database table.
| Field | Type | Label | Description |
|---|---|---|---|
| database | string | The database containing the table. Format: instances/{instance}/databases/ | |
| schema | string | Schema name (for databases that support schemas). | |
| table | string | Table name. |
TaskRunLog
| Field | Type | Label | Description |
|---|---|---|---|
| type | TaskRunLog.Type | ||
| replica_id | string | ||
| schema_dump_start | TaskRunLog.SchemaDumpStart | ||
| schema_dump_end | TaskRunLog.SchemaDumpEnd | ||
| command_execute | TaskRunLog.CommandExecute | ||
| command_response | TaskRunLog.CommandResponse | ||
| database_sync_start | TaskRunLog.DatabaseSyncStart | ||
| database_sync_end | TaskRunLog.DatabaseSyncEnd | ||
| transaction_control | TaskRunLog.TransactionControl | ||
| prior_backup_start | TaskRunLog.PriorBackupStart | ||
| prior_backup_end | TaskRunLog.PriorBackupEnd | ||
| retry_info | TaskRunLog.RetryInfo | ||
| compute_diff_start | TaskRunLog.ComputeDiffStart | ||
| compute_diff_end | TaskRunLog.ComputeDiffEnd | ||
| release_file_execute | TaskRunLog.ReleaseFileExecute |
TaskRunLog.CommandExecute
| Field | Type | Label | Description |
|---|---|---|---|
| range | Range | The byte offset range of the executed command in the sheet. Uses byte offsets (not character indices) for efficient slicing of sheet content bytes. Example: For "SELECT 你好;" in a UTF-8 sheet, range [0, 13) represents all 13 bytes. | |
| statement | string | The statement to be executed. |
TaskRunLog.CommandResponse
| Field | Type | Label | Description |
|---|---|---|---|
| error | string | ||
| affected_rows | int64 | ||
| all_affected_rows | int64 | repeated | all_affected_rows is the affected rows of each command. all_affected_rows may be unavailable if the database driver doesn't support it. Caller should fallback to affected_rows in that case. |
TaskRunLog.ComputeDiffEnd
| Field | Type | Label | Description |
|---|---|---|---|
| error | string |
TaskRunLog.ComputeDiffStart
TaskRunLog.DatabaseSyncEnd
| Field | Type | Label | Description |
|---|---|---|---|
| error | string |
TaskRunLog.DatabaseSyncStart
TaskRunLog.PriorBackupEnd
| Field | Type | Label | Description |
|---|---|---|---|
| prior_backup_detail | PriorBackupDetail | ||
| error | string |
TaskRunLog.PriorBackupStart
TaskRunLog.ReleaseFileExecute
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version of the file being executed (e.g., "0001"). | |
| file_path | string | The file path within the release (e.g., "2.2/V0001_create_table.sql"). |
TaskRunLog.RetryInfo
| Field | Type | Label | Description |
|---|---|---|---|
| error | string | ||
| retry_count | int32 | ||
| maximum_retries | int32 |
TaskRunLog.SchemaDumpEnd
| Field | Type | Label | Description |
|---|---|---|---|
| error | string |
TaskRunLog.SchemaDumpStart
TaskRunLog.TransactionControl
| Field | Type | Label | Description |
|---|---|---|---|
| type | TaskRunLog.TransactionControl.Type | ||
| error | string |
TaskRunLog.TransactionControl.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| BEGIN | 1 | |
| COMMIT | 2 | |
| ROLLBACK | 3 |
TaskRunLog.Type
| Name | Number | Description |
|---|---|---|
| TYPE_UNSPECIFIED | 0 | |
| SCHEMA_DUMP_START | 1 | |
| SCHEMA_DUMP_END | 2 | |
| COMMAND_EXECUTE | 3 | |
| COMMAND_RESPONSE | 4 | |
| DATABASE_SYNC_START | 5 | |
| DATABASE_SYNC_END | 6 | |
| TRANSACTION_CONTROL | 8 | |
| PRIOR_BACKUP_START | 9 | |
| PRIOR_BACKUP_END | 10 | |
| RETRY_INFO | 11 | |
| COMPUTE_DIFF_START | 12 | |
| COMPUTE_DIFF_END | 13 | |
| RELEASE_FILE_EXECUTE | 14 |
store/user.proto
MFAConfig
MFAConfig is the MFA configuration for a user.
| Field | Type | Label | Description |
|---|---|---|---|
| otp_secret | string | The otp_secret is the secret key used to validate the OTP code. | |
| temp_otp_secret | string | The temp_otp_secret is the temporary secret key used to validate the OTP code and will replace the otp_secret in two-phase commits. | |
| recovery_codes | string | repeated | The recovery_codes are the codes that can be used to recover the account. |
| temp_recovery_codes | string | repeated | The temp_recovery_codes are the temporary codes that will replace the recovery_codes in two-phase commits. |
| temp_otp_secret_created_time | google.protobuf.Timestamp | The temp_otp_secret_created_time is the timestamp when temp_otp_secret was created. Used to enforce expiration. |
UserProfile
| Field | Type | Label | Description |
|---|---|---|---|
| last_login_time | google.protobuf.Timestamp | ||
| last_change_password_time | google.protobuf.Timestamp | ||
| source | string | The source indicates where the user comes from. For now we support Entra ID SCIM sync, so the source could be Entra ID. | |
| last_login_workspace | string | The workspace resource ID the user last logged into. Used to auto-select workspace on next login instead of requiring a workspace picker. | |
| pending_first_login | bool | pending_first_login marks principals seeded via the --bootstrap-admin-* CLI flags (P0-AUTH-7) that have not completed their initial sign-in. Login forces the password-reset flow when this is true, regardless of the workspace's require_reset_password_for_first_login setting (P0-AUTH-8). Cleared by ResetPassword on success. | |
| failed_login_count | int32 | P1-AUTH-9: Password-failure lockout counters. |
failed_login_count is incremented on each wrong-password attempt and reset to 0 on a successful login. When it reaches the configured threshold (currently 5), locked_until is set to now + lockout_duration (currently 30 min).
locked_until, when set to a future timestamp, causes Login to reject password attempts with CodeResourceExhausted until the timestamp passes or an administrator clears both fields via UpdateUser. | | locked_until | google.protobuf.Timestamp | | | | idp_only | bool | | P1-AUTH-1: idp_only marks principals that MUST authenticate through an external IdP (SSO). When true: - The password-login path rejects the attempt (CodePermissionDenied). - RequestPasswordReset silently skips sending the reset email (avoids user-enumeration; the "contact admin" UI message covers this case).
Set to true automatically when a user is JIT-provisioned by getOrCreateUserWithIDP. Admins can toggle it via UpdateUser (P1-AUTH-10). Has no effect while Phase 1 (no IdP) is active — all users have idp_only=false and the check is a no-op. |
WorkloadIdentityConfig
WorkloadIdentityConfig stores OIDC configuration for workload identity.
| Field | Type | Label | Description |
|---|---|---|---|
| provider_type | WorkloadIdentityConfig.ProviderType | Provider type (currently only GITHUB is supported) | |
| issuer_url | string | OIDC issuer URL | |
| allowed_audiences | string | repeated | Allowed audiences for token validation |
| subject_pattern | string | Subject pattern to match against token subject claim |
PrincipalType
PrincipalType is the type of a principal.
| Name | Number | Description |
|---|---|---|
| PRINCIPAL_TYPE_UNSPECIFIED | 0 | |
| END_USER | 1 | END_USER represents the human being using Argus. |
| WORKLOAD_IDENTITY | 2 | WORKLOAD_IDENTITY represents external CI/CD workload identity. |
| SERVICE_ACCOUNT | 3 | SERVICE_ACCOUNT represents the external service calling Argus OpenAPI. |
WorkloadIdentityConfig.ProviderType
ProviderType identifies the CI/CD platform.
| Name | Number | Description |
|---|---|---|
| PROVIDER_TYPE_UNSPECIFIED | 0 | |
| GITHUB | 1 | |
| GITLAB | 2 |
store/worksheet.proto
WorkSheetOrganizerPayload
| Field | Type | Label | Description |
|---|---|---|---|
| starred | bool | ||
| folders | string | repeated | The folder path for a worksheet. For example, if the folders is [A, B, C], means the worksheet is in the A/B/C subfolder. |
store/workspace.proto
WorkspacePayload
WorkspacePayload stores workspace-level metadata.
| Field | Type | Label | Description |
|---|---|---|---|
| title | string | ||
| logo | string |