Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt

Use this file to discover all available pages before exploring further.

ThingValue
Manifest version1
Service name regex^[a-z][a-z0-9-]{0,30}$
Public-port prefix regex^[a-z][a-z0-9-]{0,30}$
Secret / variable name regex^[A-Z][A-Z0-9_]*$
Public ports per service1
Pod replicas per service1
Ephemeral deploy TTL — default5 minutes
Ephemeral TTL clock startswhen status reaches healthy
PR-preview subdomainpr-<n> (stable across commits)
Manual / ephemeral subdomain<short-id>-<rand> (unique per deploy)
Tenant namespacesl-<dep-id>
Invite expiry7 days
Log retention30 days (ClickHouse TTL)
Live-log replay ring256 KB per in-flight deployment
Logs search page size500 lines
Deployments list default page size15
Repos list default page size24
Max page size on any list100

Per-deployment resources

Each tenant namespace has a ResourceQuota and LimitRange applied at creation. The exact numbers depend on your org’s plan. CPU and memory you request in services.*.resources must fit inside the quota — if they don’t, the deploy fails at the deploying phase.

Tenant isolation

LayerEnforcement
NamespaceOne namespace per deployment (sl-<dep-id>).
NetworkDefault-deny NetworkPolicy; only the platform Ingress and registry can reach tenant pods.
CPU / memoryResourceQuota per namespace.
FilesystemgVisor sandboxing on application code.
Pod-Security Admissionpod-security.kubernetes.io/enforce: baseline.
PSA is set to baseline rather than restricted so images that use named users (USER node) work — kubelet can’t verify a named user under runAsNonRoot: true.