Skip to content

feat: add list endpoint for out-of-band records#4046

Merged
swcurran merged 7 commits intoopenwallet-foundation:mainfrom
kukgini:feat/oob-list-endpoint
Feb 13, 2026
Merged

feat: add list endpoint for out-of-band records#4046
swcurran merged 7 commits intoopenwallet-foundation:mainfrom
kukgini:feat/oob-list-endpoint

Conversation

@kukgini
Copy link
Contributor

@kukgini kukgini commented Feb 11, 2026

Add GET /out-of-band/records endpoint to query OobRecord entries with pagination and filtering support. This addresses the lack of any way to discover or list existing OOB records in the wallet.

Supports filtering by state, role, connection_id, and invi_msg_id, plus standard pagination parameters (limit, offset, order_by, descending).

Closes #4044

Add GET /out-of-band/records endpoint to query OobRecord entries with
pagination and filtering support. This addresses the lack of any way to
discover or list existing OOB records in the wallet.

Supports filtering by state, role, connection_id, and invi_msg_id, plus
standard pagination parameters (limit, offset, order_by, descending).

Closes openwallet-foundation#4044

Signed-off-by: kukgini <kukgini@gmail.com>
@kukgini
Copy link
Contributor Author

kukgini commented Feb 12, 2026

I created this PR by referencing the connection route implementation. However, someone pointed out the following. Could you please check?:

alt=True is incorrect with scalar string post_filter values. The match_post_filter method in base_record.py uses Python's in operator when alt=True, which performs substring matching on strings rather than equality checking. For example, filtering by state="initial" with alt=True would cause record.get("state") in "initial" to match any substring (e.g., "i", "init" ). The fix is to remove alt=True (defaulting to False ), which uses direct equality -- consistent with the pattern in issue_credential/v2_0/routes.py and present_proof/v2_0/routes.py.

@sonarqubecloud
Copy link

Copy link
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 think this is fine to add to the api 👍

@jamshale
Copy link
Contributor

I created this PR by referencing the connection route implementation. However, someone pointed out the following. Could you please check?:

alt=True is incorrect with scalar string post_filter values. The match_post_filter method in base_record.py uses Python's in operator when alt=True, which performs substring matching on strings rather than equality checking. For example, filtering by state="initial" with alt=True would cause record.get("state") in "initial" to match any substring (e.g., "i", "init" ). The fix is to remove alt=True (defaulting to False ), which uses direct equality -- consistent with the pattern in issue_credential/v2_0/routes.py and present_proof/v2_0/routes.py.

I'm not sure about this...

@jamshale jamshale requested a review from a team February 12, 2026 18:34
@swcurran swcurran merged commit f8abeb5 into openwallet-foundation:main Feb 13, 2026
12 checks passed
@swcurran
Copy link
Contributor

@PatStLouis -- can you please backport this to the 1.3 and 1.2 (if applicable) LTS branches, so we can include it in the next releases? I assume that is a quick task.

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.

Add list endpoint for out-of-band records

5 participants