# l2-static-asset — S3 static asset (composition being redesigned) > **Module kind:** L2 composition | **Version:** TBD | **Status:** Under redesign A composition that references the `l1-s3` primitive to deploy a single S3 bucket for static asset hosting. **The composition layer is being redesigned.** The previous thin-composition implementation (a `composition.json` with children + wires) has been removed. A new composition mechanism will be designed in a later phase. ## Resources TBD — the composition will reference this L1 primitive: | L1 module | Purpose | README | |-----------|---------|--------| | `l1-s3` | S3 bucket | [README](../l1/l1-s3/README.md) | ## Inputs TBD — will be defined when the composition mechanism is redesigned. ## Outputs TBD — will be defined when the composition mechanism is redesigned. ## Usage TBD — the composition mechanism is being redesigned. Until then, use `l1-s3` directly. See the [l1-s3 README](../l1/l1-s3/README.md) for a usage example. ## Compliance extension points The composition will need to wire compliance resources when the compliance milestone (GDPR, SOX, SOC2, HIPAA, DORA) lands: - **KMS key** — shared encryption key for S3 SSE. - **S3 access logs** — access logging to a separate audit bucket. - **Object Lock** — 7-year immutable retention for evidence. - **Public access block** — prevent data exfiltration. See the [l1-s3 README](../l1/l1-s3/README.md) for per-module compliance extension points. ## Versioning Versioning will be defined when the composition mechanism is redesigned.