Ignitify.dev
Network
Concepts

Network

One of the seven axes. Every network setting is under execution.network in task.yaml: one object, one required type, and the rest is policy for that type.

type
Grants
What needs it
none
no NIC at all (default)
pure compute — nothing below applies
egress
outbound only
the task calls out to an API and never listens
bidirectional
outbound and inbound
the task serves requests — an HTTP endpoint, a webhook receiver

Outbound (egress) — egress or bidirectional

Key
Default
Meaning
egress_allow
omitted = allow-all
a hostname allowlist (max 32). [] means deny-all egress while keeping the NIC. A left-most * wildcard is the only pattern accepted — *.s3.amazonaws.com, never a bare TLD.
egress_tls_only
true iff egress_allow is declared, else false
plaintext :80 is dropped at the fence; the proxy checks the TLS ClientHello's SNI against the allowlist (handshake shape only, no decryption).
egress_mbit
the platform ceiling (per tier)
a bandwidth cap. A value above the ceiling is refused; you may only lower it.

Inbound — bidirectional only

Every inbound key is rejected under none or egress. inbound_port is required once you declare bidirectional.

Key
Default
Meaning
inbound_port
required, no default
the port the guest listens on, 1024–65535 (privileged ports are unbindable by the de-privileged task).
inbound_routes
omitted or [] = expose nothing tenant-facing
the public path allowlist (max 32): each entry is a {prefix} or exact {path}. Deny-by-default — the opposite of egress, on purpose: egress trusts your own outbound code, inbound cannot trust the internet. The platform's /__callback/ namespace is unconditional and always reachable, whatever you declare.
inbound_rps / inbound_burst
the tier ceiling
a per-route token bucket. You may only lower it.
inbound_max_concurrent
a preset-derived ceiling (vCPU × operator ratio)
desired max in-flight requests. A declared value above the ceiling is clamped down.