put_api_management_v1_workspaces_slug_state
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Optional MCP + skill capability map, mirroring the workspace
manifest shape from ADR-0007. When present, the Management API
applies it via the same apply_capabilities path used by
POST /api/workspace/apply-manifest. Absent keys are no-ops —
existing callers that don’t send this field keep working
unchanged. See bw-infra docs/38 §4.6.
object
object
One MCP or skill override inside a manifest. Mirrors the schema
described in docs/schemas/supacloud-workspace.schema.json.
object
object
object
One MCP or skill override inside a manifest. Mirrors the schema
described in docs/schemas/supacloud-workspace.schema.json.
object
object
object
object
object
object
object
object
#708 X2b — the PR-flow arming fields the management apply honors. auto_developer_enabled
arms the pr_review automation arm; auto_developer_agent_type stamps its
source_filter.harness. The legacy auto_developer_prompt/_modes/_draft_first/… spec
fields were removed with the dropped projects.auto_developer_* columns.
#708 M1/X5 — DEPRECATED. The standalone issue-debate lane was retired (#708 B3/X5): the
council capability is the per-stage council flag, and the auto_issue_debate_* columns
were dropped (migration 302). This field is KEPT only so a stale IaC manifest that tries
to ARM the lane fails LOUDLY: an apply that sets it true is REJECTED with a 422 (see
apply_project) sourced from THIS request field. false / absent stays accepted for
backward-compatible manifests. The other auto_issue_debate_* spec fields were removed.
#708 M1 (K-06) — the project-tier tiered standard-closeout override (mig 283),
reaching parity with the browser project PUT so an IaC apply can set it. A sparse
JSONB bag documented by the CloseoutConfigPatch schema; on apply it is
shape-validated (models::closeout::validate_patch) then merged into the applied
project config exactly like the browser PUT (persisted via
queries::projects::set_closeout_config). null / absent leaves the column
untouched (the project inherits the workspace default). The management owner token
acts as the workspace owner, so no additional per-field gate applies.
object
Gates the Tier-0 closeout MEMORY proposal. None inherits the next tier.
object
Optional task-scope configuration (5-stage MCP allowlist
precedence per ADR-0007). Absent → no scope write. Empty
TaskScopeConfig::default() → wipes all scoping back to “all
enabled MCPs available to every task”.
object
object
object
object
#708 S1 (K-05) — an optional TYPED per-run standard-closeout override, merged into
config.closeout (the exact key the launch path’s resolve_closeout_for_task reads)
by [Self::effective_config], so a M2M-launched task can set its closeout the same way
the web run-start override does. A sparse JSONB bag documented by the
CloseoutConfigPatch schema; null / absent inherits the project/workspace default.
object
Gates the Tier-0 closeout MEMORY proposal. None inherits the next tier.
object
Optional issue-link intent. When BOTH issue_id and issue_url are
present, the launch path links the task to that existing issue by
merging link_issue_id/link_issue_url into config via the typed
services::tasks::IssueLinkConfig builder (ADR 0032, Issue #248). Either
field alone is a no-op, keeping legacy callers that only send config
unchanged.
object
object
Examplegenerated
{ "ai_credentials": [ { "key": "example", "label": "example", "provider": "example" } ], "budget": { "api_mode_controls": "example", "critical_threshold_percent": 1, "hard_stop": true, "monthly_cap_usd": 1, "provider_monthly_caps_usd": "example", "threshold_alerts_percent": [ 1 ], "warning_threshold_percent": 1 }, "capabilities": { "mcps": { "additionalProperty": { "config": {}, "description": "example", "enabled": true, "label": "example" } }, "skills": { "additionalProperty": { "config": {}, "description": "example", "enabled": true, "label": "example" } } }, "git_credentials": [ { "auth_type": "example", "credential_data": "example", "git_provider": "example", "label": "example" } ], "invites": [ { "email": "example", "role": "example" } ], "mailbox_credentials": [ { "allowed_login_providers": [ "example" ], "email": "example", "imap_host": "example", "imap_port": 1, "label": "example", "password_secret_ref": "example", "provider": "example", "use_tls": true, "username": "example" } ], "members": [ { "admin": true, "approved": true, "display_name": "example", "email": "example", "role": "example" } ], "oauth_credentials": [ { "access_token": "example", "account_email": "example", "expires_at": "2026-04-15T12:00:00Z", "id_token": "example", "provider": "example", "refresh_token": "example" } ], "projects": [ { "auto_developer_agent_type": "example", "auto_developer_enabled": true, "auto_issue_debate_enabled": true, "closeout_config": { "memory": true, "project_docs": { "condition": "example", "enabled": true, "globs": [ "example" ] }, "user_docs": { "condition": "example", "enabled": true, "globs": [ "example" ], "langs": [ "example" ] }, "wiki": { "condition": "example", "enabled": true } }, "git_credential_label": "example", "git_default_branch": "example", "git_provider": "example", "git_repo_url": "example", "key": "example", "name": "example" } ], "schedules": [ { "agent_type": "example", "cadence": "example", "config": "example", "key": "example", "next_run_at": "2026-04-15T12:00:00Z", "project_key": "example", "prompt": "example", "timezone": "example", "title": "example" } ], "task_scopes": { "by_agent_type": { "additionalProperty": [ "example" ] }, "by_project": { "additionalProperty": [ "example" ] }, "default_mcp_allowlist": [ "example" ] }, "tasks": [ { "agent_type": "example", "closeout": { "memory": true, "project_docs": { "condition": "example", "enabled": true, "globs": [ "example" ] }, "user_docs": { "condition": "example", "enabled": true, "globs": [ "example" ], "langs": [ "example" ] }, "wiki": { "condition": "example", "enabled": true } }, "config": { "additionalProperty": "example" }, "issue_id": "example", "issue_url": "example", "key": "example", "project_key": "example", "prompt": "example", "title": "example" } ], "variables": [ { "is_secret": true, "key": "example", "project_key": "example", "value": "example" } ], "workspace": { "name": "example", "owner_email": "example" }}Responses
Section titled “Responses”Workspace desired state applied
object
object
Examplegenerated
{ "changed": true, "results": [ { "changed": true, "fingerprint": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "key": "example", "resource_type": "example" } ], "workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}