Cybersecurity-Projects/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit
CarterPerez-dev 7e23f58fbb feat(rotators): AWS Secrets Manager rotator with SigV4 signer + secrets client
SigV4 implementation per AWS reference: canonical request -> string-to-sign
-> HMAC-derived signing key (kSecret -> kDate -> kRegion -> kService ->
kSigning) -> HMAC-SHA256 signature. Includes session token (STS) support.

SecretsManagerClient wraps PutSecretValue, GetSecretValue,
UpdateSecretVersionStage with custom endpoint support (LocalStack).
AWS API errors surface as AwsApiError carrying HTTP status + AWS __type.

AwsSecretsRotator implements 4-step contract:
- generate: PutSecretValue with AWSPENDING stage, captures version_id
- apply: no-op (PutSecretValue already exposed it)
- verify: GetSecretValue by version_id, byte-equal SecretString check
- commit: UpdateSecretVersionStage move AWSCURRENT to new + remove from old
- rollback_apply: UpdateSecretVersionStage remove AWSPENDING from new version

13 unit specs verify SigV4 idempotence + format, client methods (with
WebMock), rotator's full 4-step path, verify-mismatch, rollback_apply,
and can_rotate? gating.
2026-04-29 01:02:40 -04:00
..
audit feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing 2026-04-29 00:45:54 -04:00
aws feat(rotators): AWS Secrets Manager rotator with SigV4 signer + secrets client 2026-04-29 01:02:40 -04:00
cli feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
compliance feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
crypto feat(crypto): AEAD envelope encryption with AES-256-GCM, KEK loader, secure random 2026-04-29 00:43:12 -04:00
domain feat(domain): NewSecret and CredentialVersion structs 2026-04-29 00:32:53 -04:00
engine feat(rotators): abstract Rotator with macro registration + EnvFileRotator + 4-step orchestrator 2026-04-29 00:59:01 -04:00
events feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
github feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
notifiers feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
persistence feat(persistence): SQLite adapter with credentials/versions/rotations/audit repos 2026-04-29 00:36:22 -04:00
policy feat(policy): Crystal Policy as Code DSL with macros + compile-time enum autocast 2026-04-29 00:56:29 -04:00
rotators feat(rotators): AWS Secrets Manager rotator with SigV4 signer + secrets client 2026-04-29 01:02:40 -04:00
tui feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
vault feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
.gitkeep feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00