Skip to content

feat(cli): Sort parameters.#3478

Merged
c-r33d merged 4 commits into
mainfrom
sort-parameters
May 15, 2026
Merged

feat(cli): Sort parameters.#3478
c-r33d merged 4 commits into
mainfrom
sort-parameters

Conversation

@c-r33d

@c-r33d c-r33d commented May 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Added --sort support to otdfctl policy list commands for namespaces, attributes, KAS registry entries, KAS keys, obligations, registered resources, subject condition sets, and subject mappings.
  • Added shared sort parsing for <field>:<direction> syntax, including partial forms like name: and :asc.
  • Validates supported sort fields per resource while allowing the server to default omitted fields or directions.
  • Updated list command docs with supported sort fields, directions, defaults, and examples.
  • Added BATS e2e coverage in each policy construct test file for sort fields, directions, and partial sort syntax.
  • Updated internal callers in migration and TUI code to pass the default sort option.

Testing

  • go test ./pkg/handlers ./cmd/policy
  • go test ./...
  • golangci-lint run ./pkg/handlers ./cmd/policy
  • Affected BATS suites for policy list sort behavior

Summary by CodeRabbit

  • New Features

    • CLI list commands now support server-side sorting via new --sort and --order flags across policy list workflows (attributes, KAS registry/keys, namespaces, obligations, registered resources, subject condition sets, subject mappings).
  • Documentation

    • Manpages updated with Sort Options, supported fields/directions, and expanded examples.
  • Tests

    • New end-to-end tests added to validate sorting behavior for all updated list commands.

Review Change Stack

@c-r33d
c-r33d requested a review from a team as a code owner May 14, 2026 21:52
@coderabbitai

coderabbitai Bot commented May 14, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds --sort/--order CLI flags, parsing and validation (SortOption), handler plumbing to include server-side sort in List requests, migration/planner signature updates, manpage docs, TUI compatibility, and comprehensive E2E tests.

Changes

Policy List Command Sorting Support

Layer / File(s) Summary
Sort parsing infrastructure
otdfctl/pkg/handlers/sort.go, otdfctl/pkg/handlers/sort_test.go, otdfctl/cmd/policy/policy.go
Adds SortOption, parsing/validation helpers (NewSortOption, ParseSortOrder, sortField), CLI helpers injectListSortFlags and getSortOption, and unit tests for parsing and field validation.
Handler sorting implementation
otdfctl/pkg/handlers/attribute.go, otdfctl/pkg/handlers/kas-keys.go, otdfctl/pkg/handlers/kas-registry.go, otdfctl/pkg/handlers/namespaces.go, otdfctl/pkg/handlers/obligations.go, otdfctl/pkg/handlers/registeredResources.go, otdfctl/pkg/handlers/subjectConditionSets.go, otdfctl/pkg/handlers/subjectmappings.go
List handlers now accept sort SortOption and conditionally populate the SDK request Sort field after validating requested sort fields and mapping to proto enums; invalid fields return an error.
CLI command wiring
otdfctl/cmd/policy/attributes.go, otdfctl/cmd/policy/kasKeys.go, otdfctl/cmd/policy/kasRegistry.go, otdfctl/cmd/policy/namespaces.go, otdfctl/cmd/policy/obligations.go, otdfctl/cmd/policy/registeredResources.go, otdfctl/cmd/policy/subjectConditionSets.go, otdfctl/cmd/policy/subjectMappings.go
Each list command injects --sort/--order flags into the man docs and calls getSortOption(c) to pass a parsed SortOption to the corresponding handler.
Migration/planner updates
otdfctl/migrations/namespacedpolicy/planner.go, otdfctl/migrations/namespacedpolicy/planner_test.go, otdfctl/migrations/namespacedpolicy/retrieve.go, otdfctl/migrations/namespacedpolicy/retrieve_test.go
PolicyClient interface and related retrieval code updated to accept handlers.SortOption; callers pass empty SortOption where sorting is not specified; tests/mocks updated.
TUI layer update
otdfctl/tui/attributeList.go
TUI now passes handlers.SortOption{} to ListAttributes for signature compatibility.
Documentation and E2E testing
otdfctl/docs/man/policy/*/list.md, otdfctl/e2e/*.bats
Manpages updated to document --sort/--order with examples and supported fields; E2E Bats tests added/extended to validate sorting across resources, fields, directions, and partial-flag usage.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

comp:policy, docs

Suggested reviewers

  • elizabethhealy
  • alkalescent

Poem

🐰 A tiny rabbit hops through flags and code,

I tuck a sort option down a tidy road.
Fields and orders now dance in ordered rows,
Tests applaud as the sorted output grows.
Hoppity, the CLI sings—sorted and ready to go!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 3.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat(cli): Sort parameters.' directly and clearly describes the main feature added in this PR - sorting support for CLI list commands.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sort-parameters

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a standardized sorting mechanism for otdfctl policy list commands. By implementing a new --sort flag, users gain the ability to organize output by relevant fields in either ascending or descending order. The changes include a robust shared parsing utility, validation logic, updated manual pages, and extensive end-to-end test coverage to ensure consistent and reliable sorting across the entire policy suite.

Highlights

  • Feature Implementation: Added --sort support to various otdfctl policy list commands, allowing users to order results by specific fields and directions.
  • Shared Logic: Implemented a shared sort parsing utility supporting field:direction syntax, including partial forms like name: or :asc.
  • Testing and Documentation: Updated command documentation and added comprehensive BATS end-to-end tests to verify sorting behavior across all policy constructs.
  • Refactoring: Updated internal callers in migrations and TUI code to accommodate the new sort parameter in list operations.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.


A CLI tool that needed to sort, With a flag that was quite the support. "Field:direction" you type, With no need for the hype, Now the lists are all tidy, in short.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@otdfctl/docs/man/policy/subject-condition-sets/list.md`:
- Around line 50-56: The examples at the bottom use the wrong command path
(singular) — update the Example block to use the correct plural command name
subject-condition-sets; replace occurrences of `otdfctl policy
subject-condition-set list` with `otdfctl policy subject-condition-sets list`
(and likewise for the namespaced variant) so the examples match the actual
command `subject-condition-sets`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 86886afb-e764-48d3-87b9-fc33c760632b

📥 Commits

Reviewing files that changed from the base of the PR and between 29eff55 and 282f78e.

📒 Files selected for processing (40)
  • otdfctl/cmd/policy/attributes.go
  • otdfctl/cmd/policy/kasKeys.go
  • otdfctl/cmd/policy/kasRegistry.go
  • otdfctl/cmd/policy/namespaces.go
  • otdfctl/cmd/policy/obligations.go
  • otdfctl/cmd/policy/policy.go
  • otdfctl/cmd/policy/registeredResources.go
  • otdfctl/cmd/policy/subjectConditionSets.go
  • otdfctl/cmd/policy/subjectMappings.go
  • otdfctl/docs/man/policy/attributes/list.md
  • otdfctl/docs/man/policy/kas-registry/key/list.md
  • otdfctl/docs/man/policy/kas-registry/list.md
  • otdfctl/docs/man/policy/namespaces/list.md
  • otdfctl/docs/man/policy/obligations/list.md
  • otdfctl/docs/man/policy/registered-resources/list.md
  • otdfctl/docs/man/policy/subject-condition-sets/list.md
  • otdfctl/docs/man/policy/subject-mappings/list.md
  • otdfctl/e2e/attributes.bats
  • otdfctl/e2e/kas-keys.bats
  • otdfctl/e2e/kas-registry.bats
  • otdfctl/e2e/namespaces.bats
  • otdfctl/e2e/obligations.bats
  • otdfctl/e2e/registered-resources.bats
  • otdfctl/e2e/subject-condition-sets.bats
  • otdfctl/e2e/subject-mapping.bats
  • otdfctl/migrations/namespacedpolicy/planner.go
  • otdfctl/migrations/namespacedpolicy/planner_test.go
  • otdfctl/migrations/namespacedpolicy/retrieve.go
  • otdfctl/migrations/namespacedpolicy/retrieve_test.go
  • otdfctl/pkg/handlers/attribute.go
  • otdfctl/pkg/handlers/kas-keys.go
  • otdfctl/pkg/handlers/kas-registry.go
  • otdfctl/pkg/handlers/namespaces.go
  • otdfctl/pkg/handlers/obligations.go
  • otdfctl/pkg/handlers/registeredResources.go
  • otdfctl/pkg/handlers/sort.go
  • otdfctl/pkg/handlers/sort_test.go
  • otdfctl/pkg/handlers/subjectConditionSets.go
  • otdfctl/pkg/handlers/subjectmappings.go
  • otdfctl/tui/attributeList.go

Comment thread otdfctl/docs/man/policy/subject-condition-sets/list.md
@github-actions

Copy link
Copy Markdown
Contributor
Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 161.379045ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 86.490735ms

Benchmark Statistics

Name № Requests Avg Duration Min Duration Max Duration

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 442.372533ms
Throughput 226.05 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 45.459155026s
Average Latency 453.001258ms
Throughput 109.99 requests/second

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces sorting functionality across multiple resource list commands in otdfctl, including attributes, namespaces, and KAS keys. It implements a new SortOption handler to parse field:direction strings and updates the CLI, documentation, and end-to-end tests accordingly. Feedback suggests enhancing the sort string parser to allow field names without a colon for better usability and refactoring the repetitive sort-mapping logic across different handlers into a shared helper function to improve maintainability.

Comment thread otdfctl/pkg/handlers/sort.go Outdated
Comment thread otdfctl/pkg/handlers/attribute.go Outdated
@github-actions

Copy link
Copy Markdown
Contributor
Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 183.418007ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 93.854855ms

Benchmark Statistics

Name № Requests Avg Duration Min Duration Max Duration

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 407.153592ms
Throughput 245.61 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 43.915386653s
Average Latency 437.873443ms
Throughput 113.86 requests/second

Comment thread otdfctl/cmd/policy/namespaces.go Outdated
@github-actions

Copy link
Copy Markdown
Contributor
Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 185.352471ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 86.486213ms

Benchmark Statistics

Name № Requests Avg Duration Min Duration Max Duration

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 442.48616ms
Throughput 226.00 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 42.4719073s
Average Latency 422.72447ms
Throughput 117.72 requests/second

Comment thread otdfctl/e2e/kas-keys.bats Outdated
@github-actions

Copy link
Copy Markdown
Contributor
Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 181.916918ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 96.746272ms

Benchmark Statistics

Name № Requests Avg Duration Min Duration Max Duration

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 441.787959ms
Throughput 226.35 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 44.077439312s
Average Latency 439.398831ms
Throughput 113.44 requests/second

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@otdfctl/e2e/registered-resources.bats`:
- Around line 196-201: The test's ordering assertions are flaky because the
three successive run_otdfctl_reg_res create calls (which populate rr_a_id,
rr_b_id, rr_c_id) can get identical timestamps; modify the test to ensure
distinct write times by adding a short pause between creations (e.g., sleep 1)
or, if the CLI/API supports it, supply distinct explicit timestamps/created_at
values when calling run_otdfctl_reg_res create so created_at/updated_at are
guaranteed different; apply the same change to the other similar blocks that
create/update resources (the blocks referenced around rr_* assignments at the
other noted ranges).

In `@otdfctl/e2e/subject-condition-sets.bats`:
- Around line 142-145: Tests assert strict ordering by created_at/updated_at but
writes can share timestamps causing flakes; update the test to avoid relying on
timestamp tie-breaking by using the created scs ids (scs_a_id, scs_b_id,
scs_c_id) as a deterministic tie-breaker or by sorting API results by id before
asserting order (or assert set membership rather than strict sequence). Locate
the assertions that compare created_at/updated_at ordering in
subject-condition-sets.bats and change them to either sort the returned items by
id (or use the captured scs_*_id values to order expected results) or relax the
timestamp check to allow equal timestamps instead of failing on ties; apply the
same change to the other affected assertion blocks referenced around the scs
creation lines.

In `@otdfctl/e2e/subject-mapping.bats`:
- Around line 178-180: The subject-mapping test is flaky because multiple sm
create calls (the commands that set sm_a_id, sm_b_id, sm_c_id using ./otdfctl
and sort_val_a_id/ sort_val_b_id/ sort_val_c_id) run so fast that
created_at/updated_at can collide; fix by making the creates produce
deterministic ordering — either inject a short pause between each create (e.g.,
add a sleep between the ./otdfctl policy sm create invocations) or, better, rely
on the explicit unique sort values (sort_val_a_id, sort_val_b_id, sort_val_c_id)
in your assertions instead of created_at/updated_at so the test asserts on those
stable keys rather than timestamps.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a7745ed7-d903-4bf5-bf49-0516dd797761

📥 Commits

Reviewing files that changed from the base of the PR and between 282f78e and 7f8a383.

📒 Files selected for processing (35)
  • otdfctl/cmd/policy/attributes.go
  • otdfctl/cmd/policy/kasKeys.go
  • otdfctl/cmd/policy/kasRegistry.go
  • otdfctl/cmd/policy/namespaces.go
  • otdfctl/cmd/policy/obligations.go
  • otdfctl/cmd/policy/policy.go
  • otdfctl/cmd/policy/registeredResources.go
  • otdfctl/cmd/policy/subjectConditionSets.go
  • otdfctl/cmd/policy/subjectMappings.go
  • otdfctl/docs/man/policy/attributes/list.md
  • otdfctl/docs/man/policy/kas-registry/key/list.md
  • otdfctl/docs/man/policy/kas-registry/list.md
  • otdfctl/docs/man/policy/namespaces/list.md
  • otdfctl/docs/man/policy/obligations/list.md
  • otdfctl/docs/man/policy/registered-resources/list.md
  • otdfctl/docs/man/policy/subject-condition-sets/list.md
  • otdfctl/docs/man/policy/subject-mappings/list.md
  • otdfctl/e2e/attributes.bats
  • otdfctl/e2e/kas-keys.bats
  • otdfctl/e2e/kas-registry.bats
  • otdfctl/e2e/namespaces.bats
  • otdfctl/e2e/obligations.bats
  • otdfctl/e2e/registered-resources.bats
  • otdfctl/e2e/subject-condition-sets.bats
  • otdfctl/e2e/subject-mapping.bats
  • otdfctl/pkg/handlers/attribute.go
  • otdfctl/pkg/handlers/kas-keys.go
  • otdfctl/pkg/handlers/kas-registry.go
  • otdfctl/pkg/handlers/namespaces.go
  • otdfctl/pkg/handlers/obligations.go
  • otdfctl/pkg/handlers/registeredResources.go
  • otdfctl/pkg/handlers/sort.go
  • otdfctl/pkg/handlers/sort_test.go
  • otdfctl/pkg/handlers/subjectConditionSets.go
  • otdfctl/pkg/handlers/subjectmappings.go

Comment thread otdfctl/e2e/registered-resources.bats
Comment thread otdfctl/e2e/subject-condition-sets.bats
Comment thread otdfctl/e2e/subject-mapping.bats
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Govulncheck found vulnerabilities ⚠️

The following modules have known vulnerabilities:

  • examples
  • otdfctl
  • sdk
  • service
  • lib/fixtures
  • tests-bdd

See the workflow run for details.

@c-r33d
c-r33d added this pull request to the merge queue May 15, 2026
Merged via the queue into main with commit 73ad878 May 15, 2026
40 checks passed
@c-r33d
c-r33d deleted the sort-parameters branch May 15, 2026 15:05
JBCongdon pushed a commit to JBCongdon/platform that referenced this pull request May 24, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.32.0](opentdf/platform@otdfctl/v0.31.0...otdfctl/v0.32.0)
(2026-05-19)


### Features

* **cli:** Add better unit testing.
([opentdf#3378](opentdf#3378))
([3ad33dc](opentdf@3ad33dc))
* **cli:** Add interactive review for prune plans
([opentdf#3421](opentdf#3421))
([c11680b](opentdf@c11680b))
* **cli:** Add prune confirmation.
([opentdf#3469](opentdf#3469))
([c6d47ec](opentdf@c6d47ec))
* **cli:** Add prune planner.
([opentdf#3411](opentdf#3411))
([3e294e6](opentdf@3e294e6))
* **cli:** Add prune summary information
([opentdf#3456](opentdf#3456))
([c900c53](opentdf@c900c53))
* **cli:** add sensitive flag annotation to DocFlag
([opentdf#3457](opentdf#3457))
([98f48d2](opentdf@98f48d2))
* **cli:** Confirm and execute pruning of legacy objects
([opentdf#3458](opentdf#3458))
([24c09dd](opentdf@24c09dd))
* **cli:** Print report on failure
([opentdf#3365](opentdf#3365))
([05a4473](opentdf@05a4473))
* **cli:** Sort parameters.
([opentdf#3478](opentdf#3478))
([73ad878](opentdf@73ad878))
* **policy:** Add FQN to RegisteredResourceValues
([opentdf#3446](opentdf#3446))
([3199583](opentdf@3199583))
* **policy:** Add resource mapping group FQNs
([opentdf#3447](opentdf#3447))
([6a0b3c6](opentdf@6a0b3c6))


### Bug Fixes

* **cli:** Prune was not classifying multi-namespaced RRs properly.
([opentdf#3488](opentdf#3488))
([eae8645](opentdf@eae8645))
* **cli:** support json profile output
([opentdf#3448](opentdf#3448))
([61f194c](opentdf@61f194c))
* **deps:** bump github.com/opentdf/platform/lib/identifier from 0.3.0
to 0.4.0 in /otdfctl
([opentdf#3367](opentdf#3367))
([aa23179](opentdf@aa23179))
* **deps:** bump github.com/opentdf/platform/protocol/go from 0.27.0 to
0.28.0 in /otdfctl
([opentdf#3419](opentdf#3419))
([c80374f](opentdf@c80374f))
* **deps:** bump github.com/opentdf/platform/sdk from 0.16.0 to 0.17.0
in /otdfctl ([opentdf#3397](opentdf#3397))
([bb9fcd6](opentdf@bb9fcd6))
* **deps:** bump go.opentelemetry.io/otel from 1.40.0 to 1.41.0 in
/otdfctl ([opentdf#3400](opentdf#3400))
([5631c37](opentdf@5631c37))
* **deps:** bump module protocol/go to v0.30.0 throughout
([opentdf#3459](opentdf#3459))
([8eaa502](opentdf@8eaa502))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: opentdf-automation[bot] <149537512+opentdf-automation[bot]@users.noreply.github.com>
Co-authored-by: Chris Reed <87077975+c-r33d@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants