ingestron 0.17.2 → 0.17.4
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 +14 -0
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/build/cli/cli/index.js +0 -0
- package/build/cli/cli/output.js +24 -6
- package/package.json +20 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.4
|
|
4
|
+
|
|
5
|
+
- Pin core 0.12.10. Connectors that check contract quality rules before commit
|
|
6
|
+
count those rules as enforced at load for connection flows. `run` and
|
|
7
|
+
`run status` report how many rules were checked and name any warnings; a failed
|
|
8
|
+
error-severity rule stops the run with nothing committed.
|
|
9
|
+
|
|
10
|
+
## 0.17.3
|
|
11
|
+
|
|
12
|
+
- Pin core 0.12.9. Contracts can carry ODCS quality rules; `check` and `build`
|
|
13
|
+
report how each target enforces them, and an error-severity rule the target
|
|
14
|
+
cannot enforce blocks the build unless `defaults.quality.unsupported: report`.
|
|
15
|
+
Primary keys imply not-null and unique rules, reported without blocking.
|
|
16
|
+
|
|
3
17
|
## 0.17.2
|
|
4
18
|
|
|
5
19
|
- Pin core 0.12.8. `ingestron check` lists data products with status and owner
|
package/THIRD_PARTY_NOTICES.md
CHANGED
package/build/cli/cli/index.js
CHANGED
|
File without changes
|
package/build/cli/cli/output.js
CHANGED
|
@@ -28,9 +28,10 @@ export function exitCode(result) {
|
|
|
28
28
|
}
|
|
29
29
|
const clean = (value) => String(value).replace(/[\u0000-\u001f\u007f-\u009f]/g, " ");
|
|
30
30
|
// Data product ownership from ODCS contracts; absent with older core versions.
|
|
31
|
-
function dataProductLines(products) {
|
|
31
|
+
function dataProductLines(products, quality) {
|
|
32
32
|
if (!Array.isArray(products) || !products.length)
|
|
33
33
|
return "";
|
|
34
|
+
const summary = quality?.summary;
|
|
34
35
|
const shown = products.slice(0, 20).map((p) => {
|
|
35
36
|
const owners = Array.isArray(p.owners) ? p.owners.map(clean) : [];
|
|
36
37
|
return `\n ${clean(p.contract)} ${clean(p.status ?? "no status")} ${owners.length ? `owner ${owners.join(", ")}` : "no owner"}`;
|
|
@@ -39,9 +40,26 @@ function dataProductLines(products) {
|
|
|
39
40
|
return ("\nData products:" +
|
|
40
41
|
shown.join("") +
|
|
41
42
|
(products.length > 20 ? `\n … ${products.length - 20} more` : "") +
|
|
42
|
-
(
|
|
43
|
-
? `\
|
|
44
|
-
:
|
|
43
|
+
(summary && summary.rules
|
|
44
|
+
? `\nQuality rules: ${summary.rules} (${summary.atLoad} at load, ${summary.afterLoad} after load, ${summary.unsupported} not enforced by the target${summary.documentation ? `, ${summary.documentation} documentation only` : ""}).`
|
|
45
|
+
: !summary && recorded
|
|
46
|
+
? `\n${recorded} quality rule(s) are recorded in contracts but not yet enforced.`
|
|
47
|
+
: ""));
|
|
48
|
+
}
|
|
49
|
+
// Quality results recorded by connector runtimes before commit; counts only.
|
|
50
|
+
function runQualityLine(flows) {
|
|
51
|
+
if (!Array.isArray(flows))
|
|
52
|
+
return "";
|
|
53
|
+
const rules = flows.flatMap((f) => Array.isArray(f?.quality) ? f.quality : []);
|
|
54
|
+
if (!rules.length)
|
|
55
|
+
return "";
|
|
56
|
+
const warned = rules.filter((r) => r.passed === false);
|
|
57
|
+
return `\nQuality rules: ${rules.length} checked before commit${warned.length
|
|
58
|
+
? `; ${warned.length} warning(s): ${warned
|
|
59
|
+
.slice(0, 5)
|
|
60
|
+
.map((r) => clean(r.id))
|
|
61
|
+
.join(", ")}${warned.length > 5 ? ", …" : ""}`
|
|
62
|
+
: ", all passed"}.`;
|
|
45
63
|
}
|
|
46
64
|
function pluginLabel(reference) {
|
|
47
65
|
for (const [name, entry] of Object.entries(officialPlugins)) {
|
|
@@ -122,7 +140,7 @@ export function terminal(result, verbose = false, args = {}) {
|
|
|
122
140
|
return value.mode === "draft"
|
|
123
141
|
? `Draft configuration checked (${value.flows} flows).\n${value.pending.length} unresolved inputs. Strict build readiness has not been checked.`
|
|
124
142
|
: `Project checks passed${value.nodes === undefined ? "" : ` (${value.nodes} planned nodes)`}.\nValidation is local; no platform connection was tested.` +
|
|
125
|
-
dataProductLines(value.dataProducts);
|
|
143
|
+
dataProductLines(value.dataProducts, value.quality);
|
|
126
144
|
case "doctor":
|
|
127
145
|
return `Project ${clean(value.project)} (${clean(value.environment)})\n${value.pending.length} unresolved inputs.\n${clean(value.platformAccess)}\nNext: ${clean(value.next)}`;
|
|
128
146
|
case "runtime_prepare":
|
|
@@ -133,7 +151,7 @@ export function terminal(result, verbose = false, args = {}) {
|
|
|
133
151
|
`\nUse ingestron run status ${clean(value.id)} --verbose for environment paths and details.`);
|
|
134
152
|
case "run":
|
|
135
153
|
case "run_status":
|
|
136
|
-
return `Run ${clean(value.id)}: ${clean(value.status)} (${clean(value.action)}).\nTarget: ${clean(value.configuration)}; flows: ${value.flows.map(clean).join(", ")}
|
|
154
|
+
return `Run ${clean(value.id)}: ${clean(value.status)} (${clean(value.action)}).\nTarget: ${clean(value.configuration)}; flows: ${value.flows.map(clean).join(", ")}.${runQualityLine(value.result?.flows)}\nUse ingestron run status ${clean(value.id)} to inspect the receipt.`;
|
|
137
155
|
case "build":
|
|
138
156
|
return `Built ${value.packages?.length ?? 1} project package(s) into ${clean(value.directory)}.\n${clean(value.evidence)}`;
|
|
139
157
|
case "generate":
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ingestron",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Build repeatable data pipelines from reviewed contracts and versioned standards.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,9 +22,25 @@
|
|
|
22
22
|
"engines": {
|
|
23
23
|
"node": ">=22.12.0"
|
|
24
24
|
},
|
|
25
|
+
"packageManager": "pnpm@10.15.0",
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "node scripts/clean-build.mjs && tsc",
|
|
28
|
+
"test": "tsx --test --test-concurrency=1 test/unit/*.test.ts test/providers/*.test.ts test/integration/*.test.ts",
|
|
29
|
+
"format": "prettier --write .",
|
|
30
|
+
"format:check": "prettier --check .",
|
|
31
|
+
"secrets:check": "node scripts/secrets.mjs",
|
|
32
|
+
"validate": "pnpm format:check && pnpm build && pnpm test && pnpm examples:check && pnpm secrets:check && pnpm docs:check && pnpm release:check && pnpm package:check",
|
|
33
|
+
"prepack": "pnpm build",
|
|
34
|
+
"package:check": "tsx scripts/package-check.ts",
|
|
35
|
+
"release:check": "node scripts/release-check.mjs",
|
|
36
|
+
"prepublishOnly": "node scripts/release-check.mjs --publish",
|
|
37
|
+
"docs:check": "node scripts/docs-check.mjs",
|
|
38
|
+
"examples:check": "node examples/quickstart.mjs",
|
|
39
|
+
"licences:inventory": "node scripts/licence-inventory.mjs"
|
|
40
|
+
},
|
|
25
41
|
"dependencies": {
|
|
26
42
|
"@clack/prompts": "1.7.0",
|
|
27
|
-
"@ingestron/core": "0.12.
|
|
43
|
+
"@ingestron/core": "0.12.10",
|
|
28
44
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
29
45
|
"commander": "15.0.0",
|
|
30
46
|
"yaml": "2.9.0"
|
|
@@ -56,18 +72,5 @@
|
|
|
56
72
|
"cli",
|
|
57
73
|
"mcp",
|
|
58
74
|
"code-generation"
|
|
59
|
-
]
|
|
60
|
-
|
|
61
|
-
"build": "node scripts/clean-build.mjs && tsc",
|
|
62
|
-
"test": "tsx --test --test-concurrency=1 test/unit/*.test.ts test/providers/*.test.ts test/integration/*.test.ts",
|
|
63
|
-
"format": "prettier --write .",
|
|
64
|
-
"format:check": "prettier --check .",
|
|
65
|
-
"secrets:check": "node scripts/secrets.mjs",
|
|
66
|
-
"validate": "pnpm format:check && pnpm build && pnpm test && pnpm examples:check && pnpm secrets:check && pnpm docs:check && pnpm release:check && pnpm package:check",
|
|
67
|
-
"package:check": "tsx scripts/package-check.ts",
|
|
68
|
-
"release:check": "node scripts/release-check.mjs",
|
|
69
|
-
"docs:check": "node scripts/docs-check.mjs",
|
|
70
|
-
"examples:check": "node examples/quickstart.mjs",
|
|
71
|
-
"licences:inventory": "node scripts/licence-inventory.mjs"
|
|
72
|
-
}
|
|
73
|
-
}
|
|
75
|
+
]
|
|
76
|
+
}
|