# 신고·뮤트·차단·순위 동의 서버 API 계약 이 계약은 공급자 중립 애플리케이션 API다. 현재 실제 서버에는 연결되지 않았고 공개 앱도 alpha8 그대로다. ## 엔드포인트 | 동작 | 요청 | 성공 응답 | |---|---|---:| | 신고 | `POST /v1/reports` | 202 | | 뮤트 설정/해제 | `PUT/DELETE /v1/mutes/:actorId` | 204 | | 차단 설정/해제 | `PUT/DELETE /v1/blocks/:actorId` | 204 | | 순위 동의 | `PUT /v1/ranking-consents/:circleId` | 200 | 모든 요청은 원격 로그인 세션, 공개키 헤더, 멱등 키가 필요하다. 성공 상태가 아니면 앱은 전송 완료로 표시하지 않는다. ## 개인정보 최소화 - 신고는 대상 종류·대상 ID·정해진 이유 코드만 전송한다. 자유서술·화면 내용·건강 기록은 받지 않는다. - 감사 이벤트에는 원문 대상 ID 대신 서버가 만든 해시만 남긴다. - 액세스 토큰·공개키 값·신고 본문은 감사 로그와 결과 JSON에 포함하지 않는다. - 신고 이유 코드는 `spam`, `harassment`, `unsafe`, `privacy`, `impersonation`만 허용한다. - 로컬 신고는 실제 서버 신고로 승격하지 않는다. ## 서버 구현 전 확인 1. 세 계정 권한과 차단 우선순위가 schema 6 readback 뒤에도 유지되는지 확인한다. 2. 같은 멱등 키 재전송이 중복 신고·중복 차단을 만들지 않는지 확인한다. 3. 401·403·409·429·5xx를 성공으로 바꾸지 않는다. 4. 감사 로그 보존 기간과 삭제 절차는 개인정보 검토 후 확정한다.