Skip to content

webvh-e2e: full-flow fixes, POST logging, BCVH explorer links#1916

Merged
PatStLouis merged 11 commits intomainfrom
feat/webvh-e2e-harness-pr
Apr 2, 2026
Merged

webvh-e2e: full-flow fixes, POST logging, BCVH explorer links#1916
PatStLouis merged 11 commits intomainfrom
feat/webvh-e2e-harness-pr

Conversation

@PatStLouis
Copy link
Copy Markdown
Contributor

Summary

Extends and hardens the scripts/webvh-e2e harness on top of the existing WebVH E2E work (schema/cred-def, OOB, issue, verify, revoke).

Behaviour and fixes

  • DIDComm / cred exchange: Parse V20CredExRecordDetail (cred_ex_record) for holder list and issuer GET so polling sees real state / cred_ex_id.
  • Present proof: Build AnonCreds send-presentation body (referent → wallet cred_id) via GET .../present-proof-2.0/records/{id}/credentials.
  • Revoke: Load rev_reg_id / cred_rev_id from the issuer exchange; send notify: false by default (override with WEBVH_E2E_REVOKE_NOTIFY when connection_id / thread_id are available).
  • Logging: TractionClient logs every POST request body at INFO; responses stay quiet unless -v. WebVH configure still logs a sanitized body.
  • Summary: Run output includes BCVH dids and resources explorer URLs (/api/explorer/dids?scid= and /api/explorer/resources?scid=).

Docs

  • README updates for env vars (WEBVH_E2E_REVOKE_PUBLISH, WEBVH_E2E_REVOKE_NOTIFY, timeouts, logging), sample resources explorer link.

How to test

cd scripts/webvh-e2e && poetry install && poetry run python3 run.py --profile new-issuer-webvh

(Requires issuer/holder tokens and Traction/WebVH sandbox as documented.)

Signed-off-by: Patrick St-Louis patrick.st-louis@opsecid.ca

Made with Cursor

- Publish AnonCreds schema + cred-def with revocation (default registry size 4)
- Connect issuer/holder via OOB + DID Exchange 1.1 using public did:webvh
- Issue credential (issue-credential-2.0), present-proof with non-revocation check,
  anoncreds revoke (publish), second proof expecting failure
- Add polling helper, extend Context and TractionClient; document env vars

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
…inks

- Log all POST JSON bodies from TractionClient; optional sanitized WebVH logs
- Issue/issuer polling: unwrap cred_ex_record; holder list row parsing
- Revoke: rev_reg_id+cred_rev_id from exchange, notify false by default (env override)
- Verify: anoncreds pres spec for send-presentation via credentials lookup
- Quieter HTTP response logging at INFO; debug with -v
- BCVH resources explorer URL in run summary (helpers)
- README: env vars, logging, sample resources link

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
… helpers

- Remove log_request flag; _post_json always logs, optional log_payload for redacted view
- post_did_webvh_configuration logs sanitized body via helpers.sanitized_webvh_config_for_log
- Drop duplicate configure request log from webvh phase

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
Phases import poll_until from helpers alongside other harness utilities.

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
Replace WEBVH_E2E_* and wallet-upgrade env readers with module-level
constants. README and .env.example drop the optional E2E env list;
point operators at e2e_constants.py for schema, polling, and revoke flags.

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
…ault

Avoid default json_body={} (shared dict across calls). Coerce None to a
fresh {} inside _post_json; send-presentation passes body through.

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
_post_json always logs the JSON body sent. Only configure needs a
different log view; handle sanitized_webvh_config_for_log there.

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
…_core

- Move v20_cred_ex_record_core to helpers; issue phase imports it
- Revoke tries outer V20 detail then cred_ex_record core for rev ids
- README: note sensitive POST bodies at INFO; align holder token error text
- verify: comment on first-match holder pres_ex selection

Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Made-with: Cursor
@PatStLouis PatStLouis requested review from esune and jamshale April 2, 2026 18:13
Copy link
Copy Markdown
Contributor

@jamshale jamshale left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just scanned through this and it looks good to me.

@PatStLouis PatStLouis merged commit 7951ca8 into main Apr 2, 2026
5 checks passed
@PatStLouis PatStLouis deleted the feat/webvh-e2e-harness-pr branch April 2, 2026 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

2 participants