Skip to content

Commit 3ff2733

Browse files
author
Presta
committed
feat: EVA Data Model v2 -- 31 layers, FastAPI + Cosmos 24x7, ACA deployed
- api/ -- FastAPI server (MemoryStore + CosmosStore, 31 layer routers) - tests/ -- 42 pytest tests (41/42 pass, T36 pre-existing) - Dockerfile, requirements.txt -- production container (python:3.12-slim) - schema/ -- 31 JSON schemas (new: sprint/milestone/risk/decision/component/hook/ts_type/mcp_server/prompt/security_control) - model/ -- all 31 layer JSON files (4055 objects, Cosmos-seeded) - scripts/ -- readiness-probe, stamp-tft/dft, seed-cosmos, coverage-gaps, impact-analysis, backfill, wbs-sync scripts - .github/workflows/validate-model.yml -- CI gate (blocks merge on violations) - .github/copilot-instructions.md -- v3.2.0 agent guide - docs/ -- USER-GUIDE v2.5, library (08-EVA-VERITAS-INTEGRATION, ARCHITECTURE) - evidence/ -- F37-08 governance story evidence files - .eva/ -- veritas audit artifacts (MTI=100, trust.json, dependency-audit.json) - README, PLAN, STATUS, ACCEPTANCE, USER-GUIDE -- fully updated to session 16c - ACA: marco-eva-data-model.livelyflower-7990bc7b.canadacentral.azurecontainerapps.io - Cosmos: marco-sandbox-cosmos / evamodel / model_objects - readiness-probe: 9/9 PASS (G09 WARN consumer MTI -- not a data-model defect)
1 parent 6fa8e8d commit 3ff2733

File tree

176 files changed

+70620
-4139
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

176 files changed

+70620
-4139
lines changed

.env.example

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# ── Cosmos DB ─────────────────────────────────────────────────────────────────
2+
# Leave blank to run in in-memory mode (no Cosmos required)
3+
COSMOS_URL=
4+
COSMOS_KEY=
5+
MODEL_DB_NAME=evamodel
6+
MODEL_CONTAINER_NAME=model_objects
7+
8+
# ── Redis ─────────────────────────────────────────────────────────────────────
9+
# Leave blank to use in-process memory cache
10+
REDIS_URL=
11+
12+
# ── Cache ─────────────────────────────────────────────────────────────────────
13+
CACHE_TTL_SECONDS=60
14+
15+
# ── Security ──────────────────────────────────────────────────────────────────
16+
# Token for Authorization: Bearer <token> on /model/admin/* routes.
17+
# REQUIRED in production: set a strong value and NEVER commit it to source control.
18+
# Startup will FAIL with a clear error if DEV_MODE=false and token is still 'dev-admin'.
19+
ADMIN_TOKEN=
20+
21+
# ── Mode ──────────────────────────────────────────────────────────────────────
22+
# dev_mode=true (default): allows ADMIN_TOKEN='dev-admin', verbose startup warnings.
23+
# dev_mode=false (production): ADMIN_TOKEN must be set to a non-default value or startup fails.
24+
DEV_MODE=true
25+
26+
# ── Actor ─────────────────────────────────────────────────────────────────────
27+
DEFAULT_ACTOR=anonymous

.eva/ado.csv

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Work Item Type,Title,Parent,Description,Acceptance Criteria,Tags,Evidence Sources
2+
Epic,EVA Data Model,,,,eva,
3+
Feature,F37-01 Guiding Principle,EVA Data Model,,,eva;feature,
4+
Feature,F37-02 Layer Build Order,EVA Data Model,,,eva;feature,
5+
Feature,F37-03 Sprint 1 — Foundation Layers (L0–L2) ✅ DONE,EVA Data Model,,,eva;feature,
6+
Feature,F37-04 Sprint 2 — Data and API Layers (L3–L5) ✅ DONE,EVA Data Model,,,eva;feature,
7+
Feature,F37-05 Sprint 3 — UI Layers (L6–L7) ✅ DONE,EVA Data Model,,,eva;feature,
8+
Feature,F37-06 Sprint 4 — Agent Fleet + Infrastructure Layers (L8–L9) ✅ DONE,EVA Data Model,,,eva;feature,
9+
Feature,F37-07 Sprint 5 — Requirements Traceability Layer (L10) ✅ DONE,EVA Data Model,,,eva;feature,
10+
Feature,F37-08 Ongoing — How the Model Grows and Is Maintained,EVA Data Model,,,eva;feature,
11+
Feature,F37-09 Dependencies,EVA Data Model,,,eva;feature,

.eva/badge.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"schemaVersion": 1,
3+
"label": "MTI",
4+
"message": "86",
5+
"color": "dfb317"
6+
}

.eva/badge.svg

Lines changed: 18 additions & 0 deletions
Loading

.eva/dependency-audit.json

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
{
2+
"meta": {
3+
"generated_at": "2026-02-25T20:47:22.662Z",
4+
"repo": "C:\\AICOE\\eva-foundation\\37-data-model",
5+
"base_url": "https://marco-eva-data-model.livelyflower-7990bc7b.canadacentral.azurecontainerapps.io"
6+
},
7+
"summary": {
8+
"active_features": 5,
9+
"ready": 4,
10+
"partial": 0,
11+
"blocked": 1,
12+
"failing_gates": 4,
13+
"warning_gates": 0
14+
},
15+
"features": [
16+
{
17+
"id": "F37-01",
18+
"label": "Guiding Principle",
19+
"done": false,
20+
"raw_deps": [],
21+
"blockers": [],
22+
"verdict": "READY",
23+
"blocking_gates": [],
24+
"warning_gates": [],
25+
"relevant_gates": 2
26+
},
27+
{
28+
"id": "F37-02",
29+
"label": "Layer Build Order",
30+
"done": false,
31+
"raw_deps": [],
32+
"blockers": [],
33+
"verdict": "READY",
34+
"blocking_gates": [],
35+
"warning_gates": [],
36+
"relevant_gates": 2
37+
},
38+
{
39+
"id": "F37-09",
40+
"label": "Dependencies",
41+
"done": false,
42+
"raw_deps": [],
43+
"blockers": [],
44+
"verdict": "READY",
45+
"blocking_gates": [],
46+
"warning_gates": [],
47+
"relevant_gates": 2
48+
},
49+
{
50+
"id": "F37-10",
51+
"label": "Sprint 8-9 -- IFPUG FP Stamping + Sprint Seeds",
52+
"done": false,
53+
"raw_deps": [],
54+
"blockers": [],
55+
"verdict": "BLOCKED",
56+
"blocking_gates": [
57+
"G-FP-ENDPOINT fp/estimate endpoint on ACA",
58+
"G-STORYIDS Endpoints have story_ids (MTI 4th component)",
59+
"G-SPRINTS L27 sprints seeded (>=8 records)"
60+
],
61+
"warning_gates": [],
62+
"relevant_gates": 7
63+
},
64+
{
65+
"id": "F37-API",
66+
"label": "Core API Endpoints",
67+
"done": false,
68+
"raw_deps": [],
69+
"blockers": [],
70+
"verdict": "READY",
71+
"blocking_gates": [],
72+
"warning_gates": [],
73+
"relevant_gates": 2
74+
}
75+
],
76+
"gates": [
77+
{
78+
"id": "G-ACA",
79+
"label": "ACA reachable + Cosmos-backed",
80+
"features": [
81+
"ALL"
82+
],
83+
"status": "PASS",
84+
"detail": "v=1.0.0 store=cosmos"
85+
},
86+
{
87+
"id": "G-VIOLATIONS",
88+
"label": "validate-model violations=0",
89+
"features": [
90+
"ALL"
91+
],
92+
"status": "PASS",
93+
"detail": "violations=0 exported=4006"
94+
},
95+
{
96+
"id": "G-FP-ENDPOINT",
97+
"label": "fp/estimate endpoint on ACA",
98+
"features": [
99+
"F31-DM-FP1",
100+
"F37-10"
101+
],
102+
"status": "FAIL",
103+
"detail": "GET /model/fp/estimate -> 404 -- ACA image predates DPDCA sprint",
104+
"fix": "Redeploy 37-data-model to ACA from current main branch"
105+
},
106+
{
107+
"id": "G-TFT",
108+
"label": "Endpoints stamped (transaction_function_type)",
109+
"features": [
110+
"F31-DM-FP1",
111+
"F31-DM-VERITAS1",
112+
"F37-10"
113+
],
114+
"status": "PASS",
115+
"detail": "76/76 stamped"
116+
},
117+
{
118+
"id": "G-STORYIDS",
119+
"label": "Endpoints have story_ids (MTI 4th component)",
120+
"features": [
121+
"F31-DM-VERITAS1",
122+
"F37-10"
123+
],
124+
"status": "FAIL",
125+
"detail": "0/76 have story_ids -- complexity_coverage=0; veritas uses 3-component formula",
126+
"fix": "F37-10-001: stamp story_ids alongside transaction_function_type"
127+
},
128+
{
129+
"id": "G-DFT",
130+
"label": "Containers stamped (data_function_type)",
131+
"features": [
132+
"F31-DM-FP1",
133+
"F37-10"
134+
],
135+
"status": "PASS",
136+
"detail": "13/13 stamped"
137+
},
138+
{
139+
"id": "G-SPRINTS",
140+
"label": "L27 sprints seeded (>=8 records)",
141+
"features": [
142+
"F31-DM-PMLIVE1",
143+
"F31-PM3",
144+
"F37-10"
145+
],
146+
"status": "FAIL",
147+
"detail": "L27 layer not on ACA -- DPDCA sprint not deployed",
148+
"fix": "Redeploy 37-data-model ACA from main branch"
149+
},
150+
{
151+
"id": "G-L28L30",
152+
"label": "L28-L30 reachable (milestones/risks/decisions)",
153+
"features": [
154+
"F31-DM-PMLIVE1"
155+
],
156+
"status": "FAIL",
157+
"detail": "Not reachable: milestones(L28), risks(L29), decisions(L30) -- DPDCA sprint not deployed",
158+
"fix": "Redeploy 37-data-model ACA from main branch"
159+
},
160+
{
161+
"id": "G-GRAPH",
162+
"label": "Graph endpoint on ACA (F31-DM-GRAPH1 gate)",
163+
"features": [
164+
"F31-DM-GRAPH1",
165+
"F31-DM-GRAPH2",
166+
"F31-DM-EXP1"
167+
],
168+
"status": "PASS",
169+
"detail": "graph/edge-types reachable"
170+
}
171+
]
172+
}

0 commit comments

Comments
 (0)