메뉴
HN
Hacker News • 10일 전

Datamimic – 코딩 에이전트가 마음대로 테스트 데이터를 조작하지 못하게 하라

IMP
5/10
핵심 요약

Datamimic은 규제 산업(금융 등)을 위한 결정론적 합성 테스트 데이터 생성 및 PII 인식 가명처리 오픈소스 엔진입니다. AI 코딩 에이전트가 검증되지 않은 임의 테스트 환경을 만드는 대신, CLI 기반 표준 계약을 통해 데이터 모델을 작성·검증·실행하도록 유도합니다. 커뮤니티 에디션(CE)은 MIT 라이선스로 무료이며, 엔터프라이즈 플랫폼은 PII 스캐너, 감사 로그, 역할 기반 접근 제어 등 거버넌스 기능을 추가합니다.

번역된 본문

DATAMIMIC — 규제 대상 기업을 위한 거버넌스 기반 테스트 데이터

이 저장소는 DATAMIMIC 커뮤니티 에디션(CE)을 포함합니다. MIT 라이선스, Python 네이티브, MCP 지원. CE는 결정론적 합성 데이터 생성과 PII 인식 가명처리를 위해 단독으로 완전히 사용 가능합니다. 엔터프라이즈 플랫폼은 규제 대상 기업이 필요로 하는 거버넌스 워크플로, PII 스캐닝, 역할 기반 접근 제어, 감사 로그, 스케줄링, 다중 시스템 실행 및 전체 운영 계층을 추가합니다.

👉 엔터프라이즈 플랫폼: datamimic.io | 📘 문서: docs.datamimic.io | 📅 전략 상담 예약: datamimic.io/contact

🤖 AI 에이전트라면: AGENTS.md에서 시작하고 프로젝트 CLI를 사용하세요. 새로운 의도는 model.dm.json으로 보존하고, datamimic scaffold ... --format json으로 초기 최선의 시도를 제출하며, 구조화된 이슈에서 복구하고, 명시된 요구사항마다 기대치를 선언하고, verified=true이면 중단하세요. 기존 원시 XML은 린트와 제한된 드라이런을 사용합니다.

DATAMIMIC이란?

DATAMIMIC CE는 DATAMIMIC 엔터프라이즈 플랫폼의 핵심에 있는 오픈소스 결정론적 데이터 엔진입니다. 로컬, CI, 또는 에이전트 기반 워크플로에서 합성 데이터 생성과 PII 인식 가명처리를 위해 단독으로 사용할 수 있습니다. 엔터프라이즈 플랫폼은 규제 대상 기업이 프로덕션 규모의 테스트 데이터 운영에 필요한 거버넌스 워크플로, 스캐너, 대시보드, 실행 계층을 추가합니다.

CE(이 저장소)에서 제공되는 기능:

  • 완전히 합성적이고 결정론적인 데이터셋 생성 — 모델 기반, 소스 데이터 불필요
  • 스테이징/QA 내보내기 가명처리 — 결정론적(시드 기반) 또는 프라이버시 최대화(비시드) 필드 변환; PII 필드는 XML 파이프라인에서 수동으로 식별 및 모델링
  • PostgreSQL · MySQL · Oracle · MS SQL · SQLite · MongoDB · CSV · JSON · XML · XLSX · DbUnit · 고정폭(.fcw) 대상 단일 시스템 파이프라인 실행
  • 동작 모델링 — 가중 상태 머신, 복합 다중 필드 참조, 제어 흐름(, ), 단계적 집계를 위한 스크립트 가능한 memstore
  • 출처(provenance) 내보내기 — 추가 전용(append-only) 실행 로그 및 감사 재실행을 위한 출력별 콘텐츠 해시
  • 에이전트 안내 — 머신 판독 가능한 기능 명세, 점진적 참조 쿼리, 하나의 정규 CLI 스캐폴드 트랜잭션; 선택적 MCP 어댑터가 동일한 작성 서비스를 노출

엔터프라이즈 플랫폼 추가 기능:

  • PII 스캐너 — DataWorkbench를 통한 설정 가능한 임계값 기반 확률 점수 필드 탐지
  • 다중 시스템 실행 — Oracle / MongoDB / Kafka를 참조 무결성과 함께 조율된 워크플로로 실행
  • 산업 메시지 템플릿 — EDIFACT / SWIFT MT / HL7 v2.x / HL7 FHIR을 결정론적 테스트/학습 아티팩트로 생성
  • 거버넌스 계층 — 역할 기반 대시보드, 감사 추적, 승인 흐름, 재사용 가능한 엔터프라이즈 템플릿, 스케줄러
  • 성능 코어 — Rust 패스트패스, 복잡한 분포를 위한 ML/자기회귀 엔진, 키셋 및 매니페스트 빌딩, 최적화된 분산 실행
  • 온프레미스 / 에어갭 배포 — podman-compose 또는 Helm, 컨설팅 주도 롤아웃

EU 규제 금융 환경에 Oracle, MongoDB, Kafka 파이프라인 전반의 결정론적 테스트 데이터를 위해 배포됨. NDA 하에 참조 고객 제공 가능 — datamimic.io 사례 연구 참조.

AI 에이전트: 데이터 모델 작성, 검증, 실행

CLI가 기본 에이전트 계약입니다. pip install datamimic-ce로 CE를 설치하세요; 이 체크아웃 내부에서는 .venv/bin/datamimic을 사용하여 낡은 전역 설치가 사용 가능한 스키마나 명령을 변경하지 못하게 하세요.

CLI 도구가 필요한 것 / 계약:

  • 살아있는 구조적 표면 탐색: datamimic capabilities — 기본적으로 컴팩트한 머신 판독 가능 JSON 인덱스; --full은 전체 매니페스트, --section 은 단일 섹션
  • 인텐트 모델을 점진적으로 학습: datamimic reference authoring, 이후 datamimic reference authoring --category --kind — 쿼리 카탈로그에서 시작한 뒤 필요한 타입 조각만 로드
  • 새 모델 작성: model.dm.json을 보존; datamimic scaffold model.dm.json --format json 실행 — 변경 시도마다 하나의 컴파일/린트/제한 실행/검수 트랜잭션. verified=true이면 중단; 생성된 XML은 실행됨
원문 보기
원문 보기 (영어)
DATAMIMIC — Governed Test Data for Regulated Enterprises This repository contains the DATAMIMIC Community Edition (CE). MIT-licensed, Python-native, MCP-ready. CE is fully usable standalone for deterministic synthetic data generation and PII-aware pseudonymization. The Enterprise Platform adds governed workflows, PII scanning, role-based access, audit logging, scheduling, multi-system execution, and the full operational layer that regulated enterprises require. 👉 Enterprise Platform: datamimic.io | 📘 Docs: docs.datamimic.io | 📅 Book a strategy call: datamimic.io/contact 🤖 AI agent? Start at AGENTS.md and use the project CLI: preserve new intent as model.dm.json , submit an early best attempt via datamimic scaffold ... --format json , repair from the structured issues, declare an expectation per stated requirement, and stop on verified=true . Existing raw XML uses lint plus bounded dry-run. What is DATAMIMIC? DATAMIMIC CE is the open-source deterministic data engine at the core of the DATAMIMIC Enterprise Platform. It is usable standalone for synthetic data generation and PII-aware pseudonymization in any local, CI, or agent-driven workflow. The Enterprise Platform adds the governed workflows, scanners, dashboards, and execution layer that regulated enterprises require for production-scale test-data operations. Available in CE (this repo): Generate fully synthetic, deterministic datasets — model-driven, no source data required Pseudonymize staging/QA exports — deterministic (seeded) or privacy-maximized (non-seeded) field transformation; PII fields identified and modeled manually in the XML pipeline Execute single-system pipelines against PostgreSQL · MySQL · Oracle · MS SQL · SQLite · MongoDB · CSV · JSON · XML · XLSX · DbUnit · fixed-width ( .fcw ) Model behavior — weighted state machines, composite multi-field references, control flow ( <while> , <assert> ), and a scriptable memstore for staged aggregation Emit provenance — append-only execution logs and per-output content hash for audit re-execution Guide agents — machine-readable capabilities, progressive reference queries, and one canonical CLI scaffold transaction; an optional MCP adapter exposes the same authoring service The Enterprise Platform adds: PII scanner — probability-scored field detection with configurable thresholds via DataWorkbench Multi-system execution — Oracle / MongoDB / Kafka in coordinated workflows with referential integrity Industry message templates — EDIFACT / SWIFT MT / HL7 v2.x / HL7 FHIR generated as deterministic test/training artefacts Governance layer — role-based dashboards, audit trails, approval flows, reusable enterprise templates, scheduler Performance core — Rust fastpath, ML/auto-regressive engine for complex distributions, keyset and manifest building, optimised distributed execution On-premise / air-gapped deployment — podman-compose or Helm, with consulting-led rollout Deployed in regulated EU banking environments for deterministic test data across Oracle, MongoDB, and Kafka pipelines. Reference customers available under NDA — see also datamimic.io case studies . AI agents: author, verify, and run data models The CLI is the baseline agent contract. Install CE with pip install datamimic-ce ; inside this checkout, use .venv/bin/datamimic so a stale global installation cannot change the available schema or commands. Need CLI tool Contract Discover the live structural surface datamimic capabilities Compact machine-readable JSON index by default; --full for the complete manifest, --section <name> for one section. Learn the Intent Model progressively datamimic reference authoring , then datamimic reference authoring --category <category> --kind <kind> Start with the query catalogue, then load only the typed fragment needed. Author a new model Preserve model.dm.json ; run datamimic scaffold model.dm.json --format json One compile/lint/bounded-run/acceptance transaction per changed attempt. Stop on verified=true ; generated XML is runtime output. Work with existing raw XML datamimic lint model.xml --format json , then datamimic dry-run model.xml --format json Fix diagnostics, inspect bounded samples for intent, then use datamimic run model.xml only when real execution is requested. Find a DSL detail datamimic reference overview , then a narrow reference topic/name Query the live model and rule registries instead of guessing elements, generators, scope, distributions, or rules. capabilities , authoring-reference projections, and the commands shown with --format json return machine-readable JSON. On a failed scaffold attempt, change model.dm.json using its structured validation issues, typed repair, or rule diagnostics before retrying. A typed max_count remediation instead changes only the bounded scaffold parameter to at least its reported minimum. Never repeat an identical failed call. A successful scaffold result is terminal for authoring, so do not lint or dry-run its generated XML again. Exact source fragments are discoverable through queries such as --category source --kind memstore . Optional MCP adapter When the calling environment already exposes DATAMIMIC MCP tools, they map to the same canonical contracts and implementations: reference → datamimic_reference , scaffold → datamimic_scaffold , lint → datamimic_check , and dry-run → datamimic_run . Install the adapter with pip install "datamimic-ce[mcp]" ; registration details belong in the MCP quickstart , not in the authoring workflow. The adapter intentionally exposes only the four canonical reference, scaffold, check, and bounded-run operations; domain generation remains a Python/CLI capability rather than a parallel MCP authoring path. Prompts to paste into your agent Author and verify a new model Create the dataset I describe with DATAMIMIC. Read AGENTS.md first. In a repository checkout use `.venv/bin/datamimic`; otherwise use the current `datamimic` CLI. Preserve my intent as `model.dm.json`; do not hand-write XML. Start from the minimal valid document shape in AGENTS.md ("Authoring a new model"). Two rules prevent most rejections: the top level allows ONLY version, seed, products, expectations; product-level "kind" (generated/source/time_series) is a different vocabulary from field-level "kind" (increment, values, weighted, int_range, decimal_range, pattern, constant, script). Range fields take minimum/maximum, never min/max. Submit EARLY: run `datamimic scaffold model.dm.json --format json` with your best attempt after at most one discovery call. Repair from the structured issues (path/code/message/allowed_fields) and diagnostics (fix_hint) — they teach the schema faster than more discovery. Never resubmit an unchanged document. If a remediation requests a larger max_count, retry scaffold with at least that value without changing the intent. Declare an expectation for every requirement I state (counts as exact_count with a "count" field, uniqueness, allowed values, ranges, foreign keys) — verified=true certifies only what you declared. Stop on verified=true; do not lint or dry-run the generated XML. If I request real execution, save the returned XML as a generated artifact and run that descriptor. Return the model.dm.json path and concise verification evidence. Relational hierarchy with referential integrity (fully supported — no XML needed) Seed a relational dataset with referential integrity: 4 customers, each with exactly 2 orders. Customers get an incrementing unique id and a region from {north, south, east, west}. Each order carries the REAL parent customer id as a foreign key and an amount between 10.0 and 500.0. Follow AGENTS.md's "Authoring a new model" and its structural recipes: orders nest inside the customer product's "children" array; the FK field is {"kind": "script", "script": "parent.id"} with a foreign_key role — a randomly generated FK passes schema validation but fails per-parent-count acceptance. Declare expectations for the customer count, customer id uniqueness, exactly