Skip to content

docs/design: rename admin purge queue proposal → implemented (Phase 6)#800

Merged
bootjp merged 2 commits into
mainfrom
docs/sqs-admin-purge-queue-implemented
May 22, 2026
Merged

docs/design: rename admin purge queue proposal → implemented (Phase 6)#800
bootjp merged 2 commits into
mainfrom
docs/sqs-admin-purge-queue-implemented

Conversation

@bootjp
Copy link
Copy Markdown
Owner

@bootjp bootjp commented May 22, 2026

Summary

Phase 6 of the SQS admin purge queue rollout — all milestones in docs/design/2026_05_16_*_admin_purge_queue.md have landed on main, so rename the file per CLAUDE.md's lifecycle rule (*_proposed_*.md*_implemented_*.md).

Phase PR Landed
1 (proposal) #757 2026-05-16
2 (AdminPurgeQueue + IsDLQ) #771 2026-05-17
3 (AdminPeekQueue backend) #794 2026-05-20
4 (HTTP handler + bridge) #797 2026-05-21
5 (SPA Messages tab + Purge button + DLQ chips) #798 2026-05-21

This PR:

  • git mv the design doc filename (history preserved at 98% similarity).
  • Bump **Status:** from Proposed to Implemented.
  • Add an Implementation history table so a future reader can trace each phase back to its PR.
  • List out-of-scope follow-ups (throttle integration, audit + Prometheus counters, principalForReadSensitive live re-check, page-size selector) that remain tracked separately — none gate this rename.

Risk

None. Doc-only.

Test plan

  • git mv preserves history (98% similarity reported by git)
  • No other file references the old path (grep -rn "2026_05_16_proposed_admin_purge_queue" returns no hits)
  • CI on this PR

Summary by CodeRabbit

  • Documentation
    • Updated design documentation to reflect the completed implementation of the admin queue purge feature, including implementation timeline and planned follow-up improvements.

Review Change Stack

Phase 6 of the rollout plan: all milestones in
docs/design/2026_05_16_*_admin_purge_queue.md have shipped on main:

  Phase 2 (#771) - AdminPurgeQueue + IsDLQ/DLQSources
  Phase 3 (#794) - AdminPeekQueue backend
  Phase 4 (#797) - HTTP handler + bridge
  Phase 5 (#798) - SPA Messages tab + Purge button + DLQ chips

Rename the file via git mv per CLAUDE.md's lifecycle rule
(*_proposed_*.md to *_implemented_*.md), bump Status, and add an
Implementation history table so a future reader can trace each
phase back to its PR.

Out-of-scope follow-ups (throttle integration, audit + Prometheus
counters, principalForReadSensitive live re-check, page-size
selector) are listed in the doc but are tracked separately and do
not gate this rename.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 22, 2026

Warning

Rate limit exceeded

@bootjp has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 58 minutes and 7 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0edf8228-e31e-4425-85d3-b6fdf8dc5374

📥 Commits

Reviewing files that changed from the base of the PR and between f4034d8 and d723f51.

📒 Files selected for processing (1)
  • docs/design/2026_05_16_implemented_admin_purge_queue.md
📝 Walkthrough

Walkthrough

Design document for the admin peek + purge queue feature transitions from Proposed to Implemented status. Implementation history with phased PR/landing timeline is added, and out-of-scope follow-ups are expanded to track throttle, audit/metrics, role-store re-check, and page-size selector items.

Changes

Admin Purge Queue Design Status Update

Layer / File(s) Summary
Design document status and implementation history
docs/design/2026_05_16_implemented_admin_purge_queue.md
Status metadata updated from Proposed to Implemented; Implementation history section added with phased PR/landing timeline; out-of-scope follow-ups list extended with throttle, audit/metrics, role-store re-check, and page-size selector tracking.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • bootjp/elastickv#757: Initial proposal PR for the admin peek + purge queue design; this PR documents the implementation status and phased timeline of the same feature.

Poem

A queue once dreamed, now born and real—
From Proposed to Implemented, sealed.
With history tracked and follow-ups clear,
The admin's purge flows crystal here. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: updating the admin purge queue design doc status from Proposed to Implemented and renaming it to reflect Phase 6 completion.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/sqs-admin-purge-queue-implemented

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.

@bootjp
Copy link
Copy Markdown
Owner Author

bootjp commented May 22, 2026

@claude review

@claude
Copy link
Copy Markdown

claude Bot commented May 22, 2026

Claude finished @bootjp's task in 1m 22s —— View job


Code Review — PR #800: docs/design: rename admin purge queue proposal → implemented (Phase 6)

  • Gather context
  • Read changed file and diff
  • Verify no stale references remain
  • Review content and process compliance
  • Post findings

LGTM overall — doc-only, no code risk. A few observations below.


Process: _proposed__partial__implemented_ intermediate step was skipped

CLAUDE.md states:

Lifecycle transitions: rename *_proposed_*.md*_partial_*.md once the first milestone ships (and update the doc to record what landed and what is still open); rename *_partial_*.md*_implemented_*.md once the final milestone ships.

The file went directly from _proposed_ to _implemented_ without an intermediate _partial_ rename. The _partial_ transition should have happened when Phase 2 (#771) shipped on 2026-05-17. Since all five implementation phases are now confirmed complete, the _implemented_ end-state is correct — but the _partial_ step was a missed obligation during Phase 2–5 reviews.

Not blocking this rename (the final state is right), but worth noting so the pattern is followed on future multi-phase proposals.


Minor: Status header format deviates from the README template

docs/design/README.md specifies the header template as:

Status: <Proposed | Partial | Implemented>

The doc uses bold markdown:

**Status:** Implemented

This is pre-existing (present since the original proposal) and not introduced by this PR, so it doesn't block merge — but a follow-up could normalize it to match the convention.


Content accuracy ✅

The implementation history table in the doc matches the PR description exactly (phases 1–5, correct PR numbers and dates). The out-of-scope follow-ups (throttle integration, audit/Prometheus counters, principalForReadSensitive re-check, page-size selector) are clearly scoped as non-blocking.

Stale reference check ✅

grep -rn "2026_05_16_proposed_admin_purge_queue" returns no hits — the old filename is fully removed with no dangling references.

docs/design/README.md index ✅

The README describes the naming convention but doesn't enumerate individual files — no index entry needs updating.


Summary: The rename is correct, history is preserved at 98% similarity, all five phases are confirmed shipped, and the follow-ups are clearly documented. The _partial_ skip and the **Status:** style deviation are minor process notes, not blockers.

Copy link
Copy Markdown
Contributor

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

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 updates the design document for the Admin Queue Peek and Purge feature to mark it as 'Implemented' and adds an implementation history table along with a list of out-of-scope follow-up items. Feedback was provided to ensure the document body is updated to reflect these deferrals consistently and to include mitigation strategies for operational risks, such as throttle integration, in accordance with repository guidelines.

Comment on lines +17 to +21
Out-of-scope follow-ups (tracked separately, not gating this rename):
- Throttle integration (`bucketActionAdminPeek` + dedicated per-queue admin-peek bucket per §3.1)
- Audit logging + Prometheus counters per §3.6
- `principalForReadSensitive` live `RoleStore` re-check (Goal 8, blocked on wider RoleStore plumbing)
- Page-size selector (20 / 50 / 100) + response-size warning
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.

medium

The 'Out-of-scope follow-ups' list identifies several features as deferred (Throttle integration, Audit/Prometheus, live RoleStore re-check, and Page-size selector). However, the body of this document (e.g., §3.1, §3.6, Goal 8 in §2.1, and §3.5) still describes these features as if they were implemented. Since this document is being marked as 'Implemented' and features like 'Throttle integration' are significant for managing operational risk, please update the document to reflect these deferrals and detail any mitigation strategies used in their absence to align with repository guidelines.

References
  1. When a design document identifies a significant operational risk, such as the inability to perform rolling upgrades, it must also detail potential mitigation strategies, like implementing a temporary "bridge" or "proxy" mode.

Gemini r1 on PR #800 flagged that the Status: Implemented banner

and the Out-of-scope follow-ups list at the top were not aligned

with the body: §2.1 Goal 8 (live RoleStore re-check), §3.1

Throttle, §3.5 page-size selector, and §3.6 audit + Prometheus

counters still read like implemented features.

Add inline 'not yet implemented' markers at the entry of each

deferred section, with a one-line mitigation note so a future

reader (a) understands what is missing, (b) sees what the

current behaviour falls back to, and (c) can cross-reference

the top-of-doc follow-ups list. Body text remains unchanged

below the marker so the future-implementer can pick up the

design intent verbatim.

Claude r1's two informational notes (skipped _partial_

lifecycle step, Status header bold-format vs README template)

are noted but not actioned: the _partial_ step was a

process miss during the Phase 2-5 reviews that does not change

the final state, and the Status format is pre-existing across

the whole docs/design/ tree (Implemented and Proposed all use

bold).
@bootjp
Copy link
Copy Markdown
Owner Author

bootjp commented May 22, 2026

@claude review

Addressed r1 in d723f51:

  • Gemini medium (body still describes deferred features as implemented): added inline 'not yet implemented' markers at the entry of each deferred section (§2.1 Goal 8, §3.1 Throttle, §3.5 page-size selector, §3.6 Audit + Prometheus) with a one-line mitigation note pointing back to the top-of-doc follow-ups list. Body text below each marker is unchanged so the design intent stays available verbatim for the future implementer.
  • Claude r1 informational notes (skipped partial lifecycle step, Status bold-format): not actioned — the partial step was a process miss during Phase 2-5 that doesn't change the final state, and the Status header bold-format is pre-existing across the whole docs/design/ tree.

@claude
Copy link
Copy Markdown

claude Bot commented May 22, 2026

Claude finished @bootjp's task in 1m 34s —— View job


Code Review (r2) — PR #800

  • Gather context
  • Read the updated file (post-d723f516)
  • Verify inline 'not yet implemented' markers are correctly placed
  • Check mitigation notes reference the follow-ups list
  • Assess whether r1 findings are fully addressed
  • Post final review

r2 LGTM — all four deferred sections are now correctly flagged.

Gemini r1 (medium) — addressed ✅

All four locations identified by Gemini now have inline _Not yet implemented…_ markers with mitigation notes:

Section Marker placed at Mitigation note
§2.1 Goal 8 Start of the principalForReadSensitive paragraph JWT TTL (1h) bounds the exposure window
§3.1 Throttle Start of the **Throttle.** paragraph Hard Limit ≤ 100 + leader-only execution bound steady-state cost
§3.5 page-size selector Inline in the "Below the table:" sentence Hard default of 20 rows; worst-case 5 MiB stays safe
§3.6 Audit New standalone paragraph prepended to the section Standard request-log line still emitted for traceability

The markers are consistent in format (italic, "Not yet implemented in the initial rollout — see Out-of-scope follow-ups at the top"), and each mitigation note answers what a future reader actually needs: what the current behaviour falls back to and why it's tolerable for now.

One readability observation (non-blocking)

In §3.5, the marker is injected mid-sentence:

Below the table: [marker] A Refresh button, and Next / Previous controls…

The sentence before the comma ("Below the table:") now has an unusually long italic aside before the list resumes. It reads correctly but a reader skimming prose could miss the restart of the list. Since the intent is to preserve the body text unchanged for the future implementer, the approach is sound — just noting it in case a follow-up pass wants to restructure that sentence for clarity.

Claude r1 informational notes — not actioned, rationale accepted ✅

  • Skipped _partial_ lifecycle step: Final state is correct; the process miss was in earlier PRs, not this one. No change needed here.
  • **Status:** bold format vs README template: Pre-existing across the whole docs/design/ tree. Consistent with every other doc; no change needed.

Summary: d723f51 cleanly addresses the Gemini r1 finding by adding well-scoped "not yet implemented" markers with mitigation notes. The §3.6 standalone-paragraph approach is the neatest; the §3.5 mid-sentence injection works but is slightly harder to skim. No blocking issues.

bootjp added a commit that referenced this pull request May 22, 2026
)

## Summary

Design proposal for extending the admin Web Console with **item-level
CRUD on DynamoDB** and **object-level CRUD on S3**, mirroring the SQS
Messages-tab pattern that landed in PRs #797 / #798. Per CLAUDE.md's
design-doc-first workflow, this PR is the doc only — implementation
lands in follow-up PRs after the design is reviewed.

## Scope (per user discussion)

| Adapter | Scope |
|---------|-------|
| **DynamoDB** | Basic CRUD only: `Scan`, `GetItem`, `PutItem`,
`DeleteItem`. No Query / GSI / conditional updates / partial updates. |
| **S3** | List with `prefix` + `delimiter` (renders as pseudo-directory
tree in the SPA), `GetObject` (download), `PutObject` (upload, **100
MiB** cap, raw octet-stream), `DeleteObject`. |

## Authorization

| Operation class | Gate |
|---|---|
| Scan / List / Get | `principalForReadSensitive` (read role, payload is
sensitive) |
| Put / Delete | `principalForWrite` (write role, with the per-action
verb parameter introduced in the SQS Phase 4 fix) |

## Roll-out (six phases)

1. This doc lands
2. Backend `Admin{Scan/Get/Put/Delete}{Item,Object}` RPCs + tests (can
split 2a/2b per adapter)
3. HTTP handlers + bridges + integration tests
4. SPA: DynamoDetail Items tab
5. SPA: S3Detail Objects tab + Upload
6. Doc rename `_proposed_` → `_implemented_`

## Risk

None. Doc-only PR.

## Out of scope (explicit non-goals)

- DynamoDB Query / GSI / conditional updates / partial updates
- S3 multipart upload / versioning / cross-bucket operations
- Batch operations (BatchGet / BatchWrite / DeleteObjects)
- Server-side filter expressions on Scan
- Per-poll audit lines on read paths (request-log already covers them)

## Test plan

- [x] Cross-checked against existing admin RPC patterns
(`AdminListBuckets`, `AdminListTables`, `AdminListQueues`)
- [x] 6-step routing extends cleanly to `/items/{key}` and
`/objects/{key}` sub-resources
- [ ] CI on this PR (lint, doc renders)
- [ ] Reviewer feedback on phase boundaries and any scope adjustments

## Note on stacking

PR #800 (Phase 6 rename of the SQS admin-purge-queue doc) is unrelated
and can land in either order.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Added design documentation for planned admin Web Console enhancements,
specifying support for DynamoDB item and S3 object management, including
API specifications, security measures, and rollout strategy.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/bootjp/elastickv/pull/801?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@bootjp bootjp merged commit 81937f6 into main May 22, 2026
9 checks passed
@bootjp bootjp deleted the docs/sqs-admin-purge-queue-implemented branch May 22, 2026 17:26
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.

1 participant