# dxaws-website ## Overview `dxaws-website` is the **orchestration layer** of the dxaws ecosystem. It composes primitive dxaws modules (S3, ACM, CloudFront, DNS) to converge a fully working static website using a manager-centric, typed interface. This module does **not** directly implement AWS primitives. Instead, it coordinates existing dxaws modules and enforces convergence semantics (`create`, `update`, `wait`, `noop`) through `WebsiteManager.execute()`. --- ## Responsibilities ### What This Module Owns - Website-level desired state (`WebsiteDesired`) - Orchestration logic across primitives - Readiness semantics (certificate issuance, distribution deployment) - High-level action determination (`create`, `update`, `wait`, `noop`) - Stable outputs describing the converged website ### What It Creates or Manages (Indirectly) Through primitive modules: - S3 bucket (origin) - ACM certificate (with DNS validation records) - CloudFront distribution - Route53 alias records (A/AAAA) ### What It Explicitly Does *Not* Do - Direct boto3 AWS resource manipulation - CLI behavior (handled by dxaws-cli) - Step Functions or workflow orchestration engines - Complex multi-origin distribution logic --- ## Architecture Position `dxaws-website` sits **above** primitive modules and acts as a runbook-style orchestrator: ``` WebsiteManager ├── dxaws-s3 ├── dxaws-acm ├── dxaws-cloudfront └── dxaws-dns ``` It consumes typed desired state and produces a stable, converged result describing the website infrastructure. --- ## Related Modules - **dxaws-core** — shared models, observability, waiting utilities - **dxaws-s3** — origin bucket management - **dxaws-acm** — certificate issuance and DNS validation - **dxaws-cloudfront** — distribution lifecycle management - **dxaws-dns** — DNS record management --- ```{toctree} :maxdepth: 2 :caption: Contents README usage design api ```