@loxtep/sdk 0.5.0 → 0.7.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 +48 -0
- package/dist/authoring/toolbox.js +11 -11
- package/dist/authoring/toolbox.js.map +1 -1
- package/dist/cli/auth-resolve.d.ts +4 -1
- package/dist/cli/auth-resolve.d.ts.map +1 -1
- package/dist/cli/auth-resolve.js +5 -3
- package/dist/cli/auth-resolve.js.map +1 -1
- package/dist/cli/commands/activity-cmd.js +1 -1
- package/dist/cli/commands/activity-cmd.js.map +1 -1
- package/dist/cli/commands/attach-cmd.js +3 -3
- package/dist/cli/commands/attach-cmd.js.map +1 -1
- package/dist/cli/commands/config-cmd.js +4 -4
- package/dist/cli/commands/config-cmd.js.map +1 -1
- package/dist/cli/commands/connections-cmd.d.ts +19 -0
- package/dist/cli/commands/connections-cmd.d.ts.map +1 -0
- package/dist/cli/commands/connections-cmd.js +39 -0
- package/dist/cli/commands/connections-cmd.js.map +1 -0
- package/dist/cli/commands/data-assets-cmd.d.ts +12 -0
- package/dist/cli/commands/data-assets-cmd.d.ts.map +1 -0
- package/dist/cli/commands/data-assets-cmd.js +75 -0
- package/dist/cli/commands/data-assets-cmd.js.map +1 -0
- package/dist/cli/commands/data-contracts-cmd.js +3 -3
- package/dist/cli/commands/data-contracts-cmd.js.map +1 -1
- package/dist/cli/commands/data-products-cmd.js +7 -7
- package/dist/cli/commands/data-products-cmd.js.map +1 -1
- package/dist/cli/commands/deploy-cmd.js +6 -6
- package/dist/cli/commands/deploy-cmd.js.map +1 -1
- package/dist/cli/commands/domains-cmd.js +2 -2
- package/dist/cli/commands/domains-cmd.js.map +1 -1
- package/dist/cli/commands/flows-cmd.d.ts +19 -0
- package/dist/cli/commands/flows-cmd.d.ts.map +1 -0
- package/dist/cli/commands/flows-cmd.js +37 -0
- package/dist/cli/commands/flows-cmd.js.map +1 -0
- package/dist/cli/commands/improvements-cmd.js +4 -4
- package/dist/cli/commands/improvements-cmd.js.map +1 -1
- package/dist/cli/commands/init-cmd.js +3 -3
- package/dist/cli/commands/init-cmd.js.map +1 -1
- package/dist/cli/commands/instances-cmd.d.ts +1 -1
- package/dist/cli/commands/instances-cmd.js +8 -8
- package/dist/cli/commands/instances-cmd.js.map +1 -1
- package/dist/cli/commands/login.d.ts +10 -1
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +33 -5
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logout.d.ts +12 -2
- package/dist/cli/commands/logout.d.ts.map +1 -1
- package/dist/cli/commands/logout.js +29 -5
- package/dist/cli/commands/logout.js.map +1 -1
- package/dist/cli/commands/pipelines-cmd.d.ts +17 -0
- package/dist/cli/commands/pipelines-cmd.d.ts.map +1 -0
- package/dist/cli/commands/pipelines-cmd.js +52 -0
- package/dist/cli/commands/pipelines-cmd.js.map +1 -0
- package/dist/cli/commands/promises-cmd.d.ts +11 -0
- package/dist/cli/commands/promises-cmd.d.ts.map +1 -0
- package/dist/cli/commands/promises-cmd.js +53 -0
- package/dist/cli/commands/promises-cmd.js.map +1 -0
- package/dist/cli/commands/queue-cmd.js +3 -3
- package/dist/cli/commands/queue-cmd.js.map +1 -1
- package/dist/cli/commands/standards-cmd.js +2 -2
- package/dist/cli/commands/standards-cmd.js.map +1 -1
- package/dist/cli/commands/triggers-cmd.js +4 -4
- package/dist/cli/commands/triggers-cmd.js.map +1 -1
- package/dist/cli/commands/whoami.js +1 -1
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/commands/workflows-cmd.js +4 -4
- package/dist/cli/commands/workflows-cmd.js.map +1 -1
- package/dist/cli/create-cli-client.d.ts +2 -0
- package/dist/cli/create-cli-client.d.ts.map +1 -1
- package/dist/cli/create-cli-client.js +11 -6
- package/dist/cli/create-cli-client.js.map +1 -1
- package/dist/cli/credentials.d.ts +38 -4
- package/dist/cli/credentials.d.ts.map +1 -1
- package/dist/cli/credentials.js +69 -4
- package/dist/cli/credentials.js.map +1 -1
- package/dist/cli/index.js +10 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/client/approvals-types.d.ts +47 -0
- package/dist/client/approvals-types.d.ts.map +1 -0
- package/dist/client/approvals-types.js +6 -0
- package/dist/client/approvals-types.js.map +1 -0
- package/dist/client/approvals.d.ts +18 -0
- package/dist/client/approvals.d.ts.map +1 -0
- package/dist/client/approvals.js +52 -0
- package/dist/client/approvals.js.map +1 -0
- package/dist/client/build.d.ts +25 -0
- package/dist/client/build.d.ts.map +1 -0
- package/dist/client/build.js +14 -0
- package/dist/client/build.js.map +1 -0
- package/dist/client/connect.d.ts +16 -0
- package/dist/client/connect.d.ts.map +1 -0
- package/dist/client/connect.js +11 -0
- package/dist/client/connect.js.map +1 -0
- package/dist/client/connection-types.d.ts +98 -0
- package/dist/client/connection-types.d.ts.map +1 -0
- package/dist/client/connection-types.js +18 -0
- package/dist/client/connection-types.js.map +1 -0
- package/dist/client/connections.d.ts +18 -0
- package/dist/client/connections.d.ts.map +1 -0
- package/dist/client/connections.js +66 -0
- package/dist/client/connections.js.map +1 -0
- package/dist/client/consumptions-types.d.ts +80 -0
- package/dist/client/consumptions-types.d.ts.map +1 -0
- package/dist/client/consumptions-types.js +5 -0
- package/dist/client/consumptions-types.js.map +1 -0
- package/dist/client/consumptions.d.ts +14 -0
- package/dist/client/consumptions.d.ts.map +1 -0
- package/dist/client/consumptions.js +47 -0
- package/dist/client/consumptions.js.map +1 -0
- package/dist/client/context.d.ts +19 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +12 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/data-assets-types.d.ts +150 -0
- package/dist/client/data-assets-types.d.ts.map +1 -0
- package/dist/client/data-assets-types.js +5 -0
- package/dist/client/data-assets-types.js.map +1 -0
- package/dist/client/data-assets.d.ts +31 -0
- package/dist/client/data-assets.d.ts.map +1 -0
- package/dist/client/data-assets.js +182 -0
- package/dist/client/data-assets.js.map +1 -0
- package/dist/client/define.d.ts +25 -0
- package/dist/client/define.d.ts.map +1 -0
- package/dist/client/define.js +14 -0
- package/dist/client/define.js.map +1 -0
- package/dist/client/delivery-types.d.ts +97 -0
- package/dist/client/delivery-types.d.ts.map +1 -0
- package/dist/client/delivery-types.js +10 -0
- package/dist/client/delivery-types.js.map +1 -0
- package/dist/client/delivery.d.ts +23 -0
- package/dist/client/delivery.d.ts.map +1 -0
- package/dist/client/delivery.js +105 -0
- package/dist/client/delivery.js.map +1 -0
- package/dist/client/flows.d.ts +33 -0
- package/dist/client/flows.d.ts.map +1 -0
- package/dist/client/flows.js +218 -0
- package/dist/client/flows.js.map +1 -0
- package/dist/client/index.d.ts +11 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/loxtep-client.d.ts +42 -83
- package/dist/client/loxtep-client.d.ts.map +1 -1
- package/dist/client/loxtep-client.js +99 -94
- package/dist/client/loxtep-client.js.map +1 -1
- package/dist/client/meaning.d.ts +13 -0
- package/dist/client/meaning.d.ts.map +1 -0
- package/dist/client/meaning.js +10 -0
- package/dist/client/meaning.js.map +1 -0
- package/dist/client/observe-facade.d.ts +20 -0
- package/dist/client/observe-facade.d.ts.map +1 -0
- package/dist/client/observe-facade.js +15 -0
- package/dist/client/observe-facade.js.map +1 -0
- package/dist/client/query.d.ts +21 -0
- package/dist/client/query.d.ts.map +1 -0
- package/dist/client/query.js +14 -0
- package/dist/client/query.js.map +1 -0
- package/dist/client/review.d.ts +16 -0
- package/dist/client/review.d.ts.map +1 -0
- package/dist/client/review.js +11 -0
- package/dist/client/review.js.map +1 -0
- package/dist/client/session.d.ts +28 -0
- package/dist/client/session.d.ts.map +1 -0
- package/dist/client/session.js +28 -0
- package/dist/client/session.js.map +1 -0
- package/dist/client/workspace.d.ts +22 -0
- package/dist/client/workspace.d.ts.map +1 -0
- package/dist/client/workspace.js +12 -0
- package/dist/client/workspace.js.map +1 -0
- package/dist/codegen/load-workspace-context.js +4 -4
- package/dist/codegen/load-workspace-context.js.map +1 -1
- package/dist/config/workspace-config.d.ts +2 -1
- package/dist/config/workspace-config.d.ts.map +1 -1
- package/dist/config/workspace-config.js +5 -6
- package/dist/config/workspace-config.js.map +1 -1
- package/docs/sdk-mcp-mapping.md +35 -9
- package/docs/sdk-pairing.md +5 -5
- package/package.json +1 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data assets API (backend: data products). get, list, search, get_queue_info, get_reader_checkpoint.
|
|
3
|
+
* Customer-facing surface: data_assets.
|
|
4
|
+
*/
|
|
5
|
+
function buildQueryString(params) {
|
|
6
|
+
const search = new URLSearchParams();
|
|
7
|
+
for (const [k, v] of Object.entries(params)) {
|
|
8
|
+
if (v === undefined || v === null)
|
|
9
|
+
continue;
|
|
10
|
+
if (Array.isArray(v)) {
|
|
11
|
+
search.set(k, v.join(','));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
search.set(k, String(v));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const qs = search.toString();
|
|
18
|
+
return qs ? `?${qs}` : '';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create the data_assets API surface (get, list, search, query, list_tables, get_queue_info, get_reader_checkpoint, stream, replay).
|
|
22
|
+
*/
|
|
23
|
+
export function createDataAssetsApi(http, deps) {
|
|
24
|
+
return {
|
|
25
|
+
async get(id, options) {
|
|
26
|
+
const qs = options
|
|
27
|
+
? buildQueryString({
|
|
28
|
+
include_schema: options.include_schema,
|
|
29
|
+
include_quality: options.include_quality,
|
|
30
|
+
include_lineage: options.include_lineage,
|
|
31
|
+
include_contracts: options.include_contracts,
|
|
32
|
+
})
|
|
33
|
+
: '';
|
|
34
|
+
const res = await http.get(`/dataproducts/${encodeURIComponent(id)}${qs}`);
|
|
35
|
+
return res.data;
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Get the glossary/lexicon (definitions) for a data asset.
|
|
39
|
+
* Returns glossary_terms (term -> { definition, alt_labels?, broader?, narrower?, related? }) and field_glossary_map.
|
|
40
|
+
*/
|
|
41
|
+
async get_lexicon(id) {
|
|
42
|
+
const asset = await this.get(id);
|
|
43
|
+
const glossary_terms = asset
|
|
44
|
+
.glossary_terms ??
|
|
45
|
+
asset.metadata?.business_glossary ??
|
|
46
|
+
{};
|
|
47
|
+
const field_glossary_map = asset.metadata?.field_glossary_map ?? undefined;
|
|
48
|
+
return { glossary_terms, field_glossary_map };
|
|
49
|
+
},
|
|
50
|
+
async list(filters) {
|
|
51
|
+
const params = {
|
|
52
|
+
page: filters?.page ?? 1,
|
|
53
|
+
page_size: filters?.page_size ?? 100,
|
|
54
|
+
sort_by: filters?.sort_by ?? 'created_at',
|
|
55
|
+
sort_order: filters?.sort_order ?? 'desc',
|
|
56
|
+
};
|
|
57
|
+
if (filters?.domain_id)
|
|
58
|
+
params.domain_id = filters.domain_id;
|
|
59
|
+
if (filters?.status)
|
|
60
|
+
params.status = filters.status;
|
|
61
|
+
if (filters?.classification)
|
|
62
|
+
params.classification = filters.classification;
|
|
63
|
+
if (filters?.owner_user_id)
|
|
64
|
+
params.owner_user_id = filters.owner_user_id;
|
|
65
|
+
if (filters?.search)
|
|
66
|
+
params.search = filters.search;
|
|
67
|
+
if (filters?.tags?.length)
|
|
68
|
+
params.tags = filters.tags.join(',');
|
|
69
|
+
const qs = buildQueryString(params);
|
|
70
|
+
const res = await http.get(`/dataproducts${qs}`);
|
|
71
|
+
return res.data;
|
|
72
|
+
},
|
|
73
|
+
async search(query, filters) {
|
|
74
|
+
const params = {
|
|
75
|
+
q: query,
|
|
76
|
+
type: filters?.type ?? 'data_product',
|
|
77
|
+
limit: filters?.limit ?? 20,
|
|
78
|
+
offset: filters?.offset ?? 0,
|
|
79
|
+
};
|
|
80
|
+
const qs = buildQueryString(params);
|
|
81
|
+
return http.get(`/search${qs}`);
|
|
82
|
+
},
|
|
83
|
+
async query(id, sql) {
|
|
84
|
+
const res = await http.post('/dataproducts/query', { data_product_id: id, sql });
|
|
85
|
+
const payload = res.data;
|
|
86
|
+
if (!payload) {
|
|
87
|
+
return { items: [], metadata: { data_product_id: id } };
|
|
88
|
+
}
|
|
89
|
+
return payload;
|
|
90
|
+
},
|
|
91
|
+
async list_tables(id) {
|
|
92
|
+
const res = await http.get(`/dataproducts/${encodeURIComponent(id)}/tables`);
|
|
93
|
+
const payload = res.data;
|
|
94
|
+
if (!payload) {
|
|
95
|
+
return { items: [] };
|
|
96
|
+
}
|
|
97
|
+
return payload;
|
|
98
|
+
},
|
|
99
|
+
async get_queue_info(id) {
|
|
100
|
+
if (!deps) {
|
|
101
|
+
throw new Error('data_assets.get_queue_info requires queues API; use LoxtepClient which wires it');
|
|
102
|
+
}
|
|
103
|
+
const asset = await this.get(id);
|
|
104
|
+
const queue_name = asset.storage?.rstreams_queue;
|
|
105
|
+
if (!queue_name) {
|
|
106
|
+
return {
|
|
107
|
+
queue_name: '',
|
|
108
|
+
checkpoints: [],
|
|
109
|
+
readers: [],
|
|
110
|
+
writers: [],
|
|
111
|
+
stats: {},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return deps.get_queue_metadata(queue_name);
|
|
115
|
+
},
|
|
116
|
+
async get_reader_checkpoint(id, bot_id) {
|
|
117
|
+
if (!deps) {
|
|
118
|
+
throw new Error('data_assets.get_reader_checkpoint requires queues API; use LoxtepClient which wires it');
|
|
119
|
+
}
|
|
120
|
+
const asset = await this.get(id);
|
|
121
|
+
const queue_name = asset.storage?.rstreams_queue;
|
|
122
|
+
if (!queue_name) {
|
|
123
|
+
throw new Error(`Data asset ${id} has no rstreams_queue (storage not configured)`);
|
|
124
|
+
}
|
|
125
|
+
return deps.get_reader_checkpoint(queue_name, bot_id);
|
|
126
|
+
},
|
|
127
|
+
async *stream(id, options) {
|
|
128
|
+
const asset = await this.get(id);
|
|
129
|
+
const queue_name = asset.storage?.rstreams_queue;
|
|
130
|
+
if (!queue_name) {
|
|
131
|
+
throw new Error(`Data asset ${id} has no rstreams_queue (storage not configured)`);
|
|
132
|
+
}
|
|
133
|
+
const batch_size = options?.batch_size ?? 100;
|
|
134
|
+
let start = options?.from ?? options?.checkpoint ?? undefined;
|
|
135
|
+
const path = `/observe/trace/${encodeURIComponent(queue_name)}/events`;
|
|
136
|
+
while (true) {
|
|
137
|
+
const qs = buildQueryString({ start, limit: batch_size });
|
|
138
|
+
const res = await http.get(`${path}${qs}`);
|
|
139
|
+
const payload = res.data ?? res;
|
|
140
|
+
const events = payload.events ??
|
|
141
|
+
res.events ??
|
|
142
|
+
[];
|
|
143
|
+
for (const event of events) {
|
|
144
|
+
yield event;
|
|
145
|
+
}
|
|
146
|
+
if (events.length < batch_size)
|
|
147
|
+
break;
|
|
148
|
+
const last = events[events.length - 1];
|
|
149
|
+
start = last.event_id ?? last.id;
|
|
150
|
+
if (!start)
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
async *replay(id, options) {
|
|
155
|
+
const asset = await this.get(id);
|
|
156
|
+
const queue_name = asset.storage?.rstreams_queue;
|
|
157
|
+
if (!queue_name) {
|
|
158
|
+
throw new Error(`Data asset ${id} has no rstreams_queue (storage not configured)`);
|
|
159
|
+
}
|
|
160
|
+
const limit = options?.limit ?? 1000;
|
|
161
|
+
const start = options?.from_beginning
|
|
162
|
+
? '0'
|
|
163
|
+
: (options?.from_eid ?? options?.from_timestamp ?? options?.checkpoint_id ?? undefined);
|
|
164
|
+
const end = options?.to_eid ?? options?.to_timestamp ?? undefined;
|
|
165
|
+
const path = `/observe/trace/${encodeURIComponent(queue_name)}/events`;
|
|
166
|
+
const qs = buildQueryString({
|
|
167
|
+
start: start ?? undefined,
|
|
168
|
+
end: end ?? undefined,
|
|
169
|
+
limit,
|
|
170
|
+
});
|
|
171
|
+
const res = await http.get(`${path}${qs}`);
|
|
172
|
+
const payload = res.data ?? res;
|
|
173
|
+
const events = payload.events ??
|
|
174
|
+
res.events ??
|
|
175
|
+
[];
|
|
176
|
+
for (const event of events) {
|
|
177
|
+
yield event;
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=data-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-assets.js","sourceRoot":"","sources":["../../src/client/data-assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Define facade (MCP: loxtep_define).
|
|
3
|
+
* Delegates to schemas, quality, standards, data_contracts, and domains APIs.
|
|
4
|
+
*/
|
|
5
|
+
import type { createSchemasApi } from './schemas.js';
|
|
6
|
+
import type { createQualityApi } from './quality.js';
|
|
7
|
+
import type { createStandardsApi } from './standards.js';
|
|
8
|
+
import type { createPromisesApi } from './promises.js';
|
|
9
|
+
import type { createDomainsApi } from './domains.js';
|
|
10
|
+
export interface DefineFacadeDeps {
|
|
11
|
+
schemas: ReturnType<typeof createSchemasApi>;
|
|
12
|
+
quality: ReturnType<typeof createQualityApi>;
|
|
13
|
+
standards: ReturnType<typeof createStandardsApi>;
|
|
14
|
+
data_contracts: ReturnType<typeof createPromisesApi>;
|
|
15
|
+
domains: ReturnType<typeof createDomainsApi>;
|
|
16
|
+
}
|
|
17
|
+
export declare function createDefineFacade(deps: DefineFacadeDeps): {
|
|
18
|
+
schemas: DefineFacadeDeps['schemas'];
|
|
19
|
+
quality: DefineFacadeDeps['quality'];
|
|
20
|
+
standards: DefineFacadeDeps['standards'];
|
|
21
|
+
data_contracts: DefineFacadeDeps['data_contracts'];
|
|
22
|
+
domains: DefineFacadeDeps['domains'];
|
|
23
|
+
};
|
|
24
|
+
export type DefineFacade = ReturnType<typeof createDefineFacade>;
|
|
25
|
+
//# sourceMappingURL=define.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/client/define.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC7C,OAAO,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC7C,SAAS,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACjD,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACrD,OAAO,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;CAC9C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG;IAC1D,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACrC,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzC,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;CACtC,CAQA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Define facade (MCP: loxtep_define).
|
|
3
|
+
* Delegates to schemas, quality, standards, data_contracts, and domains APIs.
|
|
4
|
+
*/
|
|
5
|
+
export function createDefineFacade(deps) {
|
|
6
|
+
return {
|
|
7
|
+
schemas: deps.schemas,
|
|
8
|
+
quality: deps.quality,
|
|
9
|
+
standards: deps.standards,
|
|
10
|
+
data_contracts: deps.data_contracts,
|
|
11
|
+
domains: deps.domains,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=define.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/client/define.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IAOvD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery Interface types — the primary interface for configuring how data
|
|
3
|
+
* products deliver data to external systems.
|
|
4
|
+
*
|
|
5
|
+
* Replaces the "consumptions" terminology. The underlying API endpoints remain
|
|
6
|
+
* unchanged (`/dataproducts/:data_product_id/consumptions`) for backward
|
|
7
|
+
* compatibility.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Discriminator for the type of delivery mechanism configured on a data product.
|
|
11
|
+
*/
|
|
12
|
+
export type DeliveryType = 'webhook' | 'api_endpoint' | 'export' | 'database_sync' | 'bi_connect' | 'event_stream';
|
|
13
|
+
/**
|
|
14
|
+
* A delivery interface defines how a data product makes its data available
|
|
15
|
+
* to an external system. Formerly called "Consumption."
|
|
16
|
+
*/
|
|
17
|
+
export interface DeliveryInterface {
|
|
18
|
+
consumption_id: string;
|
|
19
|
+
data_product_id: string;
|
|
20
|
+
organization_id: string;
|
|
21
|
+
created_by: string | null;
|
|
22
|
+
name: string | null;
|
|
23
|
+
description: string | null;
|
|
24
|
+
/** The type of delivery mechanism. */
|
|
25
|
+
deliveryType: DeliveryType;
|
|
26
|
+
delivery_method: string;
|
|
27
|
+
status: string;
|
|
28
|
+
is_active: boolean;
|
|
29
|
+
endpoint_url: string | null;
|
|
30
|
+
method: string;
|
|
31
|
+
auth_type: string | null;
|
|
32
|
+
headers: Record<string, string>;
|
|
33
|
+
/** Redacted in API: "••••••••" when set, null when not. Never raw value. */
|
|
34
|
+
secret_token: string | null;
|
|
35
|
+
/** True when a secret is configured. */
|
|
36
|
+
secret_token_set: boolean;
|
|
37
|
+
filters: Record<string, unknown>;
|
|
38
|
+
configuration: Record<string, unknown>;
|
|
39
|
+
metadata: Record<string, unknown>;
|
|
40
|
+
max_retries: number;
|
|
41
|
+
retry_delay_seconds: number;
|
|
42
|
+
timeout_seconds: number;
|
|
43
|
+
batch_mode: boolean;
|
|
44
|
+
batch_size: number | null;
|
|
45
|
+
delivery_stats: Record<string, unknown>;
|
|
46
|
+
last_delivery_attempt: string | null;
|
|
47
|
+
last_successful_delivery: string | null;
|
|
48
|
+
last_error: string | null;
|
|
49
|
+
created_at: string;
|
|
50
|
+
updated_at: string;
|
|
51
|
+
deleted_at: string | null;
|
|
52
|
+
}
|
|
53
|
+
export interface DeliveryListParams {
|
|
54
|
+
page?: number;
|
|
55
|
+
page_size?: number;
|
|
56
|
+
status?: string;
|
|
57
|
+
is_active?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface DeliveryListResponse {
|
|
60
|
+
success: true;
|
|
61
|
+
data: {
|
|
62
|
+
items: DeliveryInterface[];
|
|
63
|
+
pagination: {
|
|
64
|
+
page: number;
|
|
65
|
+
page_size: number;
|
|
66
|
+
total: number;
|
|
67
|
+
total_pages: number;
|
|
68
|
+
has_next: boolean;
|
|
69
|
+
has_prev: boolean;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export interface DeliveryCreateInput {
|
|
74
|
+
/** The type of delivery mechanism to configure. */
|
|
75
|
+
deliveryType?: DeliveryType;
|
|
76
|
+
name?: string | null;
|
|
77
|
+
description?: string | null;
|
|
78
|
+
delivery_method?: string;
|
|
79
|
+
endpoint_url?: string | null;
|
|
80
|
+
method?: string;
|
|
81
|
+
auth_type?: string | null;
|
|
82
|
+
headers?: Record<string, string>;
|
|
83
|
+
secret_token?: string | null;
|
|
84
|
+
filters?: Record<string, unknown>;
|
|
85
|
+
configuration?: Record<string, unknown>;
|
|
86
|
+
metadata?: Record<string, unknown>;
|
|
87
|
+
max_retries?: number;
|
|
88
|
+
retry_delay_seconds?: number;
|
|
89
|
+
timeout_seconds?: number;
|
|
90
|
+
batch_mode?: boolean;
|
|
91
|
+
batch_size?: number | null;
|
|
92
|
+
}
|
|
93
|
+
export interface DeliveryUpdateInput extends Partial<DeliveryCreateInput> {
|
|
94
|
+
status?: string;
|
|
95
|
+
is_active?: boolean;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=delivery-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-types.d.ts","sourceRoot":"","sources":["../../src/client/delivery-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery Interface types — the primary interface for configuring how data
|
|
3
|
+
* products deliver data to external systems.
|
|
4
|
+
*
|
|
5
|
+
* Replaces the "consumptions" terminology. The underlying API endpoints remain
|
|
6
|
+
* unchanged (`/dataproducts/:data_product_id/consumptions`) for backward
|
|
7
|
+
* compatibility.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=delivery-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-types.js","sourceRoot":"","sources":["../../src/client/delivery-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery API — the primary namespace for managing delivery interfaces
|
|
3
|
+
* on data products.
|
|
4
|
+
*
|
|
5
|
+
* Delivery interfaces define how a data product makes its data available to
|
|
6
|
+
* external systems (webhooks, API endpoints, exports, database syncs, BI
|
|
7
|
+
* connections, event streams).
|
|
8
|
+
*
|
|
9
|
+
* This module calls the same underlying HTTP endpoints as the legacy
|
|
10
|
+
* `consumptions` namespace (`/dataproducts/:data_product_id/consumptions`)
|
|
11
|
+
* but uses the canonical "delivery" terminology.
|
|
12
|
+
*/
|
|
13
|
+
import type { LoxtepHttpClient } from '../http/client.js';
|
|
14
|
+
import type { DeliveryInterface, DeliveryListParams, DeliveryListResponse, DeliveryCreateInput, DeliveryUpdateInput } from './delivery-types.js';
|
|
15
|
+
export interface DeliveryApi {
|
|
16
|
+
list: (data_product_id: string, params?: DeliveryListParams) => Promise<DeliveryListResponse['data']>;
|
|
17
|
+
get: (data_product_id: string, delivery_id: string) => Promise<DeliveryInterface>;
|
|
18
|
+
create: (data_product_id: string, body: DeliveryCreateInput) => Promise<DeliveryInterface>;
|
|
19
|
+
update: (data_product_id: string, delivery_id: string, body: DeliveryUpdateInput) => Promise<DeliveryInterface>;
|
|
20
|
+
delete: (data_product_id: string, delivery_id: string) => Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare function createDeliveryApi(http: LoxtepHttpClient): DeliveryApi;
|
|
23
|
+
//# sourceMappingURL=delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/client/delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAY7B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,CACJ,eAAe,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,kBAAkB,KACxB,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,GAAG,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClF,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3F,MAAM,EAAE,CACN,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,mBAAmB,KACtB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AA4CD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAqErE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delivery API — the primary namespace for managing delivery interfaces
|
|
3
|
+
* on data products.
|
|
4
|
+
*
|
|
5
|
+
* Delivery interfaces define how a data product makes its data available to
|
|
6
|
+
* external systems (webhooks, API endpoints, exports, database syncs, BI
|
|
7
|
+
* connections, event streams).
|
|
8
|
+
*
|
|
9
|
+
* This module calls the same underlying HTTP endpoints as the legacy
|
|
10
|
+
* `consumptions` namespace (`/dataproducts/:data_product_id/consumptions`)
|
|
11
|
+
* but uses the canonical "delivery" terminology.
|
|
12
|
+
*/
|
|
13
|
+
function buildQueryString(params) {
|
|
14
|
+
const search = new URLSearchParams();
|
|
15
|
+
for (const [k, v] of Object.entries(params)) {
|
|
16
|
+
if (v === undefined || v === null)
|
|
17
|
+
continue;
|
|
18
|
+
search.set(k, String(v));
|
|
19
|
+
}
|
|
20
|
+
const qs = search.toString();
|
|
21
|
+
return qs ? `?${qs}` : '';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Map a raw API response (Consumption shape) to a DeliveryInterface by adding
|
|
25
|
+
* the `deliveryType` discriminator. Infers the delivery type from
|
|
26
|
+
* `delivery_method` when the field isn't already present.
|
|
27
|
+
*/
|
|
28
|
+
function toDeliveryInterface(raw) {
|
|
29
|
+
const result = raw;
|
|
30
|
+
if (!result.deliveryType) {
|
|
31
|
+
// Infer deliveryType from delivery_method if not explicitly set
|
|
32
|
+
const method = raw['delivery_method'] ?? 'webhook';
|
|
33
|
+
result.deliveryType = inferDeliveryType(method);
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
function inferDeliveryType(deliveryMethod) {
|
|
38
|
+
switch (deliveryMethod) {
|
|
39
|
+
case 'webhook':
|
|
40
|
+
case 'http':
|
|
41
|
+
return 'webhook';
|
|
42
|
+
case 'api_endpoint':
|
|
43
|
+
case 'api':
|
|
44
|
+
return 'api_endpoint';
|
|
45
|
+
case 'export':
|
|
46
|
+
case 'bulk':
|
|
47
|
+
return 'export';
|
|
48
|
+
case 'database_sync':
|
|
49
|
+
case 'warehouse':
|
|
50
|
+
return 'database_sync';
|
|
51
|
+
case 'bi_connect':
|
|
52
|
+
case 'bi':
|
|
53
|
+
return 'bi_connect';
|
|
54
|
+
case 'event_stream':
|
|
55
|
+
case 'stream':
|
|
56
|
+
return 'event_stream';
|
|
57
|
+
default:
|
|
58
|
+
return 'webhook';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function createDeliveryApi(http) {
|
|
62
|
+
const base = (data_product_id) => `/dataproducts/${encodeURIComponent(data_product_id)}/consumptions`;
|
|
63
|
+
return {
|
|
64
|
+
async list(data_product_id, params) {
|
|
65
|
+
const qs = params
|
|
66
|
+
? buildQueryString({
|
|
67
|
+
page: params.page ?? 1,
|
|
68
|
+
page_size: params.page_size ?? 20,
|
|
69
|
+
status: params.status,
|
|
70
|
+
is_active: params.is_active,
|
|
71
|
+
})
|
|
72
|
+
: '';
|
|
73
|
+
const res = await http.get(`${base(data_product_id)}${qs}`);
|
|
74
|
+
return {
|
|
75
|
+
items: res.data.items.map(toDeliveryInterface),
|
|
76
|
+
pagination: res.data.pagination,
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
async get(data_product_id, delivery_id) {
|
|
80
|
+
const res = await http.get(`${base(data_product_id)}/${encodeURIComponent(delivery_id)}`);
|
|
81
|
+
return toDeliveryInterface(res.data);
|
|
82
|
+
},
|
|
83
|
+
async create(data_product_id, body) {
|
|
84
|
+
// Map deliveryType to delivery_method for the API if provided
|
|
85
|
+
const apiBody = { ...body };
|
|
86
|
+
if (body.deliveryType && !body.delivery_method) {
|
|
87
|
+
apiBody['delivery_method'] = body.deliveryType;
|
|
88
|
+
}
|
|
89
|
+
const res = await http.post(base(data_product_id), apiBody);
|
|
90
|
+
return toDeliveryInterface(res.data);
|
|
91
|
+
},
|
|
92
|
+
async update(data_product_id, delivery_id, body) {
|
|
93
|
+
const apiBody = { ...body };
|
|
94
|
+
if (body.deliveryType && !body.delivery_method) {
|
|
95
|
+
apiBody['delivery_method'] = body.deliveryType;
|
|
96
|
+
}
|
|
97
|
+
const res = await http.put(`${base(data_product_id)}/${encodeURIComponent(delivery_id)}`, apiBody);
|
|
98
|
+
return toDeliveryInterface(res.data);
|
|
99
|
+
},
|
|
100
|
+
async delete(data_product_id, delivery_id) {
|
|
101
|
+
await http.delete(`${base(data_product_id)}/${encodeURIComponent(delivery_id)}`);
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/client/delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flows API (backend: workflows). list, get (with nodes), create, get_writer.
|
|
3
|
+
* Flow writes for live events use the Loxtep stream data plane — not HTTP POST to /workflows/.../events.
|
|
4
|
+
*/
|
|
5
|
+
import type { RStreamsSdk } from '../rstreams/leo-runtime.js';
|
|
6
|
+
import type { LoxtepHttpClient } from '../http/client.js';
|
|
7
|
+
import type { Flow, FlowWithNodes, FlowsListFilters, FlowsListResponse, FlowCreateInput, FlowWriter, GetWriterOptions } from './flow-types.js';
|
|
8
|
+
export interface FlowsApiDeps {
|
|
9
|
+
/** Stream runtime; required for get_writer().close() */
|
|
10
|
+
rsdk?: RStreamsSdk;
|
|
11
|
+
/** Lazy stream runtime resolver (attempts observe.stream_config() when rsdk is not set). */
|
|
12
|
+
get_rsdk?: () => Promise<RStreamsSdk | undefined>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Determine whether an error is transient and should be retried.
|
|
16
|
+
* Transient: network errors, timeouts, throttling (429), 5xx responses.
|
|
17
|
+
* Non-transient: 4xx (except 429), auth failures — fail immediately.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isTransientError(err: unknown): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Sleep for the given number of milliseconds. Extracted for testability.
|
|
22
|
+
*/
|
|
23
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Create the flows API surface (list, get with nodes, create, get_writer).
|
|
26
|
+
*/
|
|
27
|
+
export declare function createFlowsApi(http: LoxtepHttpClient, deps?: FlowsApiDeps): {
|
|
28
|
+
list: (filters: FlowsListFilters) => Promise<FlowsListResponse['data']>;
|
|
29
|
+
get: (id: string) => Promise<FlowWithNodes>;
|
|
30
|
+
create: (input: FlowCreateInput) => Promise<Flow>;
|
|
31
|
+
get_writer: (flow_id: string, options?: GetWriterOptions) => Promise<FlowWriter>;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=flows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/client/flows.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACV,IAAI,EACJ,aAAa,EAEb,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAUzB,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CACnD;AAkCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAwEtD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,gBAAgB,EACtB,IAAI,CAAC,EAAE,YAAY,GAClB;IACD,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAClF,CAmIA"}
|