Skip to content

feat(verification): post provider snapshot hashes - #5

Draft
chalabi2 wants to merge 15 commits into
aep86/l3-inventory-snapshotfrom
aep86/l10-snapshot-poster
Draft

feat(verification): post provider snapshot hashes#5
chalabi2 wants to merge 15 commits into
aep86/l3-inventory-snapshotfrom
aep86/l10-snapshot-poster

Conversation

@chalabi2

Copy link
Copy Markdown
Owner

Summary

Adds the provider snapshot poster, persistent poster state, retry behavior,
query loop, runtime wiring, and software identity propagation.

Tracking

  • Linear issue: AKT-295 (L-10)
  • Depends on: L-3 inventory snapshots and the L-1 verification SDK
  • Status: draft fork tracker

The poster and inventory packages are reviewable. Final upstream preparation
still needs the provider branch aligned with the node v3 dependency stack.

chalabi2 added 7 commits May 27, 2026 10:47
Adds the narrow provider-side signing and broadcast interface needed by later
AEP-86 inventory and snapshot components. The implementation is sourced from the
provider CLI client context and keyring at service startup.

Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Routes REST and gRPC gateway Authorization headers through one parser. This
keeps the gRPC interceptor from panicking on a single metadata value and makes
both gateway paths enforce the same Bearer token shape.

Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Adds the provider-side snapshot builder boundary for L-3: collector and payload
interfaces, nonce validation, deterministic gogo protobuf marshaling, payload
hashing, and provider-key signing over canonical payload bytes.

Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Registers the AEP-86 inventory snapshot service when a provider-side snapshot
builder is supplied. The default run path passes nil until the real payload
source is wired.

Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Builds the inventory snapshot payload from the existing provider StatusV1 path
and registers a real signed snapshotter on the provider gRPC server. This keeps
the legacy status endpoints unchanged while making the AEP-86 snapshot RPC
return nonce-bound deterministic protobuf bytes.

Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Embeds the provider status payload as a named evidence section so auditors can
decode the existing provider status view from the signed snapshot. Built
snapshots are validated before returning from the public inventory RPC.

Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
chalabi2 added 8 commits July 27, 2026 11:26
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Use the chain latest block time for provider verification snapshot payloads when it is available so local E2E posts do not race ahead of the chain clock.

Keep the long-running poster loop alive after bounded non-context failures. RunOnce still reports the underlying error for direct callers and tests.

Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
Signed-off-by: Joseph Chalabi <chalabi.joseph@gmail.com>
@chalabi2
chalabi2 force-pushed the aep86/l10-snapshot-poster branch from 9d9813a to 4fe63ba Compare July 27, 2026 18:34
@chalabi2
chalabi2 force-pushed the aep86/l3-inventory-snapshot branch from 8e870ea to 0fa3c7d Compare July 27, 2026 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant