Settings

Get application settings

Changed on
get/settings

Request

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

Response

Application settings with masked sensitive fields

bunny_new_projectsboolean required
cloudflare_new_projectsboolean required

Applies Cloudflare delivery only to future projects.

console_force_httpsboolean nullable

Whether plain-HTTP requests to the console host are redirected to HTTPS. None inherits the per-host certificate heuristic; Some(b) is an explicit operator override. No sensitive content.

edge_targetstring nullable

Public edge target that synced DNS records point at (IP → A/AAAA, else CNAME).

effective_metrics_store'timescale_db' | 'click_house' required

Which storage backend to use for the MetricsStore.

effective_observability_store'timescale_db' | 'click_house' required

Which storage backend to use for the MetricsStore.

external_urlstring nullable
insecure_tlsboolean required
internal_urlstring nullable
monitored_services_countinteger nullable

Number of enabled, running services the MetricsScraper currently includes. Used for the lightweight storage estimate in the UI.

plugin_installation_reporting_enabledboolean required

Consent for verified external-plugin installation count reporting.

preview_domainstring required
proxy_portinteger required

Port the main Pingora proxy listens on (parsed from --address), the same value ConfigService::proxy_port() feeds into compute_deployment_url/compute_environment_url when external_url is unset. The console uses this to preview a project's real {slug}-{env_slug}.{preview_domain}:{port} URL before it's deployed.

public_ingress_urlstring nullable

Base URL handed to third parties that call back into Temps (ADR-051). None means callbacks use external_url; see GET /settings/public-ingress for the effective value.

registry_mirror_prefixstring nullable

Prefix applied to implicit Docker Hub base images in generated Dockerfiles (e.g. autopack's FROM node:22-slim). No sensitive content, passed through as-is. None/empty disables rewriting.

require_mfa_for_adminsboolean required

When enabled, Admin-role accounts without MFA enrolled are rejected at password login (bherila/temps#32). SSO/OIDC logins are unaffected.

setup_completeboolean required

Whether temps setup has been run at least once. The web onboarding wizard checks this field on load and skips itself when true.

trust_loopback_forwarded_ipboolean required

Database-backed opt-in; this is the sole control surface for every proxy process, including a standalone temps proxy.

trusted_private_networksstring[] required

Private networks (normalized CIDRs) that user-configured outbound requests may reach despite the SSRF guard. Empty means none.

Example response

{
  "ai_chat_limits": {
    "turn_timeout_secs": 900
  },
  "ai_config": {
    "config_repo_branch": "main"
  },
  "ai_workspace_file_limits": {
    "max_download_size_mb": 32,
    "max_file_size_mb": 16,
    "max_files_per_upload": 32,
    "max_image_preview_size_mb": 8,
    "max_text_preview_kb": 256,
    "max_upload_size_mb": 32,
    "max_workspace_entries": 5000,
    "max_workspace_size_mb": 256
  },
  "build_limits": {
    "cpu_limit_cores": 2,
    "max_concurrent": 2,
    "memory_limit_mb": 2048
  },
  "cloud": {
    "telemetry_bulk_anomaly_factor": 5,
    "telemetry_bulk_rate_limit_spans_per_sec": 5000,
    "telemetry_outbox_max_bytes": 536870912
  },
  "connection_limits": {
    "default_max_concurrent_connections": 200
  },
  "container_logs": {
    "cache_mb": 2048,
    "head_buffer_mb": 8,
    "max_file": 3,
    "max_size": "50m",
    "service_max_file": 3,
    "service_max_size": "20m"
  },
  "disk_space_alert": {
    "check_interval_seconds": 300,
    "threshold_percent": 80
  },
  "image_retention": {
    "default_hours": 336
  },
  "observability_compression": {
    "otel_spans_after_hours": 24,
    "proxy_logs_after_hours": 24
  },
  "observability_retention": {
    "container_logs_days": 30,
    "otel_logs_days": 90,
    "otel_metrics_days": 90,
    "otel_spans_days": 90,
    "proxy_logs_days": 30
  },
  "on_demand_tls": {
    "deployment_url_mode": "http",
    "hourly_cap": 10,
    "max_concurrent": 3,
    "zone": "1.2.3.4.sslip.io"
  },
  "request_timeouts": {
    "max_request_timeout_seconds": 600
  },
  "self_update": {
    "channel": "stable",
    "enabled": true
  },
  "tenant_resource_ceilings": {
    "max_concurrent_connections": 200,
    "max_memory_limit_mb": 4096
  }
}

Changes