Skip to content

DevOps blocks (6)

Six block kinds covering runtime + deployment shape. None carry Layer 2 — DevOps shape is fully captured in kind-specific top-level fields.

A runnable component (API, web, worker, MCP, scheduled, static).

{
"id": "svc_cloud_api_a1b2",
"kind": "service",
"name": "cloud-api",
"type": "api",
"language": "typescript",
"framework": "nestjs",
"ports": [4001],
"hosts": ["api.atomprd.dev"]
}

type is one of api / web / worker / mcp / scheduled / static.

Required env vars per service. secret: true triggers redaction in any export.

{
"id": "env_database_url_q4q4",
"kind": "env_var",
"name": "DATABASE_URL",
"scope_service": "svc_cloud_api_a1b2",
"secret": true,
"value_dev": "postgres://localhost:5432/atomprd_dev",
"value_prod": "<redacted>"
}

The validator strips value_* fields when secret: true before any export to disk.

External SaaS (payment, email, auth, …) + DPA tracking.

{
"id": "ven_lemon_squeezy_b2c2",
"kind": "vendor",
"name": "Lemon Squeezy",
"category": "payment",
"api_key_env_var": "env_lemon_squeezy_api_key_q5q5",
"webhook_endpoint": "/webhooks/lemon",
"webhook_secret_env_var": "env_lemon_webhook_secret_q6q6",
"dpa_signed": true,
"dpa_url": "https://lemonsqueezy.com/dpa"
}

category is one of payment / email / auth / analytics / storage / monitoring / llm / cdn / other.

DNS subdomain → service mapping. Renamed from domain (v0.2) to avoid the V2 view-name collision.

{
"id": "dom_api_atomprd_dev_a1b2",
"kind": "host_domain",
"name": "api.atomprd.dev",
"service_id": "svc_cloud_api_a1b2",
"tls": "letsencrypt"
}

A step in the build pipeline.

{
"id": "bld_install_deps_a1b2",
"kind": "build_step",
"name": "Install deps",
"command": "bun install --frozen-lockfile",
"working_dir": "/app",
"depends_on": []
}

A service deployment target.

{
"id": "tgt_cloud_api_prod_a1b2",
"kind": "deploy_target",
"name": "cloud-api / production",
"service_id": "svc_cloud_api_a1b2",
"provider": "digitalocean",
"auto_deploy_branch": "main",
"scaling": { "min": 1, "max": 3 }
}

provider is one of digitalocean / vercel / railway / fly / aws / gcp / azure / cloudflare / self_hosted.