Skip to content

Round-out provider-dashboard CI: lifecycle ci-test, governance, pos-instant#103

Merged
AquiGorka merged 4 commits into
mainfrom
fix-provider-dashboard-rework-ci
May 29, 2026
Merged

Round-out provider-dashboard CI: lifecycle ci-test, governance, pos-instant#103
AquiGorka merged 4 commits into
mainfrom
fix-provider-dashboard-rework-ci

Conversation

@AquiGorka
Copy link
Copy Markdown
Contributor

Summary

Follow-up to #101 — fixes the harnesses that were missed because they live next to (but aren't) the runners that the first PR touched:

  • lifecycle/ci-test.ts is what the lifecycle Docker compose actually invokes (lifecycle/main.ts is local-only). Now wires ppPublicKey on Config and registers Alice/Bob via /api/v1/entities before deposit/send. This is what unblocks provider-platform's lifecycle CI.
  • e2e/governance/uc2-approve-reject.ts still read .councilMembership (singular) on the dashboard /pp/list response; provider-platform PR Round-out provider-dashboard CI: lifecycle ci-test, governance, pos-instant #103 had renamed it to .councilMemberships (plural array) months ago. Updated reads to [0]?.status / .length === 0.
  • e2e/pos-instant/main.ts registers keys.payService as APPROVED before the instant payment flow, since pay-platform authenticates to provider-platform under that key and otherwise trips the SUBMITTER_NOT_APPROVED gate.
  • test/setup-e2e.ts writes E2E_PP_PUBLIC_KEY to /config/contracts.env. (e2e/setup.sh already had this in the CI flow; the local ./test.sh e2e flow uses the test/ setup script and needs the same line.)

Test plan

Locally (./test.sh all), all 5 suites green: e2e, otel, governance, lifecycle, pos-instant.

After this merges, re-running provider-platform's PR CI (Moonlight-Protocol/provider-platform#106) should flip lifecycle from red to green.

AquiGorka added 4 commits May 28, 2026 17:00
The CI flow's `e2e/setup.sh` was updated to include the URL-scoped PP
key, but the local `./test.sh e2e` runner uses a separate
`test/setup-e2e.ts` writer that produces /config/contracts.env from
the setup container. Without E2E_PP_PUBLIC_KEY in that file, the
test-runner's loadConfig() throws before any bundle is submitted.
lifecycle/ci-test.ts is the test runner invoked by lifecycle's docker
compose (and by provider-platform's lifecycle-reusable CI). Two fields
were missed when lifecycle/main.ts was updated for the URL-scoped
bundles work:

- e2eConfig was missing ppPublicKey, so lib/client/bundle.ts composed
  /providers/undefined/bundles, which the resolver couldn't service.
- Alice and Bob weren't registered as APPROVED entities before
  deposit/send, tripping the SUBMITTER_NOT_APPROVED gate.

Mirrors the equivalent fixes already in lifecycle/main.ts.
provider-platform PR #103 (events dashboard redesign) renamed
councilMembership (singular) → councilMemberships (plural array) on
the dashboard /pp/list response. The governance e2e test was never
updated to match. Now reads [0]?.status for the approved/rejected
checks and .length === 0 for the no-council case.
Pay-platform submits bundles to provider-platform under its
PAY_SERVICE_SK identity. provider-platform now gates bundle admission
on the submitter being an APPROVED entity (SUBMITTER_NOT_APPROVED),
so the pay-service keypair needs an entity record before the instant
payment flow can run. New [1b/5] step calls POST /api/v1/entities
with keys.payService right after funding.
@AquiGorka AquiGorka merged commit ca4632d into main May 29, 2026
6 of 7 checks passed
@AquiGorka AquiGorka deleted the fix-provider-dashboard-rework-ci branch May 29, 2026 13:41
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