Projects

Update project settings

Changed on
post/projects/{project_id}/settings

Request

  • Base URL: /api (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /api/projects/{project_id}/settings
  • Auth: HTTP bearer

Path parameters

project_idinteger required

Project ID

Request body

ai_alert_summaries_enabledboolean nullable

Opt in to AI summarization of metric alert notifications (ADR-021).

ai_api_traffic_summary_enabledboolean nullable

Opt in to AI summarization of API traffic analytics.

attack_modeboolean nullable

Enable/disable attack mode (CAPTCHA protection) for all project environments

cross_project_trace_sharingboolean nullable

ADR-027 Phase 3 opt-out: set to false to suppress this project's traces from appearing in cross-project discovery results. Default true (consistent with the OSS global-observability model). Omit to leave unchanged.

directorystring nullable
enable_preview_environmentsboolean nullable

Enable automatic preview environment creation for each branch

error_source_context_enabledboolean nullable

Opt in to native error-tracking source context (source-file upload + source code shown in stack traces).

error_source_rootstring nullable

Set the auto-capture source root (relative to the checkout). Send an empty string to clear it back to the build-context default. Omit to leave unchanged.

git_provider_connection_idinteger nullable
image_retention_hoursinteger nullable

How long (hours) to retain built Docker images before nightly cleanup removes them. Set to null to use the system default. Valid range: 1–8760.

Omitting the key leaves the current value unchanged; sending an explicit null clears the per-project override. skip_serializing_if keeps the round-trip honest — re-serializing a request that omitted the key must not emit "image_retention_hours": null, which would mean "reset".

main_branchstring nullable
namestring nullable

Human-facing project display name. Unlike slug this is not part of any URL and is not required to be unique. Changing it also changes the OTEL_SERVICE_NAME injected into subsequent deployments.

presetstring nullable
preview_envs_idle_timeout_secondsinteger nullable

Idle timeout (seconds, 60..=86400) for on-demand preview environments.

preview_envs_on_demandboolean nullable

When true, newly-created preview environments default to on-demand mode.

preview_envs_wake_timeout_secondsinteger nullable

Wake timeout (seconds, 5..=120) for on-demand preview environments.

repo_namestring nullable
repo_ownerstring nullable
slugstring nullable
vulnerability_scanning_enabledboolean nullable

Opt in to Trivy vulnerability scanning of this project's deployed Docker images (post-deployment scan + daily rescans). Off by default.

Example request

{
  "preset_config": {
    "buildContext": "./api",
    "dockerfilePath": "docker/Dockerfile"
  }
}

Response

Project settings updated successfully

ai_alert_summaries_enabledboolean nullable

Opt-in to AI summarization of metric alert notifications (NULL/false = off).

ai_api_traffic_summary_enabledboolean nullable

Opt-in to AI summarization of API traffic analytics (NULL/false = off).

allow_alternate_sourcesboolean nullable

Whether this project also accepts deployments from a source other than source_type — chiefly, whether a Git-backed project will take an uploaded source archive (drop). null or false means only the configured source_type (plus Docker images and static bundles, which every project accepts) may be deployed.

attack_modeboolean required

Attack mode - when enabled, requires CAPTCHA verification for all project environments

created_atinteger required
cross_project_trace_sharingboolean required

ADR-027 Phase 3 opt-out: when false, this project's traces are suppressed from cross-project discovery results. Default true (consistent with the OSS global-observability model where any OtelRead holder can query any project's telemetry).

directorystring required
enable_preview_environmentsboolean required

Enable automatic preview environment creation for each branch

error_source_context_enabledboolean required

Opt-in to native error-tracking source context (false = off). When on, Temps stores uploaded source files and shows source code in stack traces.

error_source_rootstring nullable

Where auto-capture reads source from (relative to the checkout). Null = the deployment's Docker build context.

git_provider_connection_idinteger nullable
git_provider_typestring nullable

Git provider behind git_provider_connection_id: github, github_app, gitlab, gitea, bitbucket or generic. null when the project has no connection (public repository, Docker image or uploaded source).

Clients must use this rather than guessing the host from git_url: a self-hosted GitLab/Gitea/Bitbucket instance can live on any domain, and a connected project may have no clone URL stored at all.

git_urlstring nullable

Git clone URL for the repository (used for public repos without a provider connection)

gitlab_webhook_idinteger nullable

GitLab webhook ID installed on the connected repository. null when no GitLab webhook is installed (not connected to GitLab, or webhook was removed / never created).

idinteger required
image_retention_hoursinteger nullable

Hours to retain built Docker images before nightly cleanup. Null = use the system-wide default from settings.

is_public_repoboolean required

Authoritative repository visibility. A missing connection alone does not imply that an incompletely configured repository is public.

last_deploymentinteger nullable
main_branchstring required
namestring required
presetstring nullable
preview_envs_idle_timeout_secondsinteger required

Idle timeout (seconds) for on-demand preview environments.

preview_envs_on_demandboolean required

When true, newly-created preview environments default to on-demand mode (containers stop after the configured idle timeout to save resources).

preview_envs_wake_timeout_secondsinteger required

Wake timeout (seconds) for on-demand preview environments.

project_typestring required

Product lifecycle classification. service projects are tied to a persisted, versioned template release; this is independent from the deployment transport in source_type.

pull_only_root_directoryboolean required

When true, deploy clones only directory via git sparse-checkout.

repo_namestring nullable
repo_ownerstring nullable
service_template_image_urlstring nullable

Logo from the immutable service-template release applied to this project. Clients should prefer it over a deployed site's favicon.

service_template_versionstring nullable

Exact service-template version currently applied to the project.

slugstring required
source_type'external' | 'git' | 'docker_image' | 'static_files' | 'uploaded_source' | 'manual' required

Source type for project deployments

Determines where the deployment artifacts come from:

  • External: Telemetry only, without hosting
  • Git: Source code from a Git repository (traditional flow)
  • DockerImage: Pre-built Docker image from external registry
  • StaticFiles: Pre-built static files uploaded as a bundle
  • UploadedSource: Source archive uploaded without a Git repository
  • Manual: Flexible type that accepts any deployment method
template_slugstring nullable

Bundled template slug that created this project. Clients use this to present template-specific runtime configuration instead of generic source-build controls.

updated_atinteger required
vulnerability_scanning_enabledboolean required

Opt-in Trivy vulnerability scanning of this project's deployed Docker images. Off by default — project owners explicitly enable it.

Example response

{
  "docker_socket": {
    "nodes": [
      "control-plane",
      "worker-1"
    ]
  },
  "git_provider_type": "gitlab",
  "gitlab_webhook_id": 42,
  "preset_config": {
    "buildContext": "./api",
    "dockerfilePath": "docker/Dockerfile"
  }
}

Changes

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status