ingestron 0.17.7 → 0.17.8
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
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.8
|
|
4
|
+
|
|
5
|
+
- Pin core 0.12.14. Bridge routes: a connection with `route: bridge` lands a
|
|
6
|
+
source on one platform (such as ADF) for a flow on another (such as
|
|
7
|
+
Databricks); `check` shows it as one route and suggests it when the native
|
|
8
|
+
route is billed separately. `check` now works on projects combining ADF and
|
|
9
|
+
Databricks flows.
|
|
10
|
+
- `ingestron discover` drafts data contracts from what a source offers, before
|
|
11
|
+
you write them: through the portable connector (also for native and bridge
|
|
12
|
+
connections that name a package), or from a platform metadata export with
|
|
13
|
+
`--from`.
|
|
14
|
+
- Official short names `stripe`, `sharepoint`, `onedrive`, `s3`, `gcs`, `sftp`,
|
|
15
|
+
`salesforce`, `hubspot` and `jira`.
|
|
16
|
+
|
|
3
17
|
## 0.17.7
|
|
4
18
|
|
|
5
19
|
- Pin core 0.12.13. Connections can name a source `kind` and a `route`
|
package/THIRD_PARTY_NOTICES.md
CHANGED
package/build/cli/cli/output.js
CHANGED
|
@@ -71,7 +71,9 @@ function routeLabel(route) {
|
|
|
71
71
|
const r = route?.reference;
|
|
72
72
|
const via = route?.route === "native"
|
|
73
73
|
? `native on ${clean(route.configuration)} via ${(route.standards ?? []).map(clean).join(", ")}`
|
|
74
|
-
:
|
|
74
|
+
: route?.route === "bridge"
|
|
75
|
+
? `bridge: lands on ${clean(route.via)}, ingests on ${clean(route.configuration)} via ${(route.standards ?? []).map(clean).join(" → ")}`
|
|
76
|
+
: `portable ${clean(route?.package ?? "connector")} on ${clean(route?.configuration)}`;
|
|
75
77
|
if (!r)
|
|
76
78
|
return `${via} [no reference record]`;
|
|
77
79
|
const stale = Date.now() - new Date(`${r.verified}T00:00:00Z`).getTime() >
|
|
@@ -181,6 +183,24 @@ export function terminal(result, verbose = false, args = {}) {
|
|
|
181
183
|
.map((f) => `\n ${clean(f.flow)}: Python ${clean(f.pythonVersion ?? "3.12")} (${f.reused ? "reused" : "prepared"})`)
|
|
182
184
|
.join("") +
|
|
183
185
|
`\nUse ingestron run status ${clean(value.id)} --verbose for environment paths and details.`);
|
|
186
|
+
case "discover":
|
|
187
|
+
return (`Discovered ${clean(value.flow)} (${clean(value.route)}):` +
|
|
188
|
+
(value.tables ?? [])
|
|
189
|
+
.map((t) => `\n ${clean(t.table)}: ${Number(t.fields)} fields → ${clean(t.file)}` +
|
|
190
|
+
(t.keys?.length
|
|
191
|
+
? ` (source keys: ${t.keys.map(clean).join(", ")})`
|
|
192
|
+
: "") +
|
|
193
|
+
(t.skipped ?? [])
|
|
194
|
+
.slice(0, 10)
|
|
195
|
+
.map((s) => `\n skipped ${clean(s.name)}: ${clean(s.reason)}`)
|
|
196
|
+
.join(""))
|
|
197
|
+
.join("") +
|
|
198
|
+
(value.files ?? []).map((f) => `\n wrote ${clean(f)}`).join("") +
|
|
199
|
+
(value.review ?? [])
|
|
200
|
+
.slice(0, 10)
|
|
201
|
+
.map((r) => `\n review: ${clean(r)}`)
|
|
202
|
+
.join("") +
|
|
203
|
+
`\nNext: ${clean(value.next)}`);
|
|
184
204
|
case "run":
|
|
185
205
|
case "run_status":
|
|
186
206
|
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.`;
|
|
@@ -25,12 +25,30 @@ export declare const officialPlugins: {
|
|
|
25
25
|
readonly path: "connectors/files/connector.yaml";
|
|
26
26
|
readonly tagPrefix: "files-";
|
|
27
27
|
};
|
|
28
|
+
readonly gcs: {
|
|
29
|
+
readonly kind: "connector";
|
|
30
|
+
readonly repository: "ingestron/connectors";
|
|
31
|
+
readonly path: "connectors/gcs/connector.yaml";
|
|
32
|
+
readonly tagPrefix: "gcs-";
|
|
33
|
+
};
|
|
28
34
|
readonly github: {
|
|
29
35
|
readonly kind: "connector";
|
|
30
36
|
readonly repository: "ingestron/connectors";
|
|
31
37
|
readonly path: "connectors/github/connector.yaml";
|
|
32
38
|
readonly tagPrefix: "github-";
|
|
33
39
|
};
|
|
40
|
+
readonly hubspot: {
|
|
41
|
+
readonly kind: "connector";
|
|
42
|
+
readonly repository: "ingestron/connectors";
|
|
43
|
+
readonly path: "connectors/hubspot/connector.yaml";
|
|
44
|
+
readonly tagPrefix: "hubspot-";
|
|
45
|
+
};
|
|
46
|
+
readonly jira: {
|
|
47
|
+
readonly kind: "connector";
|
|
48
|
+
readonly repository: "ingestron/connectors";
|
|
49
|
+
readonly path: "connectors/jira/connector.yaml";
|
|
50
|
+
readonly tagPrefix: "jira-";
|
|
51
|
+
};
|
|
34
52
|
readonly local: {
|
|
35
53
|
readonly kind: "provider";
|
|
36
54
|
readonly repository: "ingestron/provider-local";
|
|
@@ -43,6 +61,12 @@ export declare const officialPlugins: {
|
|
|
43
61
|
readonly path: "connectors/mysql/connector.yaml";
|
|
44
62
|
readonly tagPrefix: "mysql-";
|
|
45
63
|
};
|
|
64
|
+
readonly onedrive: {
|
|
65
|
+
readonly kind: "connector";
|
|
66
|
+
readonly repository: "ingestron/connectors";
|
|
67
|
+
readonly path: "connectors/onedrive/connector.yaml";
|
|
68
|
+
readonly tagPrefix: "onedrive-";
|
|
69
|
+
};
|
|
46
70
|
readonly oracle: {
|
|
47
71
|
readonly kind: "connector";
|
|
48
72
|
readonly repository: "ingestron/connectors";
|
|
@@ -55,12 +79,42 @@ export declare const officialPlugins: {
|
|
|
55
79
|
readonly path: "connectors/postgresql/connector.yaml";
|
|
56
80
|
readonly tagPrefix: "postgresql-";
|
|
57
81
|
};
|
|
82
|
+
readonly s3: {
|
|
83
|
+
readonly kind: "connector";
|
|
84
|
+
readonly repository: "ingestron/connectors";
|
|
85
|
+
readonly path: "connectors/s3/connector.yaml";
|
|
86
|
+
readonly tagPrefix: "s3-";
|
|
87
|
+
};
|
|
88
|
+
readonly salesforce: {
|
|
89
|
+
readonly kind: "connector";
|
|
90
|
+
readonly repository: "ingestron/connectors";
|
|
91
|
+
readonly path: "connectors/salesforce/connector.yaml";
|
|
92
|
+
readonly tagPrefix: "salesforce-";
|
|
93
|
+
};
|
|
94
|
+
readonly sftp: {
|
|
95
|
+
readonly kind: "connector";
|
|
96
|
+
readonly repository: "ingestron/connectors";
|
|
97
|
+
readonly path: "connectors/sftp/connector.yaml";
|
|
98
|
+
readonly tagPrefix: "sftp-";
|
|
99
|
+
};
|
|
100
|
+
readonly sharepoint: {
|
|
101
|
+
readonly kind: "connector";
|
|
102
|
+
readonly repository: "ingestron/connectors";
|
|
103
|
+
readonly path: "connectors/sharepoint/connector.yaml";
|
|
104
|
+
readonly tagPrefix: "sharepoint-";
|
|
105
|
+
};
|
|
58
106
|
readonly "sql-server": {
|
|
59
107
|
readonly kind: "connector";
|
|
60
108
|
readonly repository: "ingestron/connectors";
|
|
61
109
|
readonly path: "connectors/sql-server/connector.yaml";
|
|
62
110
|
readonly tagPrefix: "sql-server-";
|
|
63
111
|
};
|
|
112
|
+
readonly stripe: {
|
|
113
|
+
readonly kind: "connector";
|
|
114
|
+
readonly repository: "ingestron/connectors";
|
|
115
|
+
readonly path: "connectors/stripe/connector.yaml";
|
|
116
|
+
readonly tagPrefix: "stripe-";
|
|
117
|
+
};
|
|
64
118
|
};
|
|
65
119
|
export declare function officialName(reference: string): {
|
|
66
120
|
name: keyof typeof officialPlugins;
|
|
@@ -27,12 +27,30 @@ export const officialPlugins = {
|
|
|
27
27
|
path: "connectors/files/connector.yaml",
|
|
28
28
|
tagPrefix: "files-",
|
|
29
29
|
},
|
|
30
|
+
gcs: {
|
|
31
|
+
kind: "connector",
|
|
32
|
+
repository: "ingestron/connectors",
|
|
33
|
+
path: "connectors/gcs/connector.yaml",
|
|
34
|
+
tagPrefix: "gcs-",
|
|
35
|
+
},
|
|
30
36
|
github: {
|
|
31
37
|
kind: "connector",
|
|
32
38
|
repository: "ingestron/connectors",
|
|
33
39
|
path: "connectors/github/connector.yaml",
|
|
34
40
|
tagPrefix: "github-",
|
|
35
41
|
},
|
|
42
|
+
hubspot: {
|
|
43
|
+
kind: "connector",
|
|
44
|
+
repository: "ingestron/connectors",
|
|
45
|
+
path: "connectors/hubspot/connector.yaml",
|
|
46
|
+
tagPrefix: "hubspot-",
|
|
47
|
+
},
|
|
48
|
+
jira: {
|
|
49
|
+
kind: "connector",
|
|
50
|
+
repository: "ingestron/connectors",
|
|
51
|
+
path: "connectors/jira/connector.yaml",
|
|
52
|
+
tagPrefix: "jira-",
|
|
53
|
+
},
|
|
36
54
|
local: {
|
|
37
55
|
kind: "provider",
|
|
38
56
|
repository: "ingestron/provider-local",
|
|
@@ -45,6 +63,12 @@ export const officialPlugins = {
|
|
|
45
63
|
path: "connectors/mysql/connector.yaml",
|
|
46
64
|
tagPrefix: "mysql-",
|
|
47
65
|
},
|
|
66
|
+
onedrive: {
|
|
67
|
+
kind: "connector",
|
|
68
|
+
repository: "ingestron/connectors",
|
|
69
|
+
path: "connectors/onedrive/connector.yaml",
|
|
70
|
+
tagPrefix: "onedrive-",
|
|
71
|
+
},
|
|
48
72
|
oracle: {
|
|
49
73
|
kind: "connector",
|
|
50
74
|
repository: "ingestron/connectors",
|
|
@@ -57,12 +81,42 @@ export const officialPlugins = {
|
|
|
57
81
|
path: "connectors/postgresql/connector.yaml",
|
|
58
82
|
tagPrefix: "postgresql-",
|
|
59
83
|
},
|
|
84
|
+
s3: {
|
|
85
|
+
kind: "connector",
|
|
86
|
+
repository: "ingestron/connectors",
|
|
87
|
+
path: "connectors/s3/connector.yaml",
|
|
88
|
+
tagPrefix: "s3-",
|
|
89
|
+
},
|
|
90
|
+
salesforce: {
|
|
91
|
+
kind: "connector",
|
|
92
|
+
repository: "ingestron/connectors",
|
|
93
|
+
path: "connectors/salesforce/connector.yaml",
|
|
94
|
+
tagPrefix: "salesforce-",
|
|
95
|
+
},
|
|
96
|
+
sftp: {
|
|
97
|
+
kind: "connector",
|
|
98
|
+
repository: "ingestron/connectors",
|
|
99
|
+
path: "connectors/sftp/connector.yaml",
|
|
100
|
+
tagPrefix: "sftp-",
|
|
101
|
+
},
|
|
102
|
+
sharepoint: {
|
|
103
|
+
kind: "connector",
|
|
104
|
+
repository: "ingestron/connectors",
|
|
105
|
+
path: "connectors/sharepoint/connector.yaml",
|
|
106
|
+
tagPrefix: "sharepoint-",
|
|
107
|
+
},
|
|
60
108
|
"sql-server": {
|
|
61
109
|
kind: "connector",
|
|
62
110
|
repository: "ingestron/connectors",
|
|
63
111
|
path: "connectors/sql-server/connector.yaml",
|
|
64
112
|
tagPrefix: "sql-server-",
|
|
65
113
|
},
|
|
114
|
+
stripe: {
|
|
115
|
+
kind: "connector",
|
|
116
|
+
repository: "ingestron/connectors",
|
|
117
|
+
path: "connectors/stripe/connector.yaml",
|
|
118
|
+
tagPrefix: "stripe-",
|
|
119
|
+
},
|
|
66
120
|
};
|
|
67
121
|
const catalogueUrl = "https://raw.githubusercontent.com/ingestron/connectors/main/catalogue.json";
|
|
68
122
|
const stable = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
|
|
@@ -185,6 +185,21 @@ export function workflowCommands(app, host) {
|
|
|
185
185
|
...options,
|
|
186
186
|
...(secretsFile ? { envFile: secretsFile } : {}),
|
|
187
187
|
}));
|
|
188
|
+
app
|
|
189
|
+
.command("discover")
|
|
190
|
+
.description("List every field a flow's source offers and write draft contracts for review")
|
|
191
|
+
.requiredOption("--flow <id>", "Ingestion flow to discover")
|
|
192
|
+
.option("--from <file>", "Use a source catalogue or exported metadata rows instead of reading the source")
|
|
193
|
+
.option("--out <directory>", "Directory for draft contracts", "contracts")
|
|
194
|
+
.option("--local <configuration>", "Local provider configuration used for native or bridge connections")
|
|
195
|
+
.option("--accept-keys", "Mark the source's primary keys in the drafts")
|
|
196
|
+
.option("--python <path>", "Optional Python 3.12 bootstrap override")
|
|
197
|
+
.option("--secrets-file <file>", "Project-relative dotenv file; only declared secret names are passed")
|
|
198
|
+
.action(({ secretsFile, acceptKeys, ...options }) => run("discover", {
|
|
199
|
+
...options,
|
|
200
|
+
acceptKeys: !!acceptKeys,
|
|
201
|
+
...(secretsFile ? { envFile: secretsFile } : {}),
|
|
202
|
+
}));
|
|
188
203
|
execution
|
|
189
204
|
.command("status <id>")
|
|
190
205
|
.description("Read the durable local run receipt")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ingestron",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.8",
|
|
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.14",
|
|
44
44
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
45
45
|
"commander": "15.0.0",
|
|
46
46
|
"yaml": "2.9.0"
|