Veil
In plain words: Public ingress proxy
The planned edge proxy area (Veil), using Caddy by default, that would terminate TLS, clean up hostile request metadata and expose only declared routes to backends that still check authority themselves.
- 1Each route is declared in a typed config with backend, limits and exposure tier; everything else stays closed.
- 2Database, model API, Control Panel and host control can never be exposed through Veil.
- 3Until the browser boundary changes, keep engine and Control Panel on one host with no ad hoc proxy.
Designed No proxy delivery yet; local loopback only.
Words on this page, decoded click one for its card
A request arrives with Host, path, method, headers, and claims about its origin. The edge must
reject, canonicalize, or map those values before they reach an application. Veil is the optional
hostile-ingress Extension DomainPlug-in Area outside the VesselEngine Room: it terminates TLS, handles protocols, admits
routes, and sends canonical metadata to an independently guarded backend.
Veil is Designed; State of Work owns its delivery boundary. Until the local browser boundary changes, keep the VesselEngine Room and AltarControl Panel on the same host—without an ad hoc reverse proxy, tunnel, or port-forward.
Admit the edge
ADR 40 selects Caddy as the default managed engine. An external edge remains possible, but no compatibility profile ships.
Begin with the particular route to expose. Its typed RuneService Config File names the host or route, backend, protocols, limits, application-authentication preconditions, and exposure tier: public, through Tether, or local. All other routes remain closed.
The design refuses ambiguous or overlapping ownership, unknown backends, unadmitted ports, and raw directives. A contribution cannot shadow Core, remove authentication, expose a database or model API, select an arbitrary upstream, or create a forward proxy. Before transactional inscription, the complete attributed configuration must pass Caddy validation in staging.
Caller-supplied forwarding, identity, and client-certificate claims are discarded. Canonical scheme, host, origin, and peer metadata may cross only an authenticated backend path the VesselEngine Room explicitly trusts. That is designed behavior, not today's loopback service.
Gateway
Veil may share the Core host or occupy a separate Gateway Host. Follow that guide to choose Home or Remote and its exact backend road; neither placement creates application authority. Core accepts only the declared Gateway identity and port. Policy outside the Gateway plus the receiving Core firewall must enforce the narrow zone; local Gateway rules are defense in depth. No broad LAN route, database, ContextBriefing Pack, SigilID Badge, provider credential, or host-control path may cross it.
Reach route profiles
The Reach deployment matrix uses no Veil for
home-only or standalone outbound VPS. The split
reach.edge-home.public@1 profile
binds a private home Veil only to its Tether address. Later profiles expose a closed set rather
than a catch-all:
| Surface | Backend and admission |
|---|---|
| Reach edge relay | private Tether-only event-admission, delivery-claim, delivery-settlement, and health routes to an isolated adapter; current edge Principal, epochs, bounds, replay fence, and WardSecurity Desk policy |
| public-safe Agent Card | GET on the adapter-pinned well-known path; public metadata only; no implied trust or enrollment |
| callback-only client | exact authenticated route to isolated IntercomAgent-to-Agent Line ingress; existing outbound task/token correlation, replay fence, current authorization, and durable admission |
| full A2AAgent-to-Agent Line server | separate IntercomAgent-to-Agent Line server ingress with WardSecurity Desk, inbox/outbox, Workers, quotas, and result path |
| unauthoritative health | local or Tether-only until remote WardSecurity Desk IAM ships; no generic control route |
| AltarControl Panel, database, model API, corpus writer, Reach core, Discord edge, egress gate, container or host control | closed; no Veil contribution is admissible |
Each admitted route pins methods, media, compressed and expanded size, JSON work, authentication, stream/time limits, exposure tier, backend, and adapter revision. Veil holds certificate and route material only. It never receives bot/provider/A2AAgent-to-Agent Line application credentials or a path from hostile bytes to Discord delivery.
Keep authority behind the route
TLS authenticates an endpoint and protects bytes; routing selects a destination. The Ward
and VesselEngine Room still authenticate the caller and authorize the exact object and effect. mTLS, arrival
through Tether, or forwarded metadata may supply evidence, but cannot mint aan SigilID Badge, create an
administrator, or make the fixed bootstrap magus:* identity valid remotely.
An A2AAgent-to-Agent Line Agent Card, ScrollWorkflow Version, or teaching bundle remains application material after crossing Veil. Veil may expose the admitted IntercomAgent-to-Agent Line route locally, through Tether, or eventually publicly; it cannot validate SpellStep compatibility, approve teaching, admit a casting, or settle its RunJob Record.
Before a browser-facing listener opens, Host and Origin admission, DNS-rebinding defenses, secure sessions, local assets, request bounds, and protected diagnostics must pass hostile tests. State of Work records the present failures; Security owns the deeper boundary. Proxying and TLS leave those duties intact.
Veil may impose coarse traffic limits; egress, application validation, and complete DDoS defense remain elsewhere. The edge receives only a narrow path to registered HTTP backends, never database, model, Reactor, systemd, container, application-secret, or arbitrary-egress authority.
Fail without opening another path
A transition first detects listener and route collisions and validates the candidate before activation. Certificate state and account keys remain within declared durable and secret boundaries; the prior projection remains available for restoration. If renewal fails, keep the last valid configuration and degrade readiness before expiry. Failed ACME prerequisites leave the public Veil unavailable while the local VesselEngine Room continues. Reconciliation closes routes removed from the declaration.