@loxtep/sdk 0.7.19 → 0.7.22
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 +36 -0
- package/README.md +12 -13
- package/dist/cli/commands/attach-cmd.d.ts.map +1 -1
- package/dist/cli/commands/attach-cmd.js +8 -3
- package/dist/cli/commands/attach-cmd.js.map +1 -1
- package/dist/cli/commands/config-cmd.d.ts.map +1 -1
- package/dist/cli/commands/config-cmd.js +3 -2
- package/dist/cli/commands/config-cmd.js.map +1 -1
- package/dist/cli/commands/ingest-cmd.d.ts.map +1 -1
- package/dist/cli/commands/ingest-cmd.js +1 -2
- package/dist/cli/commands/ingest-cmd.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +0 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/client/instances-types.d.ts +11 -0
- package/dist/client/instances-types.d.ts.map +1 -1
- package/dist/client/instances.d.ts +9 -13
- package/dist/client/instances.d.ts.map +1 -1
- package/dist/client/instances.js +6 -5
- package/dist/client/instances.js.map +1 -1
- package/dist/errors/parse-http.d.ts +0 -9
- package/dist/errors/parse-http.d.ts.map +1 -1
- package/dist/errors/parse-http.js +28 -4
- package/dist/errors/parse-http.js.map +1 -1
- package/dist/http/client.d.ts +8 -4
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +13 -13
- package/dist/http/client.js.map +1 -1
- package/dist/lib/instance-stream-config.d.ts +19 -3
- package/dist/lib/instance-stream-config.d.ts.map +1 -1
- package/dist/lib/instance-stream-config.js +94 -2
- package/dist/lib/instance-stream-config.js.map +1 -1
- package/docs/getting-started.md +4 -16
- package/docs/quick-reference.md +8 -9
- package/docs/sdk-first-ingest.md +53 -232
- package/package.json +1 -1
- package/docs/examples/generate-ingest-bundle.mjs +0 -133
- package/docs/examples/write-events.mjs +0 -54
package/dist/http/client.js
CHANGED
|
@@ -55,7 +55,7 @@ export class LoxtepHttpClient {
|
|
|
55
55
|
this.credentials = creds;
|
|
56
56
|
return creds;
|
|
57
57
|
}
|
|
58
|
-
async request(method, path, body, retryCount = 0, authRetry = 0) {
|
|
58
|
+
async request(method, path, body, retryCount = 0, authRetry = 0, requestOptions) {
|
|
59
59
|
const pathPart = path.startsWith('http')
|
|
60
60
|
? path
|
|
61
61
|
: this.use_platform_path_resolution
|
|
@@ -63,7 +63,7 @@ export class LoxtepHttpClient {
|
|
|
63
63
|
: `${this.base_url}${path.startsWith('/') ? path : `/${path}`}`;
|
|
64
64
|
const url = new URL(pathPart);
|
|
65
65
|
const bodyString = body !== undefined ? JSON.stringify(body) : undefined;
|
|
66
|
-
const headers = {};
|
|
66
|
+
const headers = { ...(requestOptions?.headers ?? {}) };
|
|
67
67
|
if (this.get_token) {
|
|
68
68
|
const token = await this.get_token();
|
|
69
69
|
if (token)
|
|
@@ -90,7 +90,7 @@ export class LoxtepHttpClient {
|
|
|
90
90
|
if (isNetworkError(err) && retryCount < MAX_RETRIES) {
|
|
91
91
|
const delay = INITIAL_BACKOFF_MS * Math.pow(2, retryCount);
|
|
92
92
|
await new Promise(r => setTimeout(r, delay));
|
|
93
|
-
return this.request(method, path, body, retryCount + 1, authRetry);
|
|
93
|
+
return this.request(method, path, body, retryCount + 1, authRetry, requestOptions);
|
|
94
94
|
}
|
|
95
95
|
throw err;
|
|
96
96
|
}
|
|
@@ -106,14 +106,14 @@ export class LoxtepHttpClient {
|
|
|
106
106
|
if (response.status === 401 && authRetry === 0 && this.refresh_auth) {
|
|
107
107
|
const ok = await this.refresh_auth();
|
|
108
108
|
if (ok) {
|
|
109
|
-
return this.request(method, path, body, retryCount, authRetry + 1);
|
|
109
|
+
return this.request(method, path, body, retryCount, authRetry + 1, requestOptions);
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
if (response.status >= 400) {
|
|
113
113
|
if (isRetryable(response.status) && retryCount < MAX_RETRIES) {
|
|
114
114
|
const delay = INITIAL_BACKOFF_MS * Math.pow(2, retryCount);
|
|
115
115
|
await new Promise(r => setTimeout(r, delay));
|
|
116
|
-
return this.request(method, path, body, retryCount + 1, authRetry);
|
|
116
|
+
return this.request(method, path, body, retryCount + 1, authRetry, requestOptions);
|
|
117
117
|
}
|
|
118
118
|
throw parseHttpError(response.status, parsed, requestId);
|
|
119
119
|
}
|
|
@@ -148,17 +148,17 @@ export class LoxtepHttpClient {
|
|
|
148
148
|
getLastRateLimit() {
|
|
149
149
|
return this.lastRateLimit;
|
|
150
150
|
}
|
|
151
|
-
async get(path) {
|
|
152
|
-
return this.request('GET', path);
|
|
151
|
+
async get(path, options) {
|
|
152
|
+
return this.request('GET', path, undefined, 0, 0, options);
|
|
153
153
|
}
|
|
154
|
-
async post(path, body) {
|
|
155
|
-
return this.request('POST', path, body);
|
|
154
|
+
async post(path, body, options) {
|
|
155
|
+
return this.request('POST', path, body, 0, 0, options);
|
|
156
156
|
}
|
|
157
|
-
async put(path, body) {
|
|
158
|
-
return this.request('PUT', path, body);
|
|
157
|
+
async put(path, body, options) {
|
|
158
|
+
return this.request('PUT', path, body, 0, 0, options);
|
|
159
159
|
}
|
|
160
|
-
async delete(path) {
|
|
161
|
-
return this.request('DELETE', path);
|
|
160
|
+
async delete(path, options) {
|
|
161
|
+
return this.request('DELETE', path, undefined, 0, 0, options);
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
164
|
//# sourceMappingURL=client.js.map
|
package/dist/http/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,kBAAkB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,kBAAkB,GAAG,IAAI,CAAC;AA+BhC,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,KAAK,GAAG,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,GAAG,YAAY,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,IACE,GAAG,YAAY,KAAK;QACpB,CAAC,GAAG,CAAC,OAAO,KAAK,iBAAiB,IAAI,GAAG,CAAC,OAAO,KAAK,wBAAwB,CAAC;QAE/E,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACV,QAAQ,CAAS;IACjB,4BAA4B,CAAU;IACtC,SAAS,CAAgC;IACzC,MAAM,CAAS;IACf,mBAAmB,GAAG,qBAAqB,EAAE,CAAC;IACvD,WAAW,GAAiC,IAAI,CAAC;IACxC,QAAQ,CAAe;IAChC,aAAa,GAAyB,IAAI,CAAC;IAClC,YAAY,CAA0B;IAEvD,YAAY,OAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,KAAK,IAAI,CAAC;QAClF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACzC,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,iBAAiB,CAAC,WAAyC;QACzD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,qGAAqG,CACtG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,UAAU,GAAG,CAAC,EACd,SAAS,GAAG,CAAC,EACb,cAAyC;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC,4BAA4B;gBACjC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAC9C,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzE,MAAM,OAAO,GAA2B,EAAE,GAAG,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,KAAK;gBAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;QAC5C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC;YACtC,MAAM;YACN,GAAG;YACH,OAAO;YACP,IAAI,EAAE,UAAU;YAChB,WAAW;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC7C,MAAM;gBACN,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAC3D,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;gBAC7D,MAAM,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAC3D,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,MAAW,CAAC;IACrB,CAAC;IAEO,4BAA4B,CAAC,QAAkB;QACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,WAAW,IAAI,IAAI,IAAI,eAAe,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YAC1E,MAAM,KAAK,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,QAAQ,GACZ,WAAW,IAAI,IAAI;gBACjB,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,UAAU,IAAI,IAAI;oBAClB,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;oBACtE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,mBAAmB,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,IAAI,CAAC,aAAa,GAAG;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;gBACtC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClD,QAAQ;gBACR,mBAAmB,EACjB,mBAAmB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;oBAC/D,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,SAAS;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,OAAkC;QACrE,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,IAAI,CAAc,IAAY,EAAE,IAAc,EAAE,OAAkC;QACtF,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,IAAc,EAAE,OAAkC;QACrF,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAc,IAAY,EAAE,OAAkC;QACxE,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;CACF"}
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Resolve and map instance stream-config for SDK `streams` / attach.
|
|
3
3
|
*/
|
|
4
|
+
import type { LoxtepHttpClient } from '../http/client.js';
|
|
5
|
+
import type { Instance, InstanceStreamConfig } from '../client/instances-types.js';
|
|
4
6
|
import type { ConfigurationResources } from '../rstreams/leo-runtime.js';
|
|
5
|
-
|
|
7
|
+
export type InstanceStreamConfigSource = 'organizations';
|
|
6
8
|
/** Full stream bus resource names required for `resolveStreamsConfiguration`. */
|
|
7
9
|
export type FullInstanceStreamConfig = InstanceStreamConfig;
|
|
8
10
|
/**
|
|
9
|
-
*
|
|
11
|
+
* Extract stream config embedded on an instance record (shared / legacy paths).
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractStreamConfigFromInstance(instance: Instance): InstanceStreamConfig | null;
|
|
14
|
+
/**
|
|
15
|
+
* Resolve stream bus config via the organizations primary endpoint:
|
|
16
|
+
* GET /organizations/instances/{id}/stream-config
|
|
17
|
+
*/
|
|
18
|
+
export declare function fetchInstanceStreamConfig(http: LoxtepHttpClient, instanceId: string, options?: {
|
|
19
|
+
instance?: Instance;
|
|
20
|
+
}): Promise<{
|
|
21
|
+
config: InstanceStreamConfig;
|
|
22
|
+
source: InstanceStreamConfigSource;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Convert stream-config API data into the `streams` object stored on
|
|
10
26
|
* `.loxtep/project.json` and passed to `LoxtepClient` / `resolveStreamsConfiguration`.
|
|
11
27
|
*/
|
|
12
28
|
export declare function instanceStreamConfigToStreams(config: FullInstanceStreamConfig): ConfigurationResources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-stream-config.d.ts","sourceRoot":"","sources":["../../src/lib/instance-stream-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"instance-stream-config.d.ts","sourceRoot":"","sources":["../../src/lib/instance-stream-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKzE,MAAM,MAAM,0BAA0B,GAAG,eAAe,CAAC;AAazD,iFAAiF;AACjF,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAoD5D;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,GAAG,oBAAoB,GAAG,IAAI,CAmB/F;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAChC,OAAO,CAAC;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,0BAA0B,CAAA;CAAE,CAAC,CAY/E;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,wBAAwB,GAC/B,sBAAsB,CAWxB;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,SAAS,GAClD,MAAM,IAAI,sBAAsB,CAYlC"}
|
|
@@ -1,8 +1,100 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Resolve and map instance stream-config for SDK `streams` / attach.
|
|
3
3
|
*/
|
|
4
|
+
import { unwrapApiEnvelope } from '../client/current-user-response.js';
|
|
5
|
+
const INSTANCES_BASE = '/organizations/instances';
|
|
6
|
+
const STREAM_CONFIG_KEYS = [
|
|
7
|
+
'Region',
|
|
8
|
+
'LeoEvent',
|
|
9
|
+
'LeoStream',
|
|
10
|
+
'LeoCron',
|
|
11
|
+
'LeoS3',
|
|
12
|
+
'LeoKinesisStream',
|
|
13
|
+
'LeoFirehoseStream',
|
|
14
|
+
'LeoSettings',
|
|
15
|
+
];
|
|
16
|
+
function hasRequiredStreamKeys(source) {
|
|
17
|
+
return STREAM_CONFIG_KEYS.every(key => typeof source[key] === 'string' && source[key].length > 0);
|
|
18
|
+
}
|
|
19
|
+
function pickStreamConfig(source) {
|
|
20
|
+
return {
|
|
21
|
+
Region: source.Region,
|
|
22
|
+
LeoEvent: source.LeoEvent,
|
|
23
|
+
LeoStream: source.LeoStream,
|
|
24
|
+
LeoCron: source.LeoCron,
|
|
25
|
+
LeoS3: source.LeoS3,
|
|
26
|
+
LeoKinesisStream: source.LeoKinesisStream,
|
|
27
|
+
LeoFirehoseStream: source.LeoFirehoseStream,
|
|
28
|
+
LeoSettings: source.LeoSettings,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function parseStreamConfigRecord(source, defaultRegion) {
|
|
32
|
+
if (!source)
|
|
33
|
+
return null;
|
|
34
|
+
const withRegion = {
|
|
35
|
+
...source,
|
|
36
|
+
Region: source.Region || defaultRegion || 'us-east-1',
|
|
37
|
+
};
|
|
38
|
+
if (!hasRequiredStreamKeys(withRegion))
|
|
39
|
+
return null;
|
|
40
|
+
return pickStreamConfig(withRegion);
|
|
41
|
+
}
|
|
42
|
+
function parseJsonObject(value) {
|
|
43
|
+
if (!value)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (typeof value === 'string') {
|
|
46
|
+
try {
|
|
47
|
+
const parsed = JSON.parse(value);
|
|
48
|
+
return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
|
|
49
|
+
? parsed
|
|
50
|
+
: undefined;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (typeof value === 'object' && !Array.isArray(value)) {
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Extract stream config embedded on an instance record (shared / legacy paths).
|
|
63
|
+
*/
|
|
64
|
+
export function extractStreamConfigFromInstance(instance) {
|
|
65
|
+
const region = instance.region || 'us-east-1';
|
|
66
|
+
const metadata = parseJsonObject(instance.metadata);
|
|
67
|
+
if (metadata?.rstreams && typeof metadata.rstreams === 'object') {
|
|
68
|
+
const parsed = parseStreamConfigRecord(metadata.rstreams, region);
|
|
69
|
+
if (parsed)
|
|
70
|
+
return parsed;
|
|
71
|
+
}
|
|
72
|
+
const connectionDetails = parseJsonObject(instance.connection_details);
|
|
73
|
+
if (connectionDetails) {
|
|
74
|
+
const observeApi = connectionDetails.observe_api;
|
|
75
|
+
const rstreams = observeApi?.rstreams ??
|
|
76
|
+
connectionDetails.rstreams;
|
|
77
|
+
const parsed = parseStreamConfigRecord(rstreams, region);
|
|
78
|
+
if (parsed)
|
|
79
|
+
return parsed;
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolve stream bus config via the organizations primary endpoint:
|
|
85
|
+
* GET /organizations/instances/{id}/stream-config
|
|
86
|
+
*/
|
|
87
|
+
export async function fetchInstanceStreamConfig(http, instanceId, options) {
|
|
88
|
+
const res = await http.get(`${INSTANCES_BASE}/${encodeURIComponent(instanceId)}/stream-config`);
|
|
89
|
+
const payload = unwrapApiEnvelope(res);
|
|
90
|
+
const parsed = parseStreamConfigRecord(payload, options?.instance?.region);
|
|
91
|
+
if (!parsed) {
|
|
92
|
+
throw new Error(`Stream-config response for instance '${instanceId}' is missing required Leo resource names`);
|
|
93
|
+
}
|
|
94
|
+
return { config: parsed, source: 'organizations' };
|
|
95
|
+
}
|
|
4
96
|
/**
|
|
5
|
-
* Convert
|
|
97
|
+
* Convert stream-config API data into the `streams` object stored on
|
|
6
98
|
* `.loxtep/project.json` and passed to `LoxtepClient` / `resolveStreamsConfiguration`.
|
|
7
99
|
*/
|
|
8
100
|
export function instanceStreamConfigToStreams(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-stream-config.js","sourceRoot":"","sources":["../../src/lib/instance-stream-config.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"instance-stream-config.js","sourceRoot":"","sources":["../../src/lib/instance-stream-config.ts"],"names":[],"mappings":"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"}
|
package/docs/getting-started.md
CHANGED
|
@@ -163,29 +163,17 @@ products, connectors, domains, queues, workflows). Re-run after platform changes
|
|
|
163
163
|
|
|
164
164
|
---
|
|
165
165
|
|
|
166
|
-
## Step 6:
|
|
166
|
+
## Step 6: Create a data product and write from your app
|
|
167
167
|
|
|
168
|
-
After `attach`,
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
`get_writer` needs **deployment metadata** (queues and bots created at deploy
|
|
172
|
-
time). Creating a catalog row alone is not enough.
|
|
173
|
-
|
|
174
|
-
**Recommended:** follow **[SDK-first ingest](./sdk-first-ingest.md)** end to end.
|
|
175
|
-
Short version:
|
|
168
|
+
After `attach`, create a data product on that instance, then call `get_writer`
|
|
169
|
+
from your application:
|
|
176
170
|
|
|
177
171
|
```bash
|
|
178
|
-
pnpm exec loxtep domains list
|
|
179
|
-
|
|
180
|
-
# One command: SDK connector + workflow bundle + deploy (no MCP)
|
|
181
172
|
pnpm exec loxtep ingest provision --name app-events
|
|
182
|
-
|
|
183
173
|
pnpm exec loxtep data-products list
|
|
184
|
-
node node_modules/@loxtep/sdk/docs/examples/write-events.mjs
|
|
185
174
|
```
|
|
186
175
|
|
|
187
|
-
|
|
188
|
-
streaming — it registers catalog metadata without runtime bindings.
|
|
176
|
+
See **[Write to a data product](./sdk-first-ingest.md)** for the full flow and code sample.
|
|
189
177
|
|
|
190
178
|
---
|
|
191
179
|
|
package/docs/quick-reference.md
CHANGED
|
@@ -54,8 +54,8 @@ bus config from deployment metadata.
|
|
|
54
54
|
```typescript
|
|
55
55
|
const writer = await client.get_writer('orders'); // deployed data product name
|
|
56
56
|
|
|
57
|
-
writer.write({
|
|
58
|
-
writer.write({
|
|
57
|
+
writer.write({ order_id: 'ord-1', status: 'placed' });
|
|
58
|
+
writer.write({ order_id: 'ord-2', status: 'shipped' });
|
|
59
59
|
|
|
60
60
|
await writer.close(); // flushes all buffered events
|
|
61
61
|
```
|
|
@@ -65,8 +65,8 @@ await writer.close(); // flushes all buffered events
|
|
|
65
65
|
```python
|
|
66
66
|
writer = await client.get_writer("my-data-product")
|
|
67
67
|
|
|
68
|
-
writer.write({"
|
|
69
|
-
writer.write({"
|
|
68
|
+
writer.write({"order_id": "ord-1", "status": "placed"})
|
|
69
|
+
writer.write({"order_id": "ord-2", "status": "shipped"})
|
|
70
70
|
|
|
71
71
|
await writer.close() # flushes all buffered events
|
|
72
72
|
```
|
|
@@ -189,15 +189,14 @@ pnpm exec loxtep attach --instance <instance-id>
|
|
|
189
189
|
pnpm exec loxtep generate
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
**
|
|
192
|
+
**Create a data product and write from your app** (after attach):
|
|
193
193
|
|
|
194
194
|
```bash
|
|
195
|
-
pnpm exec loxtep
|
|
196
|
-
node node_modules/@loxtep/sdk/docs/examples/generate-ingest-bundle.mjs
|
|
197
|
-
pnpm exec loxtep workflows deploy --project-id <id> --instance-id <id>
|
|
198
|
-
node node_modules/@loxtep/sdk/docs/examples/write-events.mjs
|
|
195
|
+
pnpm exec loxtep ingest provision --name app-events
|
|
199
196
|
```
|
|
200
197
|
|
|
198
|
+
See [Write to a data product](./sdk-first-ingest.md).
|
|
199
|
+
|
|
201
200
|
Code-first workflow modules:
|
|
202
201
|
|
|
203
202
|
```bash
|