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.