API reference
Every REST endpoint of every service, with the authorisation rule that guards it.
🤖 Generated from code by
scripts/generate-docs.mjs— do not hand-edit. Runorazaka docs buildto refresh.
Access is read from each service's SecurityConfig, most-specific matcher first — the same
order Spring Security applies. SERVICE is the machine-to-machine authority required on
/internal/v1/** (ADR-035); public means no credential at all, and ⚠ no rule means
no matcher covers the path — the service has no security on it whatsoever.
automation-service
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| GET | /api/v1/automations | authenticated | AutomationController | The caller's automations. |
| POST | /api/v1/automations | authenticated | AutomationController | Creates an automation. |
| GET | /api/v1/automations/{automationId}/runs | authenticated | RunController | The runs of one automation. |
| GET | /api/v1/automations/{automationId}/triggers | authenticated | TriggerController | The triggers of the automation (no secrets). |
| POST | /api/v1/automations/{automationId}/triggers | authenticated | TriggerController | Adds a trigger. |
| DELETE | /api/v1/automations/{automationId}/triggers/{triggerId} | authenticated | TriggerController | Removes a trigger; its runs stay in the history. |
| PATCH | /api/v1/automations/{automationId}/triggers/{triggerId} | authenticated | TriggerController | Enables or disables a trigger. |
| POST | /api/v1/automations/{automationId}/triggers/{triggerId}/rotate | authenticated | TriggerController | Issues a new secret. |
| DELETE | /api/v1/automations/{id} | authenticated | AutomationController | Removes an automation with its triggers and history. |
| GET | /api/v1/automations/{id} | authenticated | AutomationController | One automation. |
| PATCH | /api/v1/automations/{id} | authenticated | AutomationController | Changes an automation; a missing field is left as it is. |
| GET | /api/v1/automations/runs | authenticated | RunController | Every run of every automation of the caller. |
| GET | /api/v1/automations/runs/{runId} | authenticated | RunController | One run, with the webhook body it was started with. |
| POST | /hooks/{triggerId} | authenticated | WebhookIngressController | Receives a signed call and starts the automation it stands for. |
conversation-service
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| POST | /api/v1/agent/report | authenticated | AgentController | Receives execution reports from the CLI agent after local task completion. |
| GET | /api/v1/agent/stream | authenticated | AgentController | Establishes a persistent SSE stream for the CLI agent. |
| GET | /api/v1/assets/{jobId}/{filename} | ADMIN + USER | AssetController | Streams one asset to its owner, or to an administrator. |
| GET | /api/v1/chat/sessions | authenticated | ChatController | |
| POST | /api/v1/chat/sessions | authenticated | ChatController | |
| DELETE | /api/v1/chat/sessions/{sessionId} | authenticated | ChatController | |
| PATCH | /api/v1/chat/sessions/{sessionId} | authenticated | ChatController | |
| GET | /api/v1/chat/stream/{conversationId} | ADMIN + USER | ChatController | Streams chat via SSE using GET. |
| POST | /api/v1/chat/stream/{conversationId} | ADMIN + USER | ChatController | Streams chat via SSE using POST (supporting file reference mappings). |
| POST | /api/v1/code | authenticated | CodeController | Streams code generation via SSE using POST. |
| POST | /api/v1/embeddings | ADMIN + USER | EmbeddingController | |
| GET | /api/v1/features | ADMIN + USER | FeatureController | What this deployment can currently run: every enabled capability with its live degraded-mode state. |
| PUT | /api/v1/features/{featureKey} | ADMIN | FeatureController | Admin: toggles an existing capability's enabled state. |
| GET | /api/v1/features/all | ADMIN | FeatureController | Admin: all capabilities (enabled or not) from the database. |
| POST | /api/v1/intent | authenticated | IntentController | Dispatches a synchronous user intention through the App Factory and returns the result. |
| POST | /api/v1/intent/route | public | IntentController | M2M Level-0 gate routing: verifies the envelope and returns a signed intent token. |
| GET | /api/v1/jobs | authenticated | JobController | Retrieves a paginated list of jobs for the authenticated user (or all jobs for admins). |
| DELETE | /api/v1/jobs/{id} | ADMIN + USER | JobController | Deletes a finished job's result: files out of every store, row marked deleted (orazaka-web-client#86). |
| GET | /api/v1/jobs/{id} | ADMIN + USER | JobController | Fetches the single, atomic state of a specific job. |
| POST | /api/v1/jobs/{id}/progress | ADMIN + USER | JobController | Updates progress of a running job and broadcasts it to connected users. |
| POST | /api/v1/jobs/{jobId}/approve | ADMIN + USER | JobController | Approves a pending automation job and dispatches its payload to the execution queue. |
| POST | /api/v1/jobs/{jobId}/revoke | ADMIN + USER | JobController | Revokes a pending automation job, preventing its execution. |
| GET | /api/v1/jobs/active-connections | ADMIN | JobController | Retrieves the current active SSE connection count. |
| POST | /api/v1/jobs/purge | ADMIN | JobController | Purges jobs, chat sessions and rate-limit cache for the default test accounts. |
| GET | /api/v1/jobs/stream | ADMIN + USER | JobController | Registers a Server-Sent Events stream for real-time job status notifications. |
| GET | /api/v1/mcp/servers/platform | ADMIN | McpController | |
| POST | /api/v1/mcp/servers/platform | ADMIN | McpController | |
| DELETE | /api/v1/mcp/servers/platform/{id} | ADMIN | McpController | |
| GET | /api/v1/mcp/servers/user | authenticated | McpController | |
| POST | /api/v1/mcp/servers/user | authenticated | McpController | |
| DELETE | /api/v1/mcp/servers/user/{id} | authenticated | McpController | |
| GET | /api/v1/mcp/tools | authenticated | McpController | Retrieves all registered tools and their schemas. |
| POST | /api/v1/mcp/tools/{name}/execute | authenticated | McpController | Executes a tool by name with the provided arguments. |
| DELETE | /api/v1/media/assets/{assetId} | authenticated | MediaAnalysisController | Deletes one of the caller's own uploads (the sealed file in <uploads>/<user>/temp). |
| GET | /api/v1/media/search | authenticated | MediaAnalysisController | Performs a passive RAG context search against the semantic index. |
| POST | /api/v1/media/upload | authenticated | MediaAnalysisController | Securely uploads a raw binary asset, isolated per authenticated user. |
| GET | /api/v1/models | ADMIN + USER | ModelController | Retrieves the local catalog of Ollama models. |
| POST | /api/v1/models | ADMIN | ModelController | Adds a new model definition to the catalog. |
| DELETE | /api/v1/models/{id} | ADMIN | ModelController | Deletes a model definition by its database ID. |
| PUT | /api/v1/models/{id} | ADMIN | ModelController | Updates an existing model definition in the catalog. |
| GET | /api/v1/models/admin/audit | ADMIN | OperatorAuditController | |
| GET | /api/v1/models/catalog | authenticated | ModelController | Retrieves the complete AI model catalog definitions from the database. |
| GET | /api/v1/models/providers | authenticated | ModelController | Retrieves all available AI provider names from the database. |
| GET | /api/v1/models/supported | authenticated | ModelController | Retrieves the list of supported model names grouped by media type. |
| GET | /api/v1/pipeline/interceptors | ADMIN | PipelineController | Retrieves all pipeline interceptor configurations ordered by execution order. |
| PUT | /api/v1/pipeline/interceptors | ADMIN | PipelineController | Bulk-updates pipeline interceptor ordering and enabled state. |
| POST | /api/v1/pipeline/interceptors/reset | ADMIN | PipelineController | Resets all pipeline interceptor configurations to hardcoded defaults. |
| GET | /api/v1/pipeline/validation | ADMIN | PipelineController | Retrieves all validation pipeline tier configurations ordered by execution order. |
| PUT | /api/v1/pipeline/validation | ADMIN | PipelineController | Bulk-updates validation pipeline tier ordering and enabled state. |
| GET | /api/v1/status/graph | ADMIN + USER | StatusController | Compiles and outputs the operations graph. |
| GET | /api/v1/status/health | public | StatusController | Returns sovereign readiness health details (public probe). |
| GET | /api/v1/status/infrastructure | authenticated | StatusController | Returns the current online/offline snapshot of the local inference engines. |
| GET | /api/v1/voice/clips/{clipId} | public | VoiceController | One spoken sentence, by its signed URL — no bearer token, because an <audio> element cannot send one; the signature and its five-minute expiry are the authorisation. |
| POST | /api/v1/voice/turns | ADMIN + USER | VoiceController | Takes a turn: audio (WAV, Ogg/Opus, WebM, MP3; ~30 s at most) or text, answered over SSE — transcript, delta, sentence (text and a signed audio URL valid 300 s), safety.crisis or scope.refused when a guard answers, then done with the turn's usage and timings. |
| POST | /internal/v1/protected-conversations/erase | SERVICE | ProtectedConversationController | Erases a person's conversations under a pack. |
edge
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| ANY | /** | ⚠ no rule | ProxyController | Catch-all proxy entry point — everything not served by the edge itself is forwarded. |
job-service
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| DELETE | /internal/v1/capabilities/{featureKey} | SERVICE | CapabilityController | Removes one capability. |
| PUT | /internal/v1/capabilities/{featureKey} | SERVICE | CapabilityController | Registers or replaces one capability a pack contributes. |
| GET | /internal/v1/capabilities/{featureKey}/route | SERVICE | CapabilityController | Resolves where one capability's work is executed. |
| GET | /internal/v1/jobs/{jobId}/input/image | SERVICE | JobOutputController | The starting image of a job, for a worker that does not share the platform's disk. |
| GET | /internal/v1/jobs/{jobId}/output/{filename} | SERVICE | JobOutputController | Reads one of the actor's own outputs back (a step whose input is an earlier step's clip). |
| PUT | /internal/v1/jobs/{jobId}/output/{filename} | SERVICE | JobOutputController | Stores one output file of a job, sealed, and answers the URL it is served under. |
| POST | /internal/v1/jobs/erase | SERVICE | JobErasureController | Erases jobs of one person: rows, files and the durable copy. |
| GET | /internal/v1/models/options | SERVICE | ModelOptionsController | The published models of one category, the ones that answer first, the default marked. |
| GET | /internal/v1/models/queue | SERVICE | ModelOptionsController | The queue a job on a model is published with when it is not the capability's own (a hosted video model is run by the CPU worker's queue, a self-hosted one by the GPU worker's). |
| POST | /internal/v1/workers | SERVICE | WorkerController | Registers a worker, or refreshes what is known about it. |
| POST | /internal/v1/workers/{workerName}/heartbeat | SERVICE | WorkerController | Records a heartbeat from an already-registered worker. |
knowledge-service
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| POST | /api/v1/analytics/erasures | authenticated | AnalyticsController | Forgets subjects and items, in the analytics and the recommender's events. |
| POST | /api/v1/analytics/events | authenticated | AnalyticsController | Records a batch of events (idempotent by id). |
| GET | /api/v1/analytics/funnel | authenticated | AnalyticsController | The ordered funnel of steps over [from, to). |
| GET | /api/v1/analytics/insights | authenticated | AnalyticsController | KPIs, series, top items and cohorts over [from, to) (UTC dates, to excluded). |
| POST | /api/v1/recommendations/erasures | authenticated | RecommendationController | Forgets people and items. |
| POST | /api/v1/recommendations/events | authenticated | RecommendationController | Records a batch of interaction events (idempotent by id). |
| GET | /api/v1/recommendations/for-you | authenticated | RecommendationController | The person's "For you" feed. |
| GET | /api/v1/recommendations/insights | authenticated | RecommendationController | A creator's analytics. |
| POST | /api/v1/recommendations/items | authenticated | RecommendationController | Upserts eligible items; the ones whose text changed are embedded. |
| GET | /api/v1/recommendations/similar | authenticated | RecommendationController | Items like an item. |
| POST | /internal/v1/knowledge/retrieve | SERVICE | KnowledgeController | Semantic RAG retrieval over the vector store. |
| POST | /internal/v1/knowledge/sources/search | SERVICE | KnowledgeController | Substring search over a tool's registered RAG sources. |
krizaka-billing-service
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| GET | /api/v1/billing/admin/audit | ADMIN | OperatorAuditController | |
| GET | /api/v1/billing/configuration | ADMIN | ConfigurationController | The declared key vocabulary — type, permitted domain and code default per key. |
| PATCH | /api/v1/billing/configuration | ADMIN | ConfigurationController | Applies one validated configuration change. |
| GET | /api/v1/billing/pack-subscriptions | ADMIN | PackSubscriptionController | Every live holder of a pack — what an admin checks before withdrawing one. |
| GET | /api/v1/billing/pack-subscriptions/{actorId} | ADMIN | PackSubscriptionController | The packs one actor holds. |
| GET | /api/v1/billing/pack-subscriptions/me | authenticated | PackSubscriptionController | The packs the signed-in user holds. |
| DELETE | /api/v1/billing/pack-subscriptions/me/{packKey} | authenticated | PackSubscriptionController | Removes a pack from the signed-in user. |
| POST | /api/v1/billing/pack-subscriptions/me/{packKey} | authenticated | PackSubscriptionController | Adds a pack to the signed-in user. |
| GET | /api/v1/billing/packs | authenticated | PackController | The priced catalogue. |
| DELETE | /api/v1/billing/packs/{packKey} | ADMIN | PackController | Withdraws a pack from sale. |
| GET | /api/v1/billing/packs/{packKey} | authenticated | PackController | One pack with its entitlement matrix. |
| PUT | /api/v1/billing/packs/{packKey} | ADMIN | PackController | Creates or replaces a pack's price and entitlements. |
| GET | /api/v1/billing/packs/prices | authenticated | PackController | The whole price table, for the Pack catalogue to render a marketplace page from. |
| GET | /api/v1/billing/plans | authenticated | PlanController | The catalogue. |
| DELETE | /api/v1/billing/plans/{planKey} | ADMIN | PlanController | Retires a plan — deactivated, never deleted, because subscriptions reference it. |
| GET | /api/v1/billing/plans/{planKey} | authenticated | PlanController | One plan with its entitlement matrix. |
| PUT | /api/v1/billing/plans/{planKey} | ADMIN | PlanController | Creates or replaces a plan. |
| GET | /api/v1/billing/pricebook | ADMIN | PricebookController | |
| POST | /api/v1/billing/pricebook | ADMIN | PricebookController | |
| GET | /api/v1/billing/pricebook/estimate | authenticated | PricebookController | What an action would cost the signed-in user, and whether they can cover it. |
| GET | /api/v1/billing/pricebook/history | ADMIN | PricebookController | |
| POST | /api/v1/billing/pricebook/preview | ADMIN | PricebookController | |
| GET | /api/v1/billing/subscriptions | ADMIN | SubscriptionController | Every live subscriber of a plan — what an admin checks before retiring one. |
| DELETE | /api/v1/billing/subscriptions/{actorId} | ADMIN | SubscriptionController | Ends an actor's subscription. |
| GET | /api/v1/billing/subscriptions/{actorId} | ADMIN | SubscriptionController | The subscription in force for an actor. |
| POST | /api/v1/billing/subscriptions/{actorId} | ADMIN | SubscriptionController | Moves an actor onto a plan — upgrade, downgrade or trial. |
| POST | /api/v1/billing/subscriptions/{actorId}/rollover | ADMIN | SubscriptionController | Rolls a subscription into its next period, honouring a pending cancellation. |
| GET | /api/v1/billing/usage/capabilities | ADMIN | UsageController | Consumption and refusals per capability × model. |
| GET | /api/v1/billing/usage/top-consumers | ADMIN | UsageController | The heaviest consumers. |
| GET | /api/v1/billing/wallets/{actorId} | ADMIN | WalletController | Reads an actor's balances. |
| POST | /api/v1/billing/wallets/{actorId}/adjustments | ADMIN | WalletController | Issues a manual credit adjustment — support goodwill, or a claw-back. |
| GET | /api/v1/billing/wallets/{actorId}/entitlements | ADMIN | WalletController | Reads an actor's effective entitlements plus their balance summary. |
| GET | /api/v1/billing/wallets/adjustments/today | ADMIN | WalletController | What an admin has already adjusted today, against their ceiling. |
| GET | /api/v1/billing/wallets/me | authenticated | WalletController | The signed-in user's own balances. |
| GET | /api/v1/billing/wallets/me/entitlements | authenticated | WalletController | The signed-in user's own entitlements and available balance. |
| POST | /internal/v1/billing/credits/{holdId}/release | SERVICE | CreditController | Closes a hold with no debit. |
| POST | /internal/v1/billing/credits/{holdId}/settle | SERVICE | CreditController | Closes a hold against measured consumption. |
| POST | /internal/v1/billing/credits/{holdId}/settle-aggregate | SERVICE | CreditController | Closes one hold against the measurements of the several steps it authorised. |
| POST | /internal/v1/billing/credits/{holdId}/settle-measured | SERVICE | CreditController | Closes a hold against an executor's raw measurements, pricing them in the unit the hold's pinned rate uses. |
| POST | /internal/v1/billing/credits/holds | SERVICE | CreditController | Reserves the estimated cost of a request. |
| GET | /internal/v1/billing/entitlements/{actorId} | SERVICE | EntitlementController | Reads an actor's effective entitlements plus their balance summary. |
| DELETE | /internal/v1/billing/packs/{packKey} | SERVICE | PackProvisioningController | Withdraws a pack from sale, so a failed install can undo the half it already applied. |
| PUT | /internal/v1/billing/packs/{packKey} | SERVICE | PackProvisioningController | Creates or replaces a pack's price and entitlement matrix. |
krizaka-users-service
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| GET | /api/v1/admin/users | ADMIN | AdminUserController | |
| DELETE | /api/v1/admin/users/{id} | ADMIN | AdminUserController | |
| GET | /api/v1/admin/users/{id} | ADMIN | AdminUserController | |
| PUT | /api/v1/admin/users/{id}/admin | ADMIN | AdminUserController | |
| GET | /api/v1/admin/users/{id}/export | ADMIN | AdminUserController | |
| POST | /api/v1/admin/users/{id}/restore | ADMIN | AdminUserController | |
| POST | /api/v1/admin/users/{id}/suspend | ADMIN | AdminUserController | |
| GET | /api/v1/admin/users/audit | ADMIN | AdminUserController | |
| GET | /api/v1/api-keys | authenticated | ApiKeyController | |
| POST | /api/v1/api-keys | authenticated | ApiKeyController | |
| DELETE | /api/v1/api-keys/{id} | ADMIN + USER | ApiKeyController | |
| POST | /api/v1/auth/forgot | public | AuthController | Forgot password endpoint. |
| POST | /api/v1/auth/login | public | AuthController | Login endpoint. |
| POST | /api/v1/auth/oauth | public | AuthController | OAuth2 Token-Exchange login endpoint. |
| POST | /api/v1/auth/register | public | AuthController | Register endpoint. |
| POST | /api/v1/auth/reset | public | AuthController | Reset password endpoint. |
| POST | /api/v1/auth/verify | public | AuthController | Verifies the provided account activation token. |
| GET | /api/v1/credentials | authenticated | CredentialController | |
| POST | /api/v1/credentials | authenticated | CredentialController | |
| DELETE | /api/v1/credentials/{providerName} | ADMIN + USER | CredentialController | |
| GET | /api/v1/interceptions/{schemaId} | authenticated | InterceptionController | Returns the raw interception schema JSON for the given schema id, served as text so the JSON string is not double-encoded by Jackson (the client parses it). |
| POST | /api/v1/interceptions/resolve | authenticated | InterceptionController | Resolves an active interception by merging the user's responses. |
| GET | /api/v1/profile | authenticated | ProfileController | Returns the authenticated user's profile. |
| PUT | /api/v1/profile/preferences | ADMIN + USER | ProfileController | Updates the authenticated user's preference map and returns the refreshed profile. |
| GET | /internal/v1/tiers/{key} | SERVICE | InternalUserController | Bucket parameters of a rate-limit tier. |
| GET | /internal/v1/tiers/default | SERVICE | InternalUserController | The DB-flagged default rate-limit tier (anonymous callers). |
| POST | /internal/v1/tokens/exchange | SERVICE | InternalUserController | Exchanges a valid oz_ API key for a session JWT (performed by the edge). |
| GET | /internal/v1/users/{id} | SERVICE | InternalUserController | Full user snapshot for downstream principal hydration (404 via UserNotFoundException). |
| GET | /internal/v1/users/{id}/credentials/{provider} | SERVICE | InternalUserController | The user's decrypted BYOK provider key (service-to-service only). |
| GET | /internal/v1/users/{id}/profile | SERVICE | InternalUserController | The user's profile for pipeline context assembly. |
studio-service
| Method | Path | Access | Controller | Summary |
|---|---|---|---|---|
| GET | /api/v1/studios | authenticated | StudioController | The catalogue, optionally narrowed to one profession. |
| GET | /api/v1/studios/{studioKey} | authenticated | StudioController | One Studio's detail, including the schemas its forms are generated from. |
| GET | /api/v1/studios/{studioKey}/blueprints | ADMIN | StudioBlueprintController | Every version of a Studio, drafts included — the Builder's version list. |
| DELETE | /api/v1/studios/{studioKey}/blueprints/{version} | ADMIN | StudioBlueprintController | Deprecates a version without deleting it. |
| PUT | /api/v1/studios/{studioKey}/blueprints/{version} | ADMIN | StudioBlueprintController | Creates or replaces a draft version. |
| POST | /api/v1/studios/{studioKey}/blueprints/{version}/publish | ADMIN | StudioBlueprintController | Publishes a draft, minting it as the Studio's latest version. |
| POST | /api/v1/studios/{studioKey}/installations | authenticated | StudioInstallationController | Installs a Studio, pinning its newest published version. |
| POST | /api/v1/studios/{studioKey}/policy-check | authenticated | StudioRunController | Dry-run of the content policy: what would a run with these inputs do? Nothing is held, stored or sent to a provider. |
| POST | /api/v1/studios/{studioKey}/runs | authenticated | StudioRunController | Starts a run of a Studio, addressed by its key rather than by an installation. |
| GET | /api/v1/studios/{studioKey}/versions | authenticated | StudioController | A Studio's version history. |
| GET | /api/v1/studios/admin/audit | ADMIN | OperatorAuditController | |
| GET | /api/v1/studios/composer | authenticated | StudioController | The Studios that belong in a chat composer, for this actor. |
| GET | /api/v1/studios/installations | authenticated | StudioInstallationController | "My Studios". |
| DELETE | /api/v1/studios/installations/{installationId} | authenticated | StudioInstallationController | Uninstalls, keeping the configuration for a future reinstall. |
| GET | /api/v1/studios/installations/{installationId} | authenticated | StudioInstallationController | One installation. |
| PATCH | /api/v1/studios/installations/{installationId} | authenticated | StudioInstallationController | Replaces an installation's configuration. |
| POST | /api/v1/studios/installations/{installationId}/runs | authenticated | StudioRunController | Starts a run. |
| POST | /api/v1/studios/installations/{installationId}/upgrade | authenticated | StudioInstallationController | Moves the pin to the newest published version — never automatic. |
| GET | /api/v1/studios/packs | authenticated | PackCatalogController | The marketplace, optionally narrowed to one shelf. |
| GET | /api/v1/studios/packs/{packKey} | authenticated | PackCatalogController | One Pack's detail. |
| GET | /api/v1/studios/packs/{packKey}/consent | authenticated | ProtectedDataController | What a person agrees to, in their language, with the verified crisis line of each region. |
| DELETE | /api/v1/studios/packs/{packKey}/my-data | authenticated | ProtectedDataController | Erases everything the pack holds of the caller: entries, inputs and outputs, files, installations and the consent they recorded. |
| POST | /api/v1/studios/packs/bundles | ADMIN | PackBundleController | Installs a bundle. |
| DELETE | /api/v1/studios/packs/bundles/{bundleKey} | ADMIN | PackBundleController | Removes a bundle's catalogue rows and withdraws its pack from sale. |
| POST | /api/v1/studios/packs/bundles/validation | ADMIN | PackBundleController | Checks a bundle against this platform without writing anything. |
| GET | /api/v1/studios/packs/categories | authenticated | PackCatalogController | The shelves themselves, so the client renders headings it did not have to invent. |
| GET | /api/v1/studios/runs | authenticated | StudioRunController | This actor's run history. |
| DELETE | /api/v1/studios/runs/{runId} | authenticated | ProtectedDataController | Erases one entry of the caller's: a run of a protected pack, with its inputs, outputs and files. |
| GET | /api/v1/studios/runs/{runId} | authenticated | StudioRunController | One run with its per-step states and outputs. |
| POST | /api/v1/studios/runs/{runId}/approve | authenticated | StudioRunController | Resolves an approval step, resuming the run. |
| POST | /api/v1/studios/runs/{runId}/cancel | authenticated | StudioRunController | Cancels a run and releases its hold. |
| GET | /api/v1/studios/runs/{runId}/events | authenticated | StudioRunController | Follows a run as Server-Sent Events instead of polling it (orazaka#189, ADR-083). |
| GET | /api/v1/studios/runs/events | authenticated | StudioRunController | Follows every run of the caller on one connection (the per-key stream of orazaka#189): event: run whenever a run in flight changes, event: done when one ends, each carrying the run as GET /runs/runId would. |
| GET | /api/v1/studios/webhooks | authenticated | WebhookEndpointController | The caller's endpoints (no secrets). |
| POST | /api/v1/studios/webhooks | authenticated | WebhookEndpointController | Creates an endpoint. |
| DELETE | /api/v1/studios/webhooks/{id} | authenticated | WebhookEndpointController | Removes an endpoint and its log. |
| GET | /api/v1/studios/webhooks/{id}/deliveries | authenticated | WebhookEndpointController | The delivery log of an endpoint, newest first. |
| POST | /api/v1/studios/webhooks/{id}/rotate | authenticated | WebhookEndpointController | Issues a new secret. |
| GET | /internal/v1/installations/{installationId}/turn-declarations | SERVICE | InstallationDeclarationController | What a turn taken under this installation must carry: the pack's guards, the reviewed crisis reply for the installation's region, and the pack's system prompt. |