Context
lit.cloud will contain provider-facing automation. Real Hetzner Object Storage and S3 authorization tests are Heavy under MLX-10 because they use external infrastructure, protected credentials, persistent state, and provider-side policy behavior.
Objective
Define and implement the central Heavy acceptance contract for lit.cloud.hetzner_object_storage.
Scope
- Add a versioned Heavy scenario contract for Hetzner Object Storage.
- Accept an immutable candidate SHA or collection artifact.
- Provision only isolated test resources with deterministic names and ownership labels.
- Validate Plan, Audit, and Reconcile.
- Validate private bucket defaults, versioning, Object Lock at creation, Governance retention, and multipart cleanup.
- Validate separate-project external principals.
- Verify positive and negative actions for Admin, Writer, Reader, and Reviewer.
- Prove that Writer cannot read, delete, or change bucket policy.
- Prove that Reader cannot write, delete, or change policy/retention.
- Prove that Reviewer can inspect required evidence/retention metadata but cannot mutate objects or policy.
- Capture structured JUnit and evidence manifests without secret material.
- Perform idempotent cleanup where Object Lock permits it; document retained locked fixtures and expiry.
Acceptance criteria
Dependencies
lightning-it/ansible-collection-cloud repository bootstrap
- Hetzner role migration and external-principal implementation
Context
lit.cloudwill contain provider-facing automation. Real Hetzner Object Storage and S3 authorization tests are Heavy under MLX-10 because they use external infrastructure, protected credentials, persistent state, and provider-side policy behavior.Objective
Define and implement the central Heavy acceptance contract for
lit.cloud.hetzner_object_storage.Scope
Acceptance criteria
modulix-validation.lit.cloud.Dependencies
lightning-it/ansible-collection-cloudrepository bootstrap