Document runtime env override audit

This commit is contained in:
Claude 2026-03-16 10:30:46 +09:00
parent d2ab9b700c
commit 7a76528613
2 changed files with 29 additions and 0 deletions

View File

@ -81,6 +81,7 @@
- [23제어면 gateway workspace-config 단일화](./worklog/260309_23제어면_gateway_workspace_config_단일화.md)
- [51123 구IP active runtime 제거 1차](./worklog/260309_51123_구IP_active_runtime_제거_1차.md)
- [24서버 robeing runtime workspace-config 단일화](./worklog/260310_24서버_robeing_runtime_workspace_config_단일화.md)
- [260316 runtime env override audit 및 SSOT 원칙 승격](./worklog/260316_runtime_env_override_audit_및_ssot원칙승격.md)
- [23 gateway MONITOR_URL 24 monitor 교정 및 실도메인 전수검증](./worklog/260310_23gateway_monitor_url_24monitor_교정_및_실도메인_전수검증.md)
- [24전환 배포대상과 ingress 24IP 교정 1차](./worklog/260309_24전환_배포대상과_ingress_24IP_교정_1차.md)
- [24서버 NAS 마운트 복원 및 ONNX 백업 실행](./worklog/260309_24서버_nas마운트복원_onnx백업실행.md)

View File

@ -0,0 +1,28 @@
---
tags: [infra, runtime, env, ssot, workspace-config, audit, worklog]
---
# 260316 runtime env override audit 및 SSOT 원칙 승격
## 관련 문서
- [0_VALUE Infrastructure SSOT Principle](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/infrastructure-ssot-principle.md)
- [0_VALUE Shared Vs Local Boundary](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/workspace-config/shared-vs-local-boundary.md)
- [24서버 robeing runtime workspace-config 단일화](./260310_24서버_robeing_runtime_workspace_config_단일화.md)
## 작업
- `0_VALUE` 상위 원칙에 `env_file`을 읽는 compose가 같은 키를 `environment: KEY=${KEY}`로 재선언해 로컬 `.env` placeholder가 `runtime.env`·`secrets.env`를 덮어쓰지 않도록 하는 규칙을 추가했습니다.
- `workspace-config/shared-vs-local-boundary.md`에도 로컬 `.env` placeholder가 active runtime으로 승격되면 안 된다는 경계를 추가했습니다.
- `robeing` 하위 레포들의 `.env``docker-compose.yml`을 전수 검색해 공용 SSOT 키 중복과 compose 오버라이드 잔존을 점검했습니다.
## 확인된 사실
- 실제 장애로 확인된 active override는 `rb8001``OPENAI_API_KEY`, `GEMINI_API_KEY`, `DEFAULT_LLM_MODEL` compose 재선언이었습니다.
- 같은 유형의 잔존 후보가 `skill-news``GEMINI_API_KEY`, `skill-rag-file``JWT_SECRET_KEY`, `skill-slack``JWT_SECRET_KEY`, `robeing-monitor``DATABASE_URL` fallback에 남아 있습니다.
- 로컬 `.env`에는 여전히 placeholder 또는 과거 값이 남아 있는 레포가 있습니다.
- `rb8001/.env`: `OPENAI_API_KEY`, `GEMINI_API_KEY`, `JWT_SECRET_KEY`
- `skill_news/.env`: `OPENAI_API_KEY`, `GEMINI_API_KEY`, `DATABASE_URL`, `TEST_DATABASE_URL`, `JWT_SECRET_KEY`
- `skill_email/.env`: `OPENAI_API_KEY`, `GEMINI_API_KEY`, `JWT_SECRET_KEY`
- `skill-rag-file/.env`, `skill-slack/.env`: `JWT_SECRET_KEY`
## 결론
- 이번 점검으로 `env_file + environment 재선언`은 개별 프로젝트 실수 수준이 아니라 상위 SSOT 위반 패턴임이 확인됐습니다.
- 따라서 이후 점검 기준은 `값이 중복으로 존재하는가`보다 `공용 키가 compose 재선언으로 active runtime에서 덮이는가`를 먼저 보는 것이 맞습니다.