Skip to content

[Settings] 사업장 설정 조회·수정 API 구현 #16

Description

@hywznn

한 줄 요약

사업장 관리자가 알림·만료 임박 기준·근로자 링크 유효시간 같은 운영 정책을 안전하게 확인하고 변경할 수 있게 합니다.

소유 API

  • GET /settings
  • PATCH /settings

상세 필드와 화면 기준은 Notion API 명세Figma를 함께 확인합니다.

권한 원칙

  • ADMIN: 조회·수정 가능
  • HR: 업무에 필요한 설정 조회 가능, 수정 여부는 필드별 정책 적용
  • VIEWER: 필요한 최소 설정만 조회
  • Worker Link: 접근 불가

초보자용 구현 순서

  1. 화면 설정을 사업장 설정과 사용자 개인 설정으로 구분합니다.
  2. 허용 필드만 수정하는 PATCH DTO를 만듭니다.
  3. 기본값과 최소·최대 범위를 코드와 Swagger에 적습니다.
  4. company_id 기준으로 설정을 조회·저장합니다.
  5. 중요한 정책 변경은 이전 값과 새 값을 감사 로그에 남깁니다.
  6. 동시 수정 충돌과 잘못된 범위 테스트를 작성합니다.

보안·구현 규칙

  • LLM API Key, JWT Secret, DB 비밀번호 같은 서버 Secret은 이 API로 조회·수정하지 않습니다.
  • 클라이언트가 임의의 설정 키를 추가하지 못하도록 allow-list를 사용합니다.
  • Worker Link 만료시간은 안전한 최소·최대 범위를 강제합니다.
  • 알림 설정을 켜도 MVP에서 자동 외부 발송을 의미하지 않습니다.

완료 조건

  • 사업장별 설정이 분리됩니다.
  • 권한 없는 역할의 수정은 403입니다.
  • 허용되지 않은 키와 범위 밖 값은 일관된 오류로 거부됩니다.
  • 부분 수정 시 보내지 않은 값은 유지됩니다.
  • 정책 변경의 actor, 이전/새 값 요약, request_id가 기록됩니다.
  • Swagger 예시와 권한 통합 테스트가 있습니다.

이번 이슈에서 하지 않는 것

  • Secret 관리 UI
  • 개인별 모든 화면 환경설정
  • 실제 SMS·메신저 발송 설정

선행/후속 관계

설정과 Guardrail 경계 · 2026-07-22

사업장 설정은 알림 시점·표시 언어 같은 허용된 운영 선호만 바꿉니다. fowoco/knowledge가 공식 근거로 관리하는 법정 기한, 필수서류, 승인 필요 여부와 개인정보 Guardrail을 완화하거나 덮어쓸 수 없습니다.

Metadata

Metadata

Assignees

Labels

area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P1핵심 작업 다음으로 처리할 중요 작업security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업status:backlog해야 하지만 아직 시작 조건이 갖춰지지 않은 작업type:feature사용자 또는 Agent가 사용하는 기능 개발

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions