ariadne/agent-roadmap/sdd/platform-foundation/project-target-registry/SDD.md
2026-07-24 05:45:04 +09:00

99 lines
4.7 KiB
Markdown

# SDD: 프로젝트와 분석 대상 등록
## 위치
- Milestone: [Milestone 문서](../../../phase/platform-foundation/milestones/project-target-registry.md)
- Phase: [PHASE.md](../../../phase/platform-foundation/PHASE.md)
## 상태
[승인됨]
## SDD 잠금
- 상태: 해제
- 사용자 리뷰: 없음
- 잠금 항목:
- 없음
## 문제 / 비목표
- 문제: 조직별 연결 설정을 안전하게 관리하면서 비밀값과 운영 환경 쓰기 권한이 업무 데이터나 IOP 요청으로 새지 않게 해야 한다.
- 비목표:
- 자격 증명 저장 제공자 구현
- 분석 대상 규칙 평가
- 운영 환경 수정
## Source of Truth
| 영역 | 기준 | 메모 |
|------|------|------|
| Roadmap | [Milestone 문서](../../../phase/platform-foundation/milestones/project-target-registry.md) | 기능 범위와 완료 상태 |
| Code | `internal/platform/database/migrations/`, `internal/domain/`, `internal/platform/httpserver/` | 조직 범위 모델과 관리 API |
| External Provider | 없음 | 저장소·운영 환경에는 불투명 참조만 등록 |
| User Decision | 없음 | 읽기 전용 운영 환경과 두 처리 방식은 확정됨 |
## State Machine
| 상태 | 진입 조건 | 다음 상태 | 근거 |
|------|-----------|-----------|------|
| 미등록 | 조직에 대상이 없음 | 활성 | 권한 있는 관리자의 생성 명령 |
| 활성 | 유효한 조직·프로젝트 연결과 설정 | 비활성 | 권한 있는 관리자의 비활성화 |
| 비활성 | 새 작업 선택에서 제외됨 | 활성 | 설정 재검증 후 재활성화 |
## Interface Contract
- 계약 원문: 없음
- 입력:
- 조직 범위: 검증된 사용자 세션에서 결정
- 프로젝트·연결 설정: 저장소, 입력 출처, 읽기 전용 운영 환경과 규칙
- 자격 증명: 비밀값이 아닌 불투명 참조
- 출력:
- 조직 범위 자원과 상태
- 비밀값을 제외한 검증 결과
- 금지:
- 요청 본문으로 다른 조직 범위를 선택하는 동작
- 비밀 원문 저장·반환
- 운영 환경 쓰기 권한 표현
## Acceptance Scenarios
| ID | Milestone Task | Given | When | Then |
|----|----------------|-------|------|------|
| S01 | `project-crud` | 관리자와 조직 범위가 검증됨 | 프로젝트를 생성·변경함 | 같은 조직 안에서 처리 방식과 상태가 보존됨 |
| S02 | `repository-crud` | 프로젝트가 활성임 | 저장소 연결을 등록함 | 기준 가지와 자격 증명 참조만 저장됨 |
| S03 | `ingestion-source` | 프로젝트가 활성임 | 오류 입력 출처를 등록함 | 출처가 조직·프로젝트와 고유 자격 증명 참조에 결속됨 |
| S04 | `runtime-target` | 읽기 전용 연결 정보가 있음 | 운영 환경을 등록함 | 쓰기 권한 없이 SSH 또는 수집기 참조가 저장됨 |
| S05 | `target-rules` | 저장소와 운영 환경이 등록됨 | 우선순위 규칙을 저장함 | 같은 프로젝트 대상만 연결되고 우선순위가 고유함 |
| S06 | `registry-tests` | 다른 조직 ID나 비밀 원문이 입력됨 | 관리 API를 호출함 | 요청이 거부되고 다른 조직 데이터가 노출되지 않음 |
## Evidence Map
| Scenario | Required Evidence | `agent-task` 연결 | 완료 Evidence 기대 |
|----------|-------------------|------------------|---------------------------|
| S01 | 프로젝트 API·DB 통합 검사 | `agent-task/m-project-target-registry/...` | `project-crud` Roadmap Completion과 검사 결과 |
| S02 | 저장소 참조 및 비밀 비노출 검사 | `agent-task/m-project-target-registry/...` | `repository-crud` 완료 근거 |
| S03 | 입력 출처 귀속·고유성 검사 | `agent-task/m-project-target-registry/...` | `ingestion-source` 완료 근거 |
| S04 | 읽기 전용 제약 검사 | `agent-task/m-project-target-registry/...` | `runtime-target` 완료 근거 |
| S05 | 교차 프로젝트·우선순위 제약 검사 | `agent-task/m-project-target-registry/...` | `target-rules` 완료 근거 |
| S06 | 조직 격리 PostgreSQL 통합 결과 | `agent-task/m-project-target-registry/...` | `registry-tests` 최종 검증 |
## Cross-repo Dependencies
- 없음
## Drift Check
- [x] Milestone 기능 Task와 Acceptance Scenario가 일치한다.
- [x] Evidence Map이 code-review와 `complete.log`에서 검증 가능하다.
- [x] 외부 계약 원문을 SDD에 복제하지 않았다.
- [x] 사용자 리뷰가 필요한 항목이 없다.
## 사용자 리뷰 이력
- 없음
## 작업 컨텍스트
- 표준선: 명시적 조직 범위, 불투명 자격 증명 참조, 운영 환경 읽기 전용을 유지한다.
- 후속 SDD: [오류 수집과 중복 통합](../../error-intelligence/error-ingestion-correlation/SDD.md)