Services
ScheduleService
(synq.schedule.v1.ScheduleService) ScheduleService provides schedule evaluation utilities.PreviewSchedules
PreviewSchedules (PreviewSchedulesRequest) PreviewSchedulesResponse PreviewSchedules returns the next occurrences for one or more schedule expressions. Never fails at the RPC level; per-schedule errors are returned in the response items. Response items match request items by index.PlatformsService
(synq.platforms.v1.PlatformsService) PlatformsService is a service for managing Platforms and Integrations.SetPlatformAuthentication
SetPlatformAuthentication (SetPlatformAuthenticationRequest) SetPlatformAuthenticationResponseCommitsService
(synq.git.commits.v1.CommitsService)GetDiffByChangeId
GetDiffByChangeId (GetDiffByChangeIdRequest) GetDiffByChangeIdResponseGetDiffByCommit
GetDiffByCommit (GetDiffByCommitRequest) GetDiffByCommitResponseOwnersService
(synq.owners.v1.OwnersService) OwnersService manages owners and their ownerships — the “alert routing as code” surface. An owner is a named responsible party with notification channels (contacts); an ownership assigns a set of assets to an owner and configures the alerts routed to it. Owner is the resource, ownership its sub-resource: an ownership is meaningless without its owner, and deleting an owner deletes its ownerships. Ids are opaque UUIDs supplied by the caller, which makes writes idempotent (a retried create converges instead of duplicating). Mutable fields are optional on the Upsert calls: a set field is written, an omitted field is left unchanged. Pass theetag you last read to guard against overwriting a
concurrent edit.
Related: synq.dataproducts.v2.DataproductsService (an ownership can own a
whole data product), synq.alerts.v1.AlertsService (how the configured alerts
are reported), and synq.users.v1.UsersService (resolve the users behind
UserContact and Slack/Teams mentions).
UpsertOwner
UpsertOwner (UpsertOwnerRequest) UpsertOwnerResponse Create or update an owner. The id is supplied by the caller (a UUID); repeating the same request converges to the same owner. Mutable fields are optional: a set field is written, an omitted field is left unchanged. Passetag to guard against overwriting a concurrent edit.
BatchGetOwners
BatchGetOwners (BatchGetOwnersRequest) BatchGetOwnersResponse Fetch multiple owners by id. Ids that do not exist (or, unlessinclude_deleted is set, are deleted) are omitted from the response rather
than causing an error.
ListOwners
ListOwners (ListOwnersRequest) ListOwnersResponse List the owners in the workspace, paginated.DeleteOwner
DeleteOwner (DeleteOwnerRequest) DeleteOwnerResponse Delete an owner and all of its ownerships. Idempotent — deleting an already-deleted or unknown owner succeeds. Soft-deletes by default; setpurge to hard-delete and release the id. Pass etag to guard against
deleting a concurrently-edited owner.
UpsertOwnership
UpsertOwnership (UpsertOwnershipRequest) UpsertOwnershipResponse Create or update an ownership under an owner. The ownership id is supplied by the caller (a UUID). Assigning a data product that is already owned by a different ownership moves it (the previous ownership of that product is removed), matching the app.ListOwnerships
ListOwnerships (ListOwnershipsRequest) ListOwnershipsResponse List the ownerships of an owner, paginated.BatchGetOwnerships
BatchGetOwnerships (BatchGetOwnershipsRequest) BatchGetOwnershipsResponse Fetch multiple ownerships by id (across owners). Ids that do not exist (or, unlessinclude_deleted is set, are deleted) are omitted.
DeleteOwnership
DeleteOwnership (DeleteOwnershipRequest) DeleteOwnershipResponse Delete an ownership by id. Idempotent — deleting an already-deleted or unknown ownership succeeds. Passetag to guard against deleting a
concurrently-edited ownership.
NLQueryService
(synq.queries.v1.NLQueryService) NLQueryService generates structured Query protos from natural language descriptions using an LLM.GenerateQuery
GenerateQuery (GenerateQueryRequest) GenerateQueryResponse GenerateQuery generates a Query from a natural language description.IntegrationsService
(synq.integrations.v1.IntegrationsService) IntegrationsService manages connections from Coalesce Quality to your data systems (warehouses, databases, and transformation tools). Concurrency: every integration carries an opaqueetag. Read it from
GetIntegration / ListIntegrations, then pass it back on
UpdateIntegration / DeleteIntegration to ensure you modify the version you
last saw. A stale etag is rejected with ABORTED (HTTP 409). Omit
the etag for last-write-wins.
Quota: each workspace has a limit on the number of integrations. Creating
beyond the limit is rejected with RESOURCE_EXHAUSTED.
Secrets: credential fields (passwords, tokens, keys) are write-only. They are
masked (returned empty) on every read. On update, omit a secret to keep it,
send a new value to rotate it, or send an explicit empty string to clear it
(where the field is optional).
CreateIntegration
CreateIntegration (CreateIntegrationRequest) CreateIntegrationResponse Create a new integration. The server assigns the id and returns the created integration including any generated outputs. The integration type is fixed by the populatedconfig variant and cannot
be changed later. Counts against the per-workspace quota.
Not safe to blindly retry: the server mints a new id on each call, so a
retried create produces a second integration. On a transport error, list /
look up before retrying.
GetIntegration
GetIntegration (GetIntegrationRequest) GetIntegrationResponse Fetch a single integration by id. Secret config fields are masked.ListIntegrations
ListIntegrations (ListIntegrationsRequest) ListIntegrationsResponse List all integrations in the workspace (optionally filtered by enabled state). Secret config fields are masked. The full set is returned in one response — a workspace has only a handful of integrations.BatchGetIntegrations
BatchGetIntegrations (BatchGetIntegrationsRequest) BatchGetIntegrationsResponse Fetch multiple integrations by id in one call. Ids not found (or not in the workspace) are omitted from the response rather than erroring.UpdateIntegration
UpdateIntegration (UpdateIntegrationRequest) UpdateIntegrationResponse Update an integration. Theconfig is replaced wholesale — send the
complete desired config (omitted secrets are preserved; see the
service-level secret semantics). title is patch-style: omit it to leave
it unchanged.
The config variant must match the existing integration’s type; changing
the type is rejected with FAILED_PRECONDITION.
Safe to retry: addresses an existing id and converges to the same state.
With an etag set, a retry after success returns ABORTED
(the version moved) — treat that as “already applied”.
DeleteIntegration
DeleteIntegration (DeleteIntegrationRequest) DeleteIntegrationResponse Delete an integration. The integration stops being scheduled and is removed from listings. Safe to retry (deleting an already-deleted id is a no-op).EnableIntegration
EnableIntegration (EnableIntegrationRequest) EnableIntegrationResponse Enable a previously disabled integration. No-op if already enabled.DisableIntegration
DisableIntegration (DisableIntegrationRequest) DisableIntegrationResponse Disable an integration without deleting it. The configuration is kept but the integration is no longer scheduled or refreshed. No-op if already disabled.RefreshIntegration
RefreshIntegration (RefreshIntegrationRequest) RefreshIntegrationResponse Trigger an immediate, ad-hoc refresh of an integration. Available only for types whoseCapabilities.can_refresh is true; otherwise rejected with
FAILED_PRECONDITION.
Not idempotent: each call enqueues a new refresh.
GetIntegrationHealth
GetIntegrationHealth (GetIntegrationHealthRequest) GetIntegrationHealthResponse Return current health plus a paginated history of recent runs for an integration. When pagination is omitted, a bounded recent window is returned (the most recent runs from the last 7 days).IamService
(synq.auth.iam.v1.IamService)Iam
Iam (IamRequest) IamResponse Iam returns information about caller authenticationAtlanProviderService
(synq.extensions.atlan.provider.v1.AtlanProviderService)GetAtlanConnections
GetAtlanConnections (GetAtlanConnectionsRequest) GetAtlanConnectionsResponseGetAtlanDataProducts
GetAtlanDataProducts (GetAtlanDataProductsRequest) GetAtlanDataProductsResponseGetAtlanDomains
GetAtlanDomains (GetAtlanDomainsRequest) GetAtlanDomainsResponseAtlanWorkflowService
(synq.extensions.atlan.workflows.v1.AtlanWorkflowService)SetConnectionMappings
SetConnectionMappings (SetConnectionMappingsRequest) SetConnectionMappingsResponseRemoveConnectionMappings
RemoveConnectionMappings (RemoveConnectionMappingsRequest) RemoveConnectionMappingsResponseGetConnectionMappings
GetConnectionMappings (GetConnectionMappingsRequest) GetConnectionMappingsResponseGetProductMappings
GetProductMappings (GetProductMappingsRequest) GetProductMappingsResponseGetDomainMappings
GetDomainMappings (GetDomainMappingsRequest) GetDomainMappingsResponseSynchronize
Synchronize (SynchronizeRequest) SynchronizeResponse Run a synchronization job for the integration.FetchRuns
FetchRuns (FetchRunsRequest) FetchRunsResponseSetMappingToggles
SetMappingToggles (SetMappingTogglesRequest) SetMappingTogglesResponseGetMappingToggles
GetMappingToggles (GetMappingTogglesRequest) GetMappingTogglesResponseAtlanIntegrationService
(synq.extensions.atlan.integrations.v1.AtlanIntegrationService)Upsert
Upsert (UpsertRequest) UpsertResponse Upserts an integration and validates it by checking if the provided API URL and token are valid.Ping
Ping (PingRequest) PingResponse Pings Atlan with the given connection credentials.Get
Get (GetRequest) GetResponseRemove
Remove (RemoveRequest) RemoveResponseActivate
Activate (ActivateRequest) ActivateResponse Activate or deactivate the integration.IssuesService
(synq.issues.v2.IssuesService) IssuesService is a service for managing Issues.BatchGetIssues
BatchGetIssues (BatchGetIssuesRequest) BatchGetIssuesResponseListIssues
ListIssues (ListIssuesRequest) ListIssuesResponseMarkInvestigating
MarkInvestigating (MarkInvestigatingRequest) MarkInvestigatingResponse Mark issue as being investigated.MarkFixed
MarkFixed (MarkFixedRequest) MarkFixedResponse Mark issue as fixed.MarkExpected
MarkExpected (MarkExpectedRequest) MarkExpectedResponse Mark issue as expected.MarkNoActionNeeded
MarkNoActionNeeded (MarkNoActionNeededRequest) MarkNoActionNeededResponse Mark issue as no action needed.ClearStatus
ClearStatus (ClearStatusRequest) ClearStatusResponse Clear the triage status of an issue, returning it to an untriaged state. Reverses a previous MarkInvestigating / MarkFixed / MarkExpected / MarkNoActionNeeded so the issue shows up again in open/untriaged views.PostComment
PostComment (PostCommentRequest) PostCommentResponse Post a comment on an issue.IssuesService
(synq.issues.issues.v1.IssuesService) IssuesService is a service for managing Issues.BatchGetIssues
BatchGetIssues (BatchGetIssuesRequest) BatchGetIssuesResponseListIssues
ListIssues (ListIssuesRequest) ListIssuesResponseMarkInvestigating
MarkInvestigating (MarkInvestigatingRequest) MarkInvestigatingResponse Mark issue as being investigated.MarkFixed
MarkFixed (MarkFixedRequest) MarkFixedResponse Mark issue as fixed.MarkExpected
MarkExpected (MarkExpectedRequest) MarkExpectedResponse Mark issue as expected.MarkNoActionNeeded
MarkNoActionNeeded (MarkNoActionNeededRequest) MarkNoActionNeededResponse Mark issue as no action needed.PostComment
PostComment (PostCommentRequest) PostCommentResponse Post a comment on an issue.AlertsService
(synq.alerts.services.v1.AlertsService) AlertsService provides operations for managing alert configurations.Create
Create (CreateRequest) CreateResponse Create a new alert configuration.List
List (ListRequest) ListResponse Retrieves a list of alert configurations based on filters.BatchGet
BatchGet (BatchGetRequest) BatchGetResponse Get multiple alert configurations by their identifiers.Update
Update (UpdateRequest) UpdateResponse Update an existing alert configuration. The config can be identified by either ID or FQN.Delete
Delete (DeleteRequest) DeleteResponse Delete an existing alert configuration. The config can be identified by either ID or FQN.ToggleEnabled
ToggleEnabled (ToggleEnabledRequest) ToggleEnabledResponse Enables or disables an existing alert configuration. The config can be identified by either ID or FQN.ConnectionsService
(synq.agent.dwh.v1.ConnectionsService) ConnectionsService provides methods for managing data warehouse connections. These connections represent data warehouse integrations configured in Coalesce Quality that can be used by:- DWH Agent: For metadata extraction and data quality monitoring
- Coalesce Quality Scout: On-premise AI agent for data exploration and analysis Both agents share the same or very similar configuration file format.
ListConnections
ListConnections (ListConnectionsRequest) ListConnectionsResponse ListConnections retrieves data warehouse connections for a workspace. Converts Coalesce Quality integration configurations to a standardized connection format. Requires workspace context in the request metadata.GenerateConnectionsYaml
GenerateConnectionsYaml (GenerateConnectionsYamlRequest) GenerateConnectionsYamlResponse GenerateConnectionsYaml converts data warehouse connections to YAML configuration format. The generated YAML can be used directly as a config file for DWH Agent or Coalesce Quality Scout. Secret fields are replaced with environment variable placeholders (e.g.,${CONNECTION_ID_PASSWORD}).
Documentation: https://docs.synq.io/dw-integrations/agent#config-file-schema
DwhAgentService
(synq.agent.dwh.v1.DwhAgentService)Connect
Connect (ConnectRequest) ConnectResponse buf:lint:ignore RPC_NO_CLIENT_STREAMINGAuditLogService
(synq.agent.recon.v1.AuditLogService) AuditLogService provides methods to ingest and query reconciliation audit logs.IngestAuditLog
IngestAuditLog (IngestAuditLogRequest) IngestAuditLogResponse IngestAuditLog stores a reconciliation run audit log.ListAuditLogs
ListAuditLogs (ListAuditLogsRequest) ListAuditLogsResponse ListAuditLogs returns audit logs ordered from newest to oldest, optionally filtered by suite and time range.GetAuditLog
GetAuditLog (GetAuditLogRequest) GetAuditLogResponse GetAuditLog returns a single audit log by invocation ID.SuiteDeploymentService
(synq.agent.recon.v1.SuiteDeploymentService) SuiteDeploymentService is the platform plane of reconciliation. SuiteConfigService is the developer/authoring sandbox (edit, version, run ad-hoc with your own credentials — preview-only, no Entity, no Run, no Issue). A deployment is what SYNQ actually runs on the workspace’s behalf: a frozen snapshot of a suite config, mapped to workspace-level SYNQ integrations, optionally scheduled or triggerable by API. Identity: every deployment has a stable deployment_id (UUIDv7) assigned on first promote. It survives re-promotes, schedule/mapping changes, and pause/resume. Downstream AssetCommand / RunCommand publication keys off deployment_id so Entity identity does not fragment on promote churn.PromoteSuite
PromoteSuite (PromoteSuiteRequest) PromoteSuiteResponse Promote a suite config into production. Freezes a snapshot of the config and stores the connection → integration mapping. Creates a new deployment on first call; re-promotes the same suite_id (reusing its deployment_id) on subsequent calls.UnpromoteSuite
UnpromoteSuite (UnpromoteSuiteRequest) UnpromoteSuiteResponse Unpromote a deployment. Marks it inactive; scheduler and API triggers stop. Deployment history is preserved; re-promoting the same suite_id reuses the original deployment_id.UpdateDeploymentSchedule
UpdateDeploymentSchedule (UpdateDeploymentScheduleRequest) UpdateDeploymentScheduleResponse Change schedule and/or triggerable_by_api on an existing deployment without re-promoting the config snapshot or touching mappings.UpdateDeploymentMappings
UpdateDeploymentMappings (UpdateDeploymentMappingsRequest) UpdateDeploymentMappingsResponse Rewire connection → integration mappings on an existing deployment without re-promoting the config snapshot.UpdateDeploymentAnnotations
UpdateDeploymentAnnotations (UpdateDeploymentAnnotationsRequest) UpdateDeploymentAnnotationsResponse Replace the deployment-level annotation overlay on an existing deployment. Annotations are merged with suite-level and case-level annotations from the frozen suite snapshot at promote/update time, then surfaced on PromotedReconSuiteMetadata / PromotedReconCaseMetadata for every asset under the deployment.UpdateDeploymentCaseImpacts
UpdateDeploymentCaseImpacts (UpdateDeploymentCaseImpactsRequest) UpdateDeploymentCaseImpactsResponse Patch the per-case CaseFailureImpact map on an existing deployment without re-promoting the suite snapshot. Useful for “apply to all” FE actions and one-off toggles between RAISE_ISSUE_ON_TABLES and SHOW_ON_TABLES. Re-renders PromotedReconCaseMetadata so the error_tables / shown_tables split reflects the new policy immediately. Merge semantics: keys present in the request overwrite the stored value for that case. Keys absent from the request are left untouched (no implicit reset). Sending CASE_FAILURE_IMPACT_UNSPECIFIED clears the override for that case (falls back to the default RAISE_ISSUE_ON_TABLES). Unknown case names are rejected with INVALID_ARGUMENT so the FE catches typos before the deployment is mutated.PauseDeployment
PauseDeployment (PauseDeploymentRequest) PauseDeploymentResponse Pause a deployment. Scheduled and API-triggered runs are suppressed untiluntil is reached, or indefinitely when until is absent.
ResumeDeployment
ResumeDeployment (ResumeDeploymentRequest) ResumeDeploymentResponse Resume a paused deployment.GetSuiteDeployment
GetSuiteDeployment (GetSuiteDeploymentRequest) GetSuiteDeploymentResponse Fetch a deployment by suite_id or deployment_id.ListSuiteDeployments
ListSuiteDeployments (ListSuiteDeploymentsRequest) ListSuiteDeploymentsResponse List deployments for the caller’s workspace. Filters support answering “what is SYNQ running on behalf of this workspace?” and “which deployments use this SYNQ integration?”.ListSuiteDeploymentHistory
ListSuiteDeploymentHistory (ListSuiteDeploymentHistoryRequest) ListSuiteDeploymentHistoryResponse List the append-only history of a deployment (every promote, re-promote, schedule/mapping change, pause/resume, unpromote).TriggerDeployment
TriggerDeployment (TriggerDeploymentRequest) TriggerDeploymentResponse Trigger an on-demand execution of a promoted deployment. Enqueues a run using the frozen suite snapshot and connection mappings stored on the deployment row — execution uses platform integration credentials, not the caller’s. Returns the freshly-allocatedrun_id so callers can poll
RunStateService for status.
Preconditions:
- Deployment must exist and be
active. - Deployment must have
triggerable_by_api = true(FAILED_PRECONDITION otherwise). - Deployment must not be paused (FAILED_PRECONDITION when
paused_untilis set and in the future).
YamlService
(synq.agent.recon.v1.YamlService) YamlService provides stateless conversion between YAML config format and proto. This is useful for UI editors that need to display/edit suite configs as YAML.ParseYaml
ParseYaml (ParseYamlRequest) ParseYamlResponse ParseYaml parses a YAML config string into a ReconcilationSuite proto. Only the suite configuration fields are extracted (connections are ignored).RenderYaml
RenderYaml (RenderYamlRequest) RenderYamlResponse RenderYaml renders a ReconcilationSuite proto as a YAML config string.SuiteConfigService
(synq.agent.recon.v1.SuiteConfigService) SuiteConfigService manages reconciliation suite configurations. Managed suites are long-lived, optionally scheduled configs identified by suite_name. Ad-hoc suites are one-off configs that get a generated UUID as suite_id.UpsertSuiteConfig
UpsertSuiteConfig (UpsertSuiteConfigRequest) UpsertSuiteConfigResponse Upsert a managed suite config. Creates if new, updates with new version if exists. The suite_id equals the suite name (from ReconcilationSuite.name). Validates the ReconcilationSuite proto. Does NOT validate connections exist.SubmitAdhocSuite
SubmitAdhocSuite (SubmitAdhocSuiteRequest) SubmitAdhocSuiteResponse Submit an ad-hoc suite for one-off execution. Provide either an inline suite or a suite_id referencing an existing managed suite. Optionally apply environment overrides before execution. The client-provided invocation_id ensures idempotency.GetSuiteConfig
GetSuiteConfig (GetSuiteConfigRequest) GetSuiteConfigResponse Get the latest version of a suite config by suite_id. Works for both managed (suite_id = suite_name) and ad-hoc (suite_id = UUID) configs.ListSuiteConfigs
ListSuiteConfigs (ListSuiteConfigsRequest) ListSuiteConfigsResponse List latest suite configs with filtering and pagination. By default returns only managed suites. Set include_adhoc to also include ad-hoc configs.DeleteSuiteConfig
DeleteSuiteConfig (DeleteSuiteConfigRequest) DeleteSuiteConfigResponse Delete a managed suite config (soft delete — inserts a deleted version).ListSuiteConfigVersions
ListSuiteConfigVersions (ListSuiteConfigVersionsRequest) ListSuiteConfigVersionsResponse Get version history for a suite config.GetSuiteConfigVersion
GetSuiteConfigVersion (GetSuiteConfigVersionRequest) GetSuiteConfigVersionResponse Get a specific historical version of a suite config.RunStateService
(synq.agent.recon.v1.RunStateService) RunStateService exposes lifecycle status of reconciliation runs. Polling-based read API — clients fetch the current state for one or more suites and display progress. No notifications are emitted; clients re-poll to observe transitions.BatchReconciliationRunState
BatchReconciliationRunState (BatchReconciliationRunStateRequest) BatchReconciliationRunStateResponse BatchReconciliationRunState returns the latest concluded run and any ongoing (SCHEDULED or IN_PROGRESS) run for each suite_id. Returned map is keyed by suite_id. Suites with no recorded runs are omitted from the response map.ListReconciliationRunState
ListReconciliationRunState (ListReconciliationRunStateRequest) ListReconciliationRunStateResponse ListReconciliationRunState returns runs filtered by status and/or suite_id. Sorted newest-first by scheduled_at.CancelReconciliationRun
CancelReconciliationRun (CancelReconciliationRunRequest) CancelReconciliationRunResponse CancelReconciliationRun marks a SCHEDULED or IN_PROGRESS run as CANCELLED so the suite is no longer “occupied” by a stuck occurrence — used to recover from local-dev / executor outages where a run was queued but never executed. Already-terminal runs are returned unchanged. Idempotent: calling on an already-cancelled run is a no-op. Note: this only updates the run-state row. The corresponding execution-job row is independent — when an executor eventually wakes up to that job it will see the run is CANCELLED and skip.SreAgentService
(synq.agent.sre.v1.SreAgentService)Connect
Connect (ConnectRequest) ConnectResponse buf:lint:ignore RPC_NO_CLIENT_STREAMINGGetConfig
GetConfig (GetConfigRequest) GetConfigResponse GetConfig returns the Scout configuration (system prompts + DWH connection summary) for the caller’s workspace. Authorized for the agent itself (SCOPE_SRE_AGENT), for any caller with workspace integration-read access (SCOPE_INTEGRATION_READ) so admins / owners can inspect the live prompts via synqctl / fe-app without an agent token, and for MCP read tokens (SCOPE_MCP_READ) — matches the sibling DWH ConnectionsService scope shape.ListPromptSuggestions
ListPromptSuggestions (ListPromptSuggestionsRequest) ListPromptSuggestionsResponse ListPromptSuggestions returns prompt-improvement suggestions recorded for the caller’s workspace. Default scope is pending suggestions only; set statuses to include accepted / dismissed / superseded rows. Sorted newest first.AcceptPromptSuggestion
AcceptPromptSuggestion (AcceptPromptSuggestionRequest) AcceptPromptSuggestionResponse AcceptPromptSuggestion applies a pending suggestion to the matching SRE agent prompt field. The applied value issuggested_value unless edited_value is set.
Returns FAILED_PRECONDITION when the live prompt has drifted from the suggestion’s
baseline_value since it was produced — the client should re-fetch and re-render.
DismissPromptSuggestion
DismissPromptSuggestion (DismissPromptSuggestionRequest) DismissPromptSuggestionResponse DismissPromptSuggestion marks a pending suggestion as dismissed with an optional free-text reason. The SRE agent configuration is left untouched.RecordPromptSuggestion
RecordPromptSuggestion (RecordPromptSuggestionRequest) RecordPromptSuggestionResponse RecordPromptSuggestion is the producer-side endpoint used by the offline analyser to register a new suggestion for a workspace. The server snapshots the current value of the targeted prompt field asbaseline_value. Any
pending suggestion for the same (workspace, field) pair is marked as
superseded before the new row is inserted. Returns the recorded suggestion,
or an empty response when the baseline already matches suggested_value
(no-op).
Authorized for the agent / offline analyser (SCOPE_SRE_AGENT) and for
admins / owners with workspace integration-edit access
(SCOPE_INTEGRATION_EDIT), so an admin running synqctl can publish a
suggestion against a customer workspace via x-synq-workspace-override
without minting an agent token.
LlmService
(synq.agent.sre.v1.LlmService) Service for evaluating LLM requests and producing structured output.Evaluate
Evaluate (EvaluateRequest) EvaluateResponse Evaluates an LLM request with a structured output schema and message history. The main prompt should be constant as it will be cached for efficiency.TriageService
(synq.agent.sre.v1.TriageService) Service for managing issue triage operations, allowing LLM agents to conclude investigations and record evidence during the triage process.Conclude
Conclude (ConcludeRequest) ConcludeResponse Concludes the triage investigation for one or more issues by providing a structured conclusion and supporting evidence. This method is used by the LLM agent to finalize its investigation.RecordEvidence
RecordEvidence (RecordEvidenceRequest) RecordEvidenceResponse Records evidence collected during the triage investigation. This method allows the LLM agent to incrementally add evidence as it discovers information during the investigation process.BatchLatestConclusions
BatchLatestConclusions (BatchLatestConclusionsRequest) BatchLatestConclusionsResponse Retrieves the latest triage state for one or more issues. This method is used by the LLM agent to retrieve the current state of the issues it is working on.BatchTriageState
BatchTriageState (BatchTriageStateRequest) BatchTriageStateResponse Retrieves the triage state for one or more issues. This method is used by the LLM agent to retrieve the current state of the issues it is working on.ListTriageState
ListTriageState (ListTriageStateRequest) ListTriageStateResponse Retrieves the triage state for one or more issues. This method is used by the LLM agent to retrieve the current state of the issues it is working on.MarkAsInProgress
MarkAsInProgress (MarkAsInProgressRequest) MarkAsInProgressResponse Marks an issue as in progress. This method is used by the LLM agent to indicate that it has started working on an issue.MarkFailed
MarkFailed (MarkFailedRequest) MarkFailedResponse Marks an issue as failed triaging. This method is used by the LLM agent to indicate that it was unable to triage.FeatureRequestService
(synq.agent.sre.v1.FeatureRequestService) FeatureRequestService allows MCP clients to submit feature requests when users encounter missing capabilities. This is a last-resort service — it should only be used when no existing tool can fulfill the user’s request.SubmitFeatureRequest
SubmitFeatureRequest (SubmitFeatureRequestRequest) SubmitFeatureRequestResponse SubmitFeatureRequest submits a feature request to the Coalesce Quality product team. This method should only be called as a last resort when the user’s request cannot be fulfilled by any existing tool. It logs the request for product team review.TestsSuggestionStateService
(synq.agent.sre.v1.TestsSuggestionStateService)SuggestFor
SuggestFor (SuggestForRequest) SuggestForResponseGetActiveSuggestionStatesFor
GetActiveSuggestionStatesFor (GetActiveSuggestionStatesForRequest) GetActiveSuggestionStatesForResponseBatchSuggestionStates
BatchSuggestionStates (BatchSuggestionStatesRequest) BatchSuggestionStatesResponseListSuggestionStates
ListSuggestionStates (ListSuggestionStatesRequest) ListSuggestionStatesResponseMarkAsRunning
MarkAsRunning (MarkAsRunningRequest) MarkAsRunningResponseMarkAsCompleted
MarkAsCompleted (MarkAsCompletedRequest) MarkAsCompletedResponseMarkAsFailed
MarkAsFailed (MarkAsFailedRequest) MarkAsFailedResponseMarkAsCancelled
MarkAsCancelled (MarkAsCancelledRequest) MarkAsCancelledResponseUsersService
(synq.users.v1.UsersService)ListUsers
ListUsers (ListUsersRequest) ListUsersResponseBatchGetUsers
BatchGetUsers (BatchGetUsersRequest) BatchGetUsersResponseGetByAlias
GetByAlias (GetByAliasRequest) GetByAliasResponseGetByEmail
GetByEmail (GetByEmailRequest) GetByEmailResponseUpsertUserAliases
UpsertUserAliases (UpsertUserAliasesRequest) UpsertUserAliasesResponseDeleteUserAliases
DeleteUserAliases (DeleteUserAliasesRequest) DeleteUserAliasesResponseGetUserAliases
GetUserAliases (GetUserAliasesRequest) GetUserAliasesResponseGetUserIdentities
GetUserIdentities (GetUserIdentitiesRequest) GetUserIdentitiesResponse Returns all canonical identity strings for a user. If user_id is omitted, returns identities for the currently authenticated user. These identity strings can be passed to ListIssues(interacted_by_identities) to filter issues the user has interacted with. Format: “synq:<user_id>”, “email:<email>”, “slack:<slack_user_id>”, “msteams:<member_id>”, etc.TriggerService
(synq.datachecks.v1.TriggerService) TriggerService provides synchronous execution of datachecks on entities.TriggerDatachecks
TriggerDatachecks (TriggerDatachecksRequest) TriggerDatachecksResponse TriggerDatachecks executes datachecks for the specified entities.TestSuggestionsService
(synq.datachecks.testsuggestions.v1.TestSuggestionsService)BatchCreateTestSuggestions
BatchCreateTestSuggestions (BatchCreateTestSuggestionsRequest) BatchCreateTestSuggestionsResponseBatchGetTestSuggestionsForEntities
BatchGetTestSuggestionsForEntities (BatchGetTestSuggestionsForEntitiesRequest) BatchGetTestSuggestionsForEntitiesResponseBatchAcceptTestSuggestions
BatchAcceptTestSuggestions (BatchAcceptTestSuggestionsRequest) BatchAcceptTestSuggestionsResponseBatchRejectTestSuggestions
BatchRejectTestSuggestions (BatchRejectTestSuggestionsRequest) BatchRejectTestSuggestionsResponseSqlTestsService
(synq.datachecks.sqltests.v1.SqlTestsService) SqlTestsService is a service for managing SqlTests.BatchUpsertSqlTests
BatchUpsertSqlTests (BatchUpsertSqlTestsRequest) BatchUpsertSqlTestsResponse Upsert SqlTests based on a unique ID.ListSqlTests
ListSqlTests (ListSqlTestsRequest) ListSqlTestsResponse List SqlTests for given annotations.BatchGetSqlTests
BatchGetSqlTests (BatchGetSqlTestsRequest) BatchGetSqlTestsResponse Get SqlTests by their IDs.BatchDeleteSqlTests
BatchDeleteSqlTests (BatchDeleteSqlTestsRequest) BatchDeleteSqlTestsResponse Delete SqlTests by their IDs.GetSqlTestAudit
GetSqlTestAudit (GetSqlTestAuditRequest) GetSqlTestAuditResponse Get SqlTest audit from a given execution ID in jwt token.MonitorInfoService
(synq.monitors.info.v1.MonitorInfoService)MonitorInfo
MonitorInfo (MonitorInfoRequest) MonitorInfoResponseDeploymentRulesService
(synq.monitors.automated_monitors.v1.DeploymentRulesService)GetDeployOverview
GetDeployOverview (GetDeployOverviewRequest) GetDeployOverviewResponseGetDeployDeleteOverview
GetDeployDeleteOverview (GetDeployDeleteOverviewRequest) GetDeployDeleteOverviewResponseDeleteDeploymentRule
DeleteDeploymentRule (DeleteDeploymentRuleRequest) DeleteDeploymentRuleResponseListDeploymentRules
ListDeploymentRules (ListDeploymentRulesRequest) ListDeploymentRulesResponseListDeploymentRulesForAsset
ListDeploymentRulesForAsset (ListDeploymentRulesForAssetRequest) ListDeploymentRulesForAssetResponseBatchGetDeploymentRules
BatchGetDeploymentRules (BatchGetDeploymentRulesRequest) BatchGetDeploymentRulesResponseUpsertDeploymentRule
UpsertDeploymentRule (UpsertDeploymentRuleRequest) UpsertDeploymentRuleResponseBatchUpdateDeploymentRuleTitle
BatchUpdateDeploymentRuleTitle (BatchUpdateDeploymentRuleTitleRequest) BatchUpdateDeploymentRuleTitleResponseDeployDeploymentRule
DeployDeploymentRule (DeployDeploymentRuleRequest) DeployDeploymentRuleResponseBatchDeployDeploymentRules
BatchDeployDeploymentRules (BatchDeployDeploymentRulesRequest) BatchDeployDeploymentRulesResponseBatchUpsertDeploymentRules
BatchUpsertDeploymentRules (BatchUpsertDeploymentRulesRequest) BatchUpsertDeploymentRulesResponseBatchDeleteDeploymentRules
BatchDeleteDeploymentRules (BatchDeleteDeploymentRulesRequest) BatchDeleteDeploymentRulesResponseHistoryService
(synq.monitors.history.v1.HistoryService)History
History (HistoryRequest) HistoryResponseCustomMonitorsService
(synq.monitors.custom_monitors.v1.CustomMonitorsService)BatchCreateMonitor
BatchCreateMonitor (BatchCreateMonitorRequest) BatchCreateMonitorResponseBatchUpdateMonitor
BatchUpdateMonitor (BatchUpdateMonitorRequest) BatchUpdateMonitorResponseBatchDeleteMonitor
BatchDeleteMonitor (BatchDeleteMonitorRequest) BatchDeleteMonitorResponseBatchUpdateMonitorMode
BatchUpdateMonitorMode (BatchUpdateMonitorModeRequest) BatchUpdateMonitorModeResponseConfigChangesOverview
ConfigChangesOverview (ConfigChangesOverviewRequest) ConfigChangesOverviewResponseBatchUpdateMonitorSeverity
BatchUpdateMonitorSeverity (BatchUpdateMonitorSeverityRequest) BatchUpdateMonitorSeverityResponseListConfigsMonitors
ListConfigsMonitors (ListConfigsMonitorsRequest) ListConfigsMonitorsResponseListMonitors
ListMonitors (ListMonitorsRequest) ListMonitorsResponseMonitorPredictionsService
(synq.monitors.predictions.v1.MonitorPredictionsService) Access to anomaly detection model predictions and raw metric timeseries.GetMonitorPredictions
GetMonitorPredictions (GetMonitorPredictionsRequest) GetMonitorPredictionsResponse Returns prediction timeseries for a monitor. The monitor must exist and not be deleted. Defaults to the monitor’s current metrics_version.GetEntityMetrics
GetEntityMetrics (GetEntityMetricsRequest) GetEntityMetricsResponse Returns raw metric timeseries for an entity. Identity-aware: resolves logical assets (e.g., dbt models) to their underlying physical tables.BatchGetLatestEntityMetrics
BatchGetLatestEntityMetrics (BatchGetLatestEntityMetricsRequest) BatchGetLatestEntityMetricsResponse Returns the most recent observed table-stats sample (row count, freshness) for each requested entity. Identity-aware: resolves logical assets to their underlying physical tables. Paths with no recent sample are omitted from the response rather than returned with empty values — callers should treat a missing entry as “no data”. Lookback matches GetEntityMetrics (30 days).IdentifierResolveService
(synq.entities.resolve.v1.IdentifierResolveService) IdentifierResolveService resolves identifiers to their Coalesce Quality paths and identities.BatchResolveIdentifiers
BatchResolveIdentifiers (BatchResolveIdentifiersRequest) BatchResolveIdentifiersResponse Resolve multiple identifiers, returning their Coalesce Quality paths and identity groups.DatabaseCoordinatesService
(synq.entities.coordinates.v1.DatabaseCoordinatesService) DatabaseCoordinatesService is a service for getting database coordinates of Entities.BatchDatabaseCoordinates
BatchDatabaseCoordinates (BatchDatabaseCoordinatesRequest) BatchDatabaseCoordinatesResponse Get multiple DatabaseCoordinates for identifiers.BatchIdsByCoordinates
BatchIdsByCoordinates (BatchIdsByCoordinatesRequest) BatchIdsByCoordinatesResponse Given database FQN return possible entity ids.LineageService
(synq.entities.lineage.v1.LineageService) LineageService allows you to fetch:- Entity level lineage from a starting point of one or more entities.
- Column Level lineage from a starting point of multiple columns of a single entity.
GetLineage
GetLineage (GetLineageRequest) GetLineageResponseImpactService
(synq.entities.impact.v1.ImpactService)GetImpact
GetImpact (GetImpactRequest) GetImpactResponseAnnotationsService
(synq.entities.annotations.v1.AnnotationsService) AnnotationsService provides operations for managing and querying entity annotations. Annotations are key-value pairs that can be attached to entities for categorization and filtering.ListAnnotations
ListAnnotations (ListAnnotationsRequest) ListAnnotationsResponse List all available annotations with their usage counts across entities.ChangesService
(synq.entities.changes.v1.ChangesService) ChangesService provides functionality to track and retrieve all types of changes to data entities. This unified service returns ALL change types for an entity:- Git commits: Changes to code files (dbt models, SQL files) tracked in version control
- Schema changes: Database schema modifications (columns added/removed/changed)
- SQL definition changes: View/materialized view definition updates detected by Coalesce Quality
- For git commits: structured statistics (directories, file types, top changes)
- For schema changes: detailed column-level diffs
- For SQL changes: before/after SQL definitions
- “What changed in the last week for table X?” → Returns git commits, schema changes, SQL changes
- “Show me all commits affecting this dbt model” → Returns git commits with lineage context
- “What schema changes happened to this table?” → Returns schema changes detected by Coalesce Quality
List
List (ListRequest) ListResponse Retrieves the complete change history for specified entities. Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first). Changes include lineage context showing upstream_distance when changes affect dependencies.BatchChange
BatchChange (BatchChangeRequest) BatchChangeResponse BatchChange retrieves multiple entity changes by their IDs in a single request. This is an optimized endpoint for fetching specific changes when you already know their IDs, rather than listing changes for an entity.EntityIssuesService
(synq.entities.status.v1.EntityIssuesService) EntityIssuesService is the service which retrieves entity issues status.GetIssuesStatus
GetIssuesStatus (GetIssuesStatusRequest) GetIssuesStatusResponse Get specific entity status by its identifier.BatchGetIssuesStatus
BatchGetIssuesStatus (BatchGetIssuesStatusRequest) BatchGetIssuesStatusResponse Get multiple entity statuses by their identifiers.EntityIncidentsService
(synq.entities.status.v1.EntityIncidentsService) EntityIncidentsService is the service which retrieves entity status.GetIncidents
GetIncidents (GetIncidentsRequest) GetIncidentsResponse Get specific entity status by its identifier.BatchGetIncidents
BatchGetIncidents (BatchGetIncidentsRequest) BatchGetIncidentsResponse Get multiple entity statuses by their identifiers.OrchestrationService
(synq.entities.orchestration.v1.OrchestrationService) OrchestrationService provides information about orchestration relationships between entities. This includes relationships between Airflow tasks and transformation models (dbt, SQLMesh), as well as task-to-task dependencies.BatchOrchestration
BatchOrchestration (BatchOrchestrationRequest) BatchOrchestrationResponse BatchOrchestration retrieves orchestration relationships for multiple entities. For each entity, it returns both upstream entities (what orchestrates it) and downstream entities (what it orchestrates).ChecksCategoriesService
(synq.entities.checks.v1.ChecksCategoriesService) ChecksCategoriesService lets workspace admins set explicit category overrides on individual checks. An explicit category is the authoritative category for a check — it takes precedence over the categories computed by the workspace’s categorisation rules. It is a public API so customers can manage check categories programmatically; the same service is also mounted on the internal API. The workspace and the acting identity are always taken from the request context, never from the payload.UpsertCheckCategories
UpsertCheckCategories (UpsertCheckCategoriesRequest) UpsertCheckCategoriesResponse UpsertCheckCategories sets (or replaces) the explicit category for one or more checks. Each entry is the complete state for its check — both dimensions — so an emptycategory / governance_category means
“no explicit value for that dimension”.
DeleteCheckCategories
DeleteCheckCategories (DeleteCheckCategoriesRequest) DeleteCheckCategoriesResponse DeleteCheckCategories clears the explicit category (both dimensions) for the given checks. Checks fall back to their rule-computed categories afterwards.ListCheckCategories
ListCheckCategories (ListCheckCategoriesRequest) ListCheckCategoriesResponse ListCheckCategories returns every explicit check category in the caller’s workspace.ChecksCoverageService
(synq.entities.checks.v1.ChecksCoverageService) ChecksCoverageService provides functionality to retrieve and analyze the coverage of checks for entities in the system. It helps track which checks are applied to entities, including both direct checks and propagated checks from upstream entities.GetCoverage
GetCoverage (GetCoverageRequest) GetCoverageResponse GetCoverage retrieves the coverage of checks for a specific entity. This includes both direct checks applied to the entity and checks propagated from upstream entities. The response provides detailed information about:- Table-level checks
- Column-level checks
- Check propagation paths
- Column usage statistics
TypesService
(synq.entities.custom.v1.TypesService) TypesService is a service for managing custom entity types.UpsertType
UpsertType (UpsertTypeRequest) UpsertTypeResponse Create or update an entity. If the entity does not exist, it will be created, otherwise it will be updated. Entities are identified and deduplicated by their Identifier in a scope of a given customer workspace.DeleteType
DeleteType (DeleteTypeRequest) DeleteTypeResponse Delete an entity by its identifier. If the entity does not exist, it will be a no-op.ListTypes
ListTypes (ListTypesRequest) ListTypesResponse List all entities.EntityExecutionsService
(synq.entities.custom.v1.EntityExecutionsService)UpsertExecution
UpsertExecution (UpsertExecutionRequest) UpsertExecutionResponse Execution affects status of the custom entityUpsertLogEntry
UpsertLogEntry (UpsertLogEntryRequest) UpsertLogEntryResponse LogEntry is a log message for the custom entityEntitiesService
(synq.entities.custom.v1.EntitiesService) custom.EntitiesService is a service for managing custom entities. Entities can represent various data platform concepts such as services, consumers, applications or data pipelines that are not natively available in Coalesce Quality. Entities are identified by a unique identifier and can be created, updated, read and deleted.UpsertEntity
UpsertEntity (UpsertEntityRequest) UpsertEntityResponse Create or update an entity. If the entity does not exist, it will be created, otherwise it will be updated. Entities are identified and deduplicated by their Identifier in a scope of a given customer workspace.DeleteEntity
DeleteEntity (DeleteEntityRequest) DeleteEntityResponse Delete an entity by its identifier. If the entity does not exist, it will be a no-op.ListEntities
ListEntities (ListEntitiesRequest) ListEntitiesResponse List all entities.FeaturesService
(synq.entities.custom.v1.FeaturesService)UpsertEntityFeature
UpsertEntityFeature (UpsertEntityFeatureRequest) UpsertEntityFeatureResponse Create or update an entity. If the entity does not exist, it will be created, otherwise it will be updated. Entities are identified and deduplicated by their Identifier in a scope of a given customer workspace.DeleteEntityFeature
DeleteEntityFeature (DeleteEntityFeatureRequest) DeleteEntityFeatureResponse Delete an entity by its identifier. If the entity does not exist, it will be a no-op.ListEntityFeatures
ListEntityFeatures (ListEntityFeaturesRequest) ListEntityFeaturesResponse List all entities.GroupsService
(synq.entities.custom.v1.GroupsService) It eliminates the need to keep state on client side to remember which assets were already created and which should be deleted. The server will keep track of the current state of the group and client can always send the intended new state. The server will calculate the diff and entities that are no longer present in the group will be removed. Example:- group has entities A, B, C at time t1
- client sends group with entities B, C, D at time t2
- server will remove entity A from the system and update the current state of the group to B, C, D
ListEntityGroups
ListEntityGroups (ListEntityGroupsRequest) ListEntityGroupsResponse ListEntityGroups lists all groups.UpsertEntitiesGroup
UpsertEntitiesGroup (UpsertEntitiesGroupRequest) UpsertEntitiesGroupResponse UpsertEntitiesGroup updates current definition of group to the server. As part of the upsert operation the difference of entity ids is calculated between past state and the current state and entities that are no longer part of the group are removed.DeleteEntitiesGroup
DeleteEntitiesGroup (DeleteEntitiesGroupRequest) DeleteEntitiesGroupResponse DeleteEntitiesGroup deletes a group by its identifier. If the group does not exist, it will be a no-op.RelationshipsService
(synq.entities.custom.v1.RelationshipsService) RelationshipsService allow management of relationships between entities. Relationships can be created, updated, and deleted between 2 custom entities, or between a custom entity and Coalesce Quality native entity.enum There is no option to create relationships between 2 Coalesce Quality native entities (dbt model, BI dashboard, etc.).UpsertRelationships
UpsertRelationships (UpsertRelationshipsRequest) UpsertRelationshipsResponse Create or update relationships between entities. If the relationship already exists, it will be updated, otherwise it will be created.DeleteRelationships
DeleteRelationships (DeleteRelationshipsRequest) DeleteRelationshipsResponse Delete relationships between entities. If the relationship does not exist, it will be ignored.ListRelationships
ListRelationships (ListRelationshipsRequest) ListRelationshipsResponse Delete relationships between entities. If the relationship does not exist, it will be ignored.ChecksRelationshipsService
(synq.entities.custom.v1.ChecksRelationshipsService)UpsertCheckRelationships
UpsertCheckRelationships (UpsertCheckRelationshipsRequest) UpsertCheckRelationshipsResponse Create or update relationships that attach a check (e.g. a SQL test) to the entities it validates. Idempotent per (check, checked) pair: an existing relationship is updated, otherwise it is created.DeleteCheckRelationships
DeleteCheckRelationships (DeleteCheckRelationshipsRequest) DeleteCheckRelationshipsResponse Delete relationships between checks and the entities they validate. Relationships that do not exist are ignored.EntitiesService
(synq.entities.entities.v1.EntitiesService) EntitiesService is a service for retriving any entity.GetEntity
GetEntity (GetEntityRequest) GetEntityResponse Get specific entity by its identifier.BatchGetEntities
BatchGetEntities (BatchGetEntitiesRequest) BatchGetEntitiesResponse Get multiple entities by their identifiers.ListEntities
ListEntities (ListEntitiesRequest) ListEntitiesResponse List entities matching the given filterSearchEntities
SearchEntities (SearchEntitiesRequest) SearchEntitiesResponse Search for entities.EntityExecutionsService
(synq.entities.executions.v2.EntityExecutionsService) EntityExecutionsService provides read-only access to entity execution history. This service allows customers to retrieve information about all executions that happened on their entities, including execution status, timing, and messages. Use cases:- Retrieve execution history for specific entities
- Filter executions by time range, status, or execution type
- Get aggregated summaries of execution activity
- Track execution trends and patterns
ListExecutions
ListExecutions (ListExecutionsRequest) ListExecutionsResponse ListExecutions retrieves a paginated list of executions for one or more entities. Executions are returned in reverse chronological order (newest first). Supports filtering by:- Entity identifiers (required)
- Time range
- Execution type(s)
- Status(es)
BatchGetExecutions
BatchGetExecutions (BatchGetExecutionsRequest) BatchGetExecutionsResponse BatchGetExecutions retrieves multiple executions by their IDs. This is useful when you already know the execution IDs and want to fetch their details.GetExecutionsSummary
GetExecutionsSummary (GetExecutionsSummaryRequest) GetExecutionsSummaryResponse GetExecutionsSummary provides aggregated statistics about executions for specified entities. This is useful for quickly understanding execution patterns without fetching all execution details. Returns:- Counts by execution type
- Counts by status
- Time range of available executions
- Latest execution per entity
GetLatestExecutions
GetLatestExecutions (GetLatestExecutionsRequest) GetLatestExecutionsResponse GetLatestExecutions retrieves the most recent execution for each specified entity. IMPORTANT: Only returns executions where the entity appears in EntityExecution.entities (what executed). This means it returns executions OF the entity (e.g., model runs, monitor runs, task runs), NOT executions that merely reference the entity in targets or extra_references. For example, querying for a table won’t return results because tables don’t execute on their own - they are created/updated by models (which do execute). Optionally filter by execution status to get the latest execution with a specific status.EntityExecutionsService
(synq.entities.executions.v1.EntityExecutionsService) Deprecated: Use [synq.entities.custom.v1.EntityExecutionsService] insteadUpsertExecution
UpsertExecution (UpsertExecutionRequest) UpsertExecutionResponse Execution affects status of the custom entityUpsertLogEntry
UpsertLogEntry (UpsertLogEntryRequest) UpsertLogEntryResponse LogEntry is a log message for the custom entitySqlInsightsService
(synq.entities.sql_insights.v1.SqlInsightsService) SqlInsightsService exposes analytical information about the SQL used across a workspace’s entities. It answers questions such as “which SQL constructs are used in my warehouse, and how often” and “what SQL constructs does this specific entity use”, without requiring the caller to re-parse any SQL.ListSqlConstructs
ListSqlConstructs (ListSqlConstructsRequest) ListSqlConstructsResponse ListSqlConstructs returns the distribution of SQL constructs across all entities in the workspace, with an occurrence count per construct. The result is workspace-scoped (derived from the authenticated request) — no entity paths are supplied. Useful for building filter/autocomplete UIs and for high-level “shape of our SQL” analytics.BatchSqlDetails
BatchSqlDetails (BatchSqlDetailsRequest) BatchSqlDetailsResponse BatchSqlDetails returns the SQL details (currently the set of detected SQL constructs) for each of the requested entities, keyed by their synq path. Entities with no SQL details are omitted from the response map.SchemaMismatchesService
(synq.entities.schemas.v1.SchemaMismatchesService) SchemaMismatchesService provides access to schema drift information between data platform tables and their definitions (e.g., dbt models).BatchSchemaMismatches
BatchSchemaMismatches (BatchSchemaMismatchesRequest) BatchSchemaMismatchesResponse Get schema mismatches for a batch of entities by their identifiers.SchemasService
(synq.entities.schemas.v1.SchemasService) EntitiesService is a service for retriving any entity.GetSchema
GetSchema (GetSchemaRequest) GetSchemaResponse Get schema of the entity its identifier.CodeService
(synq.entities.code.v1.CodeService) CodeService is a service for retrieving code associated with entities in the system. It provides functionality to access and manage code artifacts such as SQL queries, Python scripts, dbt models, and other code configurations that are part of Coalesce Quality entities.ListCode
ListCode (ListCodeRequest) ListCodeResponse ListCode retrieves all code artifacts associated with a specific entity. This includes SQL queries, Python scripts, dbt models, and other code configurations that define or are part of the entity’s functionality.TableConstraintsService
(synq.entities.constraints.v1.TableConstraintsService) TableConstraintsService provides access to table constraint and index information.GetTableConstraints
GetTableConstraints (GetTableConstraintsRequest) GetTableConstraintsResponse Get table constraints (primary keys, foreign keys, indexes, etc.) for a given entity.DwhService
(synq.ingest.dwh.v1.DwhService)IngestObjectInformation
IngestObjectInformation (IngestObjectInformationRequest) IngestObjectInformationResponseIngestSqlDefinitions
IngestSqlDefinitions (IngestSqlDefinitionsRequest) IngestSqlDefinitionsResponseIngestSchemas
IngestSchemas (IngestSchemasRequest) IngestSchemasResponseIngestObjectMetrics
IngestObjectMetrics (IngestObjectMetricsRequest) IngestObjectMetricsResponseIngestTaskResults
IngestTaskResults (IngestTaskResultsRequest) IngestTaskResultsResponseIngestQueryLogs
IngestQueryLogs (IngestQueryLogsRequest) IngestQueryLogsResponseIngestTableConstraints
IngestTableConstraints (IngestTableConstraintsRequest) IngestTableConstraintsResponseIngestLineage
IngestLineage (IngestLineageRequest) IngestLineageResponse IngestLineage pushes data-flow lineage between warehouse objects (and, optionally, between their columns) into the platform. Send the lineage you extract from the warehouse — for example from Snowflake’s GET_LINEAGE — as a batch of directed edges. Usereplace_mode to choose between an
incremental update (MERGE) and an authoritative refresh of a region of the
warehouse (REPLACE_SCOPE); REPLACE_SCOPE is what lets the platform expire
edges that no longer exist. Safe to retry: re-sending the same batch
converges to the same state.
OpenlineageService
(synq.ingest.openlineage.v1.OpenlineageService)Ingest
Ingest (IngestRequest) IngestResponseCloudwatchService
(synq.ingest.cloudwatch.v1.CloudwatchService)IngestCloudwatchLogsData
IngestCloudwatchLogsData (IngestCloudwatchLogsDataRequest) IngestCloudwatchLogsDataResponseAirflowLogsService
(synq.ingest.airflow.v1.AirflowLogsService)IngestLog
IngestLog (IngestLogRequest) IngestLogResponseIngestDatahubAspects
IngestDatahubAspects (IngestDatahubAspectsRequest) IngestDatahubAspectsResponseSqlMeshService
(synq.ingest.sqlmesh.v1.SqlMeshService)IngestMetadata
IngestMetadata (IngestMetadataRequest) IngestMetadataResponseIngestExecution
IngestExecution (IngestExecutionRequest) IngestExecutionResponseDbtService
(synq.ingest.dbt.v1.DbtService)IngestInvocation
IngestInvocation (IngestInvocationRequest) IngestInvocationResponseDomainMembersService
(synq.domains.members.v1.DomainMembersService) DomainMembersService can be used to manage domain memberships.AddDomainMembers
AddDomainMembers (AddDomainMembersRequest) AddDomainMembersResponse Add domain members.RemoveDomainMembers
RemoveDomainMembers (RemoveDomainMembersRequest) RemoveDomainMembersResponse Remove domain members.ListDomainMembers
ListDomainMembers (ListDomainMembersRequest) ListDomainMembersResponse List domain members.ListUserDomains
ListUserDomains (ListUserDomainsRequest) ListUserDomainsResponse List domains for the given user.SetDefaultUserDomain
SetDefaultUserDomain (SetDefaultUserDomainRequest) SetDefaultUserDomainResponse Set default domain for user.DomainsService
(synq.domains.v1.DomainsService) DomainsService can be used to manage domains.Upsert
Upsert (UpsertRequest) UpsertResponse Create or update a domain.BatchGet
BatchGet (BatchGetRequest) BatchGetResponse Get multiple domains by their identifiers.FetchDomainWithSubDomains
FetchDomainWithSubDomains (FetchDomainWithSubDomainsRequest) FetchDomainWithSubDomainsResponse Get a domain with its sub-domainsList
List (ListRequest) ListResponse List all the domains in the current workspace.Delete
Delete (DeleteRequest) DeleteResponse Delete a domain by its identifier.SetDefinition
SetDefinition (SetDefinitionRequest) SetDefinitionResponse Set the definition for an existing domain.UpsertDefinitionPart
UpsertDefinitionPart (UpsertDefinitionPartRequest) UpsertDefinitionPartResponse Upsert definition part to the definition of an existing domain.RemoveDefinitionPart
RemoveDefinitionPart (RemoveDefinitionPartRequest) RemoveDefinitionPartResponse Remove definition part from the definition of an existing domain.GetUsage
GetUsage (GetUsageRequest) GetUsageResponseSavedViewsService
(synq.savedviews.v1.SavedViewsService) SavedViewsService manages saved views — named, reusable selections over your entities (and other surfaces) with display configuration, sharing and per-user pinning. A saved view is owned by the user who created it. It can be kept private, shared with the whole workspace, or granted to specific users. Reads return, for the calling user, how each view relates to them (mine / shared / granted) and what they are allowed to do with it. Workspace administrators can manage any view in the workspace.Upsert
Upsert (UpsertRequest) UpsertResponse Create or update a saved view. The view id is supplied by the caller (a UUID), which makes this operation idempotent — repeating the same request converges to the same view rather than creating a duplicate. Mutable fields are optional: a field that is set is written, a field that is omitted is left unchanged. To guard against overwriting a concurrent edit, pass theetag you last read.
Delete
Delete (DeleteRequest) DeleteResponse Delete a saved view. Idempotent — deleting an already-deleted or unknown view succeeds. Passetag to guard against deleting a concurrently-edited
view.
BatchGet
BatchGet (BatchGetRequest) BatchGetResponse Fetch multiple saved views by id. Ids the caller cannot see, or that do not exist, are omitted from the response rather than causing an error.List
List (ListRequest) ListResponse List the saved views the calling user can see. By default returns every visible view (their own, workspace-owned, shared-with-workspace and granted-to-them); narrow withscopes, context and only_pinned.
SetPin
SetPin (SetPinRequest) SetPinResponse Pin or unpin a saved view to the calling user’s main screen. Pinning is a per-user preference: it applies only to the caller and does not modify the view or its version, so any user who can see a view may pin it.DataproductsService
(synq.dataproducts.v2.DataproductsService) DataproductsService manages data products — named, owned groupings of data assets with a membership definition, a priority and an optional folder. Ids are opaque UUIDs supplied by the caller, which makes writes idempotent (a retried create converges instead of duplicating). Mutable fields are optional on Upsert: a field that is set is written, a field that is omitted is left unchanged. Pass theetag you last read to guard against overwriting a
concurrent edit.
A data product is a leaf in the reference graph — its definition may not
reference another data product or domain — so membership resolution always
terminates.
Upsert
Upsert (UpsertRequest) UpsertResponse Create or update a data product. The id is supplied by the caller (a UUID); repeating the same request converges to the same product. Mutable fields are optional: a set field is written, an omitted field is left unchanged. Passetag to guard against overwriting a concurrent edit.
BatchGet
BatchGet (BatchGetRequest) BatchGetResponse Fetch multiple data products by id. Ids that do not exist (or, unlessinclude_deleted is set, are deleted) are omitted from the response rather
than causing an error.
List
List (ListRequest) ListResponse List the data products in the workspace, paginated. Narrow withfolder
and priorities.
Delete
Delete (DeleteRequest) DeleteResponse Delete a data product. Idempotent — deleting an already-deleted or unknown product succeeds. Soft-deletes by default; setpurge to hard-delete and
release the id. Pass etag to guard against deleting a concurrently-edited
product.
SetDefinition
SetDefinition (SetDefinitionRequest) SetDefinitionResponse Replace the entire membership definition of a data product.UpsertDefinitionPart
UpsertDefinitionPart (UpsertDefinitionPartRequest) UpsertDefinitionPartResponse Add or replace a single definition part (matched by its part id).RemoveDefinitionPart
RemoveDefinitionPart (RemoveDefinitionPartRequest) RemoveDefinitionPartResponse Remove a single definition part by its part id. Idempotent.ListMembers
ListMembers (ListMembersRequest) ListMembersResponse List the assets that currently belong to a data product, resolved from its definition and returned as opaque entity ids. Paginated.DataproductsService
(synq.dataproducts.v1.DataproductsService) DataproductsService can be used to manage data products.Upsert
Upsert (UpsertRequest) UpsertResponse Create or update a dataproduct.Get
Get (GetRequest) GetResponse Get multiple dataproducts by their identifiers.List
List (ListRequest) ListResponse List all the dataproducts in the current scope.Delete
Delete (DeleteRequest) DeleteResponse Delete a dataproduct by its identifier. Soft deletes by default. Optionally purge the dataproduct to release the identifier.SetDefinition
SetDefinition (SetDefinitionRequest) SetDefinitionResponse Set the definition for an existing dataproduct.UpsertDefinitionPart
UpsertDefinitionPart (UpsertDefinitionPartRequest) UpsertDefinitionPartResponse Upsert definition part to the definition of an existing dataproduct.RemoveDefinitionPart
RemoveDefinitionPart (RemoveDefinitionPartRequest) RemoveDefinitionPartResponse Remove definition part from the definition of an existing dataproduct.IncidentsService
(synq.incidents.v1.IncidentsService) IncidentsService is a service for managing Incidents.CreateIncident
CreateIncident (CreateIncidentRequest) CreateIncidentResponseRenameIncident
RenameIncident (RenameIncidentRequest) RenameIncidentResponseUpdateIncidentState
UpdateIncidentState (UpdateIncidentStateRequest) UpdateIncidentStateResponseCancelIncident
CancelIncident (CancelIncidentRequest) CancelIncidentResponse Cancel an incidentCloseIncident
CloseIncident (CloseIncidentRequest) CloseIncidentResponse Close an incidentMergeIncidents
MergeIncidents (MergeIncidentsRequest) MergeIncidentsResponseSplitIncident
SplitIncident (SplitIncidentRequest) SplitIncidentResponseAddIssuesToIncident
AddIssuesToIncident (AddIssuesToIncidentRequest) AddIssuesToIncidentResponseRemoveIssuesFromIncident
RemoveIssuesFromIncident (RemoveIssuesFromIncidentRequest) RemoveIssuesFromIncidentResponseListIncidents
ListIncidents (ListIncidentsRequest) ListIncidentsResponseBatchGetIncidents
BatchGetIncidents (BatchGetIncidentsRequest) BatchGetIncidentsResponseAssignIncidentOwner
AssignIncidentOwner (AssignIncidentOwnerRequest) AssignIncidentOwnerResponsePostComment
PostComment (PostCommentRequest) PostCommentResponse Post a comment on an incident.Messages
CronSchedule
(synq.schedule.v1.CronSchedule) CronSchedule uses standard cron expression syntax.ICalSchedule
(synq.schedule.v1.ICalSchedule) ICalSchedule uses RFC 5545 RRULE recurrence rules.Schedule
(synq.schedule.v1.Schedule) Schedule defines a recurring schedule with timezone context.FixedQuantumGrid
(synq.schedule.v1.FixedQuantumGrid) FixedQuantumGrid snaps onto a fixed-size grid anchored at the Unix epoch (1970-01-01T00:00:00Z): [epoch, epoch+quantum, epoch+2*quantum, …].IntegrationAnchorGrid
(synq.schedule.v1.IntegrationAnchorGrid) IntegrationAnchorGrid snaps onto the shared, stable grid an integration’s periodic warehouse scrape already fires on. Aligning to it lets a run reuse the same warehouse wake as the scrape. The integration is resolved in the caller’s own workspace (taken from the authenticated identity, never from the request), and the caller must be authorized to read it — a token without integration read access is rejected.PreviewScheduleParams
(synq.schedule.v1.PreviewScheduleParams) Parameters for evaluating a single schedule.PreviewScheduleResult
(synq.schedule.v1.PreviewScheduleResult) Result for a single schedule evaluation.PreviewSchedulesRequest
(synq.schedule.v1.PreviewSchedulesRequest)PreviewSchedulesResponse
(synq.schedule.v1.PreviewSchedulesResponse)ScheduleSnap
(synq.schedule.v1.ScheduleSnap) ScheduleSnap maps each schedule occurrence onto a grid so runs line up with activity that is already happening, avoiding a separate warehouse resume. Pick one grid source and, optionally, how far an occurrence may move.SnapInfo
(synq.schedule.v1.SnapInfo) SnapInfo records, for one occurrence, whether snapping moved it onto the grid.OAuthAuthentication
(synq.platforms.v1.OAuthAuthentication) Authentication using OAuth credentialsPasswordAuthentication
(synq.platforms.v1.PasswordAuthentication) Authentication using a username and passwordPlatformAuthentication
(synq.platforms.v1.PlatformAuthentication)SynqManagedKeyPairAuthentication
(synq.platforms.v1.SynqManagedKeyPairAuthentication) Authentication using a managed key pair. The public key will be set and returned by the server after the authentication is created.TokenAuthentication
(synq.platforms.v1.TokenAuthentication) Authentication using a token (API key, PAT, etc)UserManagedKeyPairAuthentication
(synq.platforms.v1.UserManagedKeyPairAuthentication) Authentication using a user-managed key pair. The private key is stored safely as a secret. The response does not include the private key for security.AthenaIdentifier
(synq.platforms.v1.AthenaIdentifier)BigqueryIdentifier
(synq.platforms.v1.BigqueryIdentifier)ClickhouseIdentifier
(synq.platforms.v1.ClickhouseIdentifier)DataPlatformIdentifier
(synq.platforms.v1.DataPlatformIdentifier) DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.DatabricksIdentifier
(synq.platforms.v1.DatabricksIdentifier)DbtCloudIdentifier
(synq.platforms.v1.DbtCloudIdentifier)DuckDbIdentifier
(synq.platforms.v1.DuckDbIdentifier)FabricIdentifier
(synq.platforms.v1.FabricIdentifier)MssqlIdentifier
(synq.platforms.v1.MssqlIdentifier)MysqlIdentifier
(synq.platforms.v1.MysqlIdentifier)OracleIdentifier
(synq.platforms.v1.OracleIdentifier)PostgresIdentifier
(synq.platforms.v1.PostgresIdentifier)RedshiftIdentifier
(synq.platforms.v1.RedshiftIdentifier)SnowflakeIdentifier
(synq.platforms.v1.SnowflakeIdentifier)SqlMeshIdentifier
(synq.platforms.v1.SqlMeshIdentifier)TrinoIdentifier
(synq.platforms.v1.TrinoIdentifier)UnknownDataPlatform
(synq.platforms.v1.UnknownDataPlatform)SetPlatformAuthenticationRequest
(synq.platforms.v1.SetPlatformAuthenticationRequest)SetPlatformAuthenticationResponse
(synq.platforms.v1.SetPlatformAuthenticationResponse)ScopeFilter
(synq.common.v1.ScopeFilter) ScopeFilter defines include/exclude rules for scoping data warehouse queries. Matching semantics:- If include is non-empty, a (database, schema, table) tuple must match at least one include rule.
- If exclude is non-empty, the tuple must NOT match any exclude rule.
- Exclude takes precedence over include (exclude wins).
- Empty/unset ScopeFilter means accept all.
ScopeRule
(synq.common.v1.ScopeRule) ScopeRule is a multi-level pattern for matching data warehouse objects. All non-empty fields must match for the rule to apply. Empty field means “match anything” at that level (wildcard). Patterns support glob syntax where * matches zero or more characters. Matching is case-insensitive.SqlExpression
(synq.common.v1.SqlExpression) SqlExpression carries a SQL string together with the placeholder tokens the caller must substitute before executing it. Emptyplaceholders means sql is byte-equal to what runs in the warehouse
and is safe to dispatch without further processing. When placeholders is
non-empty, every listed token appears literally in sql and must be replaced
(or otherwise interpreted) by the caller before execution.
SqlPlaceholder
(synq.common.v1.SqlPlaceholder) SqlPlaceholder describes one substitution slot in a SqlExpression.GetDiffByChangeIdRequest
(synq.git.commits.v1.GetDiffByChangeIdRequest)GetDiffByChangeIdResponse
(synq.git.commits.v1.GetDiffByChangeIdResponse)GetDiffByCommitRequest
(synq.git.commits.v1.GetDiffByCommitRequest)GetDiffByCommitResponse
(synq.git.commits.v1.GetDiffByCommitResponse)CommitDiff
(synq.git.commits.v1.CommitDiff)FileDiff
(synq.git.commits.v1.FileDiff)BatchGetOwnersRequest
(synq.owners.v1.BatchGetOwnersRequest)BatchGetOwnersResponse
(synq.owners.v1.BatchGetOwnersResponse)BatchGetOwnersResponse.OwnersEntry
(synq.owners.v1.BatchGetOwnersResponse.OwnersEntry)BatchGetOwnershipsRequest
(synq.owners.v1.BatchGetOwnershipsRequest)BatchGetOwnershipsResponse
(synq.owners.v1.BatchGetOwnershipsResponse)BatchGetOwnershipsResponse.OwnershipsEntry
(synq.owners.v1.BatchGetOwnershipsResponse.OwnershipsEntry)ContactList
(synq.owners.v1.ContactList) A wrapper giving the contact set explicit presence on write, so a partial update can distinguish “replace the contacts” (present, possibly empty) from “leave contacts unchanged” (absent).DeleteOwnerRequest
(synq.owners.v1.DeleteOwnerRequest)DeleteOwnerResponse
(synq.owners.v1.DeleteOwnerResponse)DeleteOwnershipRequest
(synq.owners.v1.DeleteOwnershipRequest)DeleteOwnershipResponse
(synq.owners.v1.DeleteOwnershipResponse)ListOwnersRequest
(synq.owners.v1.ListOwnersRequest)ListOwnersResponse
(synq.owners.v1.ListOwnersResponse)ListOwnershipsRequest
(synq.owners.v1.ListOwnershipsRequest)ListOwnershipsResponse
(synq.owners.v1.ListOwnershipsResponse)UpsertOwnerRequest
(synq.owners.v1.UpsertOwnerRequest)UpsertOwnerResponse
(synq.owners.v1.UpsertOwnerResponse)UpsertOwnershipRequest
(synq.owners.v1.UpsertOwnershipRequest)UpsertOwnershipResponse
(synq.owners.v1.UpsertOwnershipResponse)Contact
(synq.owners.v1.Contact) A notification channel attached to an owner. An owner can hold several contacts of different kinds; when an owner’s ownership fires an alert, the notification is delivered to every one of the owner’s contacts.EmailContact
(synq.owners.v1.EmailContact) Deliver notifications by email to a fixed list of recipients.MsTeamsContact
(synq.owners.v1.MsTeamsContact) Deliver notifications to a Microsoft Teams channel, optionally @-mentioning members.MsTeamsMemberMention
(synq.owners.v1.MsTeamsMemberMention) An @-mention of an individual Microsoft Teams member.MsTeamsMention
(synq.owners.v1.MsTeamsMention) A single @-mention in a Microsoft Teams notification.SlackChannelContact
(synq.owners.v1.SlackChannelContact) Deliver notifications to a Slack channel, optionally @-mentioning users or user groups in the message.SlackGroupMention
(synq.owners.v1.SlackGroupMention) An @-mention of a Slack user group.SlackMention
(synq.owners.v1.SlackMention) A single @-mention in a Slack notification.SlackUserMention
(synq.owners.v1.SlackUserMention) An @-mention of an individual Slack user.UserContact
(synq.owners.v1.UserContact) Deliver notifications to Coalesce Quality users, identified by email. Each email should match a user in the workspace; the notification reaches them through their own configured notification preferences. Enumerate the valid users (and their emails) withsynq.users.v1.UsersService
— ListUsers for the full set, or GetByEmail to validate a single address.
Owner
(synq.owners.v1.Owner) An owner: a named responsible party (a team or a person) that data assets can be assigned to, together with the notification channels alerts about those assets are delivered to. Assets are attached to an owner through Ownerships (see OwnershipsService), so an owner on its own routes nothing until at least one ownership assigns it some assets.AlertConfig
(synq.owners.v1.AlertConfig) How alerts fire for the assets an ownership covers. Deliberately mirrors the settings on the public alerts API (synq.alerts.v1) so alerting behaviour
reads the same across SYNQ.
Ownership
(synq.owners.v1.Ownership) An ownership assigns a set of data assets to an owner and configures the alerts routed to that owner about those assets. In the app this is the owner’s “Owned assets”. One owner can hold many ownerships; deleting the owner deletes all of its ownerships.OwnershipQuery
(synq.owners.v1.OwnershipQuery) A named asset selection behind an ownership, expressed for the public API. Uses the same write/read bridge as saved views and data products. On write, provide the query in ONE of two forms:public_query— a structured query (the same shape used elsewhere for asset selection), convenient to build from a filter UI; orresolver_ql— the resolver query language, a compact text form that is the canonical way to author selections as code. When both are set,resolver_qlwins. The server compiles and stores the query canonically; the raw text is not preserved verbatim.
rendered_resolver_ql (the stored query rendered
back to canonical resolver query language) and, best-effort, public_query
(the structured representation). resolver_ql is not echoed back — read
rendered_resolver_ql.
OwnershipSelection
(synq.owners.v1.OwnershipSelection) The set of assets an ownership covers.IdentifierList
(synq.queries.v1.IdentifierList) Resolves to entities matching any of the given identifiers.InDataPlatform
(synq.queries.v1.InDataPlatform) Resolves to all entities that belong to the given data platform.InDataproduct
(synq.queries.v1.InDataproduct) Resolves to all the assets that belong to the given data product.InDomain
(synq.queries.v1.InDomain) Resolves to all entities in the given data domain.InFolder
(synq.queries.v1.InFolder) Resolves to all entities belonging to the given folder structure.Unsupported
(synq.queries.v1.Unsupported) Collects all the parts of the query that are currently unsupported in translation. These represent an internal structure that are not yet completely available on the API.WithAnnotation
(synq.queries.v1.WithAnnotation) Resolves to all entities that contain the annotation with at least one of the provided accepted values. In case of no given accepted values, all entities that carry the given annotation are returned.WithDataPlatformType
(synq.queries.v1.WithDataPlatformType)WithNameSearch
(synq.queries.v1.WithNameSearch) Resolves to all entities matching the given name search.WithType
(synq.queries.v1.WithType) Resolves to all the entities that have the provided type.WithType.Type
(synq.queries.v1.WithType.Type)Query
(synq.queries.v1.Query) Query is a structured query that can be used to find entities in the system. It consists of multiple parts, each representing a different filter or sub-query. The parts are combined using the operand to form the final result:- AND (default): returns only entities matching ALL parts (intersection).
- OR: returns entities matching ANY part (union).
- EXCEPT: requires exactly 2 parts — returns entities from part[0] that are NOT in part[1].
- UPSTREAM: returns entities that are upstream (dependencies) of the entities matched by the parts.
- DOWNSTREAM: returns entities that are downstream (dependents) of the entities matched by the parts.
Query.QueryPart
(synq.queries.v1.Query.QueryPart)GenerateQueryRequest
(synq.queries.v1.GenerateQueryRequest)GenerateQueryResponse
(synq.queries.v1.GenerateQueryResponse)Callback
(synq.webhooks.v1.Callback)FlatEvent
(synq.webhooks.v1.FlatEvent) A webhook event in the flat format — an experimental, opt-in alternative toEvent that carries the same information in a flatter shape.
Instead of nesting the payload under a per-event-type field (issue_created,
issue_updated, incident_open, …), the payload is carried by a single
top-level field — issue, incident, or ping — and event_type says
which one is set and why. A receiver can then read a value the same way on
every event, e.g. issue.owners[0].title on any issue event, instead of a
different path per event type.
Exactly one of issue, incident, or ping is set, matching event_type.
Select this format per webhook integration; the default is the nested Event.
Payload signing is identical — see Event for the signature scheme.
Experimental: this shape may change while we gather feedback.
Event
(synq.webhooks.v1.Event) A webhook event delivered to a customer-configured endpoint. Payload signing: every outgoing request is signed so the receiver can verify it originated from Coalesce Quality and was not tampered with or replayed. Two headers are sent on every delivery: X-Coalesce-Timestamp: <unix seconds when the delivery was signed> X-Coalesce-Signature: v1=<hex-encoded HMAC-SHA256> The signature is computed as: signed_payload = “{X-Coalesce-Timestamp}.” + <raw request body bytes> signature = hex( HMAC_SHA256(key = signing_secret, msg = signed_payload) ) where signing_secret is the per-integration secret shown (read-only) in the webhook integration settings. To verify:- Read X-Coalesce-Timestamp and the raw request body.
- Recompute the signature with your copy of the signing secret and compare it against the v1=… value in X-Coalesce-Signature using a constant-time comparison.
- Optionally reject deliveries whose timestamp is outside your tolerance window (retries reuse the original signing timestamp, so allow for the retry backoff window — up to ~30 minutes).
IncidentCancelled
(synq.webhooks.v1.IncidentCancelled)IncidentClosed
(synq.webhooks.v1.IncidentClosed)IncidentOpen
(synq.webhooks.v1.IncidentOpen)IncidentSummary
(synq.webhooks.v1.IncidentSummary)IssueClosed
(synq.webhooks.v1.IssueClosed)IssueCreated
(synq.webhooks.v1.IssueCreated)IssueStatusUpdated
(synq.webhooks.v1.IssueStatusUpdated)IssueSummary
(synq.webhooks.v1.IssueSummary)
Set only when an actor is known: it is populated on
issue_status_updated events and left unset for system-driven transitions with no human actor (e.g. a status implied by a monitor run). Consumers must treat it as optional and tolerate its absence.
Carries the strongest identity the caller proved — a Coalesce Quality email, Slack user id, or PagerDuty user id — alongside a display name. |
| owners | repeated Owner | Owners of the entities this issue is about.
Covers only the direct owners of the affected entities, not the owners of downstream entities. Empty when the affected entities have no owner assigned. Ordered as shown in the app. |
IssueSummary.IssueEntity
(synq.webhooks.v1.IssueSummary.IssueEntity)IssueSummary.Owner
(synq.webhooks.v1.IssueSummary.Owner) An owner (person or team) responsible for an entity, as assigned in Coalesce Quality (natively or synced from a catalog).IssueUpdated
(synq.webhooks.v1.IssueUpdated)Ping
(synq.webhooks.v1.Ping) Test event sent during a webhook setup.MSSQLCloudConf
(synq.integrations.v1.MSSQLCloudConf) Microsoft SQL Server / Azure SQL Database cloud-managed connection. SQL Server connections are scoped to a single database; create one integration per database. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.DatabricksCloudConf
(synq.integrations.v1.DatabricksCloudConf) Databricks cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.DatabricksOAuthM2M
(synq.integrations.v1.DatabricksOAuthM2M) Databricks OAuth 2.0 machine-to-machine (service principal) credentials.AthenaAccessKeyAuth
(synq.integrations.v1.AthenaAccessKeyAuth) Amazon Athena access-key authentication (long-lived IAM user credentials).AthenaCloudConf
(synq.integrations.v1.AthenaCloudConf) Amazon Athena cloud-managed connection. Athena is serverless — there is no host/port; the endpoint is implied by the AWS region. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.AthenaOutputs
(synq.integrations.v1.AthenaOutputs) Athena generated outputs.BigQueryOutputs
(synq.integrations.v1.BigQueryOutputs) BigQuery generated outputs.Capabilities
(synq.integrations.v1.Capabilities) Capabilities advertise which actions are valid for an integration in its current state, so a client can decide what to offer before calling. Capabilities are a hint computed from the integration’s type and current state; the server still enforces every action. Afalse flag means the
action would be rejected right now (unsupported for this type, or not
applicable in the current state — for example can_enable is false for an
already-enabled integration).
Integration
(synq.integrations.v1.Integration) Integration is a connection from Coalesce Quality to one of your data systems (a warehouse, database, or transformation tool).IntegrationConfig
(synq.integrations.v1.IntegrationConfig) IntegrationConfig is the connection configuration for an integration. Exactly one variant of theconfig oneof is set; the populated variant
determines the integration’s type. The config holds the connection details
(host, credentials, scope) for the connected system.
Secret fields (passwords, tokens, keys) follow write-only semantics: they are
masked (returned empty) on reads. See each *Conf message and
IntegrationsService.UpdateIntegration for preserve / rotate / clear rules.
IntegrationOutputs
(synq.integrations.v1.IntegrationOutputs) Generated, non-secret values produced by the server when an integration is created (for example a service-account email to grant access to, or a public key to install). Outputs are read-only and are never accepted on writes. At most one variant is set, matching the integration’s type. Types that produce no outputs leave this message empty.SnowflakeOutputs
(synq.integrations.v1.SnowflakeOutputs) Snowflake generated outputs.DbtCloudConf
(synq.integrations.v1.DbtCloudConf) dbt Cloud transformation orchestration cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.OracleCloudConf
(synq.integrations.v1.OracleCloudConf) Oracle Database cloud-managed connection. Oracle connections are scoped to a Pluggable Database (PDB) via the service name. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.DuckDBCloudConf
(synq.integrations.v1.DuckDBCloudConf) DuckDB (via MotherDuck) cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.FabricCloudConf
(synq.integrations.v1.FabricCloudConf) Microsoft Fabric cloud-managed connection. Fabric is workspace-scoped with cross-database queries (like Snowflake or Databricks, not a single database): the workspace SQL analytics endpoint exposes every warehouse / lakehouse in the workspace as a database, queryable via three-part [database].[schema].[table] T-SQL names. Authentication is Microsoft Entra ID only — Fabric rejects SQL logins, so the headless identity is an Entra service principal (application id + secret), or a pre-acquired Entra access token. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.FabricServicePrincipalAuth
(synq.integrations.v1.FabricServicePrincipalAuth) Microsoft Fabric Entra service-principal credentials.RedshiftCloudConf
(synq.integrations.v1.RedshiftCloudConf) Amazon Redshift cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.BatchGetIntegrationsRequest
(synq.integrations.v1.BatchGetIntegrationsRequest) Request to fetch multiple integrations by id.BatchGetIntegrationsResponse
(synq.integrations.v1.BatchGetIntegrationsResponse) Response with the requested integrations.BatchGetIntegrationsResponse.IntegrationsEntry
(synq.integrations.v1.BatchGetIntegrationsResponse.IntegrationsEntry)CreateIntegrationRequest
(synq.integrations.v1.CreateIntegrationRequest) Request to create an integration.CreateIntegrationResponse
(synq.integrations.v1.CreateIntegrationResponse) Response from creating an integration.DeleteIntegrationRequest
(synq.integrations.v1.DeleteIntegrationRequest) Request to delete an integration.DeleteIntegrationResponse
(synq.integrations.v1.DeleteIntegrationResponse) Response from deleting an integration.DisableIntegrationRequest
(synq.integrations.v1.DisableIntegrationRequest) Request to disable an integration.DisableIntegrationResponse
(synq.integrations.v1.DisableIntegrationResponse) Response from disabling an integration.EnableIntegrationRequest
(synq.integrations.v1.EnableIntegrationRequest) Request to enable an integration.EnableIntegrationResponse
(synq.integrations.v1.EnableIntegrationResponse) Response from enabling an integration.GetIntegrationHealthRequest
(synq.integrations.v1.GetIntegrationHealthRequest) Request for an integration’s health and run history.GetIntegrationHealthResponse
(synq.integrations.v1.GetIntegrationHealthResponse) Response with current health plus a page of recent runs.GetIntegrationRequest
(synq.integrations.v1.GetIntegrationRequest) Request to fetch a single integration.GetIntegrationResponse
(synq.integrations.v1.GetIntegrationResponse) Response with a single integration.IntegrationHealth
(synq.integrations.v1.IntegrationHealth) Current health summary for an integration.IntegrationRun
(synq.integrations.v1.IntegrationRun) A single observed run (refresh / sync) of an integration.ListIntegrationsRequest
(synq.integrations.v1.ListIntegrationsRequest) Request to list integrations.ListIntegrationsResponse
(synq.integrations.v1.ListIntegrationsResponse) Response with the workspace’s integrations.RefreshIntegrationRequest
(synq.integrations.v1.RefreshIntegrationRequest) Request to trigger an ad-hoc refresh.RefreshIntegrationResponse
(synq.integrations.v1.RefreshIntegrationResponse) Response from triggering a refresh.UpdateIntegrationRequest
(synq.integrations.v1.UpdateIntegrationRequest) Request to update an integration. Theconfig is replaced wholesale; title
is patch-style (omit to leave unchanged).
UpdateIntegrationResponse
(synq.integrations.v1.UpdateIntegrationResponse) Response from updating an integration.PostgresCloudConf
(synq.integrations.v1.PostgresCloudConf) PostgreSQL cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.ClickhouseCloudConf
(synq.integrations.v1.ClickhouseCloudConf) ClickHouse cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.ClickhouseCloudConf.AdditionalParametersEntry
(synq.integrations.v1.ClickhouseCloudConf.AdditionalParametersEntry)MySQLCloudConf
(synq.integrations.v1.MySQLCloudConf) MySQL cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.SnowflakeCloudConf
(synq.integrations.v1.SnowflakeCloudConf) Snowflake cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.SnowflakeKeyPairAuth
(synq.integrations.v1.SnowflakeKeyPairAuth) Snowflake key-pair authentication.TrinoBasicAuth
(synq.integrations.v1.TrinoBasicAuth) Trino basic (username / password) authentication.TrinoCloudConf
(synq.integrations.v1.TrinoCloudConf) Trino / Presto cloud-managed connection. Fields are optional so an update can carry only what changes (omit = leave unchanged). Secret fields are write-only (masked on reads); omit to keep or send a new value to rotate.BigQueryCloudConf
(synq.integrations.v1.BigQueryCloudConf) Google BigQuery cloud-managed connection. All fields are optional so an update can carry only what changes: omit a field to leave it unchanged, or send a new value to set it. Secret fields are write-only (masked, returned empty, on reads); omit to keep the stored value or send a new value to rotate it.IamRequest
(synq.auth.iam.v1.IamRequest)IamResponse
(synq.auth.iam.v1.IamResponse)GetAtlanConnectionsRequest
(synq.extensions.atlan.provider.v1.GetAtlanConnectionsRequest)GetAtlanConnectionsResponse
(synq.extensions.atlan.provider.v1.GetAtlanConnectionsResponse)GetAtlanDataProductsRequest
(synq.extensions.atlan.provider.v1.GetAtlanDataProductsRequest)GetAtlanDataProductsResponse
(synq.extensions.atlan.provider.v1.GetAtlanDataProductsResponse)GetAtlanDomainsRequest
(synq.extensions.atlan.provider.v1.GetAtlanDomainsRequest)GetAtlanDomainsResponse
(synq.extensions.atlan.provider.v1.GetAtlanDomainsResponse)AtlanConnection
(synq.extensions.atlan.provider.v1.AtlanConnection)AtlanDataDomain
(synq.extensions.atlan.provider.v1.AtlanDataDomain)AtlanDataProduct
(synq.extensions.atlan.provider.v1.AtlanDataProduct)AtlanDataProduct.Emails
(synq.extensions.atlan.provider.v1.AtlanDataProduct.Emails)AtlanDataProduct.OwnerGroupsEntry
(synq.extensions.atlan.provider.v1.AtlanDataProduct.OwnerGroupsEntry)DomainMappingToggle
(synq.extensions.atlan.workflows.v1.DomainMappingToggle)MappingToggle
(synq.extensions.atlan.workflows.v1.MappingToggle)ProductMappingToggle
(synq.extensions.atlan.workflows.v1.ProductMappingToggle)ProductOwnerMappingToggle
(synq.extensions.atlan.workflows.v1.ProductOwnerMappingToggle)FetchRunsRequest
(synq.extensions.atlan.workflows.v1.FetchRunsRequest)FetchRunsResponse
(synq.extensions.atlan.workflows.v1.FetchRunsResponse)GetConnectionMappingsRequest
(synq.extensions.atlan.workflows.v1.GetConnectionMappingsRequest)GetConnectionMappingsResponse
(synq.extensions.atlan.workflows.v1.GetConnectionMappingsResponse)GetDomainMappingsRequest
(synq.extensions.atlan.workflows.v1.GetDomainMappingsRequest)GetDomainMappingsResponse
(synq.extensions.atlan.workflows.v1.GetDomainMappingsResponse)GetMappingTogglesRequest
(synq.extensions.atlan.workflows.v1.GetMappingTogglesRequest)GetMappingTogglesResponse
(synq.extensions.atlan.workflows.v1.GetMappingTogglesResponse)GetProductMappingsRequest
(synq.extensions.atlan.workflows.v1.GetProductMappingsRequest)GetProductMappingsResponse
(synq.extensions.atlan.workflows.v1.GetProductMappingsResponse)RemoveConnectionMappingsRequest
(synq.extensions.atlan.workflows.v1.RemoveConnectionMappingsRequest)RemoveConnectionMappingsResponse
(synq.extensions.atlan.workflows.v1.RemoveConnectionMappingsResponse)SetConnectionMappingsRequest
(synq.extensions.atlan.workflows.v1.SetConnectionMappingsRequest)SetConnectionMappingsResponse
(synq.extensions.atlan.workflows.v1.SetConnectionMappingsResponse)SetMappingTogglesRequest
(synq.extensions.atlan.workflows.v1.SetMappingTogglesRequest)SetMappingTogglesResponse
(synq.extensions.atlan.workflows.v1.SetMappingTogglesResponse)SynchronizeRequest
(synq.extensions.atlan.workflows.v1.SynchronizeRequest)SynchronizeResponse
(synq.extensions.atlan.workflows.v1.SynchronizeResponse)CommandResult
(synq.extensions.atlan.workflows.v1.CommandResult)Log
(synq.extensions.atlan.workflows.v1.Log)Log.MetadataEntry
(synq.extensions.atlan.workflows.v1.Log.MetadataEntry)WorkflowRun
(synq.extensions.atlan.workflows.v1.WorkflowRun)ConnectionMapping
(synq.extensions.atlan.workflows.v1.ConnectionMapping)DomainMapping
(synq.extensions.atlan.workflows.v1.DomainMapping)ProductMapping
(synq.extensions.atlan.workflows.v1.ProductMapping)Integration
(synq.extensions.atlan.integrations.v1.Integration)ActivateRequest
(synq.extensions.atlan.integrations.v1.ActivateRequest)ActivateResponse
(synq.extensions.atlan.integrations.v1.ActivateResponse)GetRequest
(synq.extensions.atlan.integrations.v1.GetRequest)GetResponse
(synq.extensions.atlan.integrations.v1.GetResponse)PingRequest
(synq.extensions.atlan.integrations.v1.PingRequest)PingResponse
(synq.extensions.atlan.integrations.v1.PingResponse)RemoveRequest
(synq.extensions.atlan.integrations.v1.RemoveRequest)RemoveResponse
(synq.extensions.atlan.integrations.v1.RemoveResponse)UpsertRequest
(synq.extensions.atlan.integrations.v1.UpsertRequest)UpsertResponse
(synq.extensions.atlan.integrations.v1.UpsertResponse)ScopeAuthorization
(synq.v1.ScopeAuthorization)PageInfo
(synq.v1.PageInfo)Pagination
(synq.v1.Pagination)BatchGetIssuesRequest
(synq.issues.v2.BatchGetIssuesRequest)BatchGetIssuesResponse
(synq.issues.v2.BatchGetIssuesResponse)BatchGetIssuesResponse.IssuesEntry
(synq.issues.v2.BatchGetIssuesResponse.IssuesEntry)ClearStatusRequest
(synq.issues.v2.ClearStatusRequest)ClearStatusResponse
(synq.issues.v2.ClearStatusResponse)InteractionFilter
(synq.issues.v2.InteractionFilter) Filter for matching issues where an actor interacted with them. If none of status_changes/comments/activities is set, all interaction types are matched.ListIssuesRequest
(synq.issues.v2.ListIssuesRequest)ListIssuesRequest.Sort
(synq.issues.v2.ListIssuesRequest.Sort)ListIssuesRequest.Time
(synq.issues.v2.ListIssuesRequest.Time)ListIssuesResponse
(synq.issues.v2.ListIssuesResponse)MarkExpectedRequest
(synq.issues.v2.MarkExpectedRequest)MarkExpectedResponse
(synq.issues.v2.MarkExpectedResponse)MarkFixedRequest
(synq.issues.v2.MarkFixedRequest)MarkFixedResponse
(synq.issues.v2.MarkFixedResponse)MarkInvestigatingRequest
(synq.issues.v2.MarkInvestigatingRequest)MarkInvestigatingResponse
(synq.issues.v2.MarkInvestigatingResponse)MarkNoActionNeededRequest
(synq.issues.v2.MarkNoActionNeededRequest)MarkNoActionNeededResponse
(synq.issues.v2.MarkNoActionNeededResponse)PostCommentRequest
(synq.issues.v2.PostCommentRequest)PostCommentResponse
(synq.issues.v2.PostCommentResponse)Actor
(synq.issues.actor.v1.Actor) Actor identifies who performed a write — set by the calling client and carried end-to-end through the public API into stored audit trails (issue status changes, comments, incident assignments) and rendered downstream (e.g. Slack/MSTeams/email alerts). Producers should populate:name— human-readable display label, derived fromsynq.auth.iam.v1.IamResponse.user_namewhen available, falling back touser_email. Avoid generic placeholders (“MCP”, “API”); readers treat those as “no identity resolved” and fall back to impersonal copy.user— the strongest identifier the caller can prove. For human callers, setemailfromIamResponse.user_emailso the server can resolve the caller back to a workspace user.via— entry-point label for the channel through which the request arrived (e.g. VIA_MCP for the MCP server), regardless of who the caller is.
EmailUser
(synq.issues.actor.v1.EmailUser)PagerdutyUser
(synq.issues.actor.v1.PagerdutyUser)SlackUser
(synq.issues.actor.v1.SlackUser)BatchGetIssuesRequest
(synq.issues.issues.v1.BatchGetIssuesRequest)BatchGetIssuesResponse
(synq.issues.issues.v1.BatchGetIssuesResponse)BatchGetIssuesResponse.IssuesEntry
(synq.issues.issues.v1.BatchGetIssuesResponse.IssuesEntry)Limit
(synq.issues.issues.v1.Limit)ListIssuesRequest
(synq.issues.issues.v1.ListIssuesRequest)ListIssuesResponse
(synq.issues.issues.v1.ListIssuesResponse)MarkExpectedRequest
(synq.issues.issues.v1.MarkExpectedRequest)MarkExpectedResponse
(synq.issues.issues.v1.MarkExpectedResponse)MarkFixedRequest
(synq.issues.issues.v1.MarkFixedRequest)MarkFixedResponse
(synq.issues.issues.v1.MarkFixedResponse)MarkInvestigatingRequest
(synq.issues.issues.v1.MarkInvestigatingRequest)MarkInvestigatingResponse
(synq.issues.issues.v1.MarkInvestigatingResponse)MarkNoActionNeededRequest
(synq.issues.issues.v1.MarkNoActionNeededRequest)MarkNoActionNeededResponse
(synq.issues.issues.v1.MarkNoActionNeededResponse)PostCommentRequest
(synq.issues.issues.v1.PostCommentRequest)PostCommentResponse
(synq.issues.issues.v1.PostCommentResponse)Issue
(synq.issues.issues.v1.Issue)IssueComment
(synq.issues.issues.v1.IssueComment)MonitorTriggerDetails
(synq.issues.issues.v1.MonitorTriggerDetails)IssuesCommand
(synq.issues.commands.v1.IssuesCommand) Not to be used directly. Use the IssuesService instead when calling via API.AlertIdentifier
(synq.alerts.services.v1.AlertIdentifier)BatchGetRequest
(synq.alerts.services.v1.BatchGetRequest)BatchGetResponse
(synq.alerts.services.v1.BatchGetResponse)BatchGetResponse.AlertsEntry
(synq.alerts.services.v1.BatchGetResponse.AlertsEntry)CreateRequest
(synq.alerts.services.v1.CreateRequest) CreateRequest creates a new alert configuration.CreateResponse
(synq.alerts.services.v1.CreateResponse) CreateResponse returns the created alert configuration.DeleteRequest
(synq.alerts.services.v1.DeleteRequest) DeleteRequest specifies which alert configuration to delete. The config can be identified by either ID or FQN.DeleteResponse
(synq.alerts.services.v1.DeleteResponse) DeleteResponse confirms the deletion (empty response). Empty response - successful deletion is indicated by HTTP 200 status.ListRequest
(synq.alerts.services.v1.ListRequest) ListRequest filters alert configurations to retrieve.ListResponse
(synq.alerts.services.v1.ListResponse) ListResponse returns the filtered list of alert configurations.ToggleEnabledRequest
(synq.alerts.services.v1.ToggleEnabledRequest) ToggleEnabledRequest enables or disables an alert configuration. The config can be identified by either ID or FQN.ToggleEnabledResponse
(synq.alerts.services.v1.ToggleEnabledResponse) ToggleEnabledResponse confirms the toggle operation (empty response). Empty response - successful toggle is indicated by HTTP 200 status.UpdateRequest
(synq.alerts.services.v1.UpdateRequest) UpdateRequest updates an existing alert configuration. The config can be identified by either ID or FQN.UpdateResponse
(synq.alerts.services.v1.UpdateResponse) UpdateResponse returns the updated alert configuration.AlertingTarget
(synq.alerts.v1.AlertingTarget) AlertingTarget represents a destination where alert notifications will be sent. Each target type has its own specific configuration requirements.EmailTarget
(synq.alerts.v1.EmailTarget) EmailTarget configures alert delivery via email.MsTeamsTarget
(synq.alerts.v1.MsTeamsTarget) MsTeamsTarget configures alert delivery to Microsoft Teams. Alerts are sent to a Microsoft Teams channel.OwnerTarget
(synq.alerts.v1.OwnerTarget) OwnerTarget configures alert delivery to the owner of the monitored entity. This allows alerts to be automatically sent to whoever owns the data being monitored.SlackTarget
(synq.alerts.v1.SlackTarget) SlackTarget configures alert delivery to Slack. Alerts are sent to a Slack channel.WebhookTarget
(synq.alerts.v1.WebhookTarget) WebhookTarget configures alert delivery via webhook/hook integrations. This allows integration with external systems and custom notification workflows.Alert
(synq.alerts.v1.Alert) Alert represents the configuration for an alert. It contains all the necessary information to trigger and send alerts.Alert.Owner
(synq.alerts.v1.Alert.Owner) Owner information for the alert configuration. If set, the alert is attributed to the specified owner and ownership.AlertSettings
(synq.alerts.v1.AlertSettings) AlertSettings defines the properties that affect the trigger and presentation of an alert. It specifies the conditions under which an alert should be fired and how it should behave.EntityGroupQuery
(synq.alerts.v1.EntityGroupQuery) EntityGroupQuery defines a query to select a group of entities. This is used to specify which entities should be monitored by an alert.IssueAlertSettings
(synq.alerts.v1.IssueAlertSettings) IssueAlertSettings is the unified alert settings type for issue-based alerts. It replaces both EntityFailureAlertSettings and IssueLifecycleAlertSettings.IssueGroupingStrategy
(synq.alerts.v1.IssueGroupingStrategy) IssueGroupingStrategy controls how issues are grouped for alerting purposes.IssueGroupingStrategy.NoGrouping
(synq.alerts.v1.IssueGroupingStrategy.NoGrouping) NoGrouping - each issue triggers a separate alert.IssueGroupingStrategy.SystemDetected
(synq.alerts.v1.IssueGroupingStrategy.SystemDetected) SystemDetected - the system automatically groups related issues.OngoingAlertsStrategy
(synq.alerts.v1.OngoingAlertsStrategy) OngoingAlertsStrategy defines how to handle ongoing/repeated alerts. This prevents alert spam by controlling notification frequency.OngoingAlertsStrategy.Disabled
(synq.alerts.v1.OngoingAlertsStrategy.Disabled) Disabled strategy - no ongoing alerts will be sent after the initial alert. No configuration needed - alerts are simply disabled after the first one.OngoingAlertsStrategy.Schedule
(synq.alerts.v1.OngoingAlertsStrategy.Schedule) Schedule strategy - alerts are sent on a scheduled basis.OngoingAlertsStrategy.Stream
(synq.alerts.v1.OngoingAlertsStrategy.Stream) Stream strategy - alerts are sent continuously as issues persist. No configuration needed - alerts stream continuously.SchemaChangeAlertSettings
(synq.alerts.v1.SchemaChangeAlertSettings) SchemaChangeAlertSettings configures alerts for schema changes. This alert triggers when the schema of monitored entities changes.SelectionQuery
(synq.alerts.v1.SelectionQuery) SelectionQuery represents a query that selects entities based on various criteria. It combines multiple query parts with a logical operand.SelectionQuery.QueryPart
(synq.alerts.v1.SelectionQuery.QueryPart) A single part of a selection query.AgentTask
(synq.agent.dwh.v1.AgentTask)AgentTaskData
(synq.agent.dwh.v1.AgentTaskData)FetchFullCatalogCommand
(synq.agent.dwh.v1.FetchFullCatalogCommand)FetchFullMetricsCommand
(synq.agent.dwh.v1.FetchFullMetricsCommand)FetchMetricsCommand
(synq.agent.dwh.v1.FetchMetricsCommand)FetchMetricsResult
(synq.agent.dwh.v1.FetchMetricsResult)FetchMetricsResult.ColumnValue
(synq.agent.dwh.v1.FetchMetricsResult.ColumnValue)FetchMetricsResult.MetricsRow
(synq.agent.dwh.v1.FetchMetricsResult.MetricsRow)FetchMetricsResult.QueryRows
(synq.agent.dwh.v1.FetchMetricsResult.QueryRows)FetchSegmentsCommand
(synq.agent.dwh.v1.FetchSegmentsCommand)FetchSegmentsResult
(synq.agent.dwh.v1.FetchSegmentsResult)FetchSegmentsResult.SegmentRow
(synq.agent.dwh.v1.FetchSegmentsResult.SegmentRow)FetchTableStatsCommand
(synq.agent.dwh.v1.FetchTableStatsCommand)SqlQuery
(synq.agent.dwh.v1.SqlQuery)Config
(synq.agent.dwh.v1.Config) Config represents the main configuration for the DWH agentConfig.Agent
(synq.agent.dwh.v1.Config.Agent) Agent contains metadata about this agent instanceConfig.ConnectionsEntry
(synq.agent.dwh.v1.Config.ConnectionsEntry)GenerateConnectionsYamlRequest
(synq.agent.dwh.v1.GenerateConnectionsYamlRequest) Request to generate YAML configuration from data warehouse connections.GenerateConnectionsYamlRequest.ConnectionsEntry
(synq.agent.dwh.v1.GenerateConnectionsYamlRequest.ConnectionsEntry)GenerateConnectionsYamlResponse
(synq.agent.dwh.v1.GenerateConnectionsYamlResponse) Response containing the generated YAML configuration.ListConnectionsRequest
(synq.agent.dwh.v1.ListConnectionsRequest)ListConnectionsResponse
(synq.agent.dwh.v1.ListConnectionsResponse)ListConnectionsResponse.ConnectionsEntry
(synq.agent.dwh.v1.ListConnectionsResponse.ConnectionsEntry)AgentTaskResponse
(synq.agent.dwh.v1.AgentTaskResponse)ConnectRequest
(synq.agent.dwh.v1.ConnectRequest)ConnectResponse
(synq.agent.dwh.v1.ConnectResponse)Hello
(synq.agent.dwh.v1.Hello)Hello.AvailableConnection
(synq.agent.dwh.v1.Hello.AvailableConnection)Log
(synq.agent.dwh.v1.Log)Connection
(synq.agent.dwh.v1.Connection) Connection represents a database connection configurationAthenaConf
(synq.agent.dwh.v1.AthenaConf) Amazon Athena specific configuration. Athena is serverless: there is no host/port — the endpoint is implied by the AWS region. Queries run inside a workgroup that owns the per-query data-scan cap and the S3 query result location. The configured workgroup MUST have ResultConfiguration.OutputLocation set, otherwise every Athena query fails. Setting EnforceWorkGroupConfiguration=true on the workgroup is strongly recommended so per-query overrides cannot escape the cap. Authentication AthenaConf carries an AWS credential source in one of three ways:- Static IAM access key — set access_key_id and secret_access_key (and optionally session_token if those keys are short-lived STS credentials).
- Shared-config profile — set aws_profile to a named profile from ~/.aws/credentials or ~/.aws/config. Useful when the agent host already has AWS CLI configured.
- AWS default credential chain — leave all of the above empty. The AWS SDK then uses environment variables (AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_PROFILE), shared config, or the EC2 / ECS / EKS instance role attached to the agent host.
BigQueryConf
(synq.agent.dwh.v1.BigQueryConf) BigQuery specific configurationClickhouseConf
(synq.agent.dwh.v1.ClickhouseConf)DatabricksConf
(synq.agent.dwh.v1.DatabricksConf)DuckDBConf
(synq.agent.dwh.v1.DuckDBConf) DuckDB / MotherDuck specific configuration. Supports two modes:- Local/embedded: set database to a file path (e.g. “/tmp/my.duckdb”) or “:memory:”
- MotherDuck (cloud): set motherduck_account and motherduck_token
FabricConf
(synq.agent.dwh.v1.FabricConf) Microsoft Fabric Warehouse / Lakehouse SQL analytics endpoint configuration. Fabric speaks T-SQL over TDS (like SQL Server) but is deliberately its own integration with a minimal, opinionated surface: the connection always uses TLS on port 1433 and authenticates with a Microsoft Entra ID service principal (Fabric rejects SQL logins entirely). Callers therefore only supply the endpoint, the warehouse name, and the service-principal credentials — the azuread ActiveDirectoryServicePrincipal workflow and encryption settings are fixed internally so there is nothing to guess. For hosted deployments that mint their own Entra token (managed identity / workload-identity federation), set access_token instead of client_id + client_secret.MSSQLConf
(synq.agent.dwh.v1.MSSQLConf) Microsoft SQL Server / Azure SQL Database specific configuration. SQL Server is database-scoped — each connection targets a single database. Authentication methods (in priority order):- access_token: pre-acquired Azure AD OAuth token
- fed_auth: Azure AD federated authentication (with optional username/password)
- username + password: standard SQL Server Authentication
MySQLConf
(synq.agent.dwh.v1.MySQLConf) MySQL specific configurationMySQLConf.ParamsEntry
(synq.agent.dwh.v1.MySQLConf.ParamsEntry)OracleConf
(synq.agent.dwh.v1.OracleConf) Oracle Database specific configuration. Oracle connections are scoped to a Pluggable Database (PDB) via the service name. Authentication methods:- wallet_path: Oracle Wallet (mTLS) for OCI Autonomous Database
- username + password: standard Oracle database authentication Both can be combined (wallet for TLS + explicit credentials).
PostgresConf
(synq.agent.dwh.v1.PostgresConf) Postgres specific configurationRedshiftConf
(synq.agent.dwh.v1.RedshiftConf) Redshift specific configurationSnowflakeConf
(synq.agent.dwh.v1.SnowflakeConf) Snowflake specific configurationTrinoConf
(synq.agent.dwh.v1.TrinoConf) Trino specific configurationColumnMapping
(synq.agent.recon.v1.ColumnMapping) ColumnMapping maps a source column name to a target column name. Used when source and target use different naming conventions for the same data (e.g., snake_case vs SCREAMING_SNAKE_CASE, or completely different names). Only columns with different names need explicit mapping — columns with identical names (or case-insensitive matches when case_insensitive is true) are matched automatically.Dataset
(synq.agent.recon.v1.Dataset) Dataset defines a source or target dataset for reconciliation. A dataset specifies which connection to use and how to select data — either via a raw SQL query or by referencing a table with optional column filtering.TableReference
(synq.agent.recon.v1.TableReference) TableReference specifies a table and optional column filtering. Use this instead of a raw query when you want to compare all (or most) columns of a table without writing SQL.name is the table or view name (e.g., “orders”, “fact_sales”).
database and schema are optional namespace qualifiers.
The actual SQL FQN is generated at runtime using the appropriate dialect quoting.
CronSchedule
(synq.agent.recon.v1.CronSchedule)ICalSchedule
(synq.agent.recon.v1.ICalSchedule)ReconciliationConfigSummary
(synq.agent.recon.v1.ReconciliationConfigSummary) Summary of a single reconciliation within a suite config (for listing without parsing full config).SuiteSchedule
(synq.agent.recon.v1.SuiteSchedule) Schedule configuration for managed suites.AuditLogEntry
(synq.agent.recon.v1.AuditLogEntry) AuditLogEntry is a summary of an audit log for listing purposes. Use GetAuditLog to retrieve the full audit log data.GetAuditLogRequest
(synq.agent.recon.v1.GetAuditLogRequest)GetAuditLogResponse
(synq.agent.recon.v1.GetAuditLogResponse)IngestAuditLogRequest
(synq.agent.recon.v1.IngestAuditLogRequest)IngestAuditLogResponse
(synq.agent.recon.v1.IngestAuditLogResponse)ListAuditLogsRequest
(synq.agent.recon.v1.ListAuditLogsRequest)ListAuditLogsResponse
(synq.agent.recon.v1.ListAuditLogsResponse)ReconciliationSummary
(synq.agent.recon.v1.ReconciliationSummary) ReconciliationSummary is a compact summary of a single reconciliation within an audit log entry.ConnectionEnvironmentOverride
(synq.agent.recon.v1.ConnectionEnvironmentOverride) ConnectionEnvironmentOverride applies to all datasets using a given connection. Provides a default table path override for all datasets on that connection.DatasetEnvironmentOverride
(synq.agent.recon.v1.DatasetEnvironmentOverride) DatasetEnvironmentOverride applies to a specific dataset in a specific reconciliation. Takes precedence over connection-level overrides.ReconEnvironment
(synq.agent.recon.v1.ReconEnvironment) ReconEnvironment defines overrides applied to a suite before execution. Environments allow the same suite definition to run against different database locations (e.g., dev vs production schemas) without modifying the suite itself. Used both in synq-recon CLI (loaded from .env.yaml files) and in kernel-recon cloud (managed as workspace-level configurations).ReconEnvironment.ConnectionsEntry
(synq.agent.recon.v1.ReconEnvironment.ConnectionsEntry)ReconEnvironment.DatasetsEntry
(synq.agent.recon.v1.ReconEnvironment.DatasetsEntry)ReconEnvironment.VariablesEntry
(synq.agent.recon.v1.ReconEnvironment.VariablesEntry)TablePathOverride
(synq.agent.recon.v1.TablePathOverride) TablePathOverride remaps components of a fully-qualified table name. Only set fields are overridden — unset fields keep the suite’s original value. Applied to TableReference fields in datasets when an environment is active.ConnectionMapping
(synq.agent.recon.v1.ConnectionMapping) Maps a reconciliation-connection name (as referenced in the suite config) to a concrete SYNQ integration. Used at execution time to resolve DWH credentials. Two credential planes are defined on the wire:- integration_id: workspace-level integration. Required for deployment paths and acceptable for adhoc submission when the caller has SCOPE_INTEGRATION_EDIT.
- user_integration_id: per-user OAuth-backed integration. Accepted only on adhoc submission, and only when a user identity is present in the calling context. Deployment paths reject this branch unconditionally — scheduled runs must be able to fire without any particular user being available, so they always run with workspace credentials.
integration_id
(field 2) is preserved as one branch of the oneof so existing serialized
rows decode unchanged.
ConnectionResolutionFailure
(synq.agent.recon.v1.ConnectionResolutionFailure) Error-details payload attached to FAILED_PRECONDITION when a recon request cannot be honoured because one or more suite connection names have no usable mapping. The caller should prompt the user to bind every listed connection and retry.GetSuiteDeploymentRequest
(synq.agent.recon.v1.GetSuiteDeploymentRequest)GetSuiteDeploymentResponse
(synq.agent.recon.v1.GetSuiteDeploymentResponse)ListSuiteDeploymentHistoryRequest
(synq.agent.recon.v1.ListSuiteDeploymentHistoryRequest)ListSuiteDeploymentHistoryResponse
(synq.agent.recon.v1.ListSuiteDeploymentHistoryResponse)ListSuiteDeploymentsRequest
(synq.agent.recon.v1.ListSuiteDeploymentsRequest)ListSuiteDeploymentsResponse
(synq.agent.recon.v1.ListSuiteDeploymentsResponse)PauseDeploymentRequest
(synq.agent.recon.v1.PauseDeploymentRequest)PauseDeploymentResponse
(synq.agent.recon.v1.PauseDeploymentResponse)PromoteSuiteRequest
(synq.agent.recon.v1.PromoteSuiteRequest)
Server semantics: - absent : reuse the existing deployment for this suite_id, or generate a fresh UUIDv7 - present, no row exists for (workspace, deployment_id) : adopt as-is - present, row exists with same suite_id : idempotent retry - present, row exists with different suite_id : ALREADY_EXISTS |
| actor | Actor | Actor performing the promotion. Required. |
| deployment_annotations | repeated Annotation | Initial deployment-level annotation overlay. Merged with suite-level and case-level annotations from the frozen suite snapshot. Use UpdateDeploymentAnnotations to mutate later without re-promoting. |
| case_failure_impacts | map CaseFailureImpactsEntry | Per-case override controlling how the tables referenced by each reconciliation case propagate onto runs. Keyed by case
name from the suite config. When a key is omitted on re-promote, the prior deployment’s value is retained — operators only set keys they want to change, and the FE can offer an “apply to all” action by sending the same value under every case name. New cases (not present in any previous deployment of this suite_id) default to RAISE_ISSUE_ON_TABLES when unset.
Sending CASE_FAILURE_IMPACT_UNSPECIFIED for a known case is treated as “no opinion, keep current”; to actively reset to the default, either omit the case or send RAISE_ISSUE_ON_TABLES. |
PromoteSuiteRequest.CaseFailureImpactsEntry
(synq.agent.recon.v1.PromoteSuiteRequest.CaseFailureImpactsEntry)PromoteSuiteResponse
(synq.agent.recon.v1.PromoteSuiteResponse)ResumeDeploymentRequest
(synq.agent.recon.v1.ResumeDeploymentRequest)ResumeDeploymentResponse
(synq.agent.recon.v1.ResumeDeploymentResponse)SuiteDeployment
(synq.agent.recon.v1.SuiteDeployment) SuiteDeployment is the latest state of a deployment (current row).
“managed” or “adhoc” |
| source_config_state_at | Timestamp | none |
| state_at | Timestamp | Most recent event timestamp. |
| last_action | DeploymentAction | none |
| oneof _last_actor.last_actor | optional Actor | none |
| oneof _last_change_summary.last_change_summary | optional string | none |
| oneof _next_run_at.next_run_at | optional Timestamp | Next cron occurrence computed live from
schedule at response time. Absent when there’s no schedule, when the deployment is inactive/paused, or when the schedule expression no longer yields an upcoming occurrence (e.g. an iCal RRULE that has finished). Use this for “Next run: …” UI hints — it’s the authoritative upcoming-tick source, independent of any pre-materialised execution_jobs / run_state rows. |
| deployment_annotations | repeated Annotation | Deployment-level annotation overlay. Applied on top of the suite-level and case-level annotations baked into the frozen suite snapshot. The merged, deduplicated list lives on PromotedReconSuiteMetadata / PromotedReconCaseMetadata — this field exposes only the deployment’s own overlay so callers can render and edit it independently. |
| case_failure_impacts | map CaseFailureImpactsEntry | Effective per-case CaseFailureImpact map currently in force for this deployment. Keyed by case name. Cases without an entry behave as RAISE_ISSUE_ON_TABLES. Drives whether the runner attaches each case’s referenced tables to Run.target (issue-raising) or Run.extra_references (visibility only) — see PromotedReconCaseMetadata.error_tables / shown_tables for the resolved table lists. |
SuiteDeployment.CaseFailureImpactsEntry
(synq.agent.recon.v1.SuiteDeployment.CaseFailureImpactsEntry)SuiteDeploymentHistoryEntry
(synq.agent.recon.v1.SuiteDeploymentHistoryEntry) SuiteDeploymentHistoryEntry is a single event in the deployment’s history.SuiteDeploymentHistoryEntry.CaseFailureImpactsEntry
(synq.agent.recon.v1.SuiteDeploymentHistoryEntry.CaseFailureImpactsEntry)TriggerDeploymentRequest
(synq.agent.recon.v1.TriggerDeploymentRequest)TriggerDeploymentResponse
(synq.agent.recon.v1.TriggerDeploymentResponse)UnpromoteSuiteRequest
(synq.agent.recon.v1.UnpromoteSuiteRequest)UnpromoteSuiteResponse
(synq.agent.recon.v1.UnpromoteSuiteResponse)UnresolvedConnection
(synq.agent.recon.v1.UnresolvedConnection) One entry per connection name the server failed to resolve. Returned inside ConnectionResolutionFailure as the structured error detail of a FAILED_PRECONDITION on adhoc submission or deployment promote/update.UpdateDeploymentAnnotationsRequest
(synq.agent.recon.v1.UpdateDeploymentAnnotationsRequest)UpdateDeploymentAnnotationsResponse
(synq.agent.recon.v1.UpdateDeploymentAnnotationsResponse)UpdateDeploymentCaseImpactsRequest
(synq.agent.recon.v1.UpdateDeploymentCaseImpactsRequest)UpdateDeploymentCaseImpactsRequest.CaseFailureImpactsEntry
(synq.agent.recon.v1.UpdateDeploymentCaseImpactsRequest.CaseFailureImpactsEntry)UpdateDeploymentCaseImpactsResponse
(synq.agent.recon.v1.UpdateDeploymentCaseImpactsResponse)UpdateDeploymentMappingsRequest
(synq.agent.recon.v1.UpdateDeploymentMappingsRequest)UpdateDeploymentMappingsResponse
(synq.agent.recon.v1.UpdateDeploymentMappingsResponse)UpdateDeploymentScheduleRequest
(synq.agent.recon.v1.UpdateDeploymentScheduleRequest)UpdateDeploymentScheduleResponse
(synq.agent.recon.v1.UpdateDeploymentScheduleResponse)ParseYamlRequest
(synq.agent.recon.v1.ParseYamlRequest)ParseYamlResponse
(synq.agent.recon.v1.ParseYamlResponse)RenderYamlRequest
(synq.agent.recon.v1.RenderYamlRequest)RenderYamlResponse
(synq.agent.recon.v1.RenderYamlResponse)ColumnThresholdOverride
(synq.agent.recon.v1.ColumnThresholdOverride) ColumnThresholdOverride associates threshold overrides with a specific group_column level in the aggregate drill-down hierarchy.MeasureThresholdOverride
(synq.agent.recon.v1.MeasureThresholdOverride) MeasureThresholdOverride associates threshold overrides with a specific measure (aggregate function + column combination).ThresholdConfig
(synq.agent.recon.v1.ThresholdConfig) ThresholdConfig defines tolerance thresholds for aggregate comparisons. A difference is reported as a mismatch only when it exceeds ALL configured thresholds (AND logic: both absolute AND percentage must be exceeded). Thresholds can be overridden at finer granularity:- per_column: override thresholds for a specific group_column drill-down level.
- per_measure: override thresholds for a specific measure (e.g., “SUM(amount)”).
- Nesting: per_column entries may contain per_measure overrides (most specific wins).
DeleteSuiteConfigRequest
(synq.agent.recon.v1.DeleteSuiteConfigRequest)DeleteSuiteConfigResponse
(synq.agent.recon.v1.DeleteSuiteConfigResponse)GetSuiteConfigRequest
(synq.agent.recon.v1.GetSuiteConfigRequest)GetSuiteConfigResponse
(synq.agent.recon.v1.GetSuiteConfigResponse)GetSuiteConfigVersionRequest
(synq.agent.recon.v1.GetSuiteConfigVersionRequest)GetSuiteConfigVersionResponse
(synq.agent.recon.v1.GetSuiteConfigVersionResponse)ListSuiteConfigVersionsRequest
(synq.agent.recon.v1.ListSuiteConfigVersionsRequest)ListSuiteConfigVersionsResponse
(synq.agent.recon.v1.ListSuiteConfigVersionsResponse)ListSuiteConfigsRequest
(synq.agent.recon.v1.ListSuiteConfigsRequest)ListSuiteConfigsResponse
(synq.agent.recon.v1.ListSuiteConfigsResponse)SubmitAdhocSuiteRequest
(synq.agent.recon.v1.SubmitAdhocSuiteRequest)
When omitted, the server attempts to resolve each connection name against a workspace integration of the same name (legacy behaviour). When the suite references connection names that the server cannot resolve, the call fails with FAILED_PRECONDITION + a ConnectionResolutionFailure detail listing every unresolved name and candidate integrations, so the caller can prompt the user to bind them.
Both workspace-level (integration_id) and user-level (user_integration_id) credentials are accepted here: - integration_id requires SCOPE_INTEGRATION_EDIT on the caller. - user_integration_id requires a user identity in the calling context and the integration’s allow_reconciliation_adhoc gate enabled. |
| oneof _run_bisection.run_bisection | optional bool | When true (default), the runner drills into each mismatched reconciliation via bisection after the quick check fails. Set to false to stop after the quick check — useful for cheap smoke runs, or when the caller plans to trigger a manual drill later.
Per-reconciliation
bisection.enabled still gates whether a given recon is eligible for drill, so this flag is the run-level off switch layered on top. |
| oneof _execution_timeout.execution_timeout | optional Duration | Maximum wall-clock time for this ad-hoc run (quick check plus any bisection drill). A run that exceeds it is cancelled and marked failed. Absent uses the server default; the server clamps the effective value to a supported range. |
| actor | Actor | Actor submitting the run. Required. |
SubmitAdhocSuiteResponse
(synq.agent.recon.v1.SubmitAdhocSuiteResponse)SuiteConfig
(synq.agent.recon.v1.SuiteConfig) SuiteConfig represents the latest version of a reconciliation suite configuration.SuiteConfigVersion
(synq.agent.recon.v1.SuiteConfigVersion) SuiteConfigVersion represents a historical version of a suite config.UpsertSuiteConfigRequest
(synq.agent.recon.v1.UpsertSuiteConfigRequest)UpsertSuiteConfigResponse
(synq.agent.recon.v1.UpsertSuiteConfigResponse)AggregateDrillTarget
(synq.agent.recon.v1.AggregateDrillTarget) AggregateDrillTarget specifies how to extend or drill deeper into aggregate results.BisectionDrillTarget
(synq.agent.recon.v1.BisectionDrillTarget) BisectionDrillTarget specifies which mismatch leaves to drill deeper into.GroupTarget
(synq.agent.recon.v1.GroupTarget) GroupTarget identifies a specific group to drill into by its key values.ReconcilationFilter
(synq.agent.recon.v1.ReconcilationFilter) ReconcilationFilter controls which reconciliations are included or excluded.ReconcilationOverride
(synq.agent.recon.v1.ReconcilationOverride) ReconcilationOverride provides per-reconciliation instructions for a run. Used to drill into specific mismatches, adjust config, or extend comparisons.ReconcilationRunRequest
(synq.agent.recon.v1.ReconcilationRunRequest) ReconcilationRunRequest describes what to execute in a reconciliation run. It can start a fresh run, continue from a previous audit, or drill deeper into specific mismatches found in a prior run.ReconcilationRunRequest.VariableOverridesEntry
(synq.agent.recon.v1.ReconcilationRunRequest.VariableOverridesEntry)RerunAction
(synq.agent.recon.v1.RerunAction) RerunAction re-runs a reconciliation from scratch with optional config overrides.SegmentTarget
(synq.agent.recon.v1.SegmentTarget) SegmentTarget identifies a specific segment to drill into.ReconciliationRunState
(synq.agent.recon.v1.ReconciliationRunState) ReconciliationRunState describes the lifecycle of a single reconciliation run. Returned by RunStateService.AggregateConfig
(synq.agent.recon.v1.AggregateConfig) AggregateConfig defines aggregate comparison settings. Used when mode is AGGREGATE to compare grouped measures between source and target.
Single column: flat GROUP BY comparison. group_columns: [“region”] → GROUP BY region
Multiple columns: cumulative GROUP BY drill-down, pruning matched groups at each level to focus on divergent branches. group_columns: [“region”, “city”, “store”] → Level 0: GROUP BY region → Level 1: GROUP BY region, city (only for mismatched regions) → Level 2: GROUP BY region, city, store (only for mismatched cities) |
BisectionConfig
(synq.agent.recon.v1.BisectionConfig) BisectionConfig controls the bisection drill-down algorithm that recursively splits the key range to locate individual mismatched rows. Only used in ROW_CHECKSUM mode.ConnectionQueries
(synq.agent.recon.v1.ConnectionQueries) ConnectionQueries associates SQL queries with a specific connection. Used for setup and teardown blocks at both suite and reconciliation level.ErrorHandlingConfig
(synq.agent.recon.v1.ErrorHandlingConfig) ErrorHandlingConfig controls retry and timeout behavior for database queries. Applies to all queries within a reconciliation (setup, comparison, teardown).Measure
(synq.agent.recon.v1.Measure) Measure defines a column and aggregate function(s) to compare between source and target datasets. A single measure with multiple functions expands into multiple comparisons (e.g., column=“amount” functions=[SUM, AVG] produces “SUM(amount)” and “AVG(amount)”).Reconcilation
(synq.agent.recon.v1.Reconcilation) Reconcilation defines a single reconciliation scenario comparing data between a source and target dataset. Each reconciliation runs independently and produces its own pass/mismatch/fail result.ReconcilationSuite
(synq.agent.recon.v1.ReconcilationSuite) ReconcilationSuite is the root configuration for a reconciliation suite. It defines template variables and one or more reconciliation scenarios that compare data between source and target databases. Database connections are configured separately and referenced by name.ReconcilationSuite.VariablesEntry
(synq.agent.recon.v1.ReconcilationSuite.VariablesEntry)ReportingConfig
(synq.agent.recon.v1.ReportingConfig) ReportingConfig controls the level of detail included in reconciliation output for mismatched rows. Higher detail levels reveal more data but may have privacy implications.WindowConfig
(synq.agent.recon.v1.WindowConfig) WindowConfig defines a time window for incremental comparison. When configured, automatically provides a {{window_start}} template variable that resolves to (current_time - lookback). Use this in query WHERE clauses to limit comparison to recent data.CutoffApplyConfig
(synq.agent.recon.v1.CutoffApplyConfig) CutoffApplyConfig controls how the resolved cutoff value is applied as a WHERE filter.CutoffConfig
(synq.agent.recon.v1.CutoffConfig) CutoffConfig defines a dynamic cutoff filter for sync reconciliation. It derives a watermark value from the actual data (e.g., MAX(created_at)) to automatically exclude rows that haven’t been synced yet. The cutoff is resolved at runtime before comparison queries run:- Derive watermark(s) from source and/or target via aggregate queries.
- Combine them (default: MIN of both sides).
- Optionally truncate to a time boundary and apply an offset.
- Apply as WHERE filter to both source and target queries.
CutoffSideConfig
(synq.agent.recon.v1.CutoffSideConfig) CutoffSideConfig configures watermark derivation for one side (source or target). There are two modes:- Column + aggregate (default): auto-generates a watermark query from the dataset. For table-based datasets, queries the table directly (the column does NOT need to be in the reconciliation column list). For query-based datasets, wraps the query as a subquery (the column MUST be in the query’s SELECT list).
- Custom query: provide a SQL query that returns a single row with a “watermark” column. Use this when the auto-generated query doesn’t work (e.g., complex joins, custom logic).
query field is always populated with the actual SQL
that was executed, regardless of which mode was used. This ensures the audit log captures
the exact query for reproducibility.
BatchReconciliationRunStateRequest
(synq.agent.recon.v1.BatchReconciliationRunStateRequest)BatchReconciliationRunStateResponse
(synq.agent.recon.v1.BatchReconciliationRunStateResponse)BatchReconciliationRunStateResponse.StatesEntry
(synq.agent.recon.v1.BatchReconciliationRunStateResponse.StatesEntry)CancelReconciliationRunRequest
(synq.agent.recon.v1.CancelReconciliationRunRequest)CancelReconciliationRunResponse
(synq.agent.recon.v1.CancelReconciliationRunResponse)ListReconciliationRunStateRequest
(synq.agent.recon.v1.ListReconciliationRunStateRequest)ListReconciliationRunStateResponse
(synq.agent.recon.v1.ListReconciliationRunStateResponse)SuiteRunStates
(synq.agent.recon.v1.SuiteRunStates) SuiteRunStates groups the most relevant run rows for a single suite.AggregateDrillChild
(synq.agent.recon.v1.AggregateDrillChild) AggregateDrillChild represents a single divergent group within a drill-down level.AggregateDrillChild.SourceValuesEntry
(synq.agent.recon.v1.AggregateDrillChild.SourceValuesEntry)AggregateDrillChild.TargetValuesEntry
(synq.agent.recon.v1.AggregateDrillChild.TargetValuesEntry)AggregateDrillNode
(synq.agent.recon.v1.AggregateDrillNode) AggregateDrillNode represents a node in the hierarchical aggregate drill-down tree.AggregateStageResult
(synq.agent.recon.v1.AggregateStageResult) AggregateStageResult is the result for an aggregate_check stage.AuditLog
(synq.agent.recon.v1.AuditLog) AuditLog is the root structure for a reconciliation run audit. It captures all operations performed during a synq-recon reconciliation run.AuditLog.ResolvedTableReferencesEntry
(synq.agent.recon.v1.AuditLog.ResolvedTableReferencesEntry)AuditLog.ResolvedVariablesEntry
(synq.agent.recon.v1.AuditLog.ResolvedVariablesEntry)AuditMeta
(synq.agent.recon.v1.AuditMeta) AuditMeta holds build and environment metadata for the synq-recon binary.AuditSummary
(synq.agent.recon.v1.AuditSummary) AuditSummary holds aggregated counts derived from individual reconciliation results.BisectionStageResult
(synq.agent.recon.v1.BisectionStageResult) BisectionStageResult is the result for a bisection_drill stage.BisectionStatistics
(synq.agent.recon.v1.BisectionStatistics) BisectionStatistics holds statistics about the bisection segment tree.BisectionStatistics.DepthDistributionEntry
(synq.agent.recon.v1.BisectionStatistics.DepthDistributionEntry)BisectionStatistics.MismatchByDepthEntry
(synq.agent.recon.v1.BisectionStatistics.MismatchByDepthEntry)BisectionStatistics.PerDepthEntry
(synq.agent.recon.v1.BisectionStatistics.PerDepthEntry)CutoffResult
(synq.agent.recon.v1.CutoffResult) CutoffResult captures the runtime resolution of a cutoff filter. Stored in the audit log to provide full transparency into how the cutoff was derived and applied.DatasetInfo
(synq.agent.recon.v1.DatasetInfo) DatasetInfo captures runtime information about a source or target dataset.DepthStats
(synq.agent.recon.v1.DepthStats) DepthStats holds per-depth-level statistics for the bisection tree.DiffQueries
(synq.agent.recon.v1.DiffQueries) DiffQueries holds investigation queries for a mismatch leaf.InvestigationQuery
(synq.agent.recon.v1.InvestigationQuery) InvestigationQuery represents a merged diff query covering one or more adjacent mismatch leaves.MeasureDifferences
(synq.agent.recon.v1.MeasureDifferences) MeasureDifferences holds all difference variants for measure comparisons.MeasureDifferences.AbsoluteEntry
(synq.agent.recon.v1.MeasureDifferences.AbsoluteEntry)MeasureDifferences.PctSymmetricEntry
(synq.agent.recon.v1.MeasureDifferences.PctSymmetricEntry)MeasureDifferences.PctVsSourceEntry
(synq.agent.recon.v1.MeasureDifferences.PctVsSourceEntry)MeasureDifferences.PctVsTargetEntry
(synq.agent.recon.v1.MeasureDifferences.PctVsTargetEntry)MeasureDifferences.RelativeEntry
(synq.agent.recon.v1.MeasureDifferences.RelativeEntry)MeasureVerdict
(synq.agent.recon.v1.MeasureVerdict) MeasureVerdict captures the threshold evaluation result for a single measure.MismatchLeafDetail
(synq.agent.recon.v1.MismatchLeafDetail) MismatchLeafDetail holds detailed information about a single mismatch leaf.Normalization
(synq.agent.recon.v1.Normalization) Normalization records the column expressions used after cross-DB type alignment.QueryRecord
(synq.agent.recon.v1.QueryRecord) QueryRecord captures a single SQL query execution.QueryStats
(synq.agent.recon.v1.QueryStats) QueryStats holds execution statistics collected from the database driver. Fields are optional — absent means the metric is not available for the driver.QuickCheckStageResult
(synq.agent.recon.v1.QuickCheckStageResult) QuickCheckStageResult is the result for a quick_check stage.ReconciliationAudit
(synq.agent.recon.v1.ReconciliationAudit) ReconciliationAudit captures the configuration and runtime execution data for a single reconciliation.RowMismatchAudit
(synq.agent.recon.v1.RowMismatchAudit) RowMismatchAudit captures a single row-level mismatch in the segment tree.RowMismatchAudit.SourceValuesEntry
(synq.agent.recon.v1.RowMismatchAudit.SourceValuesEntry)RowMismatchAudit.TargetValuesEntry
(synq.agent.recon.v1.RowMismatchAudit.TargetValuesEntry)RowMismatchDetail
(synq.agent.recon.v1.RowMismatchDetail) RowMismatchDetail holds per-row mismatch detail.SegmentAuditNode
(synq.agent.recon.v1.SegmentAuditNode) SegmentAuditNode represents a node in the bisection segment tree.SegmentInfo
(synq.agent.recon.v1.SegmentInfo) SegmentInfo identifies a key range segment.StageAudit
(synq.agent.recon.v1.StageAudit) StageAudit captures one reconciliation stage execution.ThresholdEvaluation
(synq.agent.recon.v1.ThresholdEvaluation) ThresholdEvaluation captures the effective thresholds applied and per-measure verdicts.ThresholdEvaluation.MeasuresEntry
(synq.agent.recon.v1.ThresholdEvaluation.MeasuresEntry)AcceptPromptSuggestionRequest
(synq.agent.sre.v1.AcceptPromptSuggestionRequest)AcceptPromptSuggestionResponse
(synq.agent.sre.v1.AcceptPromptSuggestionResponse)AgentTask
(synq.agent.sre.v1.AgentTask)AgentTaskResponse
(synq.agent.sre.v1.AgentTaskResponse)ConnectRequest
(synq.agent.sre.v1.ConnectRequest)ConnectResponse
(synq.agent.sre.v1.ConnectResponse)DismissPromptSuggestionRequest
(synq.agent.sre.v1.DismissPromptSuggestionRequest)DismissPromptSuggestionResponse
(synq.agent.sre.v1.DismissPromptSuggestionResponse)DwhConnection
(synq.agent.sre.v1.DwhConnection)DwhConnection.ParametersEntry
(synq.agent.sre.v1.DwhConnection.ParametersEntry)EvaluateTask
(synq.agent.sre.v1.EvaluateTask) Task to evaluate an LLM request on the agent side (for self-hosted agents).GetConfigRequest
(synq.agent.sre.v1.GetConfigRequest)GetConfigResponse
(synq.agent.sre.v1.GetConfigResponse)Hello
(synq.agent.sre.v1.Hello)ListPromptSuggestionsRequest
(synq.agent.sre.v1.ListPromptSuggestionsRequest)ListPromptSuggestionsResponse
(synq.agent.sre.v1.ListPromptSuggestionsResponse)PromptSuggestion
(synq.agent.sre.v1.PromptSuggestion)RecordPromptSuggestionRequest
(synq.agent.sre.v1.RecordPromptSuggestionRequest)
Explicit-presence (
optional) so the field can carry an empty string with meaning. An empty value is a deliberate proposal to REMOVE the prompt entirely (clear the override back to the built-in default), distinct from omitting the field. Use this when a customised prompt is judged counter-productive and the workspace is better off with no override at all.
required is intentionally NOT set: that rule rejects the empty string, which would make a removal proposal un-expressible. Presence (the field must be set at all) is enforced by the handler via a nil check, so an omitted field is still rejected while an explicit "" is accepted.
Producer guidance — propose the smallest change that achieves the goal. Start from the current prompt value and append, delete, or rewrite only the relevant section; do not regenerate the whole prompt from scratch. The reviewer is shown a Current-vs-Suggested diff, so a surgical edit is far easier to approve than a wholesale rewrite that rewords every line.
Keep individual lines short and break content into paragraphs separated by newlines instead of collapsing everything onto one long line. The review UI diffs line by line, so well-broken text produces a readable, minimal diff; a single monster line shows up as one giant replaced block. |
| rationale | string | Short markdown explanation of why the change is proposed, capped at 2048 bytes. Shown to the reviewer as a “why” callout above the diff, so keep it to a few tight sentences or bullet points — it justifies the change, it does not restate the prompt. As with suggested_value, prefer short lines / paragraphs over one long line. |
| evidence_json | bytes | Opaque JSON: structured pointers the analyser used to produce the suggestion (top entities, sample issues, etc.). Stored verbatim for traceability. |
| source | string | Producer identifier + version, e.g. "offline_audit_v1". A short slug, not free text — capped at 128 bytes. |
RecordPromptSuggestionResponse
(synq.agent.sre.v1.RecordPromptSuggestionResponse)SuggestTestsTask
(synq.agent.sre.v1.SuggestTestsTask)TriageTask
(synq.agent.sre.v1.TriageTask)EvaluateRequest
(synq.agent.sre.v1.EvaluateRequest) Request to evaluate an LLM request with structured output.EvaluateResponse
(synq.agent.sre.v1.EvaluateResponse) Response from the LLM evaluation.LlmResponseMetrics
(synq.agent.sre.v1.LlmResponseMetrics) Metrics about the LLM response.Message
(synq.agent.sre.v1.Message) A single message in the conversation history.BatchLatestConclusionsRequest
(synq.agent.sre.v1.BatchLatestConclusionsRequest)BatchLatestConclusionsResponse
(synq.agent.sre.v1.BatchLatestConclusionsResponse)BatchTriageStateRequest
(synq.agent.sre.v1.BatchTriageStateRequest)BatchTriageStateResponse
(synq.agent.sre.v1.BatchTriageStateResponse)BatchTriageStateResponse.StatesEntry
(synq.agent.sre.v1.BatchTriageStateResponse.StatesEntry)ConcludeRequest
(synq.agent.sre.v1.ConcludeRequest) Request to conclude the triage investigation for one or more issues.ConcludeResponse
(synq.agent.sre.v1.ConcludeResponse) Response for the Conclude operation. Empty as the operation is fire-and-forget.ListTriageStateRequest
(synq.agent.sre.v1.ListTriageStateRequest)ListTriageStateResponse
(synq.agent.sre.v1.ListTriageStateResponse)MarkAsInProgressRequest
(synq.agent.sre.v1.MarkAsInProgressRequest)MarkAsInProgressResponse
(synq.agent.sre.v1.MarkAsInProgressResponse)MarkFailedRequest
(synq.agent.sre.v1.MarkFailedRequest)MarkFailedResponse
(synq.agent.sre.v1.MarkFailedResponse)RecordEvidenceRequest
(synq.agent.sre.v1.RecordEvidenceRequest) Request to record evidence collected during the triage investigation.RecordEvidenceResponse
(synq.agent.sre.v1.RecordEvidenceResponse) Response for the RecordEvidence operation. Empty as the operation is fire-and-forget.AnalysisEvidence
(synq.agent.sre.v1.AnalysisEvidence) AnalysisEvidence contains detailed analysis of the issue based on collected data. This should only be used as a last resort when no other more specialized evidence types (history, root cause, related issues, or changes) could be collected. It provides a comprehensive understanding of the problem and its implications.ChangeEvidence
(synq.agent.sre.v1.ChangeEvidence) ChangeEvidence documents recent changes that may have contributed to the issue. This helps in understanding if the issue is related to recent modifications.CodeChange
(synq.agent.sre.v1.CodeChange) CodeChange represents a specific change in a file within a commit.CommitEvidence
(synq.agent.sre.v1.CommitEvidence) CommitEvidence documents code changes that may have contributed to the issue. This helps in understanding if the issue is related to recent code modifications.DataQueryEvidenceItem
(synq.agent.sre.v1.DataQueryEvidenceItem) DataQueryEvidenceItem represents a single SQL query and its analysis.DataQueryEvidenceV2
(synq.agent.sre.v1.DataQueryEvidenceV2) DataQueryEvidenceV2 contains SQL queries and their analysis results with query IDs. This helps in understanding the issue through data analysis with query tracking.EvidenceItem
(synq.agent.sre.v1.EvidenceItem) EvidenceItem represents a single piece of evidence collected during the triage investigation. Each evidence item must have a title and one of the specific evidence types.HistoryEvidence
(synq.agent.sre.v1.HistoryEvidence) HistoryEvidence represents historical context from similar past issues. This helps in understanding if the current issue is recurring or has known patterns.ImpactedDataproductEvidence
(synq.agent.sre.v1.ImpactedDataproductEvidence) ImpactedDataproduct documents Data Products that are significantly affected by the issue. This helps in understanding the business impact and prioritizing resolution efforts.ImpactedOwnerEvidence
(synq.agent.sre.v1.ImpactedOwnerEvidence) ImpactedOwner documents business owners or teams that are seriously affected by the issue. This helps in understanding stakeholder impact and communication requirements.OtherEvidence
(synq.agent.sre.v1.OtherEvidence) OtherEvidence contains general analysis that doesn’t fit into other specialized evidence types. This should be used when the analysis doesn’t involve SQL queries, code changes, or other specialized evidence types.RelatedIssueEvidence
(synq.agent.sre.v1.RelatedIssueEvidence) RelatedIssueEvidence identifies other issues that may be connected to the current investigation. This helps in understanding broader context and potential dependencies.RootCauseEvidence
(synq.agent.sre.v1.RootCauseEvidence) RootCauseEvidence identifies the likely root cause of the issue being investigated. This helps in understanding the fundamental reason behind the problem.SubmitFeatureRequestRequest
(synq.agent.sre.v1.SubmitFeatureRequestRequest) Request to submit a feature request. Should only be used as a last resort when no existing tool can handle the user’s request.SubmitFeatureRequestResponse
(synq.agent.sre.v1.SubmitFeatureRequestResponse) Response for the SubmitFeatureRequest operation.TestSuggestionState
(synq.agent.sre.v1.TestSuggestionState)BatchSuggestionStatesRequest
(synq.agent.sre.v1.BatchSuggestionStatesRequest)BatchSuggestionStatesResponse
(synq.agent.sre.v1.BatchSuggestionStatesResponse)GetActiveSuggestionStatesForRequest
(synq.agent.sre.v1.GetActiveSuggestionStatesForRequest)GetActiveSuggestionStatesForResponse
(synq.agent.sre.v1.GetActiveSuggestionStatesForResponse)ListSuggestionStatesRequest
(synq.agent.sre.v1.ListSuggestionStatesRequest)ListSuggestionStatesResponse
(synq.agent.sre.v1.ListSuggestionStatesResponse)MarkAsCancelledRequest
(synq.agent.sre.v1.MarkAsCancelledRequest)MarkAsCancelledResponse
(synq.agent.sre.v1.MarkAsCancelledResponse)MarkAsCompletedRequest
(synq.agent.sre.v1.MarkAsCompletedRequest)MarkAsCompletedResponse
(synq.agent.sre.v1.MarkAsCompletedResponse)MarkAsFailedRequest
(synq.agent.sre.v1.MarkAsFailedRequest)MarkAsFailedResponse
(synq.agent.sre.v1.MarkAsFailedResponse)MarkAsRunningRequest
(synq.agent.sre.v1.MarkAsRunningRequest)MarkAsRunningResponse
(synq.agent.sre.v1.MarkAsRunningResponse)SuggestForRequest
(synq.agent.sre.v1.SuggestForRequest)SuggestForResponse
(synq.agent.sre.v1.SuggestForResponse)AddToIncidentConclusion
(synq.agent.sre.v1.AddToIncidentConclusion) AddToIncidentConclusion indicates that the issue should be added to an existing incident. This conclusion should be supported by evidence showing the connection to the existing incident.DeclareIncidentConclusion
(synq.agent.sre.v1.DeclareIncidentConclusion) DeclareIncidentConclusion indicates that the issue requires immediate attention as an incident. This conclusion should be supported by evidence showing significant impact or risk.IssueConclusion
(synq.agent.sre.v1.IssueConclusion) IssueConclusion represents the final determination made by the LLM agent about an issue. Each conclusion type must be supported by appropriate evidence collected during investigation.IssueConclusionWithEvidence
(synq.agent.sre.v1.IssueConclusionWithEvidence)RequestForHumanReviewConclusion
(synq.agent.sre.v1.RequestForHumanReviewConclusion) RequestForHumanReviewConclusion indicates that the issue needs human review. This conclusion should be used when:- The agent has collected some evidence but cannot make a definitive conclusion
- The issue requires human judgment or expertise
- The impact is unclear or needs human assessment
SetExpectedConclusion
(synq.agent.sre.v1.SetExpectedConclusion) SetExpectedConclusion indicates that the issue is expected behavior and no action is needed. This conclusion should be supported by evidence showing this is normal operation.SetFixedConclusion
(synq.agent.sre.v1.SetFixedConclusion) SetFixedConclusion indicates that the issue has already been resolved and can be closed. This conclusion should be supported by evidence showing the fix has been applied and verified.SetNoActionNeededConclusion
(synq.agent.sre.v1.SetNoActionNeededConclusion) SetNoActionNeededConclusion indicates that the issue will resolve itself without intervention. This conclusion should be supported by evidence showing the issue is temporary or self-healing.UnexplainedConclusion
(synq.agent.sre.v1.UnexplainedConclusion) UnexplainedConclusion indicates that the agent was unable to collect sufficient evidence to understand or explain the issue. This conclusion requires high-priority human review as it may indicate a serious or complex problem that needs immediate attention.LlmConfig
(synq.agent.sre.v1.LlmConfig)OpenAIApi
(synq.agent.sre.v1.OpenAIApi)IssueTriageState
(synq.agent.sre.v1.IssueTriageState) IssueTriageState represents the current state of an issue in the SRE agent’s investigation workflow. This state is used to track the progress of automated triage and coordinate between different parts of the system.AcceptFeedback
(synq.agent.sre.v1.AcceptFeedback)ConclusionFeedback
(synq.agent.sre.v1.ConclusionFeedback)DismissFeedback
(synq.agent.sre.v1.DismissFeedback)ReTriageFeedback
(synq.agent.sre.v1.ReTriageFeedback)Config
(synq.agent.sre.v1.Config) Config represents the main configuration for the SRE agentConfig.ConnectionsEntry
(synq.agent.sre.v1.Config.ConnectionsEntry)SYNQ
(synq.agent.v1.SYNQ) SYNQ contains authentication and connection details for the Coalesce Quality platformEmailUser
(synq.users.v1.EmailUser)MsTeamsUser
(synq.users.v1.MsTeamsUser)SlackUser
(synq.users.v1.SlackUser)User
(synq.users.v1.User)UserAlias
(synq.users.v1.UserAlias)BatchGetUsersRequest
(synq.users.v1.BatchGetUsersRequest)BatchGetUsersResponse
(synq.users.v1.BatchGetUsersResponse)DeleteUserAliasesRequest
(synq.users.v1.DeleteUserAliasesRequest)DeleteUserAliasesResponse
(synq.users.v1.DeleteUserAliasesResponse)GetByAliasRequest
(synq.users.v1.GetByAliasRequest)GetByAliasResponse
(synq.users.v1.GetByAliasResponse)GetByEmailRequest
(synq.users.v1.GetByEmailRequest)GetByEmailResponse
(synq.users.v1.GetByEmailResponse)GetUserAliasesRequest
(synq.users.v1.GetUserAliasesRequest)GetUserAliasesResponse
(synq.users.v1.GetUserAliasesResponse)GetUserIdentitiesRequest
(synq.users.v1.GetUserIdentitiesRequest)GetUserIdentitiesResponse
(synq.users.v1.GetUserIdentitiesResponse)ListUsersRequest
(synq.users.v1.ListUsersRequest)ListUsersResponse
(synq.users.v1.ListUsersResponse)UpsertUserAliasesRequest
(synq.users.v1.UpsertUserAliasesRequest)UpsertUserAliasesResponse
(synq.users.v1.UpsertUserAliasesResponse)DatacheckResult
(synq.datachecks.v1.DatacheckResult) Result from a single datacheck execution.MonitorPrediction
(synq.datachecks.v1.MonitorPrediction)MonitorResult
(synq.datachecks.v1.MonitorResult) Result of a monitor execution.SqlTestResult
(synq.datachecks.v1.SqlTestResult) Result of a SQL test execution.TriggerDatachecksRequest
(synq.datachecks.v1.TriggerDatachecksRequest)TriggerDatachecksResponse
(synq.datachecks.v1.TriggerDatachecksResponse)AcceptedValuesTest
(synq.datachecks.testsuggestions.v1.AcceptedValuesTest)BusinessRuleTest
(synq.datachecks.testsuggestions.v1.BusinessRuleTest)CountDistinctTest
(synq.datachecks.testsuggestions.v1.CountDistinctTest)CountDuplicatesTest
(synq.datachecks.testsuggestions.v1.CountDuplicatesTest)EmptyTest
(synq.datachecks.testsuggestions.v1.EmptyTest)FreshnessTest
(synq.datachecks.testsuggestions.v1.FreshnessTest)MaxValueTest
(synq.datachecks.testsuggestions.v1.MaxValueTest)MinMaxTest
(synq.datachecks.testsuggestions.v1.MinMaxTest)MinValueTest
(synq.datachecks.testsuggestions.v1.MinValueTest)NotNullTest
(synq.datachecks.testsuggestions.v1.NotNullTest)RejectedValuesTest
(synq.datachecks.testsuggestions.v1.RejectedValuesTest)RelativeTimeTest
(synq.datachecks.testsuggestions.v1.RelativeTimeTest)RowCountTest
(synq.datachecks.testsuggestions.v1.RowCountTest)TestSuggestion
(synq.datachecks.testsuggestions.v1.TestSuggestion) Test types that can be suggestedUniqueTest
(synq.datachecks.testsuggestions.v1.UniqueTest)BatchAcceptTestSuggestionsRequest
(synq.datachecks.testsuggestions.v1.BatchAcceptTestSuggestionsRequest)BatchAcceptTestSuggestionsResponse
(synq.datachecks.testsuggestions.v1.BatchAcceptTestSuggestionsResponse)BatchCreateTestSuggestionsRequest
(synq.datachecks.testsuggestions.v1.BatchCreateTestSuggestionsRequest)BatchCreateTestSuggestionsResponse
(synq.datachecks.testsuggestions.v1.BatchCreateTestSuggestionsResponse)BatchGetTestSuggestionsForEntitiesRequest
(synq.datachecks.testsuggestions.v1.BatchGetTestSuggestionsForEntitiesRequest)BatchGetTestSuggestionsForEntitiesResponse
(synq.datachecks.testsuggestions.v1.BatchGetTestSuggestionsForEntitiesResponse)BatchRejectTestSuggestionsRequest
(synq.datachecks.testsuggestions.v1.BatchRejectTestSuggestionsRequest)BatchRejectTestSuggestionsResponse
(synq.datachecks.testsuggestions.v1.BatchRejectTestSuggestionsResponse)AcceptedValuesTest
(synq.datachecks.sqltests.v1.AcceptedValuesTest)BusinessQueryTest
(synq.datachecks.sqltests.v1.BusinessQueryTest)
Format: a single SELECT (CTEs allowed); no semicolon. May read any tables the integration has access to. The engine wraps it as
WITH raw_query AS (<sql_query>) SELECT * FROM raw_query.
Use this when the failure set requires GROUP BY, JOINs, window functions, or other shape that a per-row predicate (BusinessRuleTest) cannot express.
Example: SELECT customer_id, SUM(amount) AS total FROM orders WHERE status = ‘paid’ GROUP BY customer_id HAVING SUM(amount) < 0
Template.identifier still anchors the test to a primary table for ownership, alerts, and UI grouping.
Note: this test does not expose a select_columns option. The author controls the SELECT shape directly in sql_query. |
BusinessRuleTest
(synq.datachecks.sqltests.v1.BusinessRuleTest)
Format: a single boolean expression — no SELECT, WITH, or semicolons. References columns on the anchor table. The engine executes it as
SELECT * FROM <anchor_table> WHERE <sql_expression>.
Example: “total_amount != subtotal + tax” reports rows where totals disagree. Use BusinessQueryTest for SELECT / GROUP BY / multi-table logic. |
| select_columns | repeated string | Optional list of columns to include in the SELECT clause of the generated SQL. When empty (default), SELECT * is used — all columns are returned. |
CountDistinctTest
(synq.datachecks.sqltests.v1.CountDistinctTest) Note: this test does not expose aselect_columns option. The result is
an aggregate count, not a set of failure rows.
CountDuplicatesTest
(synq.datachecks.sqltests.v1.CountDuplicatesTest) Note: this test does not expose aselect_columns option. The result is
an aggregate count, not a set of failure rows.
EmptyTest
(synq.datachecks.sqltests.v1.EmptyTest)Evaluator
(synq.datachecks.sqltests.v1.Evaluator) Evaluator is a named condition attached to a SqlTest that produces an independent pass/fail signal. A single SqlTest may carry multiple evaluators, each targeting a different concern (nullability, value ranges, row counts, etc.).EvaluatorResult
(synq.datachecks.sqltests.v1.EvaluatorResult) EvaluatorResult is the execution outcome of a single Evaluator within a SqlTest run. Fields id/name/sql_expression/severity are a snapshot of the evaluator definition at execution time so historical results survive later edits to the test.FreshnessTest
(synq.datachecks.sqltests.v1.FreshnessTest)InputTable
(synq.datachecks.sqltests.v1.InputTable) InputTable is a table reference resolved from the SQL expression of a SqlTest.MaxValueTest
(synq.datachecks.sqltests.v1.MaxValueTest)MinMaxTest
(synq.datachecks.sqltests.v1.MinMaxTest)MinValueTest
(synq.datachecks.sqltests.v1.MinValueTest)NotNullTest
(synq.datachecks.sqltests.v1.NotNullTest)RejectedValuesTest
(synq.datachecks.sqltests.v1.RejectedValuesTest)RelationshipColumn
(synq.datachecks.sqltests.v1.RelationshipColumn)RelationshipReference
(synq.datachecks.sqltests.v1.RelationshipReference)RelationshipsTest
(synq.datachecks.sqltests.v1.RelationshipsTest)RelativeTimeTest
(synq.datachecks.sqltests.v1.RelativeTimeTest)SqlTest
(synq.datachecks.sqltests.v1.SqlTest) The SqlTest is a SQL test that is executed on a Coalesce Quality entity.SqlTestAudit
(synq.datachecks.sqltests.v1.SqlTestAudit)SqlValue
(synq.datachecks.sqltests.v1.SqlValue) Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).Template
(synq.datachecks.sqltests.v1.Template)UniqueTest
(synq.datachecks.sqltests.v1.UniqueTest) Note: this test does not expose aselect_columns option. The SELECT shape
is fixed by the aggregation (DISTINCT columns + duplicate count); failure
rows are the duplicate keys, not raw table rows.
BatchDeleteSqlTestsRequest
(synq.datachecks.sqltests.v1.BatchDeleteSqlTestsRequest)BatchDeleteSqlTestsResponse
(synq.datachecks.sqltests.v1.BatchDeleteSqlTestsResponse)BatchGetSqlTestsRequest
(synq.datachecks.sqltests.v1.BatchGetSqlTestsRequest)BatchGetSqlTestsResponse
(synq.datachecks.sqltests.v1.BatchGetSqlTestsResponse)BatchGetSqlTestsResponse.SqlTestsEntry
(synq.datachecks.sqltests.v1.BatchGetSqlTestsResponse.SqlTestsEntry)BatchUpsertSqlTestsRequest
(synq.datachecks.sqltests.v1.BatchUpsertSqlTestsRequest)BatchUpsertSqlTestsResponse
(synq.datachecks.sqltests.v1.BatchUpsertSqlTestsResponse)BatchUpsertSqlTestsResponse.UpsertError
(synq.datachecks.sqltests.v1.BatchUpsertSqlTestsResponse.UpsertError) Details of errors encountered during the upsert operation.ConfigsFilter
(synq.datachecks.sqltests.v1.ConfigsFilter)GetSqlTestAuditRequest
(synq.datachecks.sqltests.v1.GetSqlTestAuditRequest)GetSqlTestAuditResponse
(synq.datachecks.sqltests.v1.GetSqlTestAuditResponse)ListSqlTestsRequest
(synq.datachecks.sqltests.v1.ListSqlTestsRequest)ListSqlTestsResponse
(synq.datachecks.sqltests.v1.ListSqlTestsResponse)MonitorInfoRequest
(synq.monitors.info.v1.MonitorInfoRequest)MonitorInfoResponse
(synq.monitors.info.v1.MonitorInfoResponse)ColumnSource
(synq.monitors.info.v1.ColumnSource)Condition
(synq.monitors.info.v1.Condition)CountRows
(synq.monitors.info.v1.CountRows)DatabaseFqn
(synq.monitors.info.v1.DatabaseFqn)ExpressionSource
(synq.monitors.info.v1.ExpressionSource)MetadataSource
(synq.monitors.info.v1.MetadataSource)Metric
(synq.monitors.info.v1.Metric)MonitorCategoryDistribution
(synq.monitors.info.v1.MonitorCategoryDistribution)MonitorFailedRows
(synq.monitors.info.v1.MonitorFailedRows)MonitorFieldStats
(synq.monitors.info.v1.MonitorFieldStats)MonitorFreshness
(synq.monitors.info.v1.MonitorFreshness)MonitorInfo
(synq.monitors.info.v1.MonitorInfo)MonitorValue
(synq.monitors.info.v1.MonitorValue)MonitorVolume
(synq.monitors.info.v1.MonitorVolume)Monitored
(synq.monitors.info.v1.Monitored)Partitioning
(synq.monitors.info.v1.Partitioning)Segmentation
(synq.monitors.info.v1.Segmentation)AutomatedMonitorSettings
(synq.monitors.automated_monitors.v1.AutomatedMonitorSettings)CustomMonitorSettingsChange
(synq.monitors.automated_monitors.v1.CustomMonitorSettingsChange)EntitySelectionQuery
(synq.monitors.automated_monitors.v1.EntitySelectionQuery)EntitySelectionQuery.QueryPart
(synq.monitors.automated_monitors.v1.EntitySelectionQuery.QueryPart)ExclusiveQueryConfig
(synq.monitors.automated_monitors.v1.ExclusiveQueryConfig)ExclusiveStaticConfig
(synq.monitors.automated_monitors.v1.ExclusiveStaticConfig)MetricOption
(synq.monitors.automated_monitors.v1.MetricOption)MonitorSettingsChange
(synq.monitors.automated_monitors.v1.MonitorSettingsChange)MonitorsDeploymentOverview
(synq.monitors.automated_monitors.v1.MonitorsDeploymentOverview)MonitorsDeploymentRule
(synq.monitors.automated_monitors.v1.MonitorsDeploymentRule)MonitorsDeploymentRuleView
(synq.monitors.automated_monitors.v1.MonitorsDeploymentRuleView)ProductConfig
(synq.monitors.automated_monitors.v1.ProductConfig)ProductConfigSelfStrategy
(synq.monitors.automated_monitors.v1.ProductConfigSelfStrategy)ProductConfigSelfStrategyAll
(synq.monitors.automated_monitors.v1.ProductConfigSelfStrategyAll)ProductConfigSelfStrategySelection
(synq.monitors.automated_monitors.v1.ProductConfigSelfStrategySelection)ProductConfigUpstreamStrategy
(synq.monitors.automated_monitors.v1.ProductConfigUpstreamStrategy)ProductConfigUpstreamStrategyAll
(synq.monitors.automated_monitors.v1.ProductConfigUpstreamStrategyAll)ProductConfigUpstreamStrategySources
(synq.monitors.automated_monitors.v1.ProductConfigUpstreamStrategySources)QueryConfig
(synq.monitors.automated_monitors.v1.QueryConfig)SkippedAsset
(synq.monitors.automated_monitors.v1.SkippedAsset)StaticConfig
(synq.monitors.automated_monitors.v1.StaticConfig)BatchDeleteDeploymentRulesRequest
(synq.monitors.automated_monitors.v1.BatchDeleteDeploymentRulesRequest)BatchDeleteDeploymentRulesResponse
(synq.monitors.automated_monitors.v1.BatchDeleteDeploymentRulesResponse)BatchDeployDeploymentRulesRequest
(synq.monitors.automated_monitors.v1.BatchDeployDeploymentRulesRequest)BatchDeployDeploymentRulesResponse
(synq.monitors.automated_monitors.v1.BatchDeployDeploymentRulesResponse)BatchDeployDeploymentRulesResponse.DeployError
(synq.monitors.automated_monitors.v1.BatchDeployDeploymentRulesResponse.DeployError) Details of errors encountered during the deploy operation.BatchGetDeploymentRulesRequest
(synq.monitors.automated_monitors.v1.BatchGetDeploymentRulesRequest)BatchGetDeploymentRulesResponse
(synq.monitors.automated_monitors.v1.BatchGetDeploymentRulesResponse)BatchGetDeploymentRulesResponse.DeploymentRulesEntry
(synq.monitors.automated_monitors.v1.BatchGetDeploymentRulesResponse.DeploymentRulesEntry)BatchUpdateDeploymentRuleTitleRequest
(synq.monitors.automated_monitors.v1.BatchUpdateDeploymentRuleTitleRequest)BatchUpdateDeploymentRuleTitleResponse
(synq.monitors.automated_monitors.v1.BatchUpdateDeploymentRuleTitleResponse)BatchUpsertDeploymentRulesRequest
(synq.monitors.automated_monitors.v1.BatchUpsertDeploymentRulesRequest)BatchUpsertDeploymentRulesResponse
(synq.monitors.automated_monitors.v1.BatchUpsertDeploymentRulesResponse)BatchUpsertDeploymentRulesResponse.UpsertError
(synq.monitors.automated_monitors.v1.BatchUpsertDeploymentRulesResponse.UpsertError) Details of errors encountered during the upsert operation.ConfigsFilter
(synq.monitors.automated_monitors.v1.ConfigsFilter)DeleteDeploymentRuleRequest
(synq.monitors.automated_monitors.v1.DeleteDeploymentRuleRequest)DeleteDeploymentRuleResponse
(synq.monitors.automated_monitors.v1.DeleteDeploymentRuleResponse)DeployDeploymentRuleRequest
(synq.monitors.automated_monitors.v1.DeployDeploymentRuleRequest)DeployDeploymentRuleResponse
(synq.monitors.automated_monitors.v1.DeployDeploymentRuleResponse)GetDeployDeleteOverviewRequest
(synq.monitors.automated_monitors.v1.GetDeployDeleteOverviewRequest)GetDeployDeleteOverviewResponse
(synq.monitors.automated_monitors.v1.GetDeployDeleteOverviewResponse)GetDeployOverviewRequest
(synq.monitors.automated_monitors.v1.GetDeployOverviewRequest)GetDeployOverviewResponse
(synq.monitors.automated_monitors.v1.GetDeployOverviewResponse)ListDeploymentRulesForAssetRequest
(synq.monitors.automated_monitors.v1.ListDeploymentRulesForAssetRequest)ListDeploymentRulesForAssetResponse
(synq.monitors.automated_monitors.v1.ListDeploymentRulesForAssetResponse)ListDeploymentRulesRequest
(synq.monitors.automated_monitors.v1.ListDeploymentRulesRequest)ListDeploymentRulesResponse
(synq.monitors.automated_monitors.v1.ListDeploymentRulesResponse)UpdateDeploymentRuleTitleRequest
(synq.monitors.automated_monitors.v1.UpdateDeploymentRuleTitleRequest)UpsertDeploymentRuleRequest
(synq.monitors.automated_monitors.v1.UpsertDeploymentRuleRequest)UpsertDeploymentRuleResponse
(synq.monitors.automated_monitors.v1.UpsertDeploymentRuleResponse)HistoryRequest
(synq.monitors.history.v1.HistoryRequest)HistoryResponse
(synq.monitors.history.v1.HistoryResponse)Prediction
(synq.monitors.history.v1.Prediction)BatchCreateMonitorRequest
(synq.monitors.custom_monitors.v1.BatchCreateMonitorRequest)BatchCreateMonitorResponse
(synq.monitors.custom_monitors.v1.BatchCreateMonitorResponse)BatchDeleteMonitorRequest
(synq.monitors.custom_monitors.v1.BatchDeleteMonitorRequest)BatchDeleteMonitorResponse
(synq.monitors.custom_monitors.v1.BatchDeleteMonitorResponse)BatchUpdateMonitorModeRequest
(synq.monitors.custom_monitors.v1.BatchUpdateMonitorModeRequest)BatchUpdateMonitorModeResponse
(synq.monitors.custom_monitors.v1.BatchUpdateMonitorModeResponse)BatchUpdateMonitorRequest
(synq.monitors.custom_monitors.v1.BatchUpdateMonitorRequest)BatchUpdateMonitorResponse
(synq.monitors.custom_monitors.v1.BatchUpdateMonitorResponse)BatchUpdateMonitorSeverityRequest
(synq.monitors.custom_monitors.v1.BatchUpdateMonitorSeverityRequest)BatchUpdateMonitorSeverityResponse
(synq.monitors.custom_monitors.v1.BatchUpdateMonitorSeverityResponse)ChangeOverview
(synq.monitors.custom_monitors.v1.ChangeOverview)ConfigChangesOverviewRequest
(synq.monitors.custom_monitors.v1.ConfigChangesOverviewRequest)ConfigChangesOverviewResponse
(synq.monitors.custom_monitors.v1.ConfigChangesOverviewResponse)ConfigsFilter
(synq.monitors.custom_monitors.v1.ConfigsFilter)ListConfigsMonitorsRequest
(synq.monitors.custom_monitors.v1.ListConfigsMonitorsRequest)ListConfigsMonitorsResponse
(synq.monitors.custom_monitors.v1.ListConfigsMonitorsResponse)ListMonitorsRequest
(synq.monitors.custom_monitors.v1.ListMonitorsRequest)ListMonitorsResponse
(synq.monitors.custom_monitors.v1.ListMonitorsResponse)ModeAnomalyEngine
(synq.monitors.custom_monitors.v1.ModeAnomalyEngine)ModeFixedThresholds
(synq.monitors.custom_monitors.v1.ModeFixedThresholds)MonitorCategoryDistribution
(synq.monitors.custom_monitors.v1.MonitorCategoryDistribution)MonitorCustomNumeric
(synq.monitors.custom_monitors.v1.MonitorCustomNumeric)MonitorDefinition
(synq.monitors.custom_monitors.v1.MonitorDefinition)MonitorFieldStats
(synq.monitors.custom_monitors.v1.MonitorFieldStats)MonitorFreshness
(synq.monitors.custom_monitors.v1.MonitorFreshness)MonitorTableStats
(synq.monitors.custom_monitors.v1.MonitorTableStats)MonitorVolume
(synq.monitors.custom_monitors.v1.MonitorVolume)ScheduleDaily
(synq.monitors.custom_monitors.v1.ScheduleDaily)ScheduleHourly
(synq.monitors.custom_monitors.v1.ScheduleHourly)ScheduleOnDemand
(synq.monitors.custom_monitors.v1.ScheduleOnDemand)Segmentation
(synq.monitors.custom_monitors.v1.Segmentation)SqlSource
(synq.monitors.custom_monitors.v1.SqlSource) SQL query to use as the data source for a monitor instead of querying a table directly. The SQL is wrapped as a CTE, and the monitor’s metric query runs against its output. Column references (time partitioning, segmentation, filter) refer to columns in the SQL output.TimePartitioning
(synq.monitors.custom_monitors.v1.TimePartitioning)ValueList
(synq.monitors.custom_monitors.v1.ValueList)BatchGetLatestEntityMetricsRequest
(synq.monitors.predictions.v1.BatchGetLatestEntityMetricsRequest)BatchGetLatestEntityMetricsResponse
(synq.monitors.predictions.v1.BatchGetLatestEntityMetricsResponse)BatchGetLatestEntityMetricsResponse.LatestBySynqPathEntry
(synq.monitors.predictions.v1.BatchGetLatestEntityMetricsResponse.LatestBySynqPathEntry)GetEntityMetricsRequest
(synq.monitors.predictions.v1.GetEntityMetricsRequest)GetEntityMetricsResponse
(synq.monitors.predictions.v1.GetEntityMetricsResponse)GetMonitorPredictionsRequest
(synq.monitors.predictions.v1.GetMonitorPredictionsRequest)GetMonitorPredictionsResponse
(synq.monitors.predictions.v1.GetMonitorPredictionsResponse)EntityMetricDataPoint
(synq.monitors.predictions.v1.EntityMetricDataPoint) Single observation of table-level metrics collected from the data warehouse.MonitorPrediction
(synq.monitors.predictions.v1.MonitorPrediction) Single prediction data point from the anomaly detection model.BatchResolveIdentifiersRequest
(synq.entities.resolve.v1.BatchResolveIdentifiersRequest)BatchResolveIdentifiersResponse
(synq.entities.resolve.v1.BatchResolveIdentifiersResponse)ResolvedIdentifier
(synq.entities.resolve.v1.ResolvedIdentifier) ResolvedIdentifier contains the resolution result for a single input identifier.BatchDatabaseCoordinatesRequest
(synq.entities.coordinates.v1.BatchDatabaseCoordinatesRequest) BatchGetEntitiesRequest is the request message for the BatchGetEntities method.BatchDatabaseCoordinatesResponse
(synq.entities.coordinates.v1.BatchDatabaseCoordinatesResponse) BatchGetEntitiesResponse is the response message for the BatchGetEntities method.BatchIdsByCoordinatesRequest
(synq.entities.coordinates.v1.BatchIdsByCoordinatesRequest)BatchIdsByCoordinatesResponse
(synq.entities.coordinates.v1.BatchIdsByCoordinatesResponse)BatchIdsByCoordinatesResponse.MatchedCoordinates
(synq.entities.coordinates.v1.BatchIdsByCoordinatesResponse.MatchedCoordinates)DatabaseCoordinates
(synq.entities.coordinates.v1.DatabaseCoordinates)DatabaseContext
(synq.entities.coordinates.v1.DatabaseContext) DatabaseContext provides the default database execution context for resolving unqualified references (e.g. table names in SQL).EntitiesStartPoint
(synq.entities.lineage.v1.EntitiesStartPoint)EntityColumnsStartPoint
(synq.entities.lineage.v1.EntityColumnsStartPoint)GetLineageRequest
(synq.entities.lineage.v1.GetLineageRequest)GetLineageResponse
(synq.entities.lineage.v1.GetLineageResponse)GetLineageStartPoint
(synq.entities.lineage.v1.GetLineageStartPoint) Possible starting points to get lineage from.CllDetails
(synq.entities.lineage.v1.CllDetails)Column
(synq.entities.lineage.v1.Column) Column in a table-like asset (used in CLL mode).ColumnDependency
(synq.entities.lineage.v1.ColumnDependency) Indicates data flow between columns. Source columns are used to compute value of target columns.Lineage
(synq.entities.lineage.v1.Lineage) Lineage defines the lineage of table-like entities.LineageNode
(synq.entities.lineage.v1.LineageNode) Node in a lineage graph representing one or more entities (e.g. database table).NodeDependency
(synq.entities.lineage.v1.NodeDependency) Indicates data flow between nodes. Source nodes are used to compute value of target nodes.ImpactedDataproduct
(synq.entities.impact.v1.ImpactedDataproduct)ImpactedEntityGroup
(synq.entities.impact.v1.ImpactedEntityGroup) Multiple Entities which form logical group, e.g. dbt Model and it’s tableImpactedOwner
(synq.entities.impact.v1.ImpactedOwner)GetImpactRequest
(synq.entities.impact.v1.GetImpactRequest)GetImpactResponse
(synq.entities.impact.v1.GetImpactResponse)ListAnnotationsRequest
(synq.entities.annotations.v1.ListAnnotationsRequest) ListAnnotationsRequest is the request message for the ListAnnotations method.ListAnnotationsResponse
(synq.entities.annotations.v1.ListAnnotationsResponse) ListAnnotationsResponse is the response message for the ListAnnotations method.AnnotationCount
(synq.entities.annotations.v1.AnnotationCount) AnnotationCount represents the count of entities that have a specific annotation name-value pair. This is used for aggregating and reporting annotation statistics across entities.IdentityRule
(synq.entities.identities.v2.IdentityRule) IdentityRule declares how entities are recognized as the same logical entity. A rule is evaluated against the current set of entities, so it automatically applies to entities that appear after the rule is created. Thekind field
selects the matching strategy and must be set to a supported rule type.
PrefixRewriteIdentityRule
(synq.entities.identities.v2.PrefixRewriteIdentityRule) PrefixRewriteIdentityRule treats two identifier prefixes as the same instance: any entity whose identifier begins with source_prefix is considered identical to the entity with the same identifier under target_prefix. The relationship is bidirectional.BatchChangeRequest
(synq.entities.changes.v1.BatchChangeRequest) BatchChangeRequest contains the parameters needed to retrieve multiple changes by their IDs.BatchChangeResponse
(synq.entities.changes.v1.BatchChangeResponse) BatchChangeResponse contains the requested changes mapped by their IDs.BatchChangeResponse.ChangesEntry
(synq.entities.changes.v1.BatchChangeResponse.ChangesEntry)ListRequest
(synq.entities.changes.v1.ListRequest) ListRequest contains the parameters needed to retrieve changes for a specific entity.ListResponse
(synq.entities.changes.v1.ListResponse) ListResponse contains the list of changes made to the requested entity.BatchGetIssuesStatusRequest
(synq.entities.status.v1.BatchGetIssuesStatusRequest) BatchGetIssuesStatusRequest is the request message for the BatchGetIssues method.BatchGetIssuesStatusResponse
(synq.entities.status.v1.BatchGetIssuesStatusResponse) BatchGetIssuesStatusResponse is the response message for the BatchGetIssues method.GetIssuesStatusRequest
(synq.entities.status.v1.GetIssuesStatusRequest) GetIssuesStatusRequest is the request message for the GetEntity method.GetIssuesStatusResponse
(synq.entities.status.v1.GetIssuesStatusResponse) GetIssuesStatusResponse is the response message for the GetEntity method.GetIssuesStatusResponse.IssuesSummary
(synq.entities.status.v1.GetIssuesStatusResponse.IssuesSummary)EntityIncident
(synq.entities.status.v1.EntityIncident)BatchGetIncidentsRequest
(synq.entities.status.v1.BatchGetIncidentsRequest) BatchGetIncidentsRequest is the request message for the BatchGetIssues method.BatchGetIncidentsResponse
(synq.entities.status.v1.BatchGetIncidentsResponse) BatchGetIncidentsResponse is the response message for the BatchGetIssues method.GetIncidentsRequest
(synq.entities.status.v1.GetIncidentsRequest) GetIncidentsRequest is the request message for the GetEntity method.GetIncidentsResponse
(synq.entities.status.v1.GetIncidentsResponse) GetIncidentsResponse is the response message for the GetEntity method.Code
(synq.entities.v1.Code) Code represents a piece of code or configuration that can be processed by Coalesce Quality. This message is used to store and manage various types of code artifacts, such as SQL queries, Python scripts, dbt models, and other code configurations. Each code piece is associated with a specific entity that defines or owns it, and includes metadata about its type and state.TypeTraits
(synq.entities.v1.TypeTraits) TypeTraits are the behavioral traits a custom entity Type can declare. Declaring a trait makes every entity of that type behave platform-wide as if it carried the trait natively (e.g. is_model => transformation-model ranking, monitorability and lineage). Every field isoptional so an unset trait means “not declared, fall through
to the trait default” — distinct from an explicit false. An unset/nil message
means no declared traits (every trait at its default).
Schema
(synq.entities.v1.Schema) Schema represents a schema of a table like entitySchemaColumn
(synq.entities.v1.SchemaColumn)SchemaColumnField
(synq.entities.v1.SchemaColumnField)AirflowDagIdentifier
(synq.entities.v1.AirflowDagIdentifier)AirflowTaskIdentifier
(synq.entities.v1.AirflowTaskIdentifier)AthenaTableIdentifier
(synq.entities.v1.AthenaTableIdentifier)BigqueryTableIdentifier
(synq.entities.v1.BigqueryTableIdentifier)ClickhouseTableIdentifier
(synq.entities.v1.ClickhouseTableIdentifier)CustomIdentifier
(synq.entities.v1.CustomIdentifier)DatabricksTableIdentifier
(synq.entities.v1.DatabricksTableIdentifier)DataproductIdentifier
(synq.entities.v1.DataproductIdentifier)DbtCloudNodeIdentifier
(synq.entities.v1.DbtCloudNodeIdentifier)DbtCoreNodeIdentifier
(synq.entities.v1.DbtCoreNodeIdentifier)FabricTableIdentifier
(synq.entities.v1.FabricTableIdentifier) Microsoft Fabric warehouse/lakehouse table identifier. Fabric is workspace-scoped with cross-database three-part [database].[schema].[table] T-SQL names.Identifier
(synq.entities.v1.Identifier) Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers are designed to closely mimic identifiers used by data platforms and tools. To construct an identifier, you need to know the kind of the entity and the ids that you would normally use to identify it in the data platform or tool. For example, to identify a table in BigQuery, you would need to know the project, dataset, and table names.MonitorIdentifier
(synq.entities.v1.MonitorIdentifier)MssqlTableIdentifier
(synq.entities.v1.MssqlTableIdentifier)MysqlTableIdentifier
(synq.entities.v1.MysqlTableIdentifier)OracleTableIdentifier
(synq.entities.v1.OracleTableIdentifier)OwnerIdentifier
(synq.entities.v1.OwnerIdentifier)PostgresTableIdentifier
(synq.entities.v1.PostgresTableIdentifier)RedshiftTableIdentifier
(synq.entities.v1.RedshiftTableIdentifier)SavedViewIdentifier
(synq.entities.v1.SavedViewIdentifier)SnowflakeTableIdentifier
(synq.entities.v1.SnowflakeTableIdentifier)SqlMeshAuditIdentifier
(synq.entities.v1.SqlMeshAuditIdentifier)SqlMeshModelIdentifier
(synq.entities.v1.SqlMeshModelIdentifier)SynqPathIdentifier
(synq.entities.v1.SynqPathIdentifier)TrinoTableIdentifier
(synq.entities.v1.TrinoTableIdentifier)EntityChange
(synq.entities.v1.EntityChange) EntityChange represents a change detected in an entity within the system. It tracks modifications to entities like Git commits, SQL definitions, and database schemas.GitCommitChange
(synq.entities.v1.GitCommitChange) GitCommitChange represents a change detected in a Git repository.GitCommitChange.ChangeStatistics
(synq.entities.v1.GitCommitChange.ChangeStatistics) ChangeStatistics provides statistical summaries of the entire commit.GitCommitChange.ChangeStats
(synq.entities.v1.GitCommitChange.ChangeStats) ChangeStats contains statistics about changes made to a single file.GitCommitChange.ChangesByFileTypeEntry
(synq.entities.v1.GitCommitChange.ChangesByFileTypeEntry)GitCommitChange.DirectoryChangeSummary
(synq.entities.v1.GitCommitChange.DirectoryChangeSummary) DirectoryChangeSummary provides hierarchical directory-level statistics.GitCommitChange.FileChangeDistribution
(synq.entities.v1.GitCommitChange.FileChangeDistribution) FileChangeDistribution categorizes files by change magnitude.GitCommitChange.FileChangeStatsEntry
(synq.entities.v1.GitCommitChange.FileChangeStatsEntry)GitCommitChange.FileTypeChangeSummary
(synq.entities.v1.GitCommitChange.FileTypeChangeSummary) FileTypeChangeSummary aggregates changes by file type/extension.GitCommitChange.Signature
(synq.entities.v1.GitCommitChange.Signature) Signature contains information about the Git user who made the changes.GitCommitChange.TopChange
(synq.entities.v1.GitCommitChange.TopChange) TopChange represents one of the most significant file changes.GitCommitChange.TopFileChange
(synq.entities.v1.GitCommitChange.TopFileChange) TopFileChange represents a significant file change within a directory.SchemaChange
(synq.entities.v1.SchemaChange) SchemaChange represents a change detected in a database schema.SchemaColumnChange
(synq.entities.v1.SchemaColumnChange) SchemaColumnChange represents a specific change to a column in the schema.SchemaColumnChange.ColumnAdditionChangeType
(synq.entities.v1.SchemaColumnChange.ColumnAdditionChangeType) ColumnAdditionChangeType represents the addition of a new column to the schema.SchemaColumnChange.ColumnNativeTypeChangeType
(synq.entities.v1.SchemaColumnChange.ColumnNativeTypeChangeType) ColumnNativeTypeChangeType represents a change in a column’s data type.SchemaColumnChange.ColumnRemovalChangeType
(synq.entities.v1.SchemaColumnChange.ColumnRemovalChangeType) ColumnRemovalChangeType represents the removal of a column from the schema.SqlDefinitionChange
(synq.entities.v1.SqlDefinitionChange) SqlDefinitionChange represents a change detected in a SQL definition.Annotation
(synq.entities.v1.Annotation) Annotations can be used to annotate any entity with a key:value pair. These annotations can be used for filtering and searching entities.ForeignKeyReference
(synq.entities.v1.ForeignKeyReference) ForeignKeyReference describes the target of a foreign key constraint.TableConstraint
(synq.entities.v1.TableConstraint) TableConstraint represents a single constraint or index on a database table.Type
(synq.entities.v1.Type) Custom entity type that is used to categorize custom entities.Entity
(synq.entities.v1.Entity) Entity is the base type for all entities in the system. Its always attached to a given client workspace and can be uniquely identified by its id.BatchOrchestrationRequest
(synq.entities.orchestration.v1.BatchOrchestrationRequest)BatchOrchestrationResponse
(synq.entities.orchestration.v1.BatchOrchestrationResponse)Orchestration
(synq.entities.orchestration.v1.Orchestration) Orchestration represents the orchestration relationships for a given entity. It shows both what the entity orchestrates (downstream) and what orchestrates it (upstream).OrchestrationGroup
(synq.entities.orchestration.v1.OrchestrationGroup) OrchestrationGroup represents different identities of the same logical concept. For example, a dbt model and the table it creates are different representations of the same entity, so they appear together in one group. An Airflow task typically has only one identity (the task itself).CheckCategory
(synq.entities.checks.v1.CheckCategory) CheckCategory is the complete explicit category state for one check, carrying both dimensions. It overrides the categories the categorisation rules would otherwise compute for the check.DeleteCheckCategoriesRequest
(synq.entities.checks.v1.DeleteCheckCategoriesRequest)DeleteCheckCategoriesResponse
(synq.entities.checks.v1.DeleteCheckCategoriesResponse)ListCheckCategoriesRequest
(synq.entities.checks.v1.ListCheckCategoriesRequest)ListCheckCategoriesResponse
(synq.entities.checks.v1.ListCheckCategoriesResponse)UpsertCheckCategoriesRequest
(synq.entities.checks.v1.UpsertCheckCategoriesRequest)UpsertCheckCategoriesResponse
(synq.entities.checks.v1.UpsertCheckCategoriesResponse)GetCoverageRequest
(synq.entities.checks.v1.GetCoverageRequest) GetCoverageRequest contains the parameters needed to retrieve check coverage for a specific entity.GetCoverageResponse
(synq.entities.checks.v1.GetCoverageResponse) GetCoverageResponse contains the check coverage information for the requested entity.GetCoverageResponse.ChecksSummary
(synq.entities.checks.v1.GetCoverageResponse.ChecksSummary) ChecksSummary provides a comprehensive overview of checks and their coverage.GetCoverageResponse.ChecksSummary.ColumnInformation
(synq.entities.checks.v1.GetCoverageResponse.ChecksSummary.ColumnInformation) ColumnInformation contains detailed information about a specific column.GetCoverageResponse.ColumnUpstream
(synq.entities.checks.v1.GetCoverageResponse.ColumnUpstream) ColumnUpstream represents an upstream column that a check is propagated from.GetCoverageResponse.ColumnUsage
(synq.entities.checks.v1.GetCoverageResponse.ColumnUsage) ColumnUsage contains statistics about how a column is used by downstream entities.GetCoverageResponse.PropagatedColumnCheck
(synq.entities.checks.v1.GetCoverageResponse.PropagatedColumnCheck) PropagatedColumnCheck represents a check that is propagated from an upstream column.GetCoverageResponse.PropagatedColumnChecks
(synq.entities.checks.v1.GetCoverageResponse.PropagatedColumnChecks) PropagatedColumnChecks contains a list of checks propagated from upstream columns.GetCoverageResponse.PropagatedTableCheck
(synq.entities.checks.v1.GetCoverageResponse.PropagatedTableCheck) PropagatedTableCheck represents a check that is propagated from an upstream table.CheckEntity
(synq.entities.checks.v1.CheckEntity)Code
(synq.entities.custom.features.v1.Code) Code feature represents a code snippet associated with the entity. If support for code parsing and dependency extraction is needed use SqlDefinition.Schema
(synq.entities.custom.features.v1.Schema) Schema represents a schema of a table like entityCheckCategory
(synq.entities.custom.features.v1.CheckCategory) Checks feature indicates that the entity is testing in some way different entity. To define the kind of the check use thekind field. The package field is optional.
It is used to categorize the entities which check other entities.
GitFileReference
(synq.entities.custom.features.v1.GitFileReference) GitFileReference represents a reference to a file in a git repository.SqlDefinition
(synq.entities.custom.features.v1.SqlDefinition) SqlDefinition is a feature that allows to define lineage via SQL for a custom entity. Used to generate dependencies and other metadata. If parsed successfully, it will provide a code and column level lineage. Can be used to define simplified transformation of data which component performs using e.g.INSERT INTO foo SELECT * FROM bar.
DeleteTypeRequest
(synq.entities.custom.v1.DeleteTypeRequest)DeleteTypeResponse
(synq.entities.custom.v1.DeleteTypeResponse)ListTypesRequest
(synq.entities.custom.v1.ListTypesRequest)ListTypesResponse
(synq.entities.custom.v1.ListTypesResponse)UpsertTypeRequest
(synq.entities.custom.v1.UpsertTypeRequest)UpsertTypeResponse
(synq.entities.custom.v1.UpsertTypeResponse)Execution
(synq.entities.custom.v1.Execution)ExecutionExtra
(synq.entities.custom.v1.ExecutionExtra)LogEntry
(synq.entities.custom.v1.LogEntry)UpsertExecutionRequest
(synq.entities.custom.v1.UpsertExecutionRequest)UpsertExecutionResponse
(synq.entities.custom.v1.UpsertExecutionResponse)UpsertLogEntryRequest
(synq.entities.custom.v1.UpsertLogEntryRequest)UpsertLogEntryResponse
(synq.entities.custom.v1.UpsertLogEntryResponse)DeleteEntityRequest
(synq.entities.custom.v1.DeleteEntityRequest) DeleteEntityRequest is the request message for the DeleteEntity method.DeleteEntityResponse
(synq.entities.custom.v1.DeleteEntityResponse) DeleteEntityResponse is the response message for the DeleteEntity method.ListEntitiesRequest
(synq.entities.custom.v1.ListEntitiesRequest)ListEntitiesResponse
(synq.entities.custom.v1.ListEntitiesResponse)UpsertEntityRequest
(synq.entities.custom.v1.UpsertEntityRequest) UpsertEntityRequest is the request message for the UpsertEntity method.UpsertEntityResponse
(synq.entities.custom.v1.UpsertEntityResponse) UpsertEntityResponse is the response message for the UpsertEntity method.DeleteEntityFeatureRequest
(synq.entities.custom.v1.DeleteEntityFeatureRequest)DeleteEntityFeatureResponse
(synq.entities.custom.v1.DeleteEntityFeatureResponse)Feature
(synq.entities.custom.v1.Feature)ListEntityFeaturesRequest
(synq.entities.custom.v1.ListEntityFeaturesRequest)ListEntityFeaturesResponse
(synq.entities.custom.v1.ListEntityFeaturesResponse)UpsertEntityFeatureRequest
(synq.entities.custom.v1.UpsertEntityFeatureRequest)UpsertEntityFeatureResponse
(synq.entities.custom.v1.UpsertEntityFeatureResponse)DeleteEntitiesGroupRequest
(synq.entities.custom.v1.DeleteEntitiesGroupRequest)DeleteEntitiesGroupResponse
(synq.entities.custom.v1.DeleteEntitiesGroupResponse)Group
(synq.entities.custom.v1.Group) Group is a collection of entities.ListEntityGroupsRequest
(synq.entities.custom.v1.ListEntityGroupsRequest)ListEntityGroupsResponse
(synq.entities.custom.v1.ListEntityGroupsResponse)UpsertEntitiesGroupRequest
(synq.entities.custom.v1.UpsertEntitiesGroupRequest)UpsertEntitiesGroupResponse
(synq.entities.custom.v1.UpsertEntitiesGroupResponse)DeleteRelationshipsRequest
(synq.entities.custom.v1.DeleteRelationshipsRequest)DeleteRelationshipsResponse
(synq.entities.custom.v1.DeleteRelationshipsResponse)ListRelationshipsRequest
(synq.entities.custom.v1.ListRelationshipsRequest)ListRelationshipsResponse
(synq.entities.custom.v1.ListRelationshipsResponse)Relationship
(synq.entities.custom.v1.Relationship)UpsertRelationshipsRequest
(synq.entities.custom.v1.UpsertRelationshipsRequest)UpsertRelationshipsResponse
(synq.entities.custom.v1.UpsertRelationshipsResponse)CheckRelationship
(synq.entities.custom.v1.CheckRelationship)DeleteCheckRelationshipsRequest
(synq.entities.custom.v1.DeleteCheckRelationshipsRequest)DeleteCheckRelationshipsResponse
(synq.entities.custom.v1.DeleteCheckRelationshipsResponse)UpsertCheckRelationshipsRequest
(synq.entities.custom.v1.UpsertCheckRelationshipsRequest)UpsertCheckRelationshipsResponse
(synq.entities.custom.v1.UpsertCheckRelationshipsResponse)BatchGetEntitiesRequest
(synq.entities.entities.v1.BatchGetEntitiesRequest) BatchGetEntitiesRequest is the request message for the BatchGetEntities method.BatchGetEntitiesResponse
(synq.entities.entities.v1.BatchGetEntitiesResponse) BatchGetEntitiesResponse is the response message for the BatchGetEntities method.GetEntityRequest
(synq.entities.entities.v1.GetEntityRequest) GetEntityRequest is the request message for the GetEntity method.GetEntityResponse
(synq.entities.entities.v1.GetEntityResponse) GetEntityResponse is the response message for the GetEntity method.ListEntitiesRequest
(synq.entities.entities.v1.ListEntitiesRequest)ListEntitiesResponse
(synq.entities.entities.v1.ListEntitiesResponse)SearchEntitiesRequest
(synq.entities.entities.v1.SearchEntitiesRequest)SearchEntitiesResponse
(synq.entities.entities.v1.SearchEntitiesResponse)EntityTypeSearchFacet
(synq.entities.entities.v1.EntityTypeSearchFacet)SearchHit
(synq.entities.entities.v1.SearchHit)BatchGetExecutionsRequest
(synq.entities.executions.v2.BatchGetExecutionsRequest) BatchGetExecutionsRequest requests specific executions by ID.BatchGetExecutionsResponse
(synq.entities.executions.v2.BatchGetExecutionsResponse) BatchGetExecutionsResponse contains the requested executions.BatchGetExecutionsResponse.ExecutionsEntry
(synq.entities.executions.v2.BatchGetExecutionsResponse.ExecutionsEntry)EntityExecution
(synq.entities.executions.v2.EntityExecution) EntityExecution represents a single execution event on an entity. This is a public representation of internal Run data, excluding sensitive metadata.ExecutionStatusCount
(synq.entities.executions.v2.ExecutionStatusCount) ExecutionStatusCount represents the count of executions by status.ExecutionTypeCount
(synq.entities.executions.v2.ExecutionTypeCount) ExecutionTypeCount represents the count of executions by type.GetExecutionsSummaryRequest
(synq.entities.executions.v2.GetExecutionsSummaryRequest) GetExecutionsSummaryRequest requests summary statistics for entities.GetExecutionsSummaryResponse
(synq.entities.executions.v2.GetExecutionsSummaryResponse) GetExecutionsSummaryResponse contains aggregated execution statistics.GetExecutionsSummaryResponse.LatestByEntityEntry
(synq.entities.executions.v2.GetExecutionsSummaryResponse.LatestByEntityEntry)GetLatestExecutionsRequest
(synq.entities.executions.v2.GetLatestExecutionsRequest) GetLatestExecutionsRequest requests the latest execution for each entity.GetLatestExecutionsResponse
(synq.entities.executions.v2.GetLatestExecutionsResponse) GetLatestExecutionsResponse contains the latest execution for each requested entity.GetLatestExecutionsResponse.LatestExecutionsEntry
(synq.entities.executions.v2.GetLatestExecutionsResponse.LatestExecutionsEntry)ListExecutionsRequest
(synq.entities.executions.v2.ListExecutionsRequest) ListExecutionsRequest specifies filters for listing executions.ListExecutionsResponse
(synq.entities.executions.v2.ListExecutionsResponse) ListExecutionsResponse contains the paginated list of executions.Execution
(synq.entities.executions.v1.Execution)ExecutionExtra
(synq.entities.executions.v1.ExecutionExtra)LogEntry
(synq.entities.executions.v1.LogEntry)UpsertExecutionRequest
(synq.entities.executions.v1.UpsertExecutionRequest)UpsertExecutionResponse
(synq.entities.executions.v1.UpsertExecutionResponse)UpsertLogEntryRequest
(synq.entities.executions.v1.UpsertLogEntryRequest)UpsertLogEntryResponse
(synq.entities.executions.v1.UpsertLogEntryResponse)BatchSqlDetailsRequest
(synq.entities.sql_insights.v1.BatchSqlDetailsRequest) BatchSqlDetailsRequest requests SQL details for a set of entities.BatchSqlDetailsResponse
(synq.entities.sql_insights.v1.BatchSqlDetailsResponse) BatchSqlDetailsResponse maps each requested synq path to its SQL details.BatchSqlDetailsResponse.SqlDetailsEntry
(synq.entities.sql_insights.v1.BatchSqlDetailsResponse.SqlDetailsEntry)ListSqlConstructsRequest
(synq.entities.sql_insights.v1.ListSqlConstructsRequest) ListSqlConstructsRequest has no fields: the result is scoped to the workspace of the authenticated request.ListSqlConstructsResponse
(synq.entities.sql_insights.v1.ListSqlConstructsResponse) ListSqlConstructsResponse carries the per-construct occurrence counts for the workspace.ListSqlConstructsResponse.SqlConstructCount
(synq.entities.sql_insights.v1.ListSqlConstructsResponse.SqlConstructCount) SqlConstructCount pairs a SQL construct with the number of entities in the workspace whose SQL uses it.SqlDetails
(synq.entities.sql_insights.v1.SqlDetails) SqlDetails describes the SQL used by a single entity.BatchSchemaMismatchesRequest
(synq.entities.schemas.v1.BatchSchemaMismatchesRequest) BatchGetSchemaMismatchesRequest is the request message for the BatchGetSchemaMismatches method.BatchSchemaMismatchesResponse
(synq.entities.schemas.v1.BatchSchemaMismatchesResponse) BatchGetSchemaMismatchesResponse is the response message for the BatchGetSchemaMismatches method.SchemaMismatch
(synq.entities.schemas.v1.SchemaMismatch) SchemaMismatch represents a schema drift between a definer entity (e.g., dbt model) and an origin entity (e.g., BigQuery table) where columns are defined but missing in origin.GetSchemaRequest
(synq.entities.schemas.v1.GetSchemaRequest) GetEntityRequest is the request message for the GetEntity method.GetSchemaResponse
(synq.entities.schemas.v1.GetSchemaResponse) GetEntityResponse is the response message for the GetEntity method.ListCodeRequest
(synq.entities.code.v1.ListCodeRequest) ListCodeRequest is the request message for the ListCode method.ListCodeResponse
(synq.entities.code.v1.ListCodeResponse) ListCodeResponse is the response message for the ListCode method.GetTableConstraintsRequest
(synq.entities.constraints.v1.GetTableConstraintsRequest)GetTableConstraintsResponse
(synq.entities.constraints.v1.GetTableConstraintsResponse)LineageColumnEdge
(synq.ingest.dwh.v1.LineageColumnEdge) LineageColumnEdge is a single column-to-column dependency carried inside a table-level edge. Optional: omit to declare table-level lineage only. The columns name positions on the parent LineageEdge’supstream and
downstream objects respectively.
LineageEdge
(synq.ingest.dwh.v1.LineageEdge) LineageEdge is one directed dependency: data flows fromupstream into
downstream. Represent multi-hop lineage as the set of its direct
(distance-1) edges; do not collapse intermediate hops, so the graph stays
explicit and each hop keeps its own object domain and column edges.
LineageNode
(synq.ingest.dwh.v1.LineageNode) LineageNode identifies one object that participates in a lineage edge.Fqn
(synq.ingest.dwh.v1.Fqn)ObjectInformation
(synq.ingest.dwh.v1.ObjectInformation)ObjectMetrics
(synq.ingest.dwh.v1.ObjectMetrics)Schema
(synq.ingest.dwh.v1.Schema)SchemaColumn
(synq.ingest.dwh.v1.SchemaColumn)SchemaColumnField
(synq.ingest.dwh.v1.SchemaColumnField)SqlDefinition
(synq.ingest.dwh.v1.SqlDefinition)TableConstraint
(synq.ingest.dwh.v1.TableConstraint) TableConstraint represents a single constraint or index on a database table.TableConstraints
(synq.ingest.dwh.v1.TableConstraints) TableConstraints contains all constraints and indexes for a single table.Tag
(synq.ingest.dwh.v1.Tag)QueryLog
(synq.ingest.dwh.v1.QueryLog) QueryLog represents a single query execution log entry from a data warehouse. This is the format used for ingesting query logs via the DWH agent. The structure mirrors the internal QueryLogRawRow with protobuf serialization.
SQL text (may be obfuscated based on sql_obfuscation_mode) |
| oneof _sql_hash.sql_hash | optional string | SHA256 hash of original SQL for deduplication (computed during storage if not provided) |
| oneof _normalized_query_hash.normalized_query_hash | optional string | Hash of normalized query for lineage caching (empty if not available from platform) |
| sql_dialect | string | SQL dialect (e.g., “snowflake”, “bigquery”, “clickhouse”) |
| query_type | string | Platform-specific query type (e.g., “CREATE_TABLE_AS_SELECT”, “SELECT”) |
| status | string | Execution status: “SUCCESS”, “FAILED”, “CANCELED” |
| oneof _dwh_context.dwh_context | optional QueryLogDwhContext | DWH execution context |
| sql_obfuscation_mode | SqlObfuscationMode | Obfuscation and parsing hints |
| has_complete_native_lineage | bool | If true, native lineage is complete and SQL parsing can be skipped |
| is_truncated | bool | If true, SQL was truncated by the warehouse |
| oneof _metadata.metadata | optional Struct | Platform-specific metadata (arbitrary key-value pairs) Contains execution metrics, costs, etc. depending on the platform |
| oneof _native_lineage.native_lineage | optional QueryLogNativeLineage | Native lineage from the platform (if available) |
QueryLogDwhContext
(synq.ingest.dwh.v1.QueryLogDwhContext) QueryLogDwhContext represents the execution context of a query. Contains information about where and by whom the query was executed. Platform-specific mappings (Instance, Database, Schema):- Snowflake: account, database_name, schema_name
- Databricks: workspace_url, catalog_name, schema_name
- BigQuery: "", project_id, dataset_id
- Redshift: host, database_name, schema_name
- Postgres: host, database_name, schema_name
- Trino: host, catalog, schema
- MySQL: "", host, schema_name
- ClickHouse: hostname, database_name, "" (2-level: hostname.database)
- DuckDB: motherduck_account, database_name, schema_name
QueryLogNativeLineage
(synq.ingest.dwh.v1.QueryLogNativeLineage) QueryLogNativeLineage contains lineage information provided natively by the data warehouse. Not all platforms provide this - when available, it can be more accurate than SQL parsing.DatabasesScope
(synq.ingest.dwh.v1.DatabasesScope) DatabasesScope makes the batch authoritative for the listed databases only.IngestLineageRequest
(synq.ingest.dwh.v1.IngestLineageRequest) IngestLineageRequest carries one batch of lineage edges for a single warehouse connection. Send many batches with the same connection_id over time; each batch is interpreted against the others according toreplace_mode.
IngestLineageResponse
(synq.ingest.dwh.v1.IngestLineageResponse) IngestLineageResponse is intentionally empty; a successful call means the batch was accepted for processing.IngestObjectInformationRequest
(synq.ingest.dwh.v1.IngestObjectInformationRequest)IngestObjectInformationResponse
(synq.ingest.dwh.v1.IngestObjectInformationResponse)IngestObjectMetricsRequest
(synq.ingest.dwh.v1.IngestObjectMetricsRequest)IngestObjectMetricsResponse
(synq.ingest.dwh.v1.IngestObjectMetricsResponse)IngestQueryLogsRequest
(synq.ingest.dwh.v1.IngestQueryLogsRequest)IngestQueryLogsResponse
(synq.ingest.dwh.v1.IngestQueryLogsResponse)IngestSchemasRequest
(synq.ingest.dwh.v1.IngestSchemasRequest)IngestSchemasResponse
(synq.ingest.dwh.v1.IngestSchemasResponse)IngestSqlDefinitionsRequest
(synq.ingest.dwh.v1.IngestSqlDefinitionsRequest)IngestSqlDefinitionsResponse
(synq.ingest.dwh.v1.IngestSqlDefinitionsResponse)IngestTableConstraintsRequest
(synq.ingest.dwh.v1.IngestTableConstraintsRequest)IngestTableConstraintsResponse
(synq.ingest.dwh.v1.IngestTableConstraintsResponse)IngestTaskResultsRequest
(synq.ingest.dwh.v1.IngestTaskResultsRequest)IngestTaskResultsResponse
(synq.ingest.dwh.v1.IngestTaskResultsResponse)LineageScope
(synq.ingest.dwh.v1.LineageScope) LineageScope declares the set of downstream objects a REPLACE_SCOPE batch is authoritative for — the boundary inside which omitted edges are expired. The scope is always additionally bounded by the request’s connection_id. Ignored when the mode is MERGE.SchemasScope
(synq.ingest.dwh.v1.SchemasScope) SchemasScope makes the batch authoritative for the listed schemas only.WholeConnectionScope
(synq.ingest.dwh.v1.WholeConnectionScope) WholeConnectionScope makes the batch authoritative for the entire connection.GitContext
(synq.ingest.git.v1.GitContext)IngestRequest
(synq.ingest.openlineage.v1.IngestRequest)IngestResponse
(synq.ingest.openlineage.v1.IngestResponse)CloudwatchLogsLogEvent
(synq.ingest.cloudwatch.v1.CloudwatchLogsLogEvent)IngestCloudwatchLogsDataRequest
(synq.ingest.cloudwatch.v1.IngestCloudwatchLogsDataRequest)IngestCloudwatchLogsDataResponse
(synq.ingest.cloudwatch.v1.IngestCloudwatchLogsDataResponse)IngestDatahubAspectsRequest
(synq.ingest.airflow.v1.IngestDatahubAspectsRequest)IngestDatahubAspectsResponse
(synq.ingest.airflow.v1.IngestDatahubAspectsResponse)IngestLogRequest
(synq.ingest.airflow.v1.IngestLogRequest)IngestLogResponse
(synq.ingest.airflow.v1.IngestLogResponse)IngestExecutionRequest
(synq.ingest.sqlmesh.v1.IngestExecutionRequest)IngestExecutionRequest.EnvironmentVarsEntry
(synq.ingest.sqlmesh.v1.IngestExecutionRequest.EnvironmentVarsEntry)IngestExecutionResponse
(synq.ingest.sqlmesh.v1.IngestExecutionResponse)IngestMetadataRequest
(synq.ingest.sqlmesh.v1.IngestMetadataRequest)IngestMetadataRequest.Error
(synq.ingest.sqlmesh.v1.IngestMetadataRequest.Error)IngestMetadataRequest.FileContentEntry
(synq.ingest.sqlmesh.v1.IngestMetadataRequest.FileContentEntry)IngestMetadataRequest.ModelDetailsEntry
(synq.ingest.sqlmesh.v1.IngestMetadataRequest.ModelDetailsEntry)IngestMetadataRequest.ModelLineageEntry
(synq.ingest.sqlmesh.v1.IngestMetadataRequest.ModelLineageEntry)IngestMetadataResponse
(synq.ingest.sqlmesh.v1.IngestMetadataResponse)DbtArtifact
(synq.ingest.dbt.v1.DbtArtifact) https://docs.getdbt.com/reference/artifacts/dbt-artifactsIngestInvocationRequest
(synq.ingest.dbt.v1.IngestInvocationRequest)IngestInvocationRequest.EnvironmentVarsEntry
(synq.ingest.dbt.v1.IngestInvocationRequest.EnvironmentVarsEntry)IngestInvocationResponse
(synq.ingest.dbt.v1.IngestInvocationResponse)AddDomainMembersRequest
(synq.domains.members.v1.AddDomainMembersRequest)AddDomainMembersResponse
(synq.domains.members.v1.AddDomainMembersResponse)ListDomainMembersRequest
(synq.domains.members.v1.ListDomainMembersRequest)ListDomainMembersResponse
(synq.domains.members.v1.ListDomainMembersResponse)ListUserDomainsRequest
(synq.domains.members.v1.ListUserDomainsRequest)ListUserDomainsResponse
(synq.domains.members.v1.ListUserDomainsResponse)RemoveDomainMembersRequest
(synq.domains.members.v1.RemoveDomainMembersRequest)RemoveDomainMembersResponse
(synq.domains.members.v1.RemoveDomainMembersResponse)SetDefaultUserDomainRequest
(synq.domains.members.v1.SetDefaultUserDomainRequest)SetDefaultUserDomainResponse
(synq.domains.members.v1.SetDefaultUserDomainResponse)DomainMembership
(synq.domains.members.v1.DomainMembership)BatchGetRequest
(synq.domains.v1.BatchGetRequest)BatchGetResponse
(synq.domains.v1.BatchGetResponse)BatchGetResponse.DomainsEntry
(synq.domains.v1.BatchGetResponse.DomainsEntry)DeleteRequest
(synq.domains.v1.DeleteRequest)DeleteResponse
(synq.domains.v1.DeleteResponse)FetchDomainWithSubDomainsRequest
(synq.domains.v1.FetchDomainWithSubDomainsRequest)FetchDomainWithSubDomainsResponse
(synq.domains.v1.FetchDomainWithSubDomainsResponse)FetchDomainWithSubDomainsResponse.DomainsEntry
(synq.domains.v1.FetchDomainWithSubDomainsResponse.DomainsEntry)GetUsageRequest
(synq.domains.v1.GetUsageRequest)GetUsageResponse
(synq.domains.v1.GetUsageResponse)ListRequest
(synq.domains.v1.ListRequest)ListResponse
(synq.domains.v1.ListResponse)RemoveDefinitionPartRequest
(synq.domains.v1.RemoveDefinitionPartRequest)RemoveDefinitionPartResponse
(synq.domains.v1.RemoveDefinitionPartResponse)SetDefinitionRequest
(synq.domains.v1.SetDefinitionRequest)SetDefinitionResponse
(synq.domains.v1.SetDefinitionResponse)UpsertDefinitionPartRequest
(synq.domains.v1.UpsertDefinitionPartRequest)UpsertDefinitionPartResponse
(synq.domains.v1.UpsertDefinitionPartResponse)UpsertRequest
(synq.domains.v1.UpsertRequest)UpsertResponse
(synq.domains.v1.UpsertResponse)AssetSelectionQuery
(synq.domains.v1.AssetSelectionQuery)AssetSelectionQuery.QueryPart
(synq.domains.v1.AssetSelectionQuery.QueryPart)DomainDefinition
(synq.domains.v1.DomainDefinition)DomainDefinition.Part
(synq.domains.v1.DomainDefinition.Part)Domain
(synq.domains.v1.Domain)Grant
(synq.savedviews.v1.Grant) A single access grant on a saved view.GrantList
(synq.savedviews.v1.GrantList) A wrapper giving the grant set explicit presence on write, so a partial update can distinguish “replace the grants” (present, possibly empty) from “leave grants unchanged” (absent).SavedView
(synq.savedviews.v1.SavedView) A saved view: a named, reusable selection over entities (or another context) with display configuration, sharing and per-user pinning.SavedViewConfig
(synq.savedviews.v1.SavedViewConfig) How a saved view is displayed once opened. This message is intentionally permissive and forward-compatible: new presentation options are added as new fields, never as a breaking change, so older clients keep working.SavedViewPermissions
(synq.savedviews.v1.SavedViewPermissions) What the calling user is allowed to do with a saved view. Output-only: computed per request from ownership, the caller’s grant (if any) and their workspace permissions. Viewing and pinning are always allowed for any view the caller can see, so they are not represented here.SavedViewQuery
(synq.savedviews.v1.SavedViewQuery) The query behind a saved view, expressed for the public API. On write, provide the query in ONE of two forms:public_query— a structured query (the same shape used elsewhere for asset selection), convenient to build from a filter UI; orresolver_ql— the SYNQ resolver query language, a compact text form that additionally expresses severity/status and time-window filters (e.g.with_severity(statuses=["error"], since="24h")). When both are set,resolver_qlwins. The server compiles the query and stores it canonically; the raw text is not preserved verbatim.
rendered_resolver_ql (the stored query rendered
back to canonical resolver query language) and, best-effort, public_query
(the structured representation; parts with no structured equivalent are marked
unsupported). resolver_ql is not echoed back — read rendered_resolver_ql.
SavedViewSelection
(synq.savedviews.v1.SavedViewSelection) The selection that a saved view captures. Modelled as a oneof so future contexts (e.g. an issues filter) can add their own selection shape without reshaping the view.BatchGetRequest
(synq.savedviews.v1.BatchGetRequest)BatchGetResponse
(synq.savedviews.v1.BatchGetResponse)BatchGetResponse.ViewsEntry
(synq.savedviews.v1.BatchGetResponse.ViewsEntry)DeleteRequest
(synq.savedviews.v1.DeleteRequest)DeleteResponse
(synq.savedviews.v1.DeleteResponse)ListRequest
(synq.savedviews.v1.ListRequest)ListResponse
(synq.savedviews.v1.ListResponse)SetPinRequest
(synq.savedviews.v1.SetPinRequest)SetPinResponse
(synq.savedviews.v1.SetPinResponse)UpsertRequest
(synq.savedviews.v1.UpsertRequest)UpsertResponse
(synq.savedviews.v1.UpsertResponse)Dataproduct
(synq.dataproducts.v2.Dataproduct) A data product: a named, owned grouping of data assets that share a purpose, with a membership definition, a priority and an optional folder.BatchGetRequest
(synq.dataproducts.v2.BatchGetRequest)BatchGetResponse
(synq.dataproducts.v2.BatchGetResponse)BatchGetResponse.DataproductsEntry
(synq.dataproducts.v2.BatchGetResponse.DataproductsEntry)DeleteRequest
(synq.dataproducts.v2.DeleteRequest)DeleteResponse
(synq.dataproducts.v2.DeleteResponse)ListMembersRequest
(synq.dataproducts.v2.ListMembersRequest)ListMembersResponse
(synq.dataproducts.v2.ListMembersResponse)ListRequest
(synq.dataproducts.v2.ListRequest)ListResponse
(synq.dataproducts.v2.ListResponse)RemoveDefinitionPartRequest
(synq.dataproducts.v2.RemoveDefinitionPartRequest)RemoveDefinitionPartResponse
(synq.dataproducts.v2.RemoveDefinitionPartResponse)SetDefinitionRequest
(synq.dataproducts.v2.SetDefinitionRequest)SetDefinitionResponse
(synq.dataproducts.v2.SetDefinitionResponse)UpsertDefinitionPartRequest
(synq.dataproducts.v2.UpsertDefinitionPartRequest)UpsertDefinitionPartResponse
(synq.dataproducts.v2.UpsertDefinitionPartResponse)UpsertRequest
(synq.dataproducts.v2.UpsertRequest)UpsertResponse
(synq.dataproducts.v2.UpsertResponse)DataproductDefinition
(synq.dataproducts.v2.DataproductDefinition) The membership of a data product: which assets belong to it. A definition is an ordered list of parts; an asset is a member if it matches ANY part (the parts are OR’d together). A data product is a LEAF in the reference graph: its membership is defined only by asset-level predicates, static asset ids and lineage of those — never by referencing another data product or domain. Thein_dataproduct /
in_domain query operands are therefore rejected anywhere in a data product
definition (see DataproductQuery). This keeps membership resolution finite:
data products can never take part in a reference cycle.
DataproductDefinition.Part
(synq.dataproducts.v2.DataproductDefinition.Part) A single piece of a data product definition: either a pinned asset or a selection query.DataproductQuery
(synq.dataproducts.v2.DataproductQuery) The selection query behind a data product part, expressed for the public API. On write, provide the query in ONE of two forms:public_query— a structured query (the same shape used elsewhere for asset selection), convenient to build from a filter UI; orresolver_ql— the resolver query language, a compact text form that is the canonical way to author selections as code. When both are set,resolver_qlwins. The server compiles the query and stores it canonically; the raw text is not preserved verbatim.
rendered_resolver_ql (the stored query rendered
back to canonical resolver query language) and, best-effort, public_query
(the structured representation). resolver_ql is not echoed back — read
rendered_resolver_ql.
Leaf rule: a data product may not reference another data product or domain.
The in_dataproduct, in_domain and unsupported operands are rejected at
the top level here (CEL) and, for nested sub-queries, by a server-side walk.
Dataproduct
(synq.dataproducts.v1.Dataproduct)DeleteRequest
(synq.dataproducts.v1.DeleteRequest)DeleteResponse
(synq.dataproducts.v1.DeleteResponse)GetRequest
(synq.dataproducts.v1.GetRequest)GetResponse
(synq.dataproducts.v1.GetResponse)ListRequest
(synq.dataproducts.v1.ListRequest)ListResponse
(synq.dataproducts.v1.ListResponse)RemoveDefinitionPartRequest
(synq.dataproducts.v1.RemoveDefinitionPartRequest)RemoveDefinitionPartResponse
(synq.dataproducts.v1.RemoveDefinitionPartResponse)SetDefinitionRequest
(synq.dataproducts.v1.SetDefinitionRequest)SetDefinitionResponse
(synq.dataproducts.v1.SetDefinitionResponse)UpsertDefinitionPartRequest
(synq.dataproducts.v1.UpsertDefinitionPartRequest)UpsertDefinitionPartResponse
(synq.dataproducts.v1.UpsertDefinitionPartResponse)UpsertRequest
(synq.dataproducts.v1.UpsertRequest)UpsertResponse
(synq.dataproducts.v1.UpsertResponse)AssetSelectionQuery
(synq.dataproducts.v1.AssetSelectionQuery)AssetSelectionQuery.QueryPart
(synq.dataproducts.v1.AssetSelectionQuery.QueryPart)DataproductDefinition
(synq.dataproducts.v1.DataproductDefinition)DataproductDefinition.Part
(synq.dataproducts.v1.DataproductDefinition.Part)AddIssuesToIncidentRequest
(synq.incidents.v1.AddIssuesToIncidentRequest)AddIssuesToIncidentResponse
(synq.incidents.v1.AddIssuesToIncidentResponse)AssignIncidentOwnerRequest
(synq.incidents.v1.AssignIncidentOwnerRequest)AssignIncidentOwnerResponse
(synq.incidents.v1.AssignIncidentOwnerResponse)BatchGetIncidentsRequest
(synq.incidents.v1.BatchGetIncidentsRequest)BatchGetIncidentsResponse
(synq.incidents.v1.BatchGetIncidentsResponse)BatchGetIncidentsResponse.IncidentsEntry
(synq.incidents.v1.BatchGetIncidentsResponse.IncidentsEntry)CancelIncidentRequest
(synq.incidents.v1.CancelIncidentRequest)CancelIncidentResponse
(synq.incidents.v1.CancelIncidentResponse)CloseIncidentRequest
(synq.incidents.v1.CloseIncidentRequest)CloseIncidentResponse
(synq.incidents.v1.CloseIncidentResponse)CreateIncidentRequest
(synq.incidents.v1.CreateIncidentRequest)CreateIncidentResponse
(synq.incidents.v1.CreateIncidentResponse)ListIncidentsRequest
(synq.incidents.v1.ListIncidentsRequest)ListIncidentsRequest.Sort
(synq.incidents.v1.ListIncidentsRequest.Sort)ListIncidentsRequest.Time
(synq.incidents.v1.ListIncidentsRequest.Time)ListIncidentsResponse
(synq.incidents.v1.ListIncidentsResponse)MergeIncidentsRequest
(synq.incidents.v1.MergeIncidentsRequest)MergeIncidentsResponse
(synq.incidents.v1.MergeIncidentsResponse)PostCommentRequest
(synq.incidents.v1.PostCommentRequest)PostCommentResponse
(synq.incidents.v1.PostCommentResponse)RemoveIssuesFromIncidentRequest
(synq.incidents.v1.RemoveIssuesFromIncidentRequest)RemoveIssuesFromIncidentResponse
(synq.incidents.v1.RemoveIssuesFromIncidentResponse)RenameIncidentRequest
(synq.incidents.v1.RenameIncidentRequest)RenameIncidentResponse
(synq.incidents.v1.RenameIncidentResponse)SplitIncidentRequest
(synq.incidents.v1.SplitIncidentRequest)SplitIncidentResponse
(synq.incidents.v1.SplitIncidentResponse)UpdateIncidentStateRequest
(synq.incidents.v1.UpdateIncidentStateRequest)UpdateIncidentStateResponse
(synq.incidents.v1.UpdateIncidentStateResponse)Incident
(synq.incidents.v1.Incident)IncidentComment
(synq.incidents.v1.IncidentComment)Enums
SnapDirection
(synq.schedule.v1.SnapDirection) SnapDirection constrains which way an occurrence may move to reach the grid.DataPlatformType
(synq.platforms.v1.DataPlatformType)Owner.Source
(synq.owners.v1.Owner.Source) Where the owner is managed. Owners from an external source (e.g. Atlan) are read-only.QueryOperand
(synq.queries.v1.QueryOperand) QueryOperand defines how multiple QueryParts within a Query are combined.Event.EventType
(synq.webhooks.v1.Event.EventType)IssueSummary.IssueStatus
(synq.webhooks.v1.IssueSummary.IssueStatus)HealthStatus
(synq.integrations.v1.HealthStatus) Health status of an integration, derived from its most recent runs.Status
(synq.extensions.atlan.workflows.v1.Status)Severity
(synq.v1.Severity)Source
(synq.v1.Source)Scope
(synq.v1.Scope)ListIssuesRequest.Field
(synq.issues.v2.ListIssuesRequest.Field)ListIssuesRequest.Sort.Order
(synq.issues.v2.ListIssuesRequest.Sort.Order)Actor.Via
(synq.issues.actor.v1.Actor.Via)LifecycleState
(synq.issues.issues.v1.LifecycleState) Issue LifecycleState represents the current state of the issue in its life-cycle. The state is exclusively determined as per the priority which is in the order of the fields below.Severity
(synq.issues.issues.v1.Severity)State
(synq.issues.issues.v1.State) Whether the issue is open / close.Status
(synq.issues.issues.v1.Status) Progress status of the issue.Config.Agent.LogLevel
(synq.agent.dwh.v1.Config.Agent.LogLevel)LogLevel
(synq.agent.dwh.v1.LogLevel)ConnectionResolutionReason
(synq.agent.recon.v1.ConnectionResolutionReason) Reason why a single connection could not be resolved.DeploymentAction
(synq.agent.recon.v1.DeploymentAction)AggregateFunction
(synq.agent.recon.v1.AggregateFunction) AggregateFunction defines the supported SQL aggregate functions for measure comparisons in aggregate reconciliation mode.PercentageMode
(synq.agent.recon.v1.PercentageMode) PercentageMode controls which percentage formula is used for threshold comparison. The choice affects how “big” a difference appears when source and target values differ in magnitude.ReconciliationRunFailureCategory
(synq.agent.recon.v1.ReconciliationRunFailureCategory) ReconciliationRunFailureCategory classifies why a run ended in FAILED. Clients use this to render appropriate user-facing messages.ReconciliationRunStatus
(synq.agent.recon.v1.ReconciliationRunStatus) ReconciliationRunStatus is the lifecycle state of a single reconciliation run.ReconciliationRunTrigger
(synq.agent.recon.v1.ReconciliationRunTrigger) ReconciliationRunTrigger describes why a run was created.CaseFailureImpact
(synq.agent.recon.v1.CaseFailureImpact) CaseFailureImpact controls whether a reconciliation case’s referenced tables (resolved from the source/target SQL at deploy time) inherit the case’s failure status, or are only attached to the run for visibility. This is a deployment-time policy, not part of the suite YAML — it is set on PromoteSuite / UpdateDeploymentCaseImpacts and stored on the promoted deployment, not on the authored config. Letting operators flip impact without editing the suite keeps configuration declarative and lets the FE offer “apply to all” without round-tripping YAML.HashAlgorithm
(synq.agent.recon.v1.HashAlgorithm) HashAlgorithm specifies the hash function used for row checksums in ROW_CHECKSUM mode. Different databases natively support different hash functions; choosing one supported by both sides avoids emulation overhead.ReconcilationMode
(synq.agent.recon.v1.ReconcilationMode) ReconcilationMode defines the comparison strategy for a reconciliation. Modes are ordered by depth of comparison: ROW_COUNT < ROW_CHECKSUM < AGGREGATE.ReportingLevel
(synq.agent.recon.v1.ReportingLevel) ReportingLevel controls how much detail is included in results for mismatched rows. Levels are ordered by increasing data exposure.SegmentationStrategy
(synq.agent.recon.v1.SegmentationStrategy) SegmentationStrategy defines how key ranges are split during bisection. The strategy affects both performance and privacy characteristics.TimeGranularity
(synq.agent.recon.v1.TimeGranularity) TimeGranularity defines the granularity for time-based segmentation.WindowStrategy
(synq.agent.recon.v1.WindowStrategy) WindowStrategy defines how the time window boundaries are computed.CutoffAggregate
(synq.agent.recon.v1.CutoffAggregate) CutoffAggregate defines the aggregate function for watermark derivation.CutoffCombine
(synq.agent.recon.v1.CutoffCombine) CutoffCombine defines how to combine watermarks from source and target.CutoffTruncate
(synq.agent.recon.v1.CutoffTruncate) CutoffTruncate defines time truncation for the cutoff value.AggregateDivergenceType
(synq.agent.recon.v1.AggregateDivergenceType) AggregateDivergenceType categorizes how an aggregate group diverges.AuditStatus
(synq.agent.recon.v1.AuditStatus) AuditStatus describes the overall outcome of a reconciliation run. Values are ordered by severity: passed < within_threshold < mismatched < failed.MeasureVerdictReason
(synq.agent.recon.v1.MeasureVerdictReason) MeasureVerdictReason explains the threshold evaluation outcome.MismatchType
(synq.agent.recon.v1.MismatchType) MismatchType categorizes how rows differ between source and target.QueryRole
(synq.agent.recon.v1.QueryRole) QueryRole identifies whether a query targets the source or target database.ReconciliationStatus
(synq.agent.recon.v1.ReconciliationStatus) ReconciliationStatus describes the outcome of a single reconciliation. Distinguishes infrastructure errors from data comparison results. Values are ordered by severity: passed < within_threshold < mismatched < failed.RowMismatchType
(synq.agent.recon.v1.RowMismatchType) RowMismatchType categorizes a single row-level mismatch.StageType
(synq.agent.recon.v1.StageType) StageType identifies the type of reconciliation stage.TerminationReason
(synq.agent.recon.v1.TerminationReason) TerminationReason explains why bisection stopped at a particular node.PromptField
(synq.agent.sre.v1.PromptField) PromptField identifies which SRE agent system-prompt a suggestion targets. Mirrors the four*_system_prompt fields returned by GetConfig.
PromptSuggestionStatus
(synq.agent.sre.v1.PromptSuggestionStatus) PromptSuggestionStatus is the review lifecycle of a single prompt suggestion.SUPERSEDED indicates a newer pending suggestion for the same field replaced
this one before it was reviewed.
MessageRole
(synq.agent.sre.v1.MessageRole) Role of the message in the conversation.ModelType
(synq.agent.sre.v1.ModelType) Type of model to use for the evaluation.TestSuggestionStatus
(synq.agent.sre.v1.TestSuggestionStatus)IssueTriageStatus
(synq.agent.sre.v1.IssueTriageStatus) IssueTriageStatus represents the current stage of an issue in the SRE agent’s investigation workflow. The status progresses as the agent collects evidence and reaches conclusions about the issue.TriageFailureCategory
(synq.agent.sre.v1.TriageFailureCategory) TriageFailureCategory classifies why a triage attempt failed. The frontend can use this to render appropriate user-facing messages and actions.DatacheckStatus
(synq.datachecks.v1.DatacheckStatus) Result of a datacheck executionSeverity
(synq.datachecks.sqltests.v1.Severity)DeploymentRuleType
(synq.monitors.automated_monitors.v1.DeploymentRuleType) DeploymentRuleType identifies which kind of selection a deployment rule uses. The value corresponds to the populatedconfig oneof arm on
MonitorsDeploymentRule / MonitorsDeploymentRuleView. Use it with
ListDeploymentRulesRequest.rule_types to return only rules of selected kinds.