Repository navigation
fix(messagebox): migrate durable HTTP authentication replay claims - #588
Conversation
|
|
Maintainer review of exact head The additive schema matches KnexSessionManager: the composite primary key makes claims atomic across replicas, with adequate identity/session lengths and the existing expiry index. No authentication rule, replay check, existing application row or API format is weakened. Populated rollback is deliberately refused; documentation preserves the table and migration ledger across recovery. The regression reproduces the missing-schema initial HTTP 500, then proves real signed HTTP requests with two database-backed replicas and rejects replay on the other replica. All 227 service tests, root/service checks and an isolated MySQL rehearsal pass. The rehearsal preserved definitions, counts and checksums of all nine existing application tables in each of two schemas and used the deployed runtime for HTTP/replay acceptance. All applicable exact-head CI checks, zero-new-Sonar, CodeQL, container runtime contracts and merge-gate passed. CodeQL alert 284 was corrected with an actual rate limiter; its review thread is resolved. No finding suppression or threshold change. Existing unpublished service candidate remains 1.1.45. Publication and deployment remain separate verified steps. No blocking correctness, security, compatibility or operational issue remains in this diff. Maintainer/admin integration is authorized by the operator’s instruction and the repository policy. |



Program and scope
Message Box uses
KnexSessionManagerfor HTTP authentication, but its service migrations never create the requiredauth_message_noncestable. A database withauth_sessionsalone returns HTTP 500 during the first BRC-103 handshake, even while health and independently managed WebSocket authentication pass.Add the service-owned replay-table migration with the schema expected by the durable session manager. Refuse a down migration that would discard any replay claim. Document additive deployment, migration-ledger compatibility and separate HTTP/WebSocket acceptance.
@bsv/messagebox-server1.1.45; no public npm version changes.Verification
ecb119ae26ad6cfe66bc29bf10710ac69f61a475: all applicable hosted checks, CodeQL, zero-new-Sonar, container runtime contract and merge-gate pass. Scope-based skips are validated by merge-gate.Security, release and operations