Skip to content

feat(issuance): reissue credentials automatically#362

Draft
florishafkenscheid wants to merge 13 commits into
feat/credential-reissuance-manualfrom
feat/credential-reissuance-automatic
Draft

feat(issuance): reissue credentials automatically#362
florishafkenscheid wants to merge 13 commits into
feat/credential-reissuance-manualfrom
feat/credential-reissuance-automatic

Conversation

@florishafkenscheid

@florishafkenscheid florishafkenscheid commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Description of change

Adds the HTTP surface for automatic credential refresh on top of the credential reissuance flow.

This introduces a new POST /v0/credential-refresh endpoint that accepts a refreshToken, resolves it through the refresh continuation service, and returns a form-url-encoded credential offer continuation when refresh preparation succeeds. The endpoint maps missing or disabled refresh references to 404, unavailable refresh preparation to 403, and other preparation failures to API problem responses.

The change also wires the endpoint into the issuance router and OpenAPI generation, updates openapi-generated.yaml, and adds a default no-op refresh preparation hook so the API can expose the refresh contract before a real domain-specific preparation implementation is plugged in.

Links to any relevant issues

N/A

How the change has been tested

Added endpoint/unit coverage for:

  • unknown refresh references returning 404
  • disabled refresh references returning 404
  • valid refresh references using the no-op preparation hook returning 403
  • refresh preparation hook behavior in agent_issuance

Validated locally with:

cargo test -p agent_api_http credential_refresh
cargo test -p agent_issuance refresh_preparation_hook

Both commands passed locally.

Definition of Done checklist

  • I have followed the contribution guidelines for this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have successfully tested this change in a docker environment

Blocked by

@florishafkenscheid florishafkenscheid changed the base branch from beta to feat/credential-reissuance-manual June 25, 2026 10:05
@florishafkenscheid florishafkenscheid added the Blocked Something blocks the integration of this code. label Jun 25, 2026
@daniel-mader daniel-mader requested a review from Copilot June 25, 2026 10:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot reviewed 32 out of 32 changed files in this pull request and generated no comments.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot reviewed 32 out of 32 changed files in this pull request and generated no new comments.

@florishafkenscheid florishafkenscheid changed the title feat(issuance): credential reissuance automatic feat(issuance): reissue credentials automatically Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Blocked Something blocks the integration of this code.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants