feat: Mint reporting rpc #1487

Open
orangeshyguy21 wants to merge 42 commits from orangeshyguy21/feature/mint-data-rpc into main
orangeshyguy21 commented 2026-01-02 21:50:04 +00:00 (Migrated from github.com)

Description

This PR splits the mint gRPC API into management and reporting services.

Mint reporting endpoints are introduced to expose mint records (balances, keysets, quotes, proofs, signatures, operations).

Mint management endpoints were added (update_tos_url, create_backup).


Notes to the reviewers

There is one outstanding shortcoming with this PR

  • get_keysets returns null values for valid_to, valid_from, and index
    Changes are required to core traits to expose this information

Some features were not included in with this PR that are may be candidates for future improvement

  • Backup auth database
  • Restore database
  • Auth reporting endpoints
  • Update melt quote state endpoint
  • Authorization updates to allow gated access to certain rpc endpoints
  • Server resource endpoints (Prometheus data)

There are 'breaking' changes in this PR as the current proto file was renamed and reorganized. Consumers will be required to change their implementation to support this release.


Suggested CHANGELOG Updates

CHANGED

  • Split mint RPC service into separate Management and Reporting gRPC services.
  • Updated cdk-mint-rpc CLI to use the new reporting/management clients and reorganized commands accordingly.
  • Balance information is no longer in get-info and is now on a dedicated get-balances method

ADDED

  • New reporting RPC endpoints and CLI commands
    • balances
    • keysets
    • list/lookup mint quotes
    • list/lookup melt quotes
    • list proofs
    • list blind signatures
    • list operations.
  • Added tos_url to get_info and added update_tos_url rpc method
  • Database backup support (SQLite binary backup and SQL dump) exposed via a streaming management RPC.

Checklist

### Description This PR splits the mint gRPC API into management and reporting services. Mint reporting endpoints are introduced to expose mint records (balances, keysets, quotes, proofs, signatures, operations). Mint management endpoints were added (update_tos_url, create_backup). ----- ### Notes to the reviewers There is one outstanding shortcoming with this PR - get_keysets returns null values for valid_to, valid_from, and index Changes are required to core traits to expose this information Some features were not included in with this PR that are may be candidates for future improvement - Backup auth database - Restore database - Auth reporting endpoints - Update melt quote state endpoint - Authorization updates to allow gated access to certain rpc endpoints - Server resource endpoints (Prometheus data) There are 'breaking' changes in this PR as the current proto file was renamed and reorganized. Consumers will be required to change their implementation to support this release. ----- ### Suggested [CHANGELOG](https://github.com/cashubtc/cdk/blob/main/CHANGELOG.md) Updates #### CHANGED - Split mint RPC service into separate Management and Reporting gRPC services. - Updated cdk-mint-rpc CLI to use the new reporting/management clients and reorganized commands accordingly. - Balance information is no longer in `get-info` and is now on a dedicated `get-balances` method #### ADDED - New reporting RPC endpoints and CLI commands - balances - keysets - list/lookup mint quotes - list/lookup melt quotes - list proofs - list blind signatures - list operations. - Added `tos_url` to `get_info` and added `update_tos_url` rpc method - Database backup support (SQLite binary backup and SQL dump) exposed via a streaming management RPC. ---- ### Checklist * [x] I followed the [code style guidelines](https://github.com/cashubtc/cdk/blob/main/CODE_STYLE.md) * [x] I ran `just final-check` before committing
thesimplekid commented 2026-01-14 17:26:00 +00:00 (Migrated from github.com)

Can we do this issue as part of this? https://github.com/cashubtc/cdk/issues/1093

Can we do this issue as part of this? https://github.com/cashubtc/cdk/issues/1093
orangeshyguy21 commented 2026-01-15 03:42:02 +00:00 (Migrated from github.com)

Can we do this issue as part of this? #1093

Yes, this issue gets addressed in the PR.

> Can we do this issue as part of this? #1093 Yes, this issue gets addressed in the PR.
thesimplekid (Migrated from github.com) requested changes 2026-03-17 18:26:06 +00:00
thesimplekid (Migrated from github.com) left a comment

We should split this up into multiple focused prs for better review.

We should split this up into multiple focused prs for better review.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin orangeshyguy21/feature/mint-data-rpc:orangeshyguy21/feature/mint-data-rpc
git switch orangeshyguy21/feature/mint-data-rpc

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff orangeshyguy21/feature/mint-data-rpc
git switch orangeshyguy21/feature/mint-data-rpc
git rebase main
git switch main
git merge --ff-only orangeshyguy21/feature/mint-data-rpc
git switch orangeshyguy21/feature/mint-data-rpc
git rebase main
git switch main
git merge --no-ff orangeshyguy21/feature/mint-data-rpc
git switch main
git merge --squash orangeshyguy21/feature/mint-data-rpc
git switch main
git merge --ff-only orangeshyguy21/feature/mint-data-rpc
git switch main
git merge orangeshyguy21/feature/mint-data-rpc
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cashubtc/cdk!1487
No description provided.