Reference
Enums, environment variables, error codes, and other lookup tables.
Enums
ConnectionStatus — pending, propagating, live, failed.
SetupType — automatic, manual, async, mcp.
Role — owner, admin, member, viewer.
PlanId — free, startup, growth, premium, enterprise.
Environment — production, staging, development.
DNS record types — A, AAAA, CNAME, CAA, MX, NS, TXT, plus the
meta-types SPFM (SPF-merge) and REDIR301.
Webhook events — connection.created, connection.applied,
connection.live, connection.failed, domain.record_missing,
domain.record_restored, domain.purchased (the broader emitted vocabulary also
includes domain.flow.completed and domain.propagation.timeout).
Error envelope & codes
Every error is { "code", "title", "details"? }. code is a stable machine
string:
code | HTTP | Meaning |
|---|---|---|
invalid_request | 400 | Malformed or missing input. |
unauthorized | 401 | Missing/invalid credential. |
not_found | 404 | Object doesn't exist or isn't in your tenant. |
service_unavailable | 503 | An optional engine (Sell, templates, billing, webhooks) isn't configured. |
internal_error | 500 | Server error (generic title + a logged request id). |
Environment variables
See Self-hosting → Configuration for the full
control-plane, edge, and console tables. Note the CUSTOMDOMAIN_*-then-JUSTEASY_*
fallback for control-plane variables.
Webhook signature
- Headers:
X-JE-Timestamp: <unix seconds>andX-JE-Signature: sha256=<hex>. - Algorithm: HMAC-SHA256 over
${timestamp}.${rawBody}(the timestamp, a dot, then the exact request body), keyed by the endpoint's signing secret (whsec_…). Reject deliveries whose timestamp is outside a ~5-minute window. See Verifying signatures.
Default edge record
A connection with no applied records yet points at the edge with a synthesized
CNAME <host> → edge.customdomain.ai (TTL 3600), overridable with
JUSTEASY_EDGE_CNAME_TARGET.
Resources
docs/architecture/ARCHITECTURE.md— the two-plane design, data model, and request flows.infra/— compose files, Caddyfile, and ops scripts.openapi-v1.yaml— the OpenAPI document the API reference is generated from; also served live atGET /v1/openapi.json.