Skip to content

Platform settings reference ​

Settings are durable product policy

These values live in PostgreSQL, are audited, and may queue global runtime reconciliation. An environment variable does not replace a setting, and a runtime change is incomplete until affected targets acknowledge it.

Platform settings are validated groups in core/config/platform.php and stored in system_settings. Manage them at /admin/platform-settings, /api/admin/system/settings, or with cdnf:platform:settings:show and cdnf:platform:settings:set.

Updating edge_runtime, origin_safety, or proxy_defaults creates an asynchronous global edge reconcile operation. Other groups apply to later requests or scheduled work without rewriting every domain.

Display ​

FieldDefaultAllowed
timezoneUTCIANA timezone, such as Asia/Tehran

The administrator selects one shared display timezone for both panels. It applies to date/time fields, tables, charts and custom analytics views. API timestamps, exports and database values remain UTC. Changing this group is audited and has no edge reconciliation operation. It does not configure an external Grafana instance.

Operations ​

FieldDefaultAllowed
audit_retention_days36530–3,650
scheduler_stale_seconds18060–3,600
clock_drift_warning_seconds51–300
backup_stale_hours261–168

Telemetry ​

FieldDefaultAllowed
raw_retention_days71–30
hourly_retention_days40030–730
daily_retention_days1,095365–3,650
finalization_delay_minutes155–1,440
ipv4_mask_bits248–32
ipv6_mask_bits4816–64

The masking and finalization fields are active application policy. The shipped ClickHouse DDL has fixed TTLs of 7, 400, and 3 years; changing retention values does not migrate ClickHouse tables automatically.

DNS lifecycle ​

FieldDefaultAllowed
deprovision_delay_days71–365
domain_reclaim_cooldown_days71–365

Revision history ​

FieldDefaultAllowed
retention_days11–365
minimum_revisions_per_domain102–100

API rate limits ​

FieldDefault per identityAllowed
login_per_minute101–1,000
account_reads_per_minute6001–10,000
account_mutations_per_minute2401–5,000
bulk_per_minute121–1,000
origin_tests_per_minute201–1,000
edge_registrations_per_hour101–1,000
edge_agent_per_minute6001–10,000

Edge runtime ​

FieldDefaultAllowed
heartbeat_fresh_seconds4510–300
placement_drain_seconds30030–86,400
max_domain_artifact_bytes2,097,15265,536–16,777,216

Existing rows may still contain the older telemetry quorum, maximum-age and future-skew values. Current workers ignore those three stored fields, retain them during updates for mixed-version compatibility, and do not offer them as new input. Other unknown persisted fields still fail validation.

Origin safety ​

FieldDefaultAllowed
private_origin_allowlistemptyup to 128 private IPv4/IPv6 CIDRs
blocked_origin_networksemptyup to 128 IPv4/IPv6 CIDRs
blocked_origin_addressesemptyup to 128 IPv4/IPv6 addresses

The allowlist cannot override unspecified, loopback, link-local, metadata, multicast, reserved, platform, edge-service, or proxy-loop rejection.

Proxy defaults ​

FieldDefaultAllowed
enabledtrueboolean
redirect_httpsfalseboolean
http_versions1.1, 2one or both
retry_count00–2

API examples ​

Read all groups:

sh
curl --fail \
  --header "Authorization: Bearer ${CDNF_TOKEN}" \
  https://control.example.com/api/admin/system/settings

Update one group:

sh
curl --fail --request PATCH \
  --header "Authorization: Bearer ${CDNF_TOKEN}" \
  --header "Idempotency-Key: 8d90bd25-afcb-40df-89e1-61087b85ca91" \
  --header "Content-Type: application/json" \
  --data '{"values":{"heartbeat_fresh_seconds":45}}' \
  https://control.example.com/api/admin/system/settings/edge_runtime

CDNFoundry documentation