GraphIaC
infrastructure you can read
v0.1 — nodes · edges inferred from the pair · refs are data deps · desugar
Source
label : Type(…) · a -> b · other.field
# Static site: Route53 -> CloudFront (HTTPS) -> S3. # The arrows are the point: each one is an IAM policy or a service # integration the edge already knows how to provision. # # cert -> hz DNS validation records, automatically # cf -> bucket an OAC bucket policy: only this distribution can read # cf -> hz the A alias record for the domain # # cert_arn: cert.arn is a DATA DEPENDENCY (dashed in the diagram) — the # planner resolves it from live state, and everything downstream stays # BLOCKED until the certificate is ISSUED. No phase logic in the source. domain = "begrif.co" hz : HostedZone(domain_name: domain) cert : ACMCertificate(domain_name: domain) bucket : S3Bucket("begrif-co-site") cf : CloudFrontDistribution(domain_name: domain, cert_arn: cert.arn) cert -> hz cf -> bucket cf -> hz : (domain_name: domain)
⇄ desugar
💾 save
▷ plan
▶ run
✓ verify
ready
Graph
nodes are resources · edges are the wiring
solid
= provisioned connection
dashed = data dependency (blocks until resolvable)