feat(cli): Add prune summary information#3456
Conversation
📝 WalkthroughWalkthroughThis PR refactors the namespaced policy migration and prune summary/review rendering infrastructure. It introduces a unified summary rendering pipeline (summary_renderer.go), adds Execution result tracking to prune plans, implements structured detail formatting for prune operations (prune_details.go and prune_summary.go), and updates migration summary logic to use the new pipeline while adding styled display support for policy objects. ChangesNamespaced Policy Summary & Review Rendering Refactor
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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.
Built for teams:
One agent for your entire SDLC. Right inside Slack. 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. Comment |
Benchmark results, click to expandBenchmark authorization.GetDecisions Results:
Benchmark authorization.v2.GetMultiResourceDecision Results:
Benchmark Statistics
Bulk Benchmark Results
TDF3 Benchmark Results:
|
There was a problem hiding this comment.
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/migrations/namespacedpolicy/summary_test_helpers_test.go`:
- Around line 5-8: Rename and reuse the compiled regex in stripANSI: move the
regexp.MustCompile(`\x1b\[[0-9;]*m`) out of the stripANSI function into a
package-level variable (e.g., ansiEscapeRE or ansiEscapeRegexp) so it is
compiled once, replace the local tidyWhitespace name with that clearer
identifier, and have stripANSI call ansiEscapeRE.ReplaceAllString(value, "") to
remove ANSI sequences; ensure you use regexp.MustCompile for initialization so
failures are caught at startup.
🪄 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: e9f1d83c-7f9f-4559-b1ec-39e250954a8d
📒 Files selected for processing (15)
otdfctl/migrations/namespacedpolicy/migration_review.gootdfctl/migrations/namespacedpolicy/migration_summary.gootdfctl/migrations/namespacedpolicy/migration_summary_test.gootdfctl/migrations/namespacedpolicy/policy_formatting.gootdfctl/migrations/namespacedpolicy/policy_formatting_test.gootdfctl/migrations/namespacedpolicy/prune_details.gootdfctl/migrations/namespacedpolicy/prune_plan.gootdfctl/migrations/namespacedpolicy/prune_plan_test.gootdfctl/migrations/namespacedpolicy/prune_planner.gootdfctl/migrations/namespacedpolicy/prune_review.gootdfctl/migrations/namespacedpolicy/prune_review_test.gootdfctl/migrations/namespacedpolicy/prune_summary.gootdfctl/migrations/namespacedpolicy/prune_summary_test.gootdfctl/migrations/namespacedpolicy/summary_renderer.gootdfctl/migrations/namespacedpolicy/summary_test_helpers_test.go
💤 Files with no reviewable changes (2)
- otdfctl/migrations/namespacedpolicy/migration_review.go
- otdfctl/migrations/namespacedpolicy/migration_summary_test.go
|
|
Warning Gemini encountered an error creating the summary. You can try again by commenting |
🤖 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>
Proposed Changes
1.) Add code for outputting a prune summary
2.) Break up summary information for
pruneandmigration3.) Add a summary renderer in-charge of styling and outputting the overall structure of the different information
Summary by CodeRabbit
Release Notes
New Features
Improvements