a7f4ec8759
AEG-VS-01-02: Data Schema & Contract Definition Implementation: 1. db/migrations/0042_iam_tables.sql - identity table: PIT versioning (published_at, revision_version) - role table: Hierarchy levels (GUEST/USER/OPERATOR/ADMIN/SUPER_ADMIN) - role_assignment table: Maker-Checker workflow (PENDING_APPROVAL → ACTIVE) - permission table: Granular permissions (RESOURCE:ACTION) - role_permission table: M:N role-to-permission mapping - mfa_device table: TOTP/WebAuthn/SMS/EMAIL support 2. contracts/data/identity-data-contract.v1.json - Full JSON Schema for 5 tables - PIT (Point-in-Time) versioning strategy - Maker-Checker workflow constraints - Unique constraints (username, email, role_name, resource+action) - Referential integrity (cascade on delete) - Lineage: upstream (OIDC), downstream (Auth middleware, Authorization policy) - Quality rules: no circular hierarchies, MFA verification, approval counts Principles Applied: - 정규화: 5NF (identity/role/permission separation) - 역정규화: role_assignment.approved_by_identity_ids (array for audit) - 정공법: Maker-Checker enforced at schema level (approval_count constraint) - 안정성: Immutable append-only (published_at, revision_version) - 데이터 정합성: referential integrity, unique constraints, quality rules Next: AEG-VS-01-03 (Domain Policy Implementation) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>