Skip to content

[#493] 운영 건 파일 첨부 API — 업무·하위 업무·회의 발급·목록·다운로드·삭제 - #496

Merged
swthewhite merged 2 commits into
developfrom
feat/#493-operation-attachments
Sep 20, 2026
Merged

swthewhite merged 2 commits into
developfrom
feat/#493-operation-attachments

Conversation

@swthewhite

@swthewhite swthewhite commented Sep 19, 2026

Copy link
Copy Markdown
Member

무엇

운영 건(업무·하위 업무·회의) 파일 첨부 API(ssccops#410) — 회의 «결과물이 어디 있는지 연결이 안 된다»의 2차(1차는 외부 URL 행 · web#547).

  • POST /v1/operations/{operationId}/attachments{fileName, fileSize} → presigned PUT 발급(발급이 곧 첨부 한 건 · 콘텐츠 갤러리와 같은 계약). 형식은 이름의 확장자(AttachmentFileType — 문서·표·발표·압축·이미지), 25MB 초과 413 ATTACHMENT_TOO_LARGE, 모르는 형식 400 UNSUPPORTED_ATTACHMENT_TYPE
  • GET … 목록(이름·크기·올린 사람·일시) · GET …/{fileId}/download-url — 원본 이름을 response-content-disposition에 실은 15분 서명 URL을 JSON으로(인증 경로라 302는 브라우저 이동으로 못 쓴다) · DELETE …/{fileId} — 참조 삭제 + 커밋 뒤 오브젝트 삭제 + 감사 로그 operation.attachment.delete
  • 경로가 oper인 이유 — 셋이 전부 oper의 확장이라 FileTargetType.OPERATION + operationId면 된다. 권한만 종류별로 갈리고 그것은 OperationAttachmentAccessPolicy(업무 WORK_READ/WORK_MANAGE · 하위 업무 담당자 또는 WORK_MANAGE · 회의 MEETING_READ/MEETING_MANAGE)
  • V18file_rfrnc.trgt_se_cd CHECK에 OPERATION(V13 규칙) + 첨부 메타 열 넷(orgnl_file_nm·file_size·rgtr_mbr_id·crt_dt · NULL 허용 · 기존 대상은 안 읽는다)
  • ADR-0042 기준 «추가»라 이력 테이블 대상이 아니다 — 삭제만 감사

검증

  • OperationAttachmentControllerTest 3/3(발급→목록→내려받기 URL→삭제·메타 검증 · 권한 · 400/413/404) · ContentPostImageControllerTest 5/5 · DomainCycleTest
  • FlywayMigrationValidateTest(CHECK ↔ enum 대조)는 로컬 Docker 없음 → CI
  • OpenAPI: 엔드포인트 추가 — 통과

뒤따르는 것

  • 웹 첨부 절 web#546 · 데이터사전 trgt_se_cd OPERATION + file_rfrnc 열 넷(레포 밖 xlsx)

📎 근거

  • 근거: ssccops#410 · ADR-0042 · ADR-0038(갤러리 계약)

Closes #493

- `/v1/operations/{operationId}/attachments` — oper 하나로 셋을 받는다. 권한은 `OperationAttachmentAccessPolicy`(종류별 읽기/쓰기 권한 그대로)
- `FileTargetType.OPERATION` + V18(CHECK 확장 · 첨부 메타 열 넷) · `AttachmentFileType`(문서·표·발표·압축·이미지) · 25MB
- 내려받기는 원본 이름을 붙인 서명 URL로 302 · 삭제만 감사 로그
- `OperationAttachmentControllerTest` 3건

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added size/XL PR size: XL feat 새로운 기능 labels Sep 19, 2026
@swthewhite
swthewhite merged commit 91c3e70 into develop Sep 20, 2026
8 of 9 checks passed
@swthewhite
swthewhite deleted the feat/#493-operation-attachments branch September 20, 2026 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 새로운 기능 size/XL PR size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] 운영 건 파일 첨부 API — 업무·하위 업무·회의 발급·목록·다운로드·삭제

1 participant