ingestron 0.16.3 → 0.17.1
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 +12 -0
- package/README.md +14 -0
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/build/cli/cli/index.js +9 -1
- package/build/cli/cli/plugin-resolution.d.ts +12 -0
- package/build/cli/cli/plugin-resolution.js +12 -0
- package/build/cli/cli/workflow-commands.js +6 -2
- package/package.json +17 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.1
|
|
4
|
+
|
|
5
|
+
- Add `adf` and `databricks` official provider names, resolving to the public
|
|
6
|
+
`ingestron/provider-adf` and `ingestron/provider-databricks` releases through the
|
|
7
|
+
qualified catalogue. Both providers generate files only and never deploy.
|
|
8
|
+
|
|
9
|
+
## 0.17.0
|
|
10
|
+
|
|
11
|
+
- Bind one ingestion flow to named execution profiles with `--flow` and `--profile`.
|
|
12
|
+
Environments, datasets and contracts remain shared.
|
|
13
|
+
- Pin core 0.12.7; builds and execution reject mismatched profile evidence.
|
|
14
|
+
|
|
3
15
|
## 0.16.3
|
|
4
16
|
|
|
5
17
|
- Resolve qualified plugin aliases through the same adapter in JSON-stdin, terminal
|
package/README.md
CHANGED
|
@@ -77,3 +77,17 @@ not inside the compiler's JavaScript sandbox. See [security](SECURITY.md).
|
|
|
77
77
|
Original code is licensed by **Otrera Limited** under [Apache-2.0](LICENSE).
|
|
78
78
|
[NOTICE](NOTICE) and [third-party notices](THIRD_PARTY_NOTICES.md) retain attribution
|
|
79
79
|
and dependency terms.
|
|
80
|
+
|
|
81
|
+
### Select an execution profile
|
|
82
|
+
|
|
83
|
+
An ingestion flow can declare named `executionProfiles`. Select the environment
|
|
84
|
+
and profile independently; datasets and contracts stay in the same logical flow.
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
ingestron --environment dev check --flow northwind --profile adf
|
|
88
|
+
ingestron --environment dev build --flow northwind --profile adf --out build/adf
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Omit `--profile` to use the flow's default provider. Local runtime preparation and
|
|
92
|
+
execution must select the same profile recorded by the build. A native-provider
|
|
93
|
+
build generates assets; it does not deploy or run them on the target platform.
|
package/THIRD_PARTY_NOTICES.md
CHANGED
package/build/cli/cli/index.js
CHANGED
|
@@ -479,11 +479,13 @@ app
|
|
|
479
479
|
.command("validate")
|
|
480
480
|
.option("--mode <mode>", "draft or strict", "strict")
|
|
481
481
|
.option("--flow <id>")
|
|
482
|
+
.option("--profile <name>", "Execution profile within the selected flow")
|
|
482
483
|
.option("--table <id>")
|
|
483
484
|
.option("--step <id>")
|
|
484
485
|
.action((command) => run("validate", {
|
|
485
486
|
mode: command.mode,
|
|
486
487
|
...(command.flow ? { flow: command.flow } : {}),
|
|
488
|
+
...(command.profile ? { profile: command.profile } : {}),
|
|
487
489
|
...(command.table ? { table: command.table } : {}),
|
|
488
490
|
...(command.step ? { step: command.step } : {}),
|
|
489
491
|
}));
|
|
@@ -491,16 +493,22 @@ app
|
|
|
491
493
|
.command("doctor")
|
|
492
494
|
.description("Check local configuration and missing inputs; no platform connection")
|
|
493
495
|
.action(() => run("doctor"));
|
|
494
|
-
app
|
|
496
|
+
app
|
|
497
|
+
.command("resolve")
|
|
498
|
+
.option("--flow <id>")
|
|
499
|
+
.option("--profile <name>")
|
|
500
|
+
.action((command) => run("resolve", command));
|
|
495
501
|
app
|
|
496
502
|
.command("plan")
|
|
497
503
|
.option("--flow <id>")
|
|
504
|
+
.option("--profile <name>", "Execution profile within the selected flow")
|
|
498
505
|
.option("--table <id>")
|
|
499
506
|
.option("--step <id>")
|
|
500
507
|
.option("--out <file>", "Save a digest-bound JSON plan")
|
|
501
508
|
.action((command) => {
|
|
502
509
|
const result = execute(context(), "plan", {
|
|
503
510
|
...(command.flow ? { flow: command.flow } : {}),
|
|
511
|
+
...(command.profile ? { profile: command.profile } : {}),
|
|
504
512
|
...(command.table ? { table: command.table } : {}),
|
|
505
513
|
...(command.step ? { step: command.step } : {}),
|
|
506
514
|
});
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
/** Official-name convenience at the adapter boundary; core only receives exact references. */
|
|
2
2
|
import { type Context, type OperationName, type Result } from "@ingestron/core";
|
|
3
3
|
export declare const officialPlugins: {
|
|
4
|
+
readonly adf: {
|
|
5
|
+
readonly kind: "provider";
|
|
6
|
+
readonly repository: "ingestron/provider-adf";
|
|
7
|
+
readonly path: "plugin/provider.yaml";
|
|
8
|
+
readonly tagPrefix: "";
|
|
9
|
+
};
|
|
4
10
|
readonly "azure-blob": {
|
|
5
11
|
readonly kind: "connector";
|
|
6
12
|
readonly repository: "ingestron/connectors";
|
|
7
13
|
readonly path: "connectors/azure-blob/connector.yaml";
|
|
8
14
|
readonly tagPrefix: "azure-blob-";
|
|
9
15
|
};
|
|
16
|
+
readonly databricks: {
|
|
17
|
+
readonly kind: "provider";
|
|
18
|
+
readonly repository: "ingestron/provider-databricks";
|
|
19
|
+
readonly path: "plugin/provider.yaml";
|
|
20
|
+
readonly tagPrefix: "";
|
|
21
|
+
};
|
|
10
22
|
readonly files: {
|
|
11
23
|
readonly kind: "connector";
|
|
12
24
|
readonly repository: "ingestron/connectors";
|
|
@@ -3,12 +3,24 @@ import { executeAsync, operationSchemas, } from "@ingestron/core";
|
|
|
3
3
|
import { check, packageLock, Problem } from "@ingestron/core/adapter";
|
|
4
4
|
import { coreVersion } from "../version.js";
|
|
5
5
|
export const officialPlugins = {
|
|
6
|
+
adf: {
|
|
7
|
+
kind: "provider",
|
|
8
|
+
repository: "ingestron/provider-adf",
|
|
9
|
+
path: "plugin/provider.yaml",
|
|
10
|
+
tagPrefix: "",
|
|
11
|
+
},
|
|
6
12
|
"azure-blob": {
|
|
7
13
|
kind: "connector",
|
|
8
14
|
repository: "ingestron/connectors",
|
|
9
15
|
path: "connectors/azure-blob/connector.yaml",
|
|
10
16
|
tagPrefix: "azure-blob-",
|
|
11
17
|
},
|
|
18
|
+
databricks: {
|
|
19
|
+
kind: "provider",
|
|
20
|
+
repository: "ingestron/provider-databricks",
|
|
21
|
+
path: "plugin/provider.yaml",
|
|
22
|
+
tagPrefix: "",
|
|
23
|
+
},
|
|
12
24
|
files: {
|
|
13
25
|
kind: "connector",
|
|
14
26
|
repository: "ingestron/connectors",
|
|
@@ -131,13 +131,14 @@ export function workflowCommands(app, host) {
|
|
|
131
131
|
.option("--setup", "Diagnose missing local configuration; no platform access")
|
|
132
132
|
.option("--output <directory>", "Check generated output ownership and syntax")
|
|
133
133
|
.option("--flow <id>", "Check one flow")
|
|
134
|
+
.option("--profile <name>", "Execution profile within the selected flow")
|
|
134
135
|
.option("--table <id>", "Check one table within a selected flow")
|
|
135
136
|
.option("--step <id>", "Check one step within a selected flow")
|
|
136
137
|
.action((options) => {
|
|
137
138
|
check([options.draft, options.setup, options.output].filter(Boolean).length <=
|
|
138
139
|
1, "OPTION", "Choose only one check scope: --draft, --setup or --output");
|
|
139
140
|
check(!(options.setup || options.output) ||
|
|
140
|
-
!(options.flow || options.table || options.step), "OPTION", "Flow/table/step selection applies only to project checks");
|
|
141
|
+
!(options.flow || options.table || options.step || options.profile), "OPTION", "Flow/table/step selection applies only to project checks");
|
|
141
142
|
if (options.output)
|
|
142
143
|
run("validate_output", { directory: options.output });
|
|
143
144
|
else if (options.setup)
|
|
@@ -146,6 +147,7 @@ export function workflowCommands(app, host) {
|
|
|
146
147
|
run("validate", {
|
|
147
148
|
mode: options.draft ? "draft" : "strict",
|
|
148
149
|
...(options.flow ? { flow: options.flow } : {}),
|
|
150
|
+
...(options.profile ? { profile: options.profile } : {}),
|
|
149
151
|
...(options.table ? { table: options.table } : {}),
|
|
150
152
|
...(options.step ? { step: options.step } : {}),
|
|
151
153
|
});
|
|
@@ -156,13 +158,15 @@ export function workflowCommands(app, host) {
|
|
|
156
158
|
.description("Build project assets, or a provider/flow subset, without deployment")
|
|
157
159
|
.option("--provider <configuration>", "Build a configured target and required dependencies")
|
|
158
160
|
.option("--flow <id>", "Build one flow")
|
|
161
|
+
.option("--profile <name>", "Execution profile within the selected flow")
|
|
159
162
|
.option("--out <directory>", "Generated output directory", "build/generated")
|
|
160
163
|
.option("--ownership <mode>", "managed or team", "managed")
|
|
161
164
|
.action((options) => run("build", options));
|
|
162
165
|
const executionOptions = (command) => command
|
|
163
166
|
.option("--from <directory>", "Managed project build (default build/generated)")
|
|
164
167
|
.option("--provider <configuration>", "Execute flows in one configured target")
|
|
165
|
-
.option("--flow <id>", "Execute one flow from the build")
|
|
168
|
+
.option("--flow <id>", "Execute one flow from the build")
|
|
169
|
+
.option("--profile <name>", "Execution profile recorded in the build");
|
|
166
170
|
executionOptions(app
|
|
167
171
|
.command("runtime")
|
|
168
172
|
.description("Prepare locked execution dependencies")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ingestron",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Build repeatable data pipelines from reviewed contracts and versioned standards.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,25 +22,9 @@
|
|
|
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
|
-
},
|
|
41
25
|
"dependencies": {
|
|
42
26
|
"@clack/prompts": "1.7.0",
|
|
43
|
-
"@ingestron/core": "0.12.
|
|
27
|
+
"@ingestron/core": "0.12.7",
|
|
44
28
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
45
29
|
"commander": "15.0.0",
|
|
46
30
|
"yaml": "2.9.0"
|
|
@@ -72,5 +56,18 @@
|
|
|
72
56
|
"cli",
|
|
73
57
|
"mcp",
|
|
74
58
|
"code-generation"
|
|
75
|
-
]
|
|
76
|
-
|
|
59
|
+
],
|
|
60
|
+
"scripts": {
|
|
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
|
+
}
|