photoncloud-monorepo/docs/por/T053-chainfire-core-finalization/task.yaml
centra d2149b6249 fix(lightningstor): Fix SigV4 canonicalization for AWS S3 auth
- Replace form_urlencoded with RFC 3986 compliant URI encoding
- Implement aws_uri_encode() matching AWS SigV4 spec exactly
- Unreserved chars (A-Z,a-z,0-9,-,_,.,~) not encoded
- All other chars percent-encoded with uppercase hex
- Preserve slashes in paths, encode in query params
- Normalize empty paths to '/' per AWS spec
- Fix test expectations (body hash, HMAC values)
- Add comprehensive SigV4 signature determinism test

This fixes the canonicalization mismatch that caused signature
validation failures in T047. Auth can now be enabled for production.

Refs: T058.S1
2025-12-12 06:23:46 +09:00

55 lines
1.5 KiB
YAML

id: T053
name: ChainFire Core Finalization
goal: Clean up legacy OpenRaft code and complete Gossip integration for robust clustering
status: planned
priority: P1
owner: peerB
created: 2025-12-12
depends_on: [T041]
blocks: [T039]
context: |
**Findings from T049 Audit:**
- openraft dependency still in Cargo.toml.
- Legacy code in chainfire-raft/src/storage.rs.
- cluster.rs has // TODO: Implement cluster joining via gossip.
- core.rs has // TODO: Use actual network layer instead of mock.
**User Direction (PROJECT.md Item 1):**
"Raft+Gossip." - Gossip is a core requirement for the cluster management KVS.
acceptance:
- openraft removed from all Cargo.toml files
- chainfire-raft crate cleaned of adapter code
- Cluster joining uses Gossip (foca) for discovery
- Node addition/removal flows fully implemented
- Network layer mocks replaced with real implementation where appropriate
steps:
- step: S1
name: OpenRaft Cleanup
done: Remove dependency and legacy adapter code
status: pending
owner: peerB
priority: P0
- step: S2
name: Gossip Integration
done: Implement cluster joining via Gossip
status: pending
owner: peerB
priority: P1
notes: |
- Use existing chainfire-gossip crate
- Implement cluster.rs TODOs
- step: S3
name: Network Layer Hardening
done: Replace mocks with real network stack in core
status: pending
owner: peerB
priority: P1
evidence: []
notes: |
Solidifies the foundation for all other services relying on ChainFire (PlasmaVMC, FiberLB, etc.)