Compliance API
Table of Contents
upsquad/compliance/v1/compliance.proto
AttestDeletionRequest
AttestDeletionRequest consumes the one-time attestation token and transitions the RTD request to QUEUED.
| Field | Type | Label | Description |
|---|---|---|---|
| request_id | string | request_id identifies the RTD request to attest. | |
| attestation_token | string | attestation_token must match the token returned by RequestDeletion. | |
| attesting_member_id | string | attesting_member_id is the UUID of the second admin. |
AttestDeletionResponse
AttestDeletionResponse reports the post-attestation status.
| Field | Type | Label | Description |
|---|---|---|---|
| status | Status | status is the new lifecycle state (typically STATUS_QUEUED). |
CancelRequestRequest
CancelRequestRequest aborts an in-flight RTD. Only QUEUED / AWAITING_ATTESTATION / early-PURGE (no scope completed) are allowed.
| Field | Type | Label | Description |
|---|---|---|---|
| request_id | string | request_id identifies the RTD request to cancel. | |
| org_id | string | org_id is the caller's tenant for scoping verification. | |
| reason | string | reason is the free-form justification for the cancel. |
CancelRequestResponse
CancelRequestResponse reports the post-cancellation status.
| Field | Type | Label | Description |
|---|---|---|---|
| status | Status | status is the new lifecycle state (typically STATUS_CANCELLED). |
ConfigureRetentionRequest
ConfigureRetentionRequest writes / updates a tenant retention override for one scope.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. | |
| scope_name | string | scope_name is the classregistry scope identifier. | |
| ttl_days | int32 | ttl_days is the requested retention window in days. | |
| archive_target | string | archive_target is the optional S3 URI for ArchiveThenDelete. |
ConfigureRetentionResponse
ConfigureRetentionResponse reports the effective TTL and which layer clamped (tenant / floor / ceiling / default).
| Field | Type | Label | Description |
|---|---|---|---|
| effective_ttl_days | int32 | effective_ttl_days is the TTL the server actually applied. | |
| source | RetentionSource | source identifies which layer produced effective_ttl_days. | |
| action | RetentionAction | action is the terminal disposition when the window expires. | |
| archive_target | string | archive_target echoes the configured archive URI (or empty). |
ConfigureSiemEndpointRequest
ConfigureSiemEndpointRequest upserts the tenant's SIEM webhook endpoint. The HMAC secret is minted server-side and returned once in the response; subsequent reads never expose it.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. | |
| webhook_url | string | webhook_url is the HTTPS endpoint to POST events to. | |
| format | string | format must be "ocsf" (founder Q3 — no other schema permitted). | |
| filter_class | SiemFilterClass | filter_class narrows which events are forwarded. |
ConfigureSiemEndpointResponse
ConfigureSiemEndpointResponse carries the post-upsert configuration and the one-time HMAC secret.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id echoes the caller's tenant. | |
| webhook_url | string | webhook_url echoes the configured endpoint. | |
| format | string | format echoes the configured format. | |
| filter_class | SiemFilterClass | filter_class echoes the configured filter class. | |
| key_id | string | key_id identifies the HMAC key version in Vault. | |
| hmac_secret_hex | string | hmac_secret_hex is the ONE-TIME hex-encoded HMAC secret. Returned only at intake; GetSiemEndpoint deliberately omits it. | |
| rotated_at | google.protobuf.Timestamp | rotated_at is when the current key was minted. | |
| next_rotate_at | google.protobuf.Timestamp | next_rotate_at is when the key is scheduled to rotate. |
DeleteSiemEndpointRequest
DeleteSiemEndpointRequest removes the tenant's SIEM endpoint configuration. The historical siem_export_events ledger is preserved (audit proof).
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. |
DeleteSiemEndpointResponse
DeleteSiemEndpointResponse reports whether historical events were preserved (always true per founder Q4B acceptance).
| Field | Type | Label | Description |
|---|---|---|---|
| preserved_history | bool | preserved_history is always true — the historical ledger survives endpoint deletion for audit purposes. |
GetRetentionConfigRequest
GetRetentionConfigRequest asks for the effective retention policy for one scope.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. | |
| scope_name | string | scope_name is the classregistry scope identifier. |
GetRetentionConfigResponse
GetRetentionConfigResponse carries the effective retention policy and the platform floor/ceiling/default bounds for UI display.
| Field | Type | Label | Description |
|---|---|---|---|
| effective_ttl_days | int32 | effective_ttl_days is the TTL currently applied to the scope. | |
| source | RetentionSource | source identifies which layer produced effective_ttl_days. | |
| action | RetentionAction | action is the terminal disposition when the window expires. | |
| archive_target | string | archive_target is the configured archive URI (or empty). | |
| floor_days | int32 | floor_days is the platform minimum allowable override. | |
| ceiling_days | int32 | ceiling_days is the platform maximum allowable override (0 = unlimited). | |
| default_days | int32 | default_days is the platform default when no override is set. |
GetScopeCoverageRequest
GetScopeCoverageRequest asks for the classregistry snapshot for the caller's tenant.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. |
GetScopeCoverageResponse
GetScopeCoverageResponse carries the scope snapshot and a coverage summary for UI display.
| Field | Type | Label | Description |
|---|---|---|---|
| scopes | ScopeEntry | repeated | scopes is the full list of registered scopes. |
| total_registered | int32 | total_registered is len(scopes) (convenience counter). | |
| pg_registered | int32 | pg_registered is the count of scopes where kind == SCOPE_KIND_PG (covered by RLS and migration scanning). |
GetSiemEndpointRequest
GetSiemEndpointRequest asks for the tenant's SIEM endpoint config minus the HMAC secret.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. |
GetSiemEndpointResponse
GetSiemEndpointResponse carries the SIEM endpoint configuration without the HMAC secret (vault-only).
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id echoes the caller's tenant. | |
| webhook_url | string | webhook_url is the configured endpoint. | |
| format | string | format is the configured format. | |
| filter_class | SiemFilterClass | filter_class is the configured filter class. | |
| key_id | string | key_id identifies the current HMAC key version in Vault. | |
| rotated_at | google.protobuf.Timestamp | rotated_at is when the current key was minted. | |
| next_rotate_at | google.protobuf.Timestamp | next_rotate_at is when the key is scheduled to rotate. | |
| circuit_state | string | circuit_state reports the circuit-breaker state for outbound delivery (closed / open / half-open). |
GetStatusRequest
GetStatusRequest asks for the current state of one RTD request.
| Field | Type | Label | Description |
|---|---|---|---|
| request_id | string | request_id identifies the RTD request. | |
| org_id | string | org_id is the caller's tenant for scoping verification. |
GetStatusResponse
GetStatusResponse carries the full request state including timing and certificate pointer.
| Field | Type | Label | Description |
|---|---|---|---|
| request_id | string | request_id echoes the RTD request UUID. | |
| org_id | string | org_id is the tenant the request targets. | |
| status | Status | status is the current lifecycle state. | |
| phase_current | Phase | phase_current is the active (or most recently active) phase. | |
| dry_run | bool | dry_run mirrors the original request flag. | |
| reason | string | reason mirrors the original request reason. | |
| failure_reason | string | failure_reason is set when status == STATUS_FAILED. | |
| created_at | google.protobuf.Timestamp | created_at is when the request was submitted. | |
| attestation_expires_at | google.protobuf.Timestamp | attestation_expires_at is when the dual-control token expires. | |
| attested_at | google.protobuf.Timestamp | attested_at is when the second admin consumed the token (unset until attestation occurs). | |
| started_at | google.protobuf.Timestamp | started_at is when PHASE_PURGE began. | |
| completed_at | google.protobuf.Timestamp | completed_at is when the terminal phase finished (success or failure). | |
| sla_deadline | google.protobuf.Timestamp | sla_deadline is the regulatory SLA by which completion was due. | |
| certificate_s3_key | string | certificate_s3_key is the S3 key of the deletion certificate, populated after PHASE_CERTIFY. |
ListRequestsRequest
ListRequestsRequest returns a page of RTD requests for the tenant.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. | |
| page_size | int32 | page_size bounds the number of rows returned (server may cap). |
ListRequestsResponse
ListRequestsResponse carries a page of RTD summaries.
| Field | Type | Label | Description |
|---|---|---|---|
| requests | RTDSummary | repeated | requests is the page of summaries, newest-first. |
ListRetentionOverridesRequest
ListRetentionOverridesRequest returns every override configured for the caller's tenant.
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the caller's tenant. |
ListRetentionOverridesResponse
ListRetentionOverridesResponse carries all of the tenant's configured overrides.
| Field | Type | Label | Description |
|---|---|---|---|
| overrides | RetentionOverrideEntry | repeated | overrides is the full list of tenant retention overrides. |
RTDSummary
RTDSummary is a compact row in the ListRequests response.
| Field | Type | Label | Description |
|---|---|---|---|
| request_id | string | request_id is the RTD request UUID. | |
| status | Status | status is the current lifecycle state. | |
| phase_current | Phase | phase_current is the active (or most recently active) phase. | |
| dry_run | bool | dry_run mirrors the original request flag. | |
| created_at | google.protobuf.Timestamp | created_at is when the request was submitted. | |
| completed_at | google.protobuf.Timestamp | completed_at is when the terminal phase finished (unset while in-flight). |
RequestDeletionRequest
RequestDeletionRequest initiates a tenant RTD request. The response carries an attestation token that a second admin must present to AttestDeletion within 72 h (founder Q2 dual-control).
| Field | Type | Label | Description |
|---|---|---|---|
| org_id | string | org_id is the tenant the RTD targets. | |
| requester_member_id | string | requester_member_id is the UUID of the admin submitting the request. | |
| reason | string | reason is the free-form justification for the deletion. | |
| dry_run | bool | dry_run skips phase execution and produces a plan-only report. |
RequestDeletionResponse
RequestDeletionResponse carries the newly created request's id and the dual-control attestation token.
| Field | Type | Label | Description |
|---|---|---|---|
| request_id | string | request_id is the server-assigned UUID for the new request. | |
| attestation_token | string | attestation_token is the one-time token a different admin must present to AttestDeletion. | |
| attestation_expires_at | google.protobuf.Timestamp | attestation_expires_at bounds when the token remains valid. | |
| sla_deadline | google.protobuf.Timestamp | sla_deadline is the regulatory SLA by which the RTD must complete. |
RetentionOverrideEntry
RetentionOverrideEntry is one row of the ListRetentionOverrides response.
| Field | Type | Label | Description |
|---|---|---|---|
| scope_name | string | scope_name is the classregistry scope identifier. | |
| ttl_days | int32 | ttl_days is the tenant-configured retention window. | |
| archive_target | string | archive_target is the tenant-configured archive URI (or empty). | |
| updated_at | google.protobuf.Timestamp | updated_at is the last-write timestamp for the override. |
ScopeEntry
ScopeEntry is one row of the classregistry snapshot returned by GetScopeCoverage.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | name is the human-readable scope identifier. | |
| table | string | table is the PG table name (empty for non-PG scopes). | |
| kind | ScopeKind | kind is the storage backend (PG, Vault, Redis, S3). | |
| data_class | DataClass | data_class groups the scope by regulatory handling. | |
| sensitivity | string | sensitivity is a free-form label (high/medium/low) for UI display. | |
| retention_default_days | int32 | retention_default_days is the platform default retention. | |
| retention_floor_days | int32 | retention_floor_days is the minimum allowable override (0 if tenant may delete immediately). | |
| retention_ceiling_days | int32 | retention_ceiling_days is the maximum allowable override (0 if unlimited). | |
| siem_exported | bool | siem_exported indicates whether events from this scope are forwarded to the tenant's SIEM endpoint. |
DataClass
DataClass groups data scopes by regulatory handling requirement. The class determines which RTD phases apply to the scope (e.g. AUDIT is redacted rather than deleted).
| Name | Number | Description |
|---|---|---|
| DATA_CLASS_UNSPECIFIED | 0 | DATA_CLASS_UNSPECIFIED is the zero-value sentinel. |
| DATA_CLASS_PERSONAL | 1 | DATA_CLASS_PERSONAL is PII subject to GDPR/CCPA deletion. |
| DATA_CLASS_OPERATIONAL | 2 | DATA_CLASS_OPERATIONAL is operational data (logs, metrics) with a tenant-configurable retention window. |
| DATA_CLASS_AUDIT | 3 | DATA_CLASS_AUDIT is audit-trail data that must be retained but may be redacted (not deleted) under regulatory rules. |
| DATA_CLASS_SECRET | 4 | DATA_CLASS_SECRET is secret material (tokens, keys) that must be purged on RTD with no retention window. |
| DATA_CLASS_PLATFORM | 5 | DATA_CLASS_PLATFORM is platform-owned data not subject to tenant RTD (shared billing, analytics rollups). |
Phase
Phase is the four-step RTD execution sequence. Each phase must complete successfully before the next begins; failure in any phase terminates the request.
| Name | Number | Description |
|---|---|---|
| PHASE_UNSPECIFIED | 0 | PHASE_UNSPECIFIED is the zero-value sentinel. |
| PHASE_PURGE | 1 | PHASE_PURGE is step 1 — delete rows matching the tenant's scopes across PG, Vault, Redis, S3. |
| PHASE_VERIFY | 2 | PHASE_VERIFY is step 2 — re-scan scopes to confirm no residual rows. |
| PHASE_REDACT | 3 | PHASE_REDACT is step 3 — redact any audit trail rows that must remain (CCPA/GDPR audit exception). |
| PHASE_CERTIFY | 4 | PHASE_CERTIFY is step 4 — emit the signed certificate of deletion to S3. |
RetentionAction
RetentionAction is the terminal disposition for a scope's data at the end of its retention window.
| Name | Number | Description |
|---|---|---|
| RETENTION_ACTION_UNSPECIFIED | 0 | RETENTION_ACTION_UNSPECIFIED is the zero-value sentinel. |
| RETENTION_ACTION_DELETE | 1 | RETENTION_ACTION_DELETE purges the row outright. |
| RETENTION_ACTION_REDACT | 2 | RETENTION_ACTION_REDACT strips PII while retaining the row for audit purposes (AUDIT class). |
| RETENTION_ACTION_ARCHIVE_THEN_DELETE | 3 | RETENTION_ACTION_ARCHIVE_THEN_DELETE offloads to the configured archive_target S3 URI before deleting. |
| RETENTION_ACTION_SKIP | 4 | RETENTION_ACTION_SKIP leaves the row untouched (platform-owned scopes not subject to tenant retention). |
RetentionSource
RetentionSource identifies which layer produced the effective TTL for a retention query. Used for UI badges and audit.
| Name | Number | Description |
|---|---|---|
| RETENTION_SOURCE_UNSPECIFIED | 0 | RETENTION_SOURCE_UNSPECIFIED is the zero-value sentinel. |
| RETENTION_SOURCE_TENANT | 1 | RETENTION_SOURCE_TENANT — the tenant has configured an override that falls within [floor, ceiling]. |
| RETENTION_SOURCE_FLOOR | 2 | RETENTION_SOURCE_FLOOR — a tenant override was requested below the platform floor; the floor is returned instead. |
| RETENTION_SOURCE_CEILING | 3 | RETENTION_SOURCE_CEILING — a tenant override was requested above the platform ceiling; the ceiling is returned instead. |
| RETENTION_SOURCE_DEFAULT | 4 | RETENTION_SOURCE_DEFAULT — no override; the platform default applies. |
ScopeKind
ScopeKind identifies the storage backend of a registered data scope.
| Name | Number | Description |
|---|---|---|
| SCOPE_KIND_UNSPECIFIED | 0 | SCOPE_KIND_UNSPECIFIED is the zero-value sentinel. |
| SCOPE_KIND_PG | 1 | SCOPE_KIND_PG is a PostgreSQL table scope. |
| SCOPE_KIND_VAULT | 2 | SCOPE_KIND_VAULT is a HashiCorp Vault path scope. |
| SCOPE_KIND_REDIS | 3 | SCOPE_KIND_REDIS is a Redis key-prefix scope. |
| SCOPE_KIND_S3 | 4 | SCOPE_KIND_S3 is an S3 key-prefix scope. |
SiemFilterClass
SiemFilterClass narrows which events are forwarded to the tenant's SIEM endpoint.
| Name | Number | Description |
|---|---|---|
| SIEM_FILTER_CLASS_UNSPECIFIED | 0 | SIEM_FILTER_CLASS_UNSPECIFIED is the zero-value sentinel. |
| SIEM_FILTER_CLASS_ALL | 1 | SIEM_FILTER_CLASS_ALL forwards every exportable event. |
| SIEM_FILTER_CLASS_AUDIT_ONLY | 2 | SIEM_FILTER_CLASS_AUDIT_ONLY forwards only AUDIT-class events. |
| SIEM_FILTER_CLASS_HIGH_SEVERITY | 3 | SIEM_FILTER_CLASS_HIGH_SEVERITY forwards only events tagged with high-severity (e.g. failed auth, privilege escalation). |
Status
Status is the lifecycle state of an RTD request. The state machine transitions are enforced by the RTD engine; any unexpected value indicates a bug and should be surfaced.
| Name | Number | Description |
|---|---|---|
| STATUS_UNSPECIFIED | 0 | STATUS_UNSPECIFIED is the zero-value sentinel; never persisted. |
| STATUS_QUEUED | 1 | STATUS_QUEUED marks a request ready for the RTD worker to pick up. |
| STATUS_AWAITING_ATTESTATION | 2 | STATUS_AWAITING_ATTESTATION marks a request waiting for a second admin to consume the attestation token (founder Q2 dual-control). |
| STATUS_RUNNING | 3 | STATUS_RUNNING marks a request currently executing a phase. |
| STATUS_SUCCEEDED | 4 | STATUS_SUCCEEDED marks a request that completed all phases and produced a certificate. |
| STATUS_FAILED | 5 | STATUS_FAILED marks a request that hit a terminal error; see failure_reason on GetStatusResponse. |
| STATUS_CANCELLED | 6 | STATUS_CANCELLED marks a request aborted via CancelRequest before phase execution passed the cancellation barrier. |
ComplianceService
ComplianceService exposes the tenant-facing Right-to-Delete (RTD) and retention/SIEM administration RPCs. Every RPC is tenant-scoped and gated by clearance checks at the gateway; see LLD docs/lld/ wave4-lld-19-rtd-engine.md.
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| RequestDeletion | RequestDeletionRequest | RequestDeletionResponse | RequestDeletion accepts a tenant-initiated RTD. Caller must be a platform-admin. Founder Q2 dual-control — returns an attestation token which must be presented to AttestDeletion by a DIFFERENT admin within 72 h. |
| AttestDeletion | AttestDeletionRequest | AttestDeletionResponse | AttestDeletion consumes the one-time attestation token and transitions the request to 'queued'. |
| GetStatus | GetStatusRequest | GetStatusResponse | GetStatus returns the progress of one request. |
| ListRequests | ListRequestsRequest | ListRequestsResponse | ListRequests returns a page of requests for the tenant. |
| CancelRequest | CancelRequestRequest | CancelRequestResponse | CancelRequest aborts an in-flight RTD. Only QUEUED / AWAITING_ATTESTATION / early-PURGE (no scope completed) are allowed. |
| GetScopeCoverage | GetScopeCoverageRequest | GetScopeCoverageResponse | GetScopeCoverage returns the current classregistry snapshot. |
| ConfigureRetention | ConfigureRetentionRequest | ConfigureRetentionResponse | ── Retention policy RPCs (LLD 20) ───────────────────────────── |
ConfigureRetention writes / updates a tenant retention override for one scope. Validated against the platform floor/ceiling: rejected with InvalidArgument when the requested TTL falls outside [floor, ceiling]. Tenant admin only. | | GetRetentionConfig | GetRetentionConfigRequest | GetRetentionConfigResponse | GetRetentionConfig returns the effective retention policy for one scope: (ttl_days, source, action). | | ListRetentionOverrides | ListRetentionOverridesRequest | ListRetentionOverridesResponse | ListRetentionOverrides returns every override configured for the caller's tenant. | | ConfigureSiemEndpoint | ConfigureSiemEndpointRequest | ConfigureSiemEndpointResponse | ── SIEM endpoint RPCs (LLD 21) ────────────────────────────────
ConfigureSiemEndpoint upserts the tenant's SIEM webhook endpoint. The HMAC secret is returned ONCE in the response; subsequent reads via GetSiemEndpoint never expose it. LLD 21 (#464). | | GetSiemEndpoint | GetSiemEndpointRequest | GetSiemEndpointResponse | GetSiemEndpoint returns the tenant's SIEM endpoint configuration minus the HMAC secret (secret is vault-only). LLD 21 (#464). | | DeleteSiemEndpoint | DeleteSiemEndpointRequest | DeleteSiemEndpointResponse | DeleteSiemEndpoint removes the tenant's SIEM endpoint configuration. The historical siem_export_events ledger is PRESERVED (audit proof). LLD 21 (#464). |
upsquad/compliance/v1/dataclass_registry.proto
CreateDataClassRequest
CreateDataClassRequest adds a new registry entry. Returns
AlreadyExists if entry.name collides with an existing row.
| Field | Type | Label | Description |
|---|---|---|---|
| entry | DataClassEntry | entry is the new row to insert. All mutable fields are validated. |
CreateDataClassResponse
CreateDataClassResponse returns the persisted row.
| Field | Type | Label | Description |
|---|---|---|---|
| entry | DataClassEntry | entry is the persisted row including server-stamped timestamps. |
DataClassEntry
DataClassEntry is a single registry row. name is the primary
key and the only field that cannot be updated (renames would
invalidate every DataClass badge consumer). The name value
SHOULD correspond to a DataClass enum value (compliance.proto)
but is stored as a string so the registry can track values the
runtime does not yet recognise — seed-script authors are
responsible for keeping the two in sync.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | name is the registry key. Immutable after create. | |
| severity | string | severity ranks the regulatory handling cost. One of "low", "medium", "high", "critical". | |
| description | string | description is the human-readable gloss surfaced on badges and in compliance reports. | |
| colour | string | colour is the hex token ("#RRGGBB" — including the hash) used by B10's badge renderer. | |
| compliance_tags | string | repeated | compliance_tags lists regulatory regimes that apply (e.g. "gdpr", "ccpa", "hipaa", "pci"). Used by governance reports. |
| created_at | google.protobuf.Timestamp | created_at is server-stamped on Create; read-only. | |
| updated_at | google.protobuf.Timestamp | updated_at is server-stamped on every successful Update; read-only. |
DeleteDataClassRequest
DeleteDataClassRequest removes a registry row by name.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | name is the registry key to delete. |
DeleteDataClassResponse
DeleteDataClassResponse is deliberately empty — success is signalled by the absence of an error.
GetDataClassRequest
GetDataClassRequest identifies a single registry row by name.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | name is the registry primary key. |
GetDataClassResponse
GetDataClassResponse carries the requested registry row.
| Field | Type | Label | Description |
|---|---|---|---|
| entry | DataClassEntry | entry is the matched registry row. |
ListDataClassesRequest
ListDataClassesRequest is deliberately empty — the registry is platform-global and returned in full.
ListDataClassesResponse
ListDataClassesResponse carries every registry row.
| Field | Type | Label | Description |
|---|---|---|---|
| entries | DataClassEntry | repeated | entries is every row in the registry, ordered by name. |
UpdateDataClassRequest
UpdateDataClassRequest replaces metadata on an existing row.
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | name identifies the row to update. Immutable — edits to name must go through Delete + Create. | |
| entry | DataClassEntry | entry carries the new metadata. Its name field is ignored; the path component above wins. |
UpdateDataClassResponse
UpdateDataClassResponse returns the persisted row.
| Field | Type | Label | Description |
|---|---|---|---|
| entry | DataClassEntry | entry is the persisted row after update, with a refreshed updated_at. |
DataClassRegistryService
DataClassRegistryService manages the platform-global Data Class catalog. There is NO tenant scoping — this registry is consumed cross-tenant by governance and badge-rendering code paths.
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GetDataClass | GetDataClassRequest | GetDataClassResponse | GetDataClass returns a single registry entry by name. Read clearance L3 — tenant admin can inspect the catalog. |
| ListDataClasses | ListDataClassesRequest | ListDataClassesResponse | ListDataClasses returns every registry entry. Read clearance L3. |
| CreateDataClass | CreateDataClassRequest | CreateDataClassResponse | CreateDataClass adds a new registry entry. L5 — platform catalog mutation. |
| UpdateDataClass | UpdateDataClassRequest | UpdateDataClassResponse | UpdateDataClass replaces metadata on an existing entry. L5. |
| DeleteDataClass | DeleteDataClassRequest | DeleteDataClassResponse | DeleteDataClass removes an entry by name. L5. |
Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
|---|---|---|---|---|---|---|---|---|
| double | double | double | float | float64 | double | float | Float | |
| float | float | float | float | float32 | float | float | Float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |