Add the entries of a settings document the installation lacks
The operator (installation.settings.manage, the workspace owner), signed in; an API key is 403 whatever its scopes. Adds each entry whose id no row holds, in one transaction, and writes an import_connection, import_repository or import_mcp_server receipt for each. An id held with the same content is unchanged (inactive when that row is disabled or removed: it stays so), and nothing is overwritten: an id held with other content, a GitHub App repository another id already holds, or a new stored entry whose id already has a value is 409 REVISION_CONFLICT (details.reason_code: settings_conflict, details.entries) and nothing changes. An entry bringing an env or Secrets Manager reference the installation does not hold yet is 400 external_reference (details.entries), nothing changed: only the operator's settings import CLI brings those in. A stored: true entry always means its own row's value and runs once the value is set (needs_value). A wrong outline (version, the top-level keys) is 400 with details.issues; an entry the settings rules refuse is 400 invalid_document. dry_run=true answers the same without writing.
Auth: cookie session only; no scope. Idempotency-Key: ignored.
cookieSession__Host-werft_session<token>For the web console: the browser session cookie set by POST /v1/auth/login. It holds the scopes of the user's workspace role (owner: all; admin and member: all but sessions:recover). Requests other than GET must also send X-Requested-With: werft-web.
dry_run?stringtrue checks the document and answers as an import would, writing nothing.
"true""false"X-Requested-With?"werft-web"Required with a cookie session: the literal werft-web.
"werft-web"application/json- body
version*numberconnections*repositories*mcp_servers*What was added, and what was there already.
application/json- response
outcome*string"applied""dry_run"added*array<>unchanged*array<>inactive*array<>needs_value*array<>receipt_ids*array<>curl -X POST 'https://example.com/v1/installation/settings/import' \ -H 'Content-Type: application/json' \ -d '{ "version": 1, "connections": { "anthropic-main": { "kind": "anthropic", "endpoint": "https://api.anthropic.com", "auth": { "kind": "api_key", "value_env": "ANTHROPIC_API_KEY" } }, "anthropic-console": { "kind": "anthropic", "endpoint": "https://api.anthropic.com", "auth": { "kind": "api_key", "stored": true, "last4": "x9Qa" } } }, "repositories": { "docs-site": { "url": "https://github.com/acme/docs-site.git", "branch": "main", "auth": { "kind": "github_app" } } }, "mcp_servers": {}}'{ "outcome": "applied", "added": [ "connection:anthropic-console", "repository:docs-site" ], "unchanged": [ "connection:anthropic-main" ], "inactive": [], "needs_value": [ "connection:anthropic-console" ], "receipt_ids": [ "019a0000-0000-7000-8000-0000000000f1", "019a0000-0000-7000-8000-0000000000f2" ]}