ingestron 0.16.2 → 0.17.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 +11 -0
- package/README.md +14 -0
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/build/cli/cli/index.js +11 -2
- package/build/cli/cli/workflow-commands.js +6 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.0
|
|
4
|
+
|
|
5
|
+
- Bind one ingestion flow to named execution profiles with `--flow` and `--profile`.
|
|
6
|
+
Environments, datasets and contracts remain shared.
|
|
7
|
+
- Pin core 0.12.7; builds and execution reject mismatched profile evidence.
|
|
8
|
+
|
|
9
|
+
## 0.16.3
|
|
10
|
+
|
|
11
|
+
- Resolve qualified plugin aliases through the same adapter in JSON-stdin, terminal
|
|
12
|
+
and MCP installation routes. Preserve permission checks and exact package locks.
|
|
13
|
+
|
|
3
14
|
## 0.16.2
|
|
4
15
|
|
|
5
16
|
- Pin core 0.12.6 so mixed local and native-target projects validate correctly.
|
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
|
@@ -11,6 +11,7 @@ import { check, Problem } from "@ingestron/core/adapter";
|
|
|
11
11
|
import { version } from "../version.js";
|
|
12
12
|
import { terminal, exitCode } from "./output.js";
|
|
13
13
|
import { decorate, banner, backgroundOperation } from "./presentation.js";
|
|
14
|
+
import { executePluginOperation } from "./plugin-resolution.js";
|
|
14
15
|
import { workflowCommands } from "./workflow-commands.js";
|
|
15
16
|
const app = new Command()
|
|
16
17
|
.name("ingestron")
|
|
@@ -103,7 +104,7 @@ app
|
|
|
103
104
|
catch {
|
|
104
105
|
throw new Problem("INPUT", "Expected a JSON operation request on stdin");
|
|
105
106
|
}
|
|
106
|
-
const result = await
|
|
107
|
+
const result = await executePluginOperation({
|
|
107
108
|
...context(),
|
|
108
109
|
allowWrite: !!flags.allowWrite && !opts().dryRun,
|
|
109
110
|
allowNetwork: !!flags.allowNetwork && !opts().dryRun,
|
|
@@ -478,11 +479,13 @@ app
|
|
|
478
479
|
.command("validate")
|
|
479
480
|
.option("--mode <mode>", "draft or strict", "strict")
|
|
480
481
|
.option("--flow <id>")
|
|
482
|
+
.option("--profile <name>", "Execution profile within the selected flow")
|
|
481
483
|
.option("--table <id>")
|
|
482
484
|
.option("--step <id>")
|
|
483
485
|
.action((command) => run("validate", {
|
|
484
486
|
mode: command.mode,
|
|
485
487
|
...(command.flow ? { flow: command.flow } : {}),
|
|
488
|
+
...(command.profile ? { profile: command.profile } : {}),
|
|
486
489
|
...(command.table ? { table: command.table } : {}),
|
|
487
490
|
...(command.step ? { step: command.step } : {}),
|
|
488
491
|
}));
|
|
@@ -490,16 +493,22 @@ app
|
|
|
490
493
|
.command("doctor")
|
|
491
494
|
.description("Check local configuration and missing inputs; no platform connection")
|
|
492
495
|
.action(() => run("doctor"));
|
|
493
|
-
app
|
|
496
|
+
app
|
|
497
|
+
.command("resolve")
|
|
498
|
+
.option("--flow <id>")
|
|
499
|
+
.option("--profile <name>")
|
|
500
|
+
.action((command) => run("resolve", command));
|
|
494
501
|
app
|
|
495
502
|
.command("plan")
|
|
496
503
|
.option("--flow <id>")
|
|
504
|
+
.option("--profile <name>", "Execution profile within the selected flow")
|
|
497
505
|
.option("--table <id>")
|
|
498
506
|
.option("--step <id>")
|
|
499
507
|
.option("--out <file>", "Save a digest-bound JSON plan")
|
|
500
508
|
.action((command) => {
|
|
501
509
|
const result = execute(context(), "plan", {
|
|
502
510
|
...(command.flow ? { flow: command.flow } : {}),
|
|
511
|
+
...(command.profile ? { profile: command.profile } : {}),
|
|
503
512
|
...(command.table ? { table: command.table } : {}),
|
|
504
513
|
...(command.step ? { step: command.step } : {}),
|
|
505
514
|
});
|
|
@@ -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.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Build repeatable data pipelines from reviewed contracts and versioned standards.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@clack/prompts": "1.7.0",
|
|
43
|
-
"@ingestron/core": "0.12.
|
|
43
|
+
"@ingestron/core": "0.12.7",
|
|
44
44
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
45
45
|
"commander": "15.0.0",
|
|
46
46
|
"yaml": "2.9.0"
|