Data ​
| Workflow | Type | Description |
|---|---|---|
| data.agents.budget-status | Linear | Report budget utilisation for an organisation for a given period |
| data.agents.cost-by-config | Linear | Aggregate agent cost by config for an org, optionally filtered by date range |
| data.agents.cost-by-model | Linear | Aggregate agent LLM cost and token usage by model for an org |
| data.agents.cost-period-summary | Linear | Aggregate agent cost ledger for an org over a date range, grouped by day |
| data.agents.get-config | Linear | Fetch full agent config with skills and MCP server lists (org-scoped) |
| data.agents.get-org-settings | Linear | Fetch agent org settings for an organisation (read-only) |
| data.agents.get-session | Linear | Fetch full details for a single agent session (org-scoped) |
| data.agents.list-configs | Linear | List agent configs for an organisation (paginated) |
| data.agents.list-mcp-servers | Linear | List MCP servers registered for an organisation (paginated) |
| data.agents.list-price-configs | Linear | List all active model price configs for an organisation, with override indicators |
| data.agents.list-sessions | Linear | List agent sessions for an organisation (paginated, optional status/config filter) |
| data.agents.list-skills | Linear | List agent skills for an organisation (paginated) |
| data.agents.memory-stats | Linear | Summarise agent memory entry usage for an org, optionally scoped to a single config |
| data.agents.model-comparison | Linear | Compare agent LLM models by latency, token usage, and cache hit rate for an org |
| data.agents.org-summary | Linear | Return a high-level dashboard summary for an org across all agent data |
| data.agents.session-cost | Linear | Summarise cost ledger for a single agent session including cache savings estimate |
| data.agents.session-trace | Linear | Return the recent step metrics, tool calls, memory queries, and events for an agent session — for a live timeline view |
| data.agents.skill-package.get | Linear | Read one exact agent guidance-package version. |
| data.agents.skill-package.list | Linear | List immutable guidance-package versions newest first. |
| data.agents.tool-leaderboard | Linear | Rank agent tools by usage, success rate, latency, and the context they consume for an org |
| data.agents.workflow-trigger-report | Linear | Count agent sessions by trigger source (caller_ref prefix) for an org |
| data.agriculture.farm.get | Atomic | Get one Orkestia farm by UUID. Orkestia farm (grower site). Mixed-fleet machines assign here even without an OEM farm. |
| data.agriculture.farm.list | Atomic | List Orkestia farms. Orkestia farm (grower site). Mixed-fleet machines assign here even without an OEM farm. |
| data.agriculture.farm.upsert | Atomic | Create or update an Orkestia farm. Orkestia farm (grower site). Mixed-fleet machines assign here even without an OEM farm. |
| data.agriculture.field.get | Atomic | Get one Orkestia field by UUID. Orkestia field under a farm. Boundary geometry is optional. |
| data.agriculture.field.list | Atomic | List Orkestia fields. Orkestia field under a farm. Boundary geometry is optional. |
| data.agriculture.field.upsert | Atomic | Create or update an Orkestia field. Orkestia field under a farm. Boundary geometry is optional. |
| data.agriculture.machine.get | Atomic | Get one Orkestia machine by UUID. Orkestia machine. OEM id is source_ref; public id is machine_uuid. |
| data.agriculture.machine.list | Atomic | List Orkestia machines. Orkestia machine. OEM id is source_ref; public id is machine_uuid. |
| data.agriculture.machine.upsert | Atomic | Create or update an Orkestia machine. Orkestia machine. OEM id is source_ref; public id is machine_uuid. |
| data.agriculture.operation.get | Atomic | Get one Orkestia operation by UUID. Orkestia field operation (planting, application, harvest, tillage). |
| data.agriculture.operation.list | Atomic | List Orkestia operations. Orkestia field operation (planting, application, harvest, tillage). |
| data.agriculture.operation.upsert | Atomic | Create or update an Orkestia operation. Orkestia field operation (planting, application, harvest, tillage). |
| data.ai-provider.get | Atomic | Fetch one AIProviderConfig by UUID, scoped to the calling organization |
| data.ai-provider.get-default | Atomic | Resolve the org's default enabled AIProviderConfig (is_default=True, enabled=True) |
| data.ai-provider.list | Atomic | List all AIProviderConfig rows for an organization (optionally filtered to enabled=True) |
| data.ai-provider.persist | Atomic | Create or update an AIProviderConfig linking a CloudConnection to AI-specific settings |
| data.appdata.document.confirm | Atomic | Confirm a pending end-user document upload and mark it active (shared storage plane; an app served from its own instance reads and writes through the Data API instead) |
| data.appdata.document.delete | Atomic | Soft-delete an end-user document by UUID (shared storage plane; an app served from its own instance reads and writes through the Data API instead) |
| data.appdata.document.download-url | Atomic | Return storage download coordinates for a visible end-user document (shared storage plane; an app served from its own instance reads and writes through the Data API instead) |
| data.appdata.document.query | Atomic | List end-user documents visible under the app visibility predicate (shared storage plane; an app served from its own instance reads and writes through the Data API instead) |
| data.appdata.document.request-upload | Atomic | Register a pending end-user document and return server-chosen storage upload coordinates (shared storage plane; an app served from its own instance reads and writes through the Data API instead) |
| data.appdata.record.delete | Atomic | Soft-delete one owner-scoped appdata record by UUID (routes to the app's storage plane: the shared appdata store, or the app's own Postgres instance when it has one) |
| data.appdata.record.query | Atomic | Query owner-scoped appdata records through the table query policy (routes to the app's storage plane: the shared appdata store, or the app's own Postgres instance when it has one) |
| data.appdata.record.read | Atomic | Read one owner-scoped appdata record by UUID (routes to the app's storage plane: the shared appdata store, or the app's own Postgres instance when it has one) |
| data.appdata.record.update | Atomic | Patch one owner-scoped appdata record by UUID (routes to the app's storage plane: the shared appdata store, or the app's own Postgres instance when it has one) |
| data.appdata.record.write | Atomic | Create an owner-scoped appdata record from a declared virtual table (routes to the app's storage plane: the shared appdata store, or the app's own Postgres instance when it has one) |
| data.appdata.structure.apply | Atomic | Apply a validated VirtualDataStructure into appdata catalog metadata and serving-Postgres DDL |
| data.appdata.structure.query | Atomic | List appdata databases, tables, and fields for an identity app |
| data.appdata.transaction.apply | Atomic | Apply an ordered batch of appdata record operations atomically in one session and one commit (routes to the app's storage plane: the shared appdata store, or the app's own Postgres instance when it has one) |
| data.aria.diff-revisions | Atomic | Compare two revisions of a hosted service and say whether the change is breaking. |
| data.aria.get-service | Atomic | Read one hosted service: its voice, its tools, its auto-inputs and its bindings. |
| data.aria.list-revisions | Atomic | List a hosted service's published revisions, newest first. |
| data.aria.list-services | Atomic | List the organization's hosted MCP services. |
| data.chat.conversations.get | Atomic | Fetch a single chat conversation by UUID for a (org, user) pair |
| data.chat.conversations.list | Atomic | Paginated list of chat conversations for a (org, user) pair |
| data.chat.engine.runs.get | Atomic | Fetch a single workflow-engine run (by id) with optional transition history and child workflow ids, scoped to a (org, user) pair. |
| data.chat.engine.runs.list | Atomic | Paginated list of workflow-engine runs for the caller's org |
| data.chat.engine.runs.summarize-failure | Atomic | Structured failure summary for a workflow engine run, used by the chat layer to narrate failures without re-querying the engine. |
| data.chat.messages.list | Atomic | Paginated list of chat messages for a conversation |
| data.cloudflare.pages.persist | Atomic | Persist a CloudflarePagesProject row (create or restore) |
| data.cloudflare.pages.soft-delete | Atomic | Soft-delete a CloudflarePagesProject row (and its deployments) |
| data.cloudflare.pages.update | Atomic | Patch mutable fields on an existing CloudflarePagesProject row |
| data.cloudflare.queue.persist | Atomic | Persist a CloudflareQueue row (create or restore) |
| data.cloudflare.queue.soft-delete | Atomic | Soft-delete a CloudflareQueue row |
| data.cloudflare.queue.update | Atomic | Update fields on a CloudflareQueue row |
| data.cloudflare.r2.persist | Atomic | Persist a CloudflareR2Bucket row (create or restore) |
| data.cloudflare.r2.soft-delete | Atomic | Soft-delete a CloudflareR2Bucket row |
| data.cloudflare.r2.update | Atomic | Update fields on a CloudflareR2Bucket row |
| data.cloudflare.tunnel.persist | Atomic | Persist a CloudflareTunnel (create or restore) |
| data.cloudflare.tunnel.soft-delete | Atomic | Soft-delete a CloudflareTunnel row |
| data.cloudflare.tunnel.update | Atomic | Update fields on a CloudflareTunnel row |
| data.cloudflare.worker.persist | Atomic | Persist a CloudflareWorker row (create or restore) |
| data.cloudflare.worker.soft-delete | Atomic | Soft-delete a CloudflareWorker row |
| data.cloudflare.worker.update | Atomic | Update fields on a CloudflareWorker row |
| data.cluster.get | Atomic | Fetch one logical Kubernetes cluster by UUID for an organization. |
| data.cluster.list | Atomic | List logical Kubernetes clusters for an organization with optional filters. |
| data.cluster.provider-config-specs | Atomic | Return provider/cluster-kind configuration schemas for the cluster provisioning UI and callers. |
| data.commerce.artifact.persist | Atomic | Persist safe metadata and an object reference for a generated artifact |
| data.commerce.bank-line.parse | Atomic | Parse an OFX or CSV bank statement into normalized, pseudonymized lines |
| data.commerce.bank-line.persist-batch | Atomic | Transactionally upsert one bounded page of bank statement lines |
| data.commerce.bank-line.query | Atomic | Read a bounded window of bank statement lines for reconciliation |
| data.commerce.entity.persist | Atomic | Idempotent upsert into commerce_entity. Restores soft-deleted rows. Keyed by (cloud_connection_uuid, provider, entity_type, external_ref). |
| data.commerce.entity.persist-batch | Atomic | Transactionally upsert one bounded page of provider-neutral commerce entities |
| data.commerce.entity.query | Atomic | Read rows from commerce_entity in the finance DB. Supports filtering by connection/provider/entity_type/external_ref/status, JSONB raw->>key filters, and incremental-sync since-cursor. UUID-only surface. |
| data.commerce.match.persist-batch | Atomic | Persist control.collection.match results as reconciliation_decision rows |
| data.commerce.sync-checkpoint.complete | Atomic | Idempotently mark scoped/windowed synchronization complete |
| data.commerce.sync-checkpoint.get | Atomic | Read scoped/windowed synchronization progress |
| data.commerce.sync-checkpoint.upsert | Atomic | Create or replace scoped/windowed synchronization progress |
| data.commerce.sync-cursor.get | Atomic | Read the last_synced_at cursor for (connection, provider, entity_type). Returns exists=False when no row — caller treats that as 'sync from the beginning of time'. |
| data.commerce.sync-cursor.upsert | Atomic | Idempotent upsert of a (connection, provider, entity_type) cursor row. Replaces last_synced_at; increments items_synced_total when the input carries it. |
| data.composition.get | Atomic | Fetch one saved composition by uuid (org-scoped) |
| data.composition.list | Atomic | List saved compositions for an org (optionally filtered by name/status) |
| data.connection.persist | Atomic | Create or restore a CloudConnection and set secrets |
| data.connection.prune_dns | Atomic | Soft-delete DNS zones/records that no longer exist on the provider |
| data.connection.query | Atomic | List cloud connections through the data namespace compatibility surface |
| data.connection.soft_delete | Atomic | Soft-delete a CloudConnection and scrub its secrets |
| data.connection.sync_dns | Atomic | Sync DNS zones and records from provider to DB |
| data.connection.update | Atomic | Update an existing CloudConnection (name, project, secrets) |
| data.connection.update_status | Atomic | Update CloudConnection status via mark_* helpers |
| data.deploy.get-k8s-target | Atomic | Fetch a single DeploymentTarget by UUID (KUBERNETES provider only) |
| data.deploy.list-k8s-targets | Atomic | List DeploymentTargets where provider_type = kubernetes |
| data.deploy.rollout.get | Atomic | Fetch a single DeploymentRollout (with event timeline) by UUID |
| data.deploy.rollout.list | Atomic | Paginated rollout history, optionally narrowed to a DeploymentTarget |
| data.deploy.target.create | Atomic | Register a non-Kubernetes DeploymentTarget (Cloud Run / static / backend) so rollout workflows have a target to dispatch onto. DB-only; idempotent on (organization, cloud_connection, name). |
| data.deploy.target.soft-delete | Atomic | Soft-delete a DeploymentTarget — stops Orkestia tracking, leaves the workload on the cluster untouched. |
| data.deploy.target.update-ingest-config | Atomic | Configure webhook auto-release on a DeploymentTarget: image_repo, tag_filter_regex, auto_release. Each field optional; only supplied ones are written. |
| data.dgi.workflow-request.list | Atomic | Paginated list of captured workflow requests for an organization |
| data.failguard.project.get | Atomic | Get a FailGuard project by UUID (local DB, read-only) |
| data.failguard.project.list | Atomic | List FailGuard projects for an organization (local DB, read-only) |
| data.failguard.project.status | Atomic | Inspect FailGuard project and cloud-resource status (local DB, read-only) |
| data.gitops.application.get | Atomic | Load one GitOpsApplication (org-scoped), with repo owner/name resolved |
| data.gitops.application.list | Atomic | Paginated, org-scoped list of GitOps applications |
| data.gitops.application.list-for-repo | Atomic | Find active GitOpsApplications a git event should trigger a sync for |
| data.gitops.repo.list | Atomic | List the org's linked GitHub repositories (for the GitOps repo picker) |
| data.gitops.repo.refs | Atomic | List branches + release tags for a linked GitHub repository |
| data.gitops.sync-run.list | Atomic | Paginated reconcile history for one GitOps application |
| data.gitops.sync-run.record | Atomic | Persist a GitOpsSyncRun and roll the application's status forward |
| data.google.ads.campaign.list | Atomic | Scaffold: resolve pinned customer_id for campaign list. Does not call the Google Ads API yet. |
| data.google.ads.customer.list | Atomic | Scaffold read: load google_ads connection + pinned customer id. Does not call the Google Ads API yet (R1.6). |
| data.identity.api-token.delete | Atomic | Hard-delete a UserApiToken row |
| data.identity.api-token.persist | Atomic | Insert a UserApiToken row from a pre-hashed token |
| data.identity.app-client.update | Atomic | Update an OIDC client's redirect URIs / token TTLs / policy |
| data.identity.app.deprovision | Atomic | Soft-delete an identity app and invalidate app-owned identity state |
| data.identity.app.persist | Atomic | Create an identity tenant (IdentityApp + initial OIDC client) |
| data.identity.end-user.persist | Atomic | Register an end-user for an app's identity tenant |
| data.identity.end-user.purge | Atomic | Hard-delete one soft-deleted end-user and app-scoped cleanup rows |
| data.identity.end-user.revoke-sessions.persist | Atomic | Revoke all of an end-user's current tokens (sets the cut-off) |
| data.identity.end-user.soft-delete | Atomic | Disable or soft-delete an end-user (frees the seat) |
| data.identity.federation-provider.persist | Atomic | Register an upstream identity provider (Google/GitHub/OIDC/SAML) for an app |
| data.identity.key.persist | Atomic | Insert an IdentityKey row from ciphertext and public fields |
| data.identity.key.update | Atomic | Update IdentityKey status and optionally scrub ciphertext |
| data.identity.membership.persist | Atomic | Idempotently create or restore an OrganizationUser row |
| data.identity.membership.prune | Atomic | Hard-delete soft-deleted OrganizationUser rows past retention window |
| data.identity.membership.soft_delete | Atomic | Soft-delete an OrganizationUser row |
| data.identity.membership.update | Atomic | Update role on an OrganizationUser row |
| data.identity.notification-pref.persist | Atomic | Create or restore a UserNotificationPreference row |
| data.identity.notification-pref.prune | Atomic | Hard-delete stale soft-deleted UserNotificationPreference rows |
| data.identity.notification-pref.soft_delete | Atomic | Soft-delete a UserNotificationPreference row (idempotent) |
| data.identity.notification-pref.update | Atomic | Patch an active UserNotificationPreference row |
| data.identity.org-invitation.persist | Atomic | Idempotently create an OrganizationInvitation row |
| data.identity.org-invitation.update | Atomic | Patch status/timestamps on an OrganizationInvitation row |
| data.identity.organization.persist | Atomic | Create or restore an Organization row |
| data.identity.organization.prune | Atomic | Hard-delete Organization rows soft-deleted beyond retention window |
| data.identity.organization.soft_delete | Atomic | Soft-delete an Organization row |
| data.identity.organization.update | Atomic | Patch-update an Organization row |
| data.identity.seat-grant.persist | Atomic | Grant a batch of end-user seats to an app (raises the cap) |
| data.identity.user.persist | Atomic | Create or restore a User row keyed by cognito_sub |
| data.identity.user.prune | Atomic | Hard-delete expired soft-deleted Users and their API tokens / notification prefs |
| data.identity.user.soft_delete | Atomic | Soft-delete a User row (idempotent) |
| data.identity.user.update | Atomic | Patch an active User row (name, avatar_url, email_verified, last_login) |
| data.linkedin.identity.list | Atomic | List LinkedIn person and organization authors cached on a connection by connection.linkedin.sync-assets. Pure DB read — never calls LinkedIn. |
| data.linkedin.me.get | Atomic | Read the authenticated LinkedIn member via /v2/userinfo and emit a person author URN. |
| data.linkedin.organization.list | Atomic | List LinkedIn organizations the token can administer via /rest/organizationAcls. |
| data.linkedin.post.get | Atomic | Fetch a LinkedIn post via GET /rest/posts/{urn}. |
| data.linkedin.post.list | Atomic | List LinkedIn posts for an author via /rest/posts?author=… |
| data.linkedin_ads.account.list | Atomic | Scaffold read: list LinkedIn Ads / Campaign Manager ad accounts for a linkedin_ads connection. No live Marketing API yet (R1.7). |
| data.linkedin_ads.campaign.list | Atomic | Scaffold read: list campaigns for a pinned LinkedIn Ads account. No live Campaign Manager API yet (R1.7). |
| data.linkedin_ads.conversion.list | Atomic | List LinkedIn conversion rules for a pinned ad account (GET /rest/conversions?q=account). Prefers CONVERSIONS_API rules. |
| data.media.artifact.find-by-ref | Atomic | Find GeneratedArtifact rows by produced_by pair, storage_object_uuid, or variant_of_uuid. Exactly one ref mode required. |
| data.media.artifact.get | Atomic | Fetch one GeneratedArtifact by UUID; org-scoped; UUID-only surface. |
| data.media.artifact.list | Atomic | List GeneratedArtifact rows for an org with optional kind/brand/campaign/verdict/review_gate filters. Newest first. |
| data.media.profile.get | Atomic | Fetch one MediaProfile by UUID; org-scoped; UUID-only surface. |
| data.media.profile.get-default | Atomic | Fetch the organization's default MediaProfile when one exists; UUID-only surface. |
| data.media.profile.list | Atomic | List MediaProfiles for an organization; UUID-only surface. |
| data.meta.context.load | Dag | Load prompt-friendly Instagram media + Facebook Page feed context in parallel; optional insights when include_insights=true. |
| data.meta.identity.list | Atomic | List Facebook Page and Instagram identities cached on a connection by connection.meta.sync-assets. Pure DB read — never calls Graph. |
| data.meta.instagram.comments.list | Atomic | List comments on an Instagram media object as prompt-friendly summaries. |
| data.meta.instagram.get | Atomic | Fetch Instagram business account fields from Graph given an IG id or a Facebook Page id. |
| data.meta.instagram.insights | Atomic | Fetch organic Instagram insights at account or media level as structured summaries. |
| data.meta.instagram.media.get | Atomic | Fetch a single Instagram media object as a prompt-friendly summary. |
| data.meta.instagram.media.list | Atomic | List recent Instagram media for an IG business account — prompt-friendly summaries for agent context. |
| data.meta.page.comments.list | Atomic | List comments on a Facebook Page post as prompt-friendly summaries. |
| data.meta.page.feed.get | Atomic | Fetch a single Facebook Page feed post as a prompt-friendly summary. |
| data.meta.page.feed.list | Atomic | List recent Facebook Page feed posts — prompt-friendly summaries for agent context. |
| data.meta.page.insights | Atomic | Fetch organic Facebook Page insights as structured summaries. |
| data.meta.page.list | Atomic | List Facebook Pages linked to the Meta connection via Graph GET /{user-id}/accounts (default user-id=me). Falls back to /me when the connection only holds a Page token. |
| data.meta_ads.account.list | Atomic | List Marketing API ad accounts for a meta_ads connection via Graph GET /me/adaccounts. Falls back to cached ad_accounts from sync-assets. |
| data.meta_ads.ad.list | Atomic | List ads for a pinned Meta Ads ad account via Graph GET /{ad-account-id}/ads. |
| data.meta_ads.adset.list | Atomic | List ad sets for a pinned Meta Ads ad account via Graph GET /{ad-account-id}/adsets. |
| data.meta_ads.campaign.list | Atomic | List campaigns for a pinned Meta Ads ad account via Graph GET /{ad-account-id}/campaigns. |
| data.neon.branch.persist | Atomic | Persist a NeonBranch row (create or restore) |
| data.neon.branch.soft_delete | Atomic | Soft-delete a NeonBranch row |
| data.neon.database.persist | Atomic | Persist a NeonDatabase row (create or restore) |
| data.neon.database.soft_delete | Atomic | Soft-delete a NeonDatabase row |
| data.neon.project.persist | Atomic | Persist a NeonProject row (create or restore) |
| data.neon.project.soft_delete | Atomic | Soft-delete a NeonProject row |
| data.neon.role.persist | Atomic | Persist a NeonRole row (create or restore; existence tracking only) |
| data.neon.role.soft_delete | Atomic | Soft-delete a NeonRole row |
| data.network.account.persist | Atomic | Persist a NetworkAccount (create or restore) |
| data.network.account.query | Atomic | List NetworkAccounts (uuid-only; internal ids and risk fields stripped) |
| data.network.account.soft_delete | Atomic | Soft-delete a NetworkAccount row |
| data.network.account.update | Atomic | Update a NetworkAccount (status, counters, config, name) |
| data.network.profile.persist | Atomic | Persist a NetworkProfile (create or restore by org+name) |
| data.network.profile.query | Atomic | List NetworkProfiles (uuid-only) |
| data.network.profile.soft_delete | Atomic | Soft-delete a NetworkProfile row (archive) |
| data.network.profile.update | Atomic | Update a NetworkProfile (name, description, type, default, config) |
| data.network.scope.persist | Atomic | Upsert a NetworkScope from sync (idempotent on provider_scope_ref) |
| data.network.scope.prune_stale | Atomic | Hard-delete soft-deleted NetworkScope rows past retention |
| data.network.scope.query | Atomic | List NetworkScopes (uuid-only; sync errors not exposed) |
| data.network.scope.soft_delete | Atomic | Soft-delete a NetworkScope row |
| data.network.scope.update | Atomic | Update a NetworkScope (name, CIDRs, status, metadata) |
| data.network.security_boundary.persist | Atomic | Upsert a NetworkSecurityBoundary from sync (no rule contents persisted) |
| data.network.security_boundary.query | Atomic | List NetworkSecurityBoundaries (uuid-only; no rule contents exposed) |
| data.network.security_boundary.soft_delete | Atomic | Soft-delete a NetworkSecurityBoundary row |
| data.network.security_boundary.update | Atomic | Update a NetworkSecurityBoundary (name, type, counts, metadata) |
| data.network.segment.persist | Atomic | Upsert a NetworkSegment from sync |
| data.network.segment.query | Atomic | List NetworkSegments (uuid-only) |
| data.network.segment.soft_delete | Atomic | Soft-delete a NetworkSegment row |
| data.network.segment.update | Atomic | Update a NetworkSegment (CIDRs, zone, route domain, metadata) |
| data.network.topology.prune_stale | Atomic | Hard-delete stale soft-deleted network topology records |
| data.publisher.cover_kit.list | Atomic | List cover kits with their covers joined. Pure DB read. Pass cover_kit_uuid to fetch one kit; assets is that kit's covers. |
| data.publisher.profile.list | Atomic | List publisher profiles with channel display names joined. Pure DB read — never calls a provider. |
| data.registry.account.list | Atomic | List registry accounts for an organization (UUID-only public surface) |
| data.registry.account.persist | Atomic | Create a RegistryAccount row (DB only, UUID-only public surface) |
| data.registry.account.unsync | Atomic | Remove aggregated registry account catalog from LtInteg (soft delete, DB only) |
| data.registry.image-version.list | Atomic | List registry image versions (tags) for an organization (UUID-only public surface) |
| data.registry.image.list | Atomic | List registry images for an organization (UUID-only public surface) |
| data.registry.repository.list | Atomic | List registry repositories for an organization (UUID-only public surface) |
| data.registry.repository.unsync | Atomic | Remove one registry repository and its images/versions (soft delete, DB only) |
| data.runner.environment-build.get | Atomic | Get one organization-scoped runner environment build. |
| data.runner.environment-build.list | Atomic | List runner environment builds for one repository or group. |
| data.runner.execution-assignment.get | Atomic | Get the safe provider-blind assignment envelope for an owned execution. |
| data.runner.execution-logs-tail | Atomic | Tail the most recently synced log events for a runner execution |
| data.runner.get-execution | Atomic | Get a runner execution by uuid |
| data.runner.get-group | Atomic | Get a runner group by uuid |
| data.runner.get-provider-config-spec | Atomic | Return the runner-group config spec for a single backend (field list, required keys, examples). |
| data.runner.group-get | Atomic | Atomic adapter for data.runner.group-get; required by parent workflow specs: runners.image.rollout, runners.pool.migrate-provider, runners.pool.resize-and-drain. |
| data.runner.group-persist | Atomic | Create a new runner group row (UUID-only surface) |
| data.runner.group-update | Atomic | Patch a runner group's editable fields (max_count, min_count, desired_count, runner_labels, config, description). Org-scoped from the Bearer token. Does NOT trigger re-provisioning. config.warm_pool is validated against the warm-pool schema (see ADRs 002/009/010/011/012); structurally invalid configs or isolation/enabled conflicts are rejected. |
| data.runner.list-active-warm-pool-groups | Atomic | List every reconcilable warm-pool-enabled runner group across all organizations. Used by the kafka-consumer's reconcile-loop cron to schedule per-group reconcile ticks. Includes ERROR groups so the controller can self-heal them. Cross-org by design — the reconcile workflow itself enforces the per-group org boundary. |
| data.runner.list-azure-environments | Atomic | List Azure Container Apps managed environments visible to a cloud connection |
| data.runner.list-claimable | Atomic | List safe pending DevKit execution correlations visible to one runner. |
| data.runner.list-events | Atomic | List lifecycle events for a runner group |
| data.runner.list-executions | Atomic | List runner executions (past and current) for an organization |
| data.runner.list-groups | Atomic | List all runner groups for an organization |
| data.runner.list-instances | Atomic | List runner instances for a runner group, or all org instances when no group is given |
| data.runner.list-provider-config-specs | Atomic | Return the full per-backend runner-group config spec catalogue so callers can render forms and validate input before starting runner.group-creation. |
| data.runner.list-resources | Atomic | List cloud resources tracked for a runner group |
| data.runner.list-scheduling-diagnostics | Atomic | List provider-blind scheduling diagnostics for pending coding executions in one runner group. |
| data.runner.list-stale-claims | Atomic | List bounded stale coding-claim diagnostics for one organization. |
| data.runner.list-stuck | Atomic | List stuck runner workflows (non-terminal, auto-advance, idle for N seconds) |
| data.runner.pool-status | Atomic | Read-only snapshot of a warm-pool runner group: composition counts (provisioning/warm_idle/busy/draining/failed/terminated_in_last_5m), effective warm_pool config, and per-instance stats. Org-scoped. |
| data.runner.repository-profile.get | Atomic | Get an organization-scoped repository execution profile. |
| data.runner.repository-profile.list | Atomic | List organization-scoped repository execution-profile versions. |
| data.runner.workspace-lease.get | Atomic | Get a workspace lease by lease UUID or runner execution UUID. |
| data.sentry.organization.list | Atomic | List synced Sentry organizations from the local catalog (read-only) |
| data.sentry.project.get | Atomic | Get a synced Sentry project by UUID from the local catalog (read-only) |
| data.sentry.project.list | Atomic | List synced Sentry projects from the local catalog (read-only) |
| data.sentry.project.validate | Atomic | Validate a synced Sentry project reference against the local catalog (read-only) |
| data.slack.users.list | Atomic | List persisted Slack workspace users for one organization-scoped Slack connection. |
| data.spad.site.create | Atomic | Register a SpadSite and its initial SpadBuildConfig so the SPAD provisioning workflows (spad.site-creation-gcp, ...) have a site to dispatch onto. DB-only; idempotent on (organization, name). |
| data.spad.site.list | Atomic | List SpadSite rows for an organization (UUID-only; internal ids stripped) |
| data.storage.find-by-ref | Atomic | Find StorageObject audit rows tagged with a given session, config, or skill uuid. Pure DB read. |
| data.storage.list-objects | Atomic | List StorageObject audit rows for an organization, paginated, with optional filters. Pure DB read — never calls the cloud. |
| data.storage.object.search | Atomic | Search StorageObject rows by display name, media kind, and upload date. Pure DB read — never calls the cloud. |
| data.subscription.list | Atomic | List OrganizationSubscription rows for an organization (UUID-only) |
| data.subscription.plan.list | Atomic | List the active SubscriptionPlan catalog (UUID-only) |
| data.telegram.bot.list | Atomic | List TelegramBot rows for an organization (UUID-only) |
| data.telegram.bot.persist | Atomic | Create or restore a TelegramBot row, keyed on (organization_uuid, bot_ref) |
| data.telegram.bot.update-webhook-config | Atomic | Persist the outcome of a Telegram setWebhook/deleteWebhook call by updating webhook_url and webhook_secret on the TelegramBot row identified by bot_uuid. Pass webhook_url=null to clear (disable). Idempotent on matching values. |
| data.telegram.chat.list | Atomic | List TelegramChat rows for a bot (UUID-only) — pick a saved chat instead of pasting a -100… numeric chat id |
| data.telegram.chat.upsert | Atomic | Idempotently insert or restore a TelegramChat row, keyed on (bot_uuid, chat_ref) |
| data.telegram.message.persist | Atomic | Insert a TelegramMessage row recording one outbound message dispatch. Non-idempotent — each call creates a new row. |
| data.telegram.update-event.load | Atomic | Load a single TelegramWebhookEvent by uuid, returning update_type, chat_ref, payload, and bot_uuid for downstream routing |
| data.telegram.update-event.persist | Atomic | Idempotently insert a TelegramWebhookEvent row keyed on (bot_uuid, update_ref); returns the event_uuid and an already_exists flag |
| data.wasender.message.persist | Atomic | Persist a WasenderMessage outbound-log row (create or restore) |
| data.wasender.message.soft_delete | Atomic | Soft-delete a WasenderMessage row |
| data.wasender.message.update_status | Atomic | Patch delivery status on a WasenderMessage row |
| data.wasender.session.persist | Atomic | Persist a WasenderSession row (create or restore) |
| data.wasender.session.soft_delete | Atomic | Soft-delete a WasenderSession row |
| data.wasender.session.update_status | Atomic | Patch status/phone_number on a WasenderSession row |
| data.youtube.channel.branding.get | Atomic | Read a channel's brandingSettings via the Data API. Live call — do not wire into a page load. |
| data.youtube.channel.get | Atomic | Read YouTube channel metadata via Data API channels.list (mine=true or by channel_id). |
| data.youtube.channel.list | Atomic | List YouTube channel identities cached on a connection by connection.youtube.sync-assets. Pure DB read — never calls the Data API. |
| data.youtube.channel.overview | Atomic | Channel title, handle, avatar and default flag from the connection cache. Pure DB read — never calls the Data API. |
