seon 684e70ba60 feat(ai): authenticate to the Claude API with Workload Identity Federation
정적 API 키 대신 Workload Identity Federation을 쓴다. 에이전트는 AI VM의 Google 서명
ID 토큰(메타데이터 서버, audience https://api.anthropic.com, format=full)을
POST /v1/oauth/token(jwt-bearer)으로 교환해 단기 access token을 받고 Authorization: Bearer로
호출한다. 토큰은 캐시하고 만료 120초 전에 재교환하며, 401이면 한 번 재교환한다.
규칙·조직·서비스 계정·워크스페이스 ID 4개는 비밀이 아니므로 ai.env 환경 변수로 받고,
비어 있으면 기존 키 파일 경로로 동작한다. /selfcheck가 auth 모드와 실제 교환 결과를
보고해 캠페인 없이 설정을 검증할 수 있다. 테스트: 교환 1회 재사용·401 재교환·만료 전
갱신·거부 응답·불완전 ID 무시.
2026-10-15 11:48:26 +09:00
2026-09-24 01:32:06 +09:00
2026-09-23 23:35:10 +09:00

selfheal-lab-apps

Application sources for the self-healing verification lab (VM + container mixed environment). Infrastructure: seon-labs/selfheal-lab-terraform. Runtime configuration (compose, manifests): selfheal-lab/selfheal-lab-gitops. This repository is public and contains no secrets.

Directory Runs on Image
legacy-api/ GCP MIG instances (docker compose) Artifact Registry asia-northeast1-docker.pkg.dev/cms-d-414903/selfheal/legacy-api:<git sha>
demo-app/ AWS Kubernetes (Argo CD, namespace demo) Public Artifact Registry asia-northeast1-docker.pkg.dev/cms-d-414903/selfheal-public/demo-api:<git sha> (anonymous pull; kubeadm nodes have no cloud credentials)
harness/ GCP harness VM (docker compose) Public Artifact Registry selfheal-public/harness:<git sha>
ai/ GCP AI VM (docker compose): cmd/agent (diagnosis, experiment design 6.2-6.4) and cmd/hitl (Discord approval bot, 6.5-6.6) Public Artifact Registry selfheal-public/ai-agent:<git sha>, selfheal-public/ai-hitl:<git sha> (gcloud builds submit ai --config ai/cloudbuild.yaml --substitutions=_TAG=<git sha>)

Build (Cloud Build, from the repository root):

gcloud builds submit legacy-api --project cms-d-414903 --tag asia-northeast1-docker.pkg.dev/cms-d-414903/selfheal/legacy-api:$(git rev-parse --short HEAD)
S
Description
Self-healing lab application sources (legacy-api for the VM layer, demo-app for Kubernetes). Public, no secrets.
Readme
68 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 99.2%
Dockerfile 0.8%