feat(api): complete gateway route lifecycle - #112
Conversation
|
Warning Review limit reachedNext included review available in 59 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthrough라우트와 DNSBL 항목의 조회·교체·삭제 API를 추가했습니다. ETag와 Changes라우트 및 DNSBL 항목 API
Estimated code review effort: 4 (Complex) | ~60 minutes Merge Risk: 🔵 Low · up to The PR adds route lifecycle operations and API contract updates, but the current head still has bounded integration issues: generated clients may reject valid DNSBL delete requests, DNSBL responses are weakly typed, and read-only users may be blocked from viewing job status. The change is mergeable with explicit owner follow-up on these contract and read-access inconsistencies. Sequence Diagram(s)sequenceDiagram
participant Client
participant ResourceAPI
participant AdminWriteAuth
participant Persistence
participant AuditLog
Client->>ResourceAPI: 라우트 또는 DNSBL 조회·교체·삭제 요청
ResourceAPI->>AdminWriteAuth: 관리자 쓰기 권한 검증
AdminWriteAuth-->>ResourceAPI: 인증 및 권한 결과
ResourceAPI->>ResourceAPI: ETag와 If-Match 검증
ResourceAPI->>Persistence: 상태 변경 및 영속화
Persistence-->>ResourceAPI: 성공 또는 오류
ResourceAPI->>AuditLog: 성공한 교체·삭제 기록
ResourceAPI-->>Client: 리소스 응답 또는 HTTP 상태
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 34.15% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 41 functions across 1 files. (2 skipped: 2 unsupported.) ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
|
Fresh repair-first state (2026-09-05 KST): converted to Draft because exact head |
Summary
GET, conditionalPUT, and conditionalDELETEfor gateway routesPOST /api/routesupsert behavior while adding ETag/If-Match concurrency, write/read-only RBAC distinction, persistence, and audit evidenceVerification
cargo fmt --checkcargo test(102 library tests plus integration and fuzz-invariant tests)git diff --checkCompatibility and scope
Existing collection responses and legacy route upserts are unchanged. The new item endpoints require
If-Matchonly when replacing or deleting an existing route. This slice does not invent WAF/IDS detection logic or routing algorithms, so it does not add an academic-paper artifact; the inventory explicitly leaves those research-grounded product slices for their owning changes.Summary by CodeRabbit
새로운 기능
If-Match기반 동시성 제어를 지원합니다.문서
버그 수정