Files
KArtSell.Aegis/contracts
kjh2064 a7f4ec8759 feat(wbs): AEG-VS-01-02 Identity & Access Control data contract
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>
2026-08-17 17:26:55 +09:00
..
2026-08-02 05:15:36 +09:00
2026-08-02 05:15:36 +09:00
2026-08-02 05:15:36 +09:00
2026-08-02 05:15:36 +09:00

Versioned contracts

This directory is the machine-readable contract surface for policy, event and outcome-metric definitions.

  • policies/sell-policy-contract.v1.json: approved research-candidate implementation values; SHA-256 a269a0331b83c0f6ec108e7587de1d20c798036ff8d0c03d726cd854e73d8480.
  • events/signal-decision-created.v2.schema.json: immutable outbox payload contract.
  • metrics/outcome-metrics.v1.json: proposed metric definitions; Quant/Risk approval is still required.

The C# constants are intentionally checked against the policy JSON by scripts/validate_v123.py. A changed value without a Model Change record, Golden vectors and OOS impact evidence blocks G2.