배경
현재 EDG Core는 어댑터가 publish한 데이터에서 모르는 asset_id를 발견하면 무조건 Asset 레코드를 자동 생성합니다 (internal/core/handler.go:73-94). 이 동작은 "Plug & Play" 가치 제안의 핵심이지만 끄거나 제한할 방법이 없습니다.
internal/core/config.go의 CoreConfig 어디에도 자동 등록 관련 토글이 없고, cmd/core/main.go:121은 store를 항상 주입하므로 handler.go:74의 if h.store != nil 가드는 운영 환경에서 항상 true입니다.
문제
- 보안·거버넌스가 중요한 환경(미승인 디바이스 차단, 자산 인벤토리 변동 통제)에서 자동 등록을 끄지 못함
- 테스트·스테이징에서 의도치 않은 자산이 자동 등록되어 누적
- 운영자가 자산 카탈로그를 사전에 정의하고 그 외 트래픽은 관측만 하고 싶은 시나리오 미지원
제안
asset_registration.mode 설정 키 도입 (default auto):
auto: 현재 동작 — 모르는 asset_id 메시지가 들어오면 자동 등록 + EventCreated 발행
manual: 모르는 asset_id라도 데이터는 validated subject로 통과시키되 Asset 레코드는 생성하지 않음
향후 strict 모드(미등록 자산 reject + dead-letter)는 별도 이슈로 분리.
수용 기준
참고
- 자동 등록 발생 지점:
internal/core/handler.go:73-94
- 설정 스키마:
internal/core/config.go:17-65
- 메인 와이어링:
cmd/core/main.go:120-148
- 사용자 가이드:
docs/USER_GUIDE.md:120-138
배경
현재 EDG Core는 어댑터가 publish한 데이터에서 모르는
asset_id를 발견하면 무조건 Asset 레코드를 자동 생성합니다 (internal/core/handler.go:73-94). 이 동작은 "Plug & Play" 가치 제안의 핵심이지만 끄거나 제한할 방법이 없습니다.internal/core/config.go의CoreConfig어디에도 자동 등록 관련 토글이 없고,cmd/core/main.go:121은 store를 항상 주입하므로handler.go:74의if h.store != nil가드는 운영 환경에서 항상 true입니다.문제
제안
asset_registration.mode설정 키 도입 (defaultauto):auto: 현재 동작 — 모르는asset_id메시지가 들어오면 자동 등록 +EventCreated발행manual: 모르는asset_id라도 데이터는 validated subject로 통과시키되 Asset 레코드는 생성하지 않음향후
strict모드(미등록 자산 reject + dead-letter)는 별도 이슈로 분리.수용 기준
config.yaml의asset_registration.mode로auto/manual전환 가능auto모드 기본값으로 기존 동작과 100% 일치 (후방 호환)manual모드에서 미등록 자산 메시지가 들어와도 store에 Asset이 생기지 않음manual모드에서도 데이터는 validated subject로 정상 통과 (다운스트림 영향 없음)참고
internal/core/handler.go:73-94internal/core/config.go:17-65cmd/core/main.go:120-148docs/USER_GUIDE.md:120-138