@soddong/agentic-contract-validation 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +157 -0
- package/dist/database.d.ts +17 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +76 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +21 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +173 -0
- package/dist/registry.js.map +1 -0
- package/dist/seed-apply.d.ts +22 -0
- package/dist/seed-apply.d.ts.map +1 -0
- package/dist/seed-apply.js +198 -0
- package/dist/seed-apply.js.map +1 -0
- package/docs/build.md +25 -0
- package/docs/configuration.md +18 -0
- package/docs/delivery.md +9 -0
- package/docs/operations.md +7 -0
- package/docs/publishing.md +11 -0
- package/docs/schema/generated/README.md +22 -0
- package/docs/schema/generated/schema.json +563 -0
- package/docs/schema/generated/schema.mmd +48 -0
- package/docs/schema/generated/schema.svg +83 -0
- package/docs/schema/generated/validation_contract_profiles.md +72 -0
- package/docs/schema/generated/validation_contract_profiles.svg +71 -0
- package/docs/schema/generated/validation_contract_provider_manifests.md +62 -0
- package/docs/schema/generated/validation_contract_provider_manifests.svg +49 -0
- package/docs/schema/generated/validation_contract_rules.md +91 -0
- package/docs/schema/generated/validation_contract_rules.svg +52 -0
- package/docs/schema/generated/validation_contract_schema_migrations.md +47 -0
- package/docs/schema/generated/validation_contract_schema_migrations.svg +27 -0
- package/docs/usage.md +55 -0
- package/package.json +27 -0
- package/src/database/migrations/0001_validation_contract_registry.sql +78 -0
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agentic-contract-validation",
|
|
3
|
+
"desc": "Agentic Platform validation contract registry database.",
|
|
4
|
+
"tables": [
|
|
5
|
+
{
|
|
6
|
+
"name": "validation_contract_schema_migrations",
|
|
7
|
+
"type": "table",
|
|
8
|
+
"comment": "validation contract registry migration 적용 이력을 관리한다.",
|
|
9
|
+
"columns": [
|
|
10
|
+
{
|
|
11
|
+
"name": "migration_id",
|
|
12
|
+
"type": "VARCHAR(128)",
|
|
13
|
+
"nullable": true
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "migration_name",
|
|
17
|
+
"type": "VARCHAR(256)",
|
|
18
|
+
"nullable": false
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "applied_at",
|
|
22
|
+
"type": "DATETIME",
|
|
23
|
+
"nullable": false,
|
|
24
|
+
"default": "CURRENT_TIMESTAMP"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"indexes": [
|
|
28
|
+
{
|
|
29
|
+
"name": "sqlite_autoindex_validation_contract_schema_migrations_1",
|
|
30
|
+
"def": "PRIMARY KEY (migration_id)",
|
|
31
|
+
"table": "validation_contract_schema_migrations",
|
|
32
|
+
"columns": [
|
|
33
|
+
"migration_id"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"constraints": [
|
|
38
|
+
{
|
|
39
|
+
"name": "migration_id",
|
|
40
|
+
"type": "PRIMARY KEY",
|
|
41
|
+
"def": "PRIMARY KEY (migration_id)",
|
|
42
|
+
"table": "validation_contract_schema_migrations",
|
|
43
|
+
"columns": [
|
|
44
|
+
"migration_id"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "sqlite_autoindex_validation_contract_schema_migrations_1",
|
|
49
|
+
"type": "PRIMARY KEY",
|
|
50
|
+
"def": "PRIMARY KEY (migration_id)",
|
|
51
|
+
"table": "validation_contract_schema_migrations",
|
|
52
|
+
"columns": [
|
|
53
|
+
"migration_id"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"def": "CREATE TABLE validation_contract_schema_migrations (\n migration_id VARCHAR(128) PRIMARY KEY,\n migration_name VARCHAR(256) NOT NULL,\n applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP\n)"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "validation_contract_provider_manifests",
|
|
61
|
+
"type": "table",
|
|
62
|
+
"comment": "validation provider manifest를 관리한다.",
|
|
63
|
+
"columns": [
|
|
64
|
+
{
|
|
65
|
+
"name": "provider_manifest_id",
|
|
66
|
+
"type": "CHAR(36)",
|
|
67
|
+
"nullable": true
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "provider_id",
|
|
71
|
+
"type": "VARCHAR(256)",
|
|
72
|
+
"nullable": false
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "provider_module",
|
|
76
|
+
"type": "VARCHAR(256)",
|
|
77
|
+
"nullable": false
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "provider_version",
|
|
81
|
+
"type": "VARCHAR(64)",
|
|
82
|
+
"nullable": false
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "created_at",
|
|
86
|
+
"type": "DATETIME",
|
|
87
|
+
"nullable": false,
|
|
88
|
+
"default": "CURRENT_TIMESTAMP"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"name": "updated_at",
|
|
92
|
+
"type": "DATETIME",
|
|
93
|
+
"nullable": false,
|
|
94
|
+
"default": "CURRENT_TIMESTAMP"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "metadata_json",
|
|
98
|
+
"type": "JSON",
|
|
99
|
+
"nullable": true
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"indexes": [
|
|
103
|
+
{
|
|
104
|
+
"name": "sqlite_autoindex_validation_contract_provider_manifests_2",
|
|
105
|
+
"def": "UNIQUE (provider_id, provider_version)",
|
|
106
|
+
"table": "validation_contract_provider_manifests",
|
|
107
|
+
"columns": [
|
|
108
|
+
"provider_id",
|
|
109
|
+
"provider_version"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "sqlite_autoindex_validation_contract_provider_manifests_1",
|
|
114
|
+
"def": "PRIMARY KEY (provider_manifest_id)",
|
|
115
|
+
"table": "validation_contract_provider_manifests",
|
|
116
|
+
"columns": [
|
|
117
|
+
"provider_manifest_id"
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
"constraints": [
|
|
122
|
+
{
|
|
123
|
+
"name": "provider_manifest_id",
|
|
124
|
+
"type": "PRIMARY KEY",
|
|
125
|
+
"def": "PRIMARY KEY (provider_manifest_id)",
|
|
126
|
+
"table": "validation_contract_provider_manifests",
|
|
127
|
+
"columns": [
|
|
128
|
+
"provider_manifest_id"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "sqlite_autoindex_validation_contract_provider_manifests_2",
|
|
133
|
+
"type": "UNIQUE",
|
|
134
|
+
"def": "UNIQUE (provider_id, provider_version)",
|
|
135
|
+
"table": "validation_contract_provider_manifests",
|
|
136
|
+
"columns": [
|
|
137
|
+
"provider_id",
|
|
138
|
+
"provider_version"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "sqlite_autoindex_validation_contract_provider_manifests_1",
|
|
143
|
+
"type": "PRIMARY KEY",
|
|
144
|
+
"def": "PRIMARY KEY (provider_manifest_id)",
|
|
145
|
+
"table": "validation_contract_provider_manifests",
|
|
146
|
+
"columns": [
|
|
147
|
+
"provider_manifest_id"
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "-",
|
|
152
|
+
"type": "CHECK",
|
|
153
|
+
"def": "CHECK (length(provider_manifest_id) = 36)",
|
|
154
|
+
"table": "validation_contract_provider_manifests",
|
|
155
|
+
"columns": [
|
|
156
|
+
"provider_manifest_id"
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "-",
|
|
161
|
+
"type": "CHECK",
|
|
162
|
+
"def": "CHECK (metadata_json IS NULL OR json_valid(metadata_json))",
|
|
163
|
+
"table": "validation_contract_provider_manifests",
|
|
164
|
+
"columns": [
|
|
165
|
+
"metadata_json"
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"def": "CREATE TABLE validation_contract_provider_manifests (\n provider_manifest_id CHAR(36) PRIMARY KEY\n CHECK (length(provider_manifest_id) = 36),\n provider_id VARCHAR(256) NOT NULL,\n provider_module VARCHAR(256) NOT NULL,\n provider_version VARCHAR(64) NOT NULL,\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n metadata_json JSON\n CHECK (metadata_json IS NULL OR json_valid(metadata_json)),\n UNIQUE (provider_id, provider_version)\n)"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "validation_contract_profiles",
|
|
173
|
+
"type": "table",
|
|
174
|
+
"comment": "provider manifest가 제공하는 validation profile을 관리한다.",
|
|
175
|
+
"columns": [
|
|
176
|
+
{
|
|
177
|
+
"name": "validation_profile_id",
|
|
178
|
+
"type": "CHAR(36)",
|
|
179
|
+
"nullable": true
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"name": "provider_manifest_id",
|
|
183
|
+
"type": "CHAR(36)",
|
|
184
|
+
"nullable": false
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "profile_id",
|
|
188
|
+
"type": "VARCHAR(256)",
|
|
189
|
+
"nullable": false
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "provider_module",
|
|
193
|
+
"type": "VARCHAR(256)",
|
|
194
|
+
"nullable": false
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "target_domain",
|
|
198
|
+
"type": "VARCHAR(128)",
|
|
199
|
+
"nullable": false
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"name": "created_at",
|
|
203
|
+
"type": "DATETIME",
|
|
204
|
+
"nullable": false,
|
|
205
|
+
"default": "CURRENT_TIMESTAMP"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"name": "updated_at",
|
|
209
|
+
"type": "DATETIME",
|
|
210
|
+
"nullable": false,
|
|
211
|
+
"default": "CURRENT_TIMESTAMP"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "metadata_json",
|
|
215
|
+
"type": "JSON",
|
|
216
|
+
"nullable": true
|
|
217
|
+
}
|
|
218
|
+
],
|
|
219
|
+
"indexes": [
|
|
220
|
+
{
|
|
221
|
+
"name": "idx_validation_contract_profiles_target",
|
|
222
|
+
"def": "CREATE INDEX idx_validation_contract_profiles_target\n ON validation_contract_profiles (target_domain)",
|
|
223
|
+
"table": "validation_contract_profiles",
|
|
224
|
+
"columns": [
|
|
225
|
+
"target_domain"
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"name": "idx_validation_contract_profiles_provider",
|
|
230
|
+
"def": "CREATE INDEX idx_validation_contract_profiles_provider\n ON validation_contract_profiles (provider_manifest_id)",
|
|
231
|
+
"table": "validation_contract_profiles",
|
|
232
|
+
"columns": [
|
|
233
|
+
"provider_manifest_id"
|
|
234
|
+
]
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"name": "sqlite_autoindex_validation_contract_profiles_2",
|
|
238
|
+
"def": "UNIQUE (provider_manifest_id, profile_id)",
|
|
239
|
+
"table": "validation_contract_profiles",
|
|
240
|
+
"columns": [
|
|
241
|
+
"provider_manifest_id",
|
|
242
|
+
"profile_id"
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"name": "sqlite_autoindex_validation_contract_profiles_1",
|
|
247
|
+
"def": "PRIMARY KEY (validation_profile_id)",
|
|
248
|
+
"table": "validation_contract_profiles",
|
|
249
|
+
"columns": [
|
|
250
|
+
"validation_profile_id"
|
|
251
|
+
]
|
|
252
|
+
}
|
|
253
|
+
],
|
|
254
|
+
"constraints": [
|
|
255
|
+
{
|
|
256
|
+
"name": "validation_profile_id",
|
|
257
|
+
"type": "PRIMARY KEY",
|
|
258
|
+
"def": "PRIMARY KEY (validation_profile_id)",
|
|
259
|
+
"table": "validation_contract_profiles",
|
|
260
|
+
"columns": [
|
|
261
|
+
"validation_profile_id"
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"name": "- (Foreign key ID: 0)",
|
|
266
|
+
"type": "FOREIGN KEY",
|
|
267
|
+
"def": "FOREIGN KEY (provider_manifest_id) REFERENCES validation_contract_provider_manifests (provider_manifest_id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE",
|
|
268
|
+
"table": "validation_contract_profiles",
|
|
269
|
+
"referenced_table": "validation_contract_provider_manifests",
|
|
270
|
+
"columns": [
|
|
271
|
+
"provider_manifest_id"
|
|
272
|
+
],
|
|
273
|
+
"referenced_columns": [
|
|
274
|
+
"provider_manifest_id"
|
|
275
|
+
]
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"name": "sqlite_autoindex_validation_contract_profiles_2",
|
|
279
|
+
"type": "UNIQUE",
|
|
280
|
+
"def": "UNIQUE (provider_manifest_id, profile_id)",
|
|
281
|
+
"table": "validation_contract_profiles",
|
|
282
|
+
"columns": [
|
|
283
|
+
"provider_manifest_id",
|
|
284
|
+
"profile_id"
|
|
285
|
+
]
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"name": "sqlite_autoindex_validation_contract_profiles_1",
|
|
289
|
+
"type": "PRIMARY KEY",
|
|
290
|
+
"def": "PRIMARY KEY (validation_profile_id)",
|
|
291
|
+
"table": "validation_contract_profiles",
|
|
292
|
+
"columns": [
|
|
293
|
+
"validation_profile_id"
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"name": "-",
|
|
298
|
+
"type": "CHECK",
|
|
299
|
+
"def": "CHECK (length(validation_profile_id) = 36)",
|
|
300
|
+
"table": "validation_contract_profiles",
|
|
301
|
+
"columns": [
|
|
302
|
+
"validation_profile_id",
|
|
303
|
+
"profile_id"
|
|
304
|
+
]
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"name": "-",
|
|
308
|
+
"type": "CHECK",
|
|
309
|
+
"def": "CHECK (length(provider_manifest_id) = 36)",
|
|
310
|
+
"table": "validation_contract_profiles",
|
|
311
|
+
"columns": [
|
|
312
|
+
"provider_manifest_id"
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"name": "-",
|
|
317
|
+
"type": "CHECK",
|
|
318
|
+
"def": "CHECK (metadata_json IS NULL OR json_valid(metadata_json))",
|
|
319
|
+
"table": "validation_contract_profiles",
|
|
320
|
+
"columns": [
|
|
321
|
+
"metadata_json"
|
|
322
|
+
]
|
|
323
|
+
}
|
|
324
|
+
],
|
|
325
|
+
"def": "CREATE TABLE validation_contract_profiles (\n validation_profile_id CHAR(36) PRIMARY KEY\n CHECK (length(validation_profile_id) = 36),\n provider_manifest_id CHAR(36) NOT NULL\n CHECK (length(provider_manifest_id) = 36),\n profile_id VARCHAR(256) NOT NULL,\n provider_module VARCHAR(256) NOT NULL,\n target_domain VARCHAR(128) NOT NULL,\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n metadata_json JSON\n CHECK (metadata_json IS NULL OR json_valid(metadata_json)),\n FOREIGN KEY (provider_manifest_id)\n REFERENCES validation_contract_provider_manifests (provider_manifest_id)\n ON DELETE CASCADE,\n UNIQUE (provider_manifest_id, profile_id)\n)"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"name": "validation_contract_rules",
|
|
329
|
+
"type": "table",
|
|
330
|
+
"comment": "validation profile에 포함된 rule contract를 관리한다.",
|
|
331
|
+
"columns": [
|
|
332
|
+
{
|
|
333
|
+
"name": "validation_rule_id",
|
|
334
|
+
"type": "CHAR(36)",
|
|
335
|
+
"nullable": true
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"name": "validation_profile_id",
|
|
339
|
+
"type": "CHAR(36)",
|
|
340
|
+
"nullable": false
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"name": "rule_id",
|
|
344
|
+
"type": "VARCHAR(256)",
|
|
345
|
+
"nullable": false
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "provider_module",
|
|
349
|
+
"type": "VARCHAR(256)",
|
|
350
|
+
"nullable": false
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"name": "validation_type_code",
|
|
354
|
+
"type": "VARCHAR(64)",
|
|
355
|
+
"nullable": false
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"name": "execution_mode_code",
|
|
359
|
+
"type": "VARCHAR(64)",
|
|
360
|
+
"nullable": false
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"name": "severity_code",
|
|
364
|
+
"type": "VARCHAR(64)",
|
|
365
|
+
"nullable": false
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"name": "applies_to_type_code",
|
|
369
|
+
"type": "VARCHAR(128)",
|
|
370
|
+
"nullable": false
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"name": "applies_to_ref",
|
|
374
|
+
"type": "VARCHAR(256)",
|
|
375
|
+
"nullable": true
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"name": "source_component_ref",
|
|
379
|
+
"type": "VARCHAR(256)",
|
|
380
|
+
"nullable": true
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"name": "parameters_json",
|
|
384
|
+
"type": "JSON",
|
|
385
|
+
"nullable": true
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"name": "message",
|
|
389
|
+
"type": "TEXT",
|
|
390
|
+
"nullable": false
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"name": "remediation",
|
|
394
|
+
"type": "TEXT",
|
|
395
|
+
"nullable": true
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"name": "sort_order",
|
|
399
|
+
"type": "INTEGER",
|
|
400
|
+
"nullable": false,
|
|
401
|
+
"default": "0"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"name": "created_at",
|
|
405
|
+
"type": "DATETIME",
|
|
406
|
+
"nullable": false,
|
|
407
|
+
"default": "CURRENT_TIMESTAMP"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"name": "updated_at",
|
|
411
|
+
"type": "DATETIME",
|
|
412
|
+
"nullable": false,
|
|
413
|
+
"default": "CURRENT_TIMESTAMP"
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"name": "metadata_json",
|
|
417
|
+
"type": "JSON",
|
|
418
|
+
"nullable": true
|
|
419
|
+
}
|
|
420
|
+
],
|
|
421
|
+
"indexes": [
|
|
422
|
+
{
|
|
423
|
+
"name": "idx_validation_contract_rules_profile",
|
|
424
|
+
"def": "CREATE INDEX idx_validation_contract_rules_profile\n ON validation_contract_rules (validation_profile_id)",
|
|
425
|
+
"table": "validation_contract_rules",
|
|
426
|
+
"columns": [
|
|
427
|
+
"validation_profile_id"
|
|
428
|
+
]
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"name": "sqlite_autoindex_validation_contract_rules_2",
|
|
432
|
+
"def": "UNIQUE (validation_profile_id, rule_id)",
|
|
433
|
+
"table": "validation_contract_rules",
|
|
434
|
+
"columns": [
|
|
435
|
+
"validation_profile_id",
|
|
436
|
+
"rule_id"
|
|
437
|
+
]
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"name": "sqlite_autoindex_validation_contract_rules_1",
|
|
441
|
+
"def": "PRIMARY KEY (validation_rule_id)",
|
|
442
|
+
"table": "validation_contract_rules",
|
|
443
|
+
"columns": [
|
|
444
|
+
"validation_rule_id"
|
|
445
|
+
]
|
|
446
|
+
}
|
|
447
|
+
],
|
|
448
|
+
"constraints": [
|
|
449
|
+
{
|
|
450
|
+
"name": "validation_rule_id",
|
|
451
|
+
"type": "PRIMARY KEY",
|
|
452
|
+
"def": "PRIMARY KEY (validation_rule_id)",
|
|
453
|
+
"table": "validation_contract_rules",
|
|
454
|
+
"columns": [
|
|
455
|
+
"validation_rule_id"
|
|
456
|
+
]
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"name": "- (Foreign key ID: 0)",
|
|
460
|
+
"type": "FOREIGN KEY",
|
|
461
|
+
"def": "FOREIGN KEY (validation_profile_id) REFERENCES validation_contract_profiles (validation_profile_id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE",
|
|
462
|
+
"table": "validation_contract_rules",
|
|
463
|
+
"referenced_table": "validation_contract_profiles",
|
|
464
|
+
"columns": [
|
|
465
|
+
"validation_profile_id"
|
|
466
|
+
],
|
|
467
|
+
"referenced_columns": [
|
|
468
|
+
"validation_profile_id"
|
|
469
|
+
]
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"name": "sqlite_autoindex_validation_contract_rules_2",
|
|
473
|
+
"type": "UNIQUE",
|
|
474
|
+
"def": "UNIQUE (validation_profile_id, rule_id)",
|
|
475
|
+
"table": "validation_contract_rules",
|
|
476
|
+
"columns": [
|
|
477
|
+
"validation_profile_id",
|
|
478
|
+
"rule_id"
|
|
479
|
+
]
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"name": "sqlite_autoindex_validation_contract_rules_1",
|
|
483
|
+
"type": "PRIMARY KEY",
|
|
484
|
+
"def": "PRIMARY KEY (validation_rule_id)",
|
|
485
|
+
"table": "validation_contract_rules",
|
|
486
|
+
"columns": [
|
|
487
|
+
"validation_rule_id"
|
|
488
|
+
]
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"name": "-",
|
|
492
|
+
"type": "CHECK",
|
|
493
|
+
"def": "CHECK (length(validation_rule_id) = 36)",
|
|
494
|
+
"table": "validation_contract_rules",
|
|
495
|
+
"columns": [
|
|
496
|
+
"validation_rule_id",
|
|
497
|
+
"rule_id"
|
|
498
|
+
]
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"name": "-",
|
|
502
|
+
"type": "CHECK",
|
|
503
|
+
"def": "CHECK (length(validation_profile_id) = 36)",
|
|
504
|
+
"table": "validation_contract_rules",
|
|
505
|
+
"columns": [
|
|
506
|
+
"validation_profile_id"
|
|
507
|
+
]
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"name": "-",
|
|
511
|
+
"type": "CHECK",
|
|
512
|
+
"def": "CHECK (parameters_json IS NULL OR json_valid(parameters_json))",
|
|
513
|
+
"table": "validation_contract_rules",
|
|
514
|
+
"columns": [
|
|
515
|
+
"parameters_json"
|
|
516
|
+
]
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"name": "-",
|
|
520
|
+
"type": "CHECK",
|
|
521
|
+
"def": "CHECK (metadata_json IS NULL OR json_valid(metadata_json))",
|
|
522
|
+
"table": "validation_contract_rules",
|
|
523
|
+
"columns": [
|
|
524
|
+
"metadata_json"
|
|
525
|
+
]
|
|
526
|
+
}
|
|
527
|
+
],
|
|
528
|
+
"def": "CREATE TABLE validation_contract_rules (\n validation_rule_id CHAR(36) PRIMARY KEY\n CHECK (length(validation_rule_id) = 36),\n validation_profile_id CHAR(36) NOT NULL\n CHECK (length(validation_profile_id) = 36),\n rule_id VARCHAR(256) NOT NULL,\n provider_module VARCHAR(256) NOT NULL,\n validation_type_code VARCHAR(64) NOT NULL,\n execution_mode_code VARCHAR(64) NOT NULL,\n severity_code VARCHAR(64) NOT NULL,\n applies_to_type_code VARCHAR(128) NOT NULL,\n applies_to_ref VARCHAR(256),\n source_component_ref VARCHAR(256),\n parameters_json JSON\n CHECK (parameters_json IS NULL OR json_valid(parameters_json)),\n message TEXT NOT NULL,\n remediation TEXT,\n sort_order INTEGER NOT NULL DEFAULT 0,\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n metadata_json JSON\n CHECK (metadata_json IS NULL OR json_valid(metadata_json)),\n FOREIGN KEY (validation_profile_id)\n REFERENCES validation_contract_profiles (validation_profile_id)\n ON DELETE CASCADE,\n UNIQUE (validation_profile_id, rule_id)\n)"
|
|
529
|
+
}
|
|
530
|
+
],
|
|
531
|
+
"relations": [
|
|
532
|
+
{
|
|
533
|
+
"table": "validation_contract_profiles",
|
|
534
|
+
"columns": [
|
|
535
|
+
"provider_manifest_id"
|
|
536
|
+
],
|
|
537
|
+
"cardinality": "zero_or_more",
|
|
538
|
+
"parent_table": "validation_contract_provider_manifests",
|
|
539
|
+
"parent_columns": [
|
|
540
|
+
"provider_manifest_id"
|
|
541
|
+
],
|
|
542
|
+
"parent_cardinality": "exactly_one",
|
|
543
|
+
"def": "FOREIGN KEY (provider_manifest_id) REFERENCES validation_contract_provider_manifests (provider_manifest_id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"table": "validation_contract_rules",
|
|
547
|
+
"columns": [
|
|
548
|
+
"validation_profile_id"
|
|
549
|
+
],
|
|
550
|
+
"cardinality": "zero_or_more",
|
|
551
|
+
"parent_table": "validation_contract_profiles",
|
|
552
|
+
"parent_columns": [
|
|
553
|
+
"validation_profile_id"
|
|
554
|
+
],
|
|
555
|
+
"parent_cardinality": "exactly_one",
|
|
556
|
+
"def": "FOREIGN KEY (validation_profile_id) REFERENCES validation_contract_profiles (validation_profile_id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE"
|
|
557
|
+
}
|
|
558
|
+
],
|
|
559
|
+
"driver": {
|
|
560
|
+
"name": "sqlite",
|
|
561
|
+
"database_version": "3.51.3"
|
|
562
|
+
}
|
|
563
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
erDiagram
|
|
2
|
+
|
|
3
|
+
"validation_contract_profiles" }o--|| "validation_contract_provider_manifests" : ""
|
|
4
|
+
"validation_contract_rules" }o--|| "validation_contract_profiles" : ""
|
|
5
|
+
|
|
6
|
+
"validation_contract_schema_migrations" {
|
|
7
|
+
VARCHAR_128_ migration_id ""
|
|
8
|
+
VARCHAR_256_ migration_name ""
|
|
9
|
+
DATETIME applied_at ""
|
|
10
|
+
}
|
|
11
|
+
"validation_contract_provider_manifests" {
|
|
12
|
+
CHAR_36_ provider_manifest_id ""
|
|
13
|
+
VARCHAR_256_ provider_id ""
|
|
14
|
+
VARCHAR_256_ provider_module ""
|
|
15
|
+
VARCHAR_64_ provider_version ""
|
|
16
|
+
DATETIME created_at ""
|
|
17
|
+
DATETIME updated_at ""
|
|
18
|
+
JSON metadata_json ""
|
|
19
|
+
}
|
|
20
|
+
"validation_contract_profiles" {
|
|
21
|
+
CHAR_36_ validation_profile_id ""
|
|
22
|
+
CHAR_36_ provider_manifest_id ""
|
|
23
|
+
VARCHAR_256_ profile_id ""
|
|
24
|
+
VARCHAR_256_ provider_module ""
|
|
25
|
+
VARCHAR_128_ target_domain ""
|
|
26
|
+
DATETIME created_at ""
|
|
27
|
+
DATETIME updated_at ""
|
|
28
|
+
JSON metadata_json ""
|
|
29
|
+
}
|
|
30
|
+
"validation_contract_rules" {
|
|
31
|
+
CHAR_36_ validation_rule_id ""
|
|
32
|
+
CHAR_36_ validation_profile_id ""
|
|
33
|
+
VARCHAR_256_ rule_id ""
|
|
34
|
+
VARCHAR_256_ provider_module ""
|
|
35
|
+
VARCHAR_64_ validation_type_code ""
|
|
36
|
+
VARCHAR_64_ execution_mode_code ""
|
|
37
|
+
VARCHAR_64_ severity_code ""
|
|
38
|
+
VARCHAR_128_ applies_to_type_code ""
|
|
39
|
+
VARCHAR_256_ applies_to_ref ""
|
|
40
|
+
VARCHAR_256_ source_component_ref ""
|
|
41
|
+
JSON parameters_json ""
|
|
42
|
+
TEXT message ""
|
|
43
|
+
TEXT remediation ""
|
|
44
|
+
INTEGER sort_order ""
|
|
45
|
+
DATETIME created_at ""
|
|
46
|
+
DATETIME updated_at ""
|
|
47
|
+
JSON metadata_json ""
|
|
48
|
+
}
|