Required contract
The release matrix is authoritative. A candidate commonly needs:- verified HTTPS, including the deployed private CA path;
- access to an existing bucket without bucket-administration permission;
- upload, HEAD/metadata, download, SHA-256 integrity, copy, pagination, conditional create, versioning, delete, and delete-marker behavior;
- server-side encryption;
- retention and legal hold when required for the
recordsprofile; and - cleanup limited to a unique test prefix and exact versions.
Qualification procedure
- Record the product name and exact server version, CaseBender revision/image digests, endpoint mode, CA digest, bucket policy, and identity policy.
- Use pre-created dedicated test buckets or a dedicated prefix.
- Run from the same network, DNS, proxy, CA, and identity context as the web and worker.
- Set each capability flag truthfully.
falsemeans skipped and cannot satisfy a required matrix operation. - Run the application upload/quarantine/scan/promote/download/delete lifecycle.
- Exercise backup, restore, migration, rollback, retention, and legal-hold workflows required by the customer.
- Sanitize, hash, review, and sign the evidence bundle.
Evidence rules
Usescripts/storage/certification-evidence.template.json and validate with:
Emulator limitation
./scripts/storage/run-emulator-contracts.sh s3 checks the S3 adapter against
LocalStack. It creates an emulator artifact that explicitly says it is not live
certification. Never reuse that result for Ceph RGW, MinIO, AWS S3, or another
S3-compatible product.