Top level
buildFilter
At least one of the two must be non-empty. Patterns are
doublestar globs, so ** crosses
directories, and are relative to the repository root even when a service sets rootDir.
previews
databases[]
services[]
Identity
Source
A service declaresimage: or the build fields, never both.
Networking
prefix and domain sit on the service, never inside a port entry.
auth:
Both default to
false, which leaves the service open. See
Access controls.
ipRules entries:
No
ipRules: block allows every IP; an empty list blocks everything. At most 50
entries per service. See Inbound IP rules.
edgeCache turns on response caching at the platform edge for the service’s public
URL: static caches asset-shaped paths only, all caches every cacheable response.
See Edge caching.
Configuration
Health
A probe declares exactly one of:
Plus optional
periodSeconds, timeoutSeconds, failureThreshold, successThreshold and
initialDelaySeconds, all non-negative.
Compute
scaling:
autoResize:
Storage
One disk per service, and no two services share one. Rejected on cron and static.
Previews
Rejected on cron and static. Per-service preview env set in the console (the service’s
Previews tab) merges over
previews.env, console winning per key.
Static sites
redirects[]:
headers[]:
Substitution
Valid inenv and buildArgs only.
${service.NAME.FIELD} accepts url, host, port, public_url, external_url,
pooled_url, user, password, database, bucket, endpoint, access_key_id and
secret_access_key.
See Secrets and variables and
Service to service.
Platform environment variables
Set on every workload without being declared.Rejected fields
These fail the parse with a message naming the replacement.
A
services: map keyed by service name is also rejected, with a message pointing at the
list form.