TrustWeave SDK + TrustWeave SaaS · Joint review of 10 September 2026

Remediation and verification results

580 passed583 backend cases; 3 classified live Accountly skips
302 / 302Frontend tests passed; lint and production build passed
0 HIGH / CRITICALFinal runtime scan passed; SBOM and non-root execution verified
8.9 / 10Provisional joint engineering score; 9.8 target unmet

Original detailed review · Machine-readable status · Score rubric and reasons · Operating contract

Source-bound verification

SDK dbec32c05f9da1f6be4b8932bb0b207cb6d18052
SaaS 8b67281d0771ee8fdd9a6eb38860a266e5121c9e. Source pins and fingerprints agree. No original working-tree commits were made and no changes were deployed.

Complete backend inventory · Backend coverage · Affected SDK regression results · Frontend verification · Frontend input and build hashes · Workspace source comparison

Backend coverage is 55.15% lines and 35.39% branches. Its unchanged 40% instruction gate passed. Frontend application coverage is 59.1% lines and 50.94% branches; fixtures are excluded. The claim-encryption module reaches 95.71% lines and 94.11% branches. These figures do not establish the broader critical-path mutation targets.

Final image scan and identity · CycloneDX SBOM · Preserved initial vulnerability findings · Preserved framework migration failure

Provisional reassessment

SDK 9.1; SaaS 8.8; joint 8.9. Scores use the original six equally weighted categories and are engineering judgments, not certification. Every production gate and the unrounded 9.7+ threshold remain explicit.

AspectSDKSaaSEvidence and limits
Security and access control9.09.0Core SDK controls retained; production custody policy and the complete negative authorization matrix remain open.

Actual host tests reject unsafe profiles and invalid Vault options. Admission fails closed and MDC excludes capability paths; end-to-end telemetry privacy and recovery authorization remain open.

Observability and diagnosability9.68.8Prior SDK host observability evidence retained; no new production exporter qualification claimed.

Functional readiness, safe route context, bounded failure counters and stale-aware queue gauges are verified locally. Export, retention and alert acknowledgement remain unqualified.

Reliability and scale9.08.8Real Vault Transit lifecycle and strict response/key handling now pass. Server restart, rotation, HA and independently anchored recovery remain open.

PostgreSQL lease fencing, transaction separation, retries, audited redrive and counter capacity pass. Remote acknowledgement-loss reconciliation and sustained multi-node limits remain open.

Configuration and data9.08.8Vault options and routing are corrected and verified. Host-owned checkpoint trust and restore acceptance remain open.

Bound host options, mixed-profile rejection, complete clean migrations and Hibernate validation pass. Legacy timestamp assumptions and supported upgrade/restore windows still require deployment qualification.

Deployment and release8.58.5Immutable local SDK candidate and prior hosted evidence retained. No new deployed custody profile is certified.

Maintained framework, source binding, actual non-root image build, clean HIGH/CRITICAL scan, SBOM and negative evidence-verifier tests are verified locally. Hosted attestation, promotion and rollback qualification remain open.

Testing and documentation9.29.0667 affected-module tests, including 27 Vault cases with real provider and independent verification, pass on the candidate. Production operations and Android qualification remain open.

Full backend discovery and coverage gate, 302 browser tests, explicit skip policy, host regressions and release verifier tests provide stronger evidence. Critical-path mutation/coverage targets and independent operator drills remain open.

Additional defects found and addressed

Original findings and closure limits

IDChange and evidenceClosure status
R18
P1
Custom requestContextFilter bean prevents Spring MVC startup

The explicitly named telemetry filter coexists with Spring MVC without bean overriding. Full application startup and affected integration cases passed in the complete candidate suite.

Verified defect closure; broader production qualification remains separate
R01
P1
Scheduled usage delivery bypasses its transaction boundary

Short independently committed claim/finalize transactions, durable fencing, and NOT_SUPPORTED remote delivery replace self-invoked long transactions. Real Spring proxy regression added.

Implemented changes; closure acceptance incomplete
R02
P1
Outbox lease and outage handling do not bound delivery safely

Five-minute leases, stable idempotency keys, bounded batches, delayed transient retries, poison inventory, platform-admin redrive, and atomic audit records implemented. Remote response-loss qualification remains open.

Implemented changes; closure acceptance incomplete
R03
P1
Usage reporter tests exercise the obsolete repository contract

Reporter tests now exercise the current delivery-store contract. PostgreSQL concurrency, stale acknowledgement, outage, poison, redrive, and transaction tests added.

Implemented changes; closure acceptance incomplete
R04
P1
Shared rate-limit failures allow every request

Database failure rejects admission with a static 503 response and bounded telemetry. Capacity exhaustion returns 429 rather than bypassing the shared limiter.

Implemented changes; closure acceptance incomplete
R05
P2
Shared limiter uses caller clocks and lacks a cardinality budget

Database time, saturating counters, two-second queries, 1,000-row purge batches, and a transactional 50,000-key capacity ceiling implemented. V39 documents the legacy UTC conversion assumption.

Implemented changes; closure acceptance incomplete
R06
P1
Production plus local profile accepts an ephemeral KMS

Ephemeral custody requires every active profile to be explicitly local/dev/test. Mixed production/local profiles are rejected.

Verified defect closure; broader production qualification remains separate
R07
P2
Bound KMS options are silently unused

Explicit Vault options are validated and forwarded. Unknown or malformed settings fail instead of selecting environment fallback. Configuration string output redacts credentials.

Verified defect closure; broader production qualification remains separate
R08
P1
Request logging context includes capability-bearing paths

Request MDC uses trusted route templates. The server observation convention omits raw capability-bearing URLs; real filter tests cover matched/unmatched success and exception paths. Proxy logs, arbitrary exception text and exporter storage/retention still need end-to-end qualification.

Implemented changes; closure acceptance incomplete
R09
P2
Readiness accepts a missing identity realm as healthy

Readiness requires HTTP 200, bounded valid discovery JSON, matching issuer, and usable JWKS URI. 4xx, malformed discovery, and issuer mismatch are DOWN.

Implemented changes; closure acceptance incomplete
R10
P1
Committed Fly recipe disagrees with the application port and datasource contract

Fly port and readiness match 8081; placeholder database credentials removed; staging/Fly automatic Flyway baselining disabled. Actual selected-platform startup remains unqualified.

Implemented changes; closure acceptance incomplete
R11
P1
Current repositories do not form the pinned SDK/SaaS candidate pair

Pinned SDK dbec32c05f9da1f6be4b8932bb0b207cb6d18052 and SaaS 8b67281d0771ee8fdd9a6eb38860a266e5121c9e passed the complete backend inventory and coverage gate. Frontend evidence records its own commit and input hashes. Existing original working-tree changes were preserved; isolated candidate commits were used for verification.

Implemented changes; closure acceptance incomplete
R12
P2
Release evidence stops before the deployable artifact

Pinned runtime/scanner/actions, actual image build, CycloneDX SBOM, clean HIGH/CRITICAL scan and eleven release-script tests. Verification checks archive configuration identity, approved-source test contents, required suites/skips, scan coverage/severity and SBOM identity as well as hashes. Hosted attestation/promotion remains open.

Implemented changes; closure acceptance incomplete
R13
P2
Coverage and browser harness policy leave important paths unqualified

302 browser tests, lint, TypeScript/build and bundle budget passed. Test helpers are excluded from coverage: 59.1% lines and 50.94% branches. Claim encryption reaches 95.71% line and 94.11% branch coverage with real cryptography and negative integrity cases; broader critical-path mutation qualification remains open.

Implemented changes; closure acceptance incomplete
R14
P2
User synchronization holds a broad transaction across remote work

Identity synchronization uses 100-user pages, a durable cursor, detached provider reads, and per-user independently committed writes. Failed pages preserve the cursor; individual failures do not roll back unrelated writes.

Implemented changes; closure acceptance incomplete
R15
P1
Vault public-key extraction casts String to Map

Vault structured responses, Transit routing, configuration, strict Ed25519 encoding, bounded timeouts and full-UUID names are covered by refreshed adapter tests. Standalone module dependencies now use the reviewed catalog. Real provider lifecycle tests do not establish production server restart, rotation or HA.

Implemented changes; closure acceptance incomplete
R16
P1
No declared production custody profile is fully qualified

Production provider/algorithm/platform and custody lifecycle are not yet declared and qualified. Local container tests do not certify restart, rotation, hardware, or HA.

Open implementation/scope and qualification
R17
P1
Component recovery is not an end-to-end admission and journal recovery proof

End-to-end independently anchored checkpoint, external journal reconciliation, restore admission fencing, and measured RPO/RTO remain open. Local outbox leases do not close these architectural acceptance criteria.

Open implementation/scope and qualification

All acceptance tasks

A supporting implementation or runbook does not replace the required production exercise. Open implementation, scope and qualification work remains visible.

IDTask and acceptance criterionStatus
T01Declare the initial production support envelope

Record supported provider, algorithms, wallet flows, deployment platform, PostgreSQL version, tenant scale and excluded experimental operations.

Open: implementation and/or production qualification required
T02Select and bind an immutable candidate pair

Both clean candidate SHAs, reviewed source manifest and source verifier agree; preserve existing local work.

Verified scoped acceptance
T03Correct Vault structured response parsing

Faithful nested driver fixtures cover create/get, missing keys, version selection and malformed types.

Verified scoped acceptance
T04Qualify the selected Vault lifecycle

Isolated provider create/sign/independent verification/restart/rotation passes; no orphaned retry keys.

Implemented in part; acceptance evidence incomplete
T05Reject incompatible production KMS profiles

Truth table and actual Spring startup reject prod+local, staging+local and unintended ephemeral configurations.

Verified scoped acceptance
T06Make KMS options effective and validated

Non-default endpoint/namespace is used; unknown/unconsumed options fail startup; diagnostics redact secrets.

Verified scoped acceptance
T07Establish real outbox transaction boundaries

Spring-managed scheduler/proxy tests demonstrate short atomic claim/finalize transactions.

Implemented in part; acceptance evidence incomplete
T08Implement durable bounded delivery leases

Two-worker, expired-lease and worker-crash tests preserve claim ownership with fencing tokens and bounded batch runtime.

Implemented in part; acceptance evidence incomplete
T09Separate transient retries from poison events

Connection outage beyond ten ticks recovers; permanent rejection enters an audited terminal queue; retry delay and Retry-After are bounded.

Implemented in part; acceptance evidence incomplete
T10Prove remote idempotency and authenticated redrive

Provider commit/response-loss and operator redrive produce exactly one remote charge/effect per event key.

Implemented in part; acceptance evidence incomplete
T11Enforce endpoint-specific limiter failure policy

Counter-only outage causes sensitive mutation rejection and bounded approved read fallback; no blanket allow path.

Implemented in part; acceptance evidence incomplete
T12Use authoritative time and bounded shared counters

Skewed caller clocks cannot reset budgets; counters saturate and TTL/pool limits survive hot-key and churn load.

Implemented in part; acceptance evidence incomplete
T13Remove capability values from telemetry

Canary path tokens are absent from logs, spans, access logs and error cases while correlation remains intact.

Implemented in part; acceptance evidence incomplete
T14Make readiness verify dependency function

401/404/429/500, malformed discovery and issuer mismatch are not UP; liveness remains independent.

Implemented in part; acceptance evidence incomplete
T15Repair and test the chosen deployment recipe

One port/JDBC/issuer contract builds and boots through its actual proxy; missing secrets fail safely.

Implemented in part; acceptance evidence incomplete
T16Replace stale outbox mocks with contract coverage

Current unit cases pass and a regression removing scheduler transaction/lease correctness is detected.

Verified scoped acceptance
T17Page and checkpoint user synchronization

Multi-page provider fixtures plus a failed page and restart demonstrate complete, idempotent recovery.

Implemented in part; acceptance evidence incomplete
T18Bound synchronization transactions

Slow identity HTTP does not hold a DB transaction; one failed persistence unit does not roll back unrelated successful units.

Implemented in part; acceptance evidence incomplete
T19Enforce provider policy at host startup

The declared profile rejects unknown/stub/disallowed experimental providers before opening resources; no LEGACY bypass in production entry points.

Open: implementation and/or production qualification required
T20Exercise signing denial and outage boundaries

Wrong tenant/key/algorithm, expired and replayed proofs fail before provider signing; outage does not select a fallback key.

Open: implementation and/or production qualification required
T21Exercise authorized recovery and replacement

Restart/access recovery preserve identity; replacement has independent authorization, revoked old binding and durable audit. Physical-device tests apply only if included in T01.

Open: implementation and/or production qualification required
T22Persist independently trusted recovery checkpoints

Checkpoint authenticity and freshness survive DB compromise/restore; application DB alone cannot rewrite the trust anchor.

Open: implementation and/or production qualification required
T23Fence admission during restore and reconciliation

No new authorization is admitted until ledger/checkpoint/external journal verification completes; failure remains fenced.

Open: implementation and/or production qualification required
T24Reconcile external effects after restore

Authenticated journal and local outbox reconcile commit/ack-loss and stale restore without duplicate effects or reused authorization.

Open: implementation and/or production qualification required
T25Qualify production-shaped backup and recovery

Record agreed RPO/RTO, dataset size and timings; missing WAL/corrupt backup/stale checkpoint fail closed; recovered service resumes safely.

Open: implementation and/or production qualification required
T26Qualify schema upgrades and rollback compatibility

Upgrade from two declared supported schema versions under writes; old/new application compatibility and interrupted migration recovery are explicit.

Open: implementation and/or production qualification required
T27Complete cross-tenant negative authorization matrix

Every declared public/admin/tenant mutation has wrong-tenant, wrong-role, expired, replay and identifier-substitution outcomes tied to source and tests.

Open: implementation and/or production qualification required
T28Qualify outbound network restrictions

Declared DID, webhook and provider clients reject disallowed destinations/redirects and bound size/time; tests use actual host integration.

Open: implementation and/or production qualification required
T29Verify distributed traces through billing and SDK calls

A real incoming request produces correlated outgoing provider spans with trace propagation and authenticated export; prove manual RestClient construction receives instrumentation.

Implemented in part; acceptance evidence incomplete
T30Add queue, limiter and recovery signals

Oldest outbox age, leased/failed rows, limiter degradation, recovery fence and reconciliation failures have bounded labels and verified alerts.

Implemented in part; acceptance evidence incomplete
T31Define measurable service objectives and alert ownership

Availability, latency, signing and delivery objectives have error budgets, accountable owners and tested notification acknowledgement.

Open: implementation and/or production qualification required
T32Qualify telemetry privacy and retention

Access controls and retention are enforced in the selected backend; sensitive canaries never reach storage; cardinality/load limits are measured.

Open: implementation and/or production qualification required
T33Run representative multi-node soak and overload tests

Agree workload first; run proposed 72-hour steady/peak soak and burst/fault phases, tracking p99, saturation, queue age, DB growth and recovery. This is a target, not a completed measurement.

Open: implementation and/or production qualification required
T34Record scale ceilings and backpressure policy

Document tested tenant/data/request limits, capacity headroom and bounded degradation, including KMS/IdP/billing outages.

Open: implementation and/or production qualification required
T35Define risk-based coverage and mutation gates

Critical auth/custody/claim/recovery branches have explicit agreed floors (proposed 90% line, 85% branch) and meaningful mutation checks; exceptions are reviewed, not hidden.

Open: implementation and/or production qualification required
T36Make browser tests deterministic and enforce coverage

Classify current network warnings, add missing fixtures and fail unexpected requests without the prior worker serialization problem; CI runs coverage with agreed floors.

Verified scoped acceptance
T37Bind test discovery and skips to release evidence

Test IDs/counts, failures, documented optional skips and required provider profiles are archived and checked against the immutable candidate pair.

Implemented in part; acceptance evidence incomplete
T38Build the runtime image in CI

bootJar, frontend assets and OCI image are built from the candidate pair; production-profile startup and smoke tests run against that image.

Implemented in part; acceptance evidence incomplete
T39Pin inputs and generate SBOM/provenance

Actions/base image are immutable; dependency/image scans enforce a defined policy; SBOM and provenance identify both repository commits.

Implemented in part; acceptance evidence incomplete
T40Verify artifact identity during promotion

A modified image, wrong source pair or untrusted attestation is rejected; the tested digest is the promoted digest.

Implemented in part; acceptance evidence incomplete
T41Exercise canary rollout and rollback

Promote a qualified digest with explicit health/error-budget gates and demonstrate rollback with the supported schema compatibility window.

Open: implementation and/or production qualification required
T42Publish one production support and operations contract

Setup, configuration precedence, limits, provider scope, backup, rotation, incident and rollback instructions match tested commands and evidence.

Implemented in part; acceptance evidence incomplete
T43Run an operator drill from the documentation

An operator other than the author executes restore, custody outage, stuck-delivery redrive and rollback using only published runbooks; gaps are fixed.

Open: implementation and/or production qualification required
T44Re-review closure evidence and remaining risks

All P1 findings are closed by behavior tests, scope exclusions are explicit, and evidence is tied to the exact released candidate pair.

Open: implementation and/or production qualification required
T45Recalculate scores only after acceptance

Each repository is above 9.7 unrounded, every critical category is at least 9.7, and production acceptance gates pass. Target 9.8; no points are awarded simply for adding documentation/tests.

Open: implementation and/or production qualification required
T46Remove the Spring request-context bean collision

Explicitly named telemetry filter coexists with Spring MVC, overriding stays disabled, smoke startup and affected integration cases pass.

Verified scoped acceptance

Updated 2026-09-11T04:23:21.618468+00:00. Official framework migration guidance informed the maintained-line migration. Hosted provenance, release promotion and operational qualification remain open.