Update project settings
update_settingsChange the settings of one project. Send project_id and only the fields to change; a field left out keeps its current value. Returns ok and a short message.
Build settings (ref, framework, runtime_version, build_cmd, dependencies_cmd, sub_path, output_directory) apply to the next build. port and health_check_path restart the running app. storage_mount_path applies on the next deploy. display_name renames the project.
Visibility: default_public sets whether commits created later are public or owner-only; existing commits keep their visibility. auto_promote_on_main_build sets whether a successful build of the tracked ref becomes the production version automatically.
Sign-in gate: google_login ('on' or 'off') puts the platform's Google sign-in in front of the app's canonical host, or removes it, and applies to the live host immediately. google_login_mode and google_login_allowed_emails set who may pass and also apply immediately; removing an address ends that person's access on their next request.
Environment variables are not changed by this tool; set_env_vars does that. Requires a read-write token.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | tracked branch/tag (the ref auto-promote follows) | |
| port | No | container port; change rolls the deployed pods | |
| sub_path | No | build sub-directory; applies to the next build | |
| build_cmd | No | build command; applies to the next build | |
| framework | No | framework preset; applies to the next build | |
| project_id | Yes | the project id (from list_projects) | |
| display_name | No | human-friendly project name | |
| google_login | No | 'on' gates the app's canonical host behind Google sign-in (the platform runs the OAuth flow; the app receives X-Kad-User/X-Kad-Email/X-Kad-Project headers), 'off' removes the gate. Applies to the live canonical host immediately. | |
| default_public | No | whether new commits default to public | |
| runtime_version | No | runtime version; applies to the next build | |
| dependencies_cmd | No | install command; applies to the next build | |
| output_directory | No | static output directory; applies to the next build | |
| google_login_mode | No | who gets through the Google gate: 'anyone' (any verified Google account) or 'restricted' (only google_login_allowed_emails). Takes effect immediately, no redeploy. Switching to 'restricted' with no list seeds the owner's own address so they don't lock themselves out. | |
| health_check_path | No | HTTP health-check path; change rolls the deployed pods | |
| storage_mount_path | No | absolute path where the app's persistent disk mounts, e.g. /data; empty removes it. Setting it on an app that has no disk (a new app has none) creates the disk. Applies on the next deploy | |
| auto_promote_on_main_build | No | auto-promote successful builds of the tracked ref to canonical | |
| google_login_allowed_emails | No | the email addresses allowed in 'restricted' mode; replaces the whole list. Removing an address revokes that person on their next request. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| status | No | present, and always "pending_approval", only when this call was parked instead of run immediately because the project's (or kad-back's own) plan-mode setting requires a human to approve it first | |
| message | Yes | ||
| plan_id | No | poll get_plan_status with this id for the eventual outcome | |
| approve_at | No | the kad.dev dashboard URL a human approves or rejects this plan from | |
| expires_in_s | No | the plan can no longer be approved after this many seconds |