[Docs] 권한 시스템 Swagger 수동 테스트 결과 작성 (#16 #18 #21 #24 #29) - #34
Conversation
|
Warning Review limit reached
Next review available in: 49 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughSwagger를 사용한 권한 API 수동 테스트 결과 문서를 추가했다. OWNER, PUBLIC, USER_CACHE, ROLE 권한 경로와 캐시 무효화, 문서 중복 추가, 컬렉션 soft delete 및 목록 제외 결과를 시나리오별로 기록한다. Changes권한 API 수동 검증
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 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 |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
docs/test-results/chelung-#21-permission-query-service.md (1)
72-72: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winfenced code block에 언어 식별자를 추가해 주세요.
Markdownlint MD040 경고를 해소하려면 로그와 DB 결과 블록의 여는 fence를 모두
```text로 변경해 주세요.Also applies to: 105-105, 186-186, 282-282, 319-319, 356-356, 396-396
🤖 Prompt for 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. In `@docs/test-results/chelung-`#21-permission-query-service.md at line 72, 문서의 모든 로그 및 DB 결과 fenced code block에 언어 식별자가 누락되어 있습니다. 지정된 fenced code block의 여는 fence를 모두 ```text 형식으로 변경해 Markdownlint MD040 경고를 해결하고, 블록 내용은 그대로 유지하세요.Source: Linters/SAST tools
🤖 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 `@docs/test-results/chelung-`#21-permission-query-service.md:
- Line 12: 검증되지 않은 DEPARTMENT 결과를 문서의 완료 범위에서 제거하세요. 실제 DEPARTMENT 요청·응답·로그
시나리오를 추가하지 않는 경우, 해당 문장의 ROLE/DEPT 표현과 `/DEPT` 관련 주장을 ROLE만 다루도록 수정하고 ROLE 경로 차단
결과만 유지하세요.
- Around line 364-400: 컬렉션 삭제 검증 절차에 캐시 일괄 무효화 증거를 추가하세요. DELETE 이후 사용자 B로
`/permissions/documents/{documentId}/me`를 호출한 응답과 `user_document_access_cache`에서
해당 캐시가 무효화된 결과를 기록하고, 이를 확인하지 못했다면 캐시 검증이 미완료임을 명시하세요.
- Line 8: Update the PUBLIC behavior statement in the test-results document to
explicitly scope it to accounts without additional USER_CACHE, ROLE, or
DEPARTMENT permissions, such as account B. State that only under this condition
canRead is true while canWrite and canAdmin are false; do not claim this
universally for all PUBLIC users.
---
Nitpick comments:
In `@docs/test-results/chelung-`#21-permission-query-service.md:
- Line 72: 문서의 모든 로그 및 DB 결과 fenced code block에 언어 식별자가 누락되어 있습니다. 지정된 fenced
code block의 여는 fence를 모두 ```text 형식으로 변경해 Markdownlint MD040 경고를 해결하고, 블록 내용은
그대로 유지하세요.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 4cd65974-20b3-4738-8be0-f27fefaaf51c
📒 Files selected for processing (1)
docs/test-results/chelung-#21-permission-query-service.md
| ### 4.8 컬렉션 삭제 (soft delete) 확인 | ||
|
|
||
| 문서1을 컬렉션1에 다시 추가한 뒤 컬렉션을 삭제한다. | ||
|
|
||
| ```http | ||
| POST /collections/1/documents | ||
| Authorization: Bearer {A token} | ||
| ``` | ||
|
|
||
| ```json | ||
| { | ||
| "success": true, | ||
| "status": 201, | ||
| "data": { | ||
| "collectionId": 1, | ||
| "documentId": 1, | ||
| "addedBy": 2, | ||
| "addedAt": "2026-07-17T17:24:25.353756" | ||
| }, | ||
| "timestamp": "2026-07-17 17:24:25" | ||
| } | ||
| ``` | ||
|
|
||
| ```http | ||
| DELETE /collections/1 | ||
| Authorization: Bearer {A token} | ||
| ``` | ||
|
|
||
| 응답: `204 No Content` | ||
|
|
||
| DB 확인: | ||
|
|
||
| ``` | ||
| collections: id=1, status=DELETED, deleted_at=2026-07-17 17:24:59.612 | ||
| ``` | ||
|
|
||
| 컬렉션 레코드는 삭제되지 않고 status와 deleted_at만 변경됐다. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
컬렉션 삭제 후 캐시 일괄 무효화 증거를 추가해야 합니다.
현재 절은 soft delete와 목록 제외만 확인합니다. PR 목표에 포함된 캐시 일괄 무효화를 입증하려면 삭제 후 B의 /permissions/documents/{documentId}/me 응답과 user_document_access_cache의 무효화 결과를 함께 기록해야 합니다. 그렇지 않으면 캐시 검증은 미완료로 명시해 주세요.
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 396-396: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for 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.
In `@docs/test-results/chelung-`#21-permission-query-service.md around lines 364 -
400, 컬렉션 삭제 검증 절차에 캐시 일괄 무효화 증거를 추가하세요. DELETE 이후 사용자 B로
`/permissions/documents/{documentId}/me`를 호출한 응답과 `user_document_access_cache`에서
해당 캐시가 무효화된 결과를 기록하고, 이를 확인하지 못했다면 캐시 검증이 미완료임을 명시하세요.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🔍 작업 내용
✨ 상세 설명
이슈 #16 · #18 · #21 · #24 · #29에서 구현한 권한 시스템 전체를 Swagger에서 수동 테스트하고 결과를 문서로 작성했다.
테스트 계정: A(userId=2, 소유자·권한 부여자) / B(userId=3, test1)
검증한 시나리오 (Phase 1~11):
각 시나리오별 요청/응답 JSON과 서버 [PERM] 타이밍 로그를 문서에 포함했다.
🛠 추후 리팩토링 및 고도화 계획
./gradlew test자동 테스트를 별도 이슈로 분리해서 작성📸 스크린샷 (선택)
💬 리뷰 요구사항
Summary by CodeRabbit