@x12i/memorix-service 3.3.0 → 3.4.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/README.md +23 -6
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +4 -0
- package/dist/app.js.map +1 -1
- package/dist/blob-store/config.d.ts +31 -0
- package/dist/blob-store/config.d.ts.map +1 -0
- package/dist/blob-store/config.js +68 -0
- package/dist/blob-store/config.js.map +1 -0
- package/dist/blob-store/disk.d.ts +10 -0
- package/dist/blob-store/disk.d.ts.map +1 -0
- package/dist/blob-store/disk.js +104 -0
- package/dist/blob-store/disk.js.map +1 -0
- package/dist/blob-store/index.d.ts +6 -0
- package/dist/blob-store/index.d.ts.map +1 -0
- package/dist/blob-store/index.js +6 -0
- package/dist/blob-store/index.js.map +1 -0
- package/dist/blob-store/memory.d.ts +4 -0
- package/dist/blob-store/memory.d.ts.map +1 -0
- package/dist/blob-store/memory.js +47 -0
- package/dist/blob-store/memory.js.map +1 -0
- package/dist/blob-store/s3.d.ts +52 -0
- package/dist/blob-store/s3.d.ts.map +1 -0
- package/dist/blob-store/s3.js +151 -0
- package/dist/blob-store/s3.js.map +1 -0
- package/dist/blob-store/types.d.ts +30 -0
- package/dist/blob-store/types.d.ts.map +1 -0
- package/dist/blob-store/types.js +38 -0
- package/dist/blob-store/types.js.map +1 -0
- package/dist/catalog-store-cli.d.ts.map +1 -1
- package/dist/catalog-store-cli.js +35 -4
- package/dist/catalog-store-cli.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/index.d.ts +3 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/instance-store.d.ts +5 -0
- package/dist/integrations/instance-store.d.ts.map +1 -0
- package/dist/integrations/instance-store.js +327 -0
- package/dist/integrations/instance-store.js.map +1 -0
- package/dist/integrations/types.d.ts +92 -0
- package/dist/integrations/types.d.ts.map +1 -0
- package/dist/integrations/types.js +40 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/magit/magit-pack-service.d.ts +187 -3
- package/dist/magit/magit-pack-service.d.ts.map +1 -1
- package/dist/magit/magit-pack-service.js +401 -8
- package/dist/magit/magit-pack-service.js.map +1 -1
- package/dist/openapi/openapi.json +1348 -2
- package/dist/platform.d.ts +18 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +61 -0
- package/dist/platform.js.map +1 -1
- package/dist/restricted-store/crypto.d.ts +10 -0
- package/dist/restricted-store/crypto.d.ts.map +1 -0
- package/dist/restricted-store/crypto.js +43 -0
- package/dist/restricted-store/crypto.js.map +1 -0
- package/dist/restricted-store/index.d.ts +4 -0
- package/dist/restricted-store/index.d.ts.map +1 -0
- package/dist/restricted-store/index.js +4 -0
- package/dist/restricted-store/index.js.map +1 -0
- package/dist/restricted-store/object-store.d.ts +12 -0
- package/dist/restricted-store/object-store.d.ts.map +1 -0
- package/dist/restricted-store/object-store.js +233 -0
- package/dist/restricted-store/object-store.js.map +1 -0
- package/dist/restricted-store/types.d.ts +78 -0
- package/dist/restricted-store/types.d.ts.map +1 -0
- package/dist/restricted-store/types.js +12 -0
- package/dist/restricted-store/types.js.map +1 -0
- package/dist/routes/integrations.d.ts +5 -0
- package/dist/routes/integrations.d.ts.map +1 -0
- package/dist/routes/integrations.js +126 -0
- package/dist/routes/integrations.js.map +1 -0
- package/dist/routes/metadata.d.ts.map +1 -1
- package/dist/routes/metadata.js +328 -4
- package/dist/routes/metadata.js.map +1 -1
- package/dist/routes/restricted-store.d.ts +5 -0
- package/dist/routes/restricted-store.d.ts.map +1 -0
- package/dist/routes/restricted-store.js +117 -0
- package/dist/routes/restricted-store.js.map +1 -0
- package/openapi/openapi.json +1348 -2
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/blob-store/s3.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dual-mode object/blob plane: cloud (S3-compatible) vs on-prem local disk.
|
|
3
|
+
* Any org/connector object payload that would use cloud buckets MUST use disk when
|
|
4
|
+
* MEMORIX_BLOB_BACKEND=disk (on-prem). Not Magit/metadata.
|
|
5
|
+
*/
|
|
6
|
+
export type BlobBackendKind = "s3" | "disk" | "memory";
|
|
7
|
+
export type BlobHead = {
|
|
8
|
+
orgId: string;
|
|
9
|
+
key: string;
|
|
10
|
+
sizeBytes: number;
|
|
11
|
+
contentType?: string;
|
|
12
|
+
/** Opaque integrity / storage etag when available. */
|
|
13
|
+
etag?: string;
|
|
14
|
+
};
|
|
15
|
+
export type BlobPutResult = BlobHead & {
|
|
16
|
+
backend: BlobBackendKind;
|
|
17
|
+
};
|
|
18
|
+
export type BlobObjectStore = {
|
|
19
|
+
readonly backend: BlobBackendKind;
|
|
20
|
+
put(orgId: string, key: string, body: Buffer, opts?: {
|
|
21
|
+
contentType?: string;
|
|
22
|
+
}): Promise<BlobPutResult>;
|
|
23
|
+
get(orgId: string, key: string): Promise<Buffer | null>;
|
|
24
|
+
head(orgId: string, key: string): Promise<BlobHead | null>;
|
|
25
|
+
delete(orgId: string, key: string): Promise<boolean>;
|
|
26
|
+
};
|
|
27
|
+
/** Reject path traversal / empty segments. Keys are relative object ids. */
|
|
28
|
+
export declare function assertSafeBlobKey(key: string): string;
|
|
29
|
+
export declare function assertSafeOrgId(orgId: string): string;
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blob-store/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG;IACrC,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,GAAG,CACD,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoBrD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dual-mode object/blob plane: cloud (S3-compatible) vs on-prem local disk.
|
|
3
|
+
* Any org/connector object payload that would use cloud buckets MUST use disk when
|
|
4
|
+
* MEMORIX_BLOB_BACKEND=disk (on-prem). Not Magit/metadata.
|
|
5
|
+
*/
|
|
6
|
+
/** Reject path traversal / empty segments. Keys are relative object ids. */
|
|
7
|
+
export function assertSafeBlobKey(key) {
|
|
8
|
+
const k = key.trim();
|
|
9
|
+
if (!k)
|
|
10
|
+
throw new Error("blob key required");
|
|
11
|
+
if (k.length > 512)
|
|
12
|
+
throw new Error("blob key too long");
|
|
13
|
+
if (k.includes("\0"))
|
|
14
|
+
throw new Error("blob key invalid");
|
|
15
|
+
if (k.startsWith("/") || k.endsWith("/")) {
|
|
16
|
+
throw new Error("blob key must not start or end with /");
|
|
17
|
+
}
|
|
18
|
+
const parts = k.split("/");
|
|
19
|
+
for (const p of parts) {
|
|
20
|
+
if (!p || p === "." || p === "..") {
|
|
21
|
+
throw new Error("blob key path escape rejected");
|
|
22
|
+
}
|
|
23
|
+
if (!/^[A-Za-z0-9._-]+$/.test(p)) {
|
|
24
|
+
throw new Error("blob key segments must be [A-Za-z0-9._-]+ (no path escape)");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return k;
|
|
28
|
+
}
|
|
29
|
+
export function assertSafeOrgId(orgId) {
|
|
30
|
+
const o = orgId.trim();
|
|
31
|
+
if (!o)
|
|
32
|
+
throw new Error("orgId required");
|
|
33
|
+
if (!/^[A-Za-z0-9._-]+$/.test(o)) {
|
|
34
|
+
throw new Error("orgId must match [A-Za-z0-9._-]+");
|
|
35
|
+
}
|
|
36
|
+
return o;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/blob-store/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8BH,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-store-cli.d.ts","sourceRoot":"","sources":["../src/catalog-store-cli.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"catalog-store-cli.d.ts","sourceRoot":"","sources":["../src/catalog-store-cli.ts"],"names":[],"mappings":"AAOA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,gBAAgB,CAAC;IACpC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3E,EAAE,EAAE,cAAc,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,uBAAuB,IAAI,gBAAgB,CA8C1D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAcrF;AA2BD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { chmodSync, mkdirSync, writeFileSync } from "node:fs";
|
|
6
6
|
import { dirname, resolve } from "node:path";
|
|
7
7
|
import { ServiceError } from "./errors.js";
|
|
8
|
-
import { createMagitPackService, isMetadataMagitEnabled, resolveMagitRepoRootParent, resolveMagitStorageTokenEnv, } from "./magit/magit-pack-service.js";
|
|
8
|
+
import { createMagitPackService, DEFAULT_TYPED_STORE_ALLOWED_KINDS, isMetadataMagitEnabled, resolveMagitRepoRootParent, resolveMagitStorageTokenEnv, } from "./magit/magit-pack-service.js";
|
|
9
9
|
export function parseFlag(argv, name) {
|
|
10
10
|
const i = argv.indexOf(name);
|
|
11
11
|
if (i < 0)
|
|
@@ -99,11 +99,15 @@ export async function runCatalogStoreCommand(sub, argv, partialDeps) {
|
|
|
99
99
|
if (sub === "list")
|
|
100
100
|
return await list(deps);
|
|
101
101
|
io.error(`Usage:
|
|
102
|
-
memorix-service catalog-store provision
|
|
102
|
+
memorix-service catalog-store provision --out <file>
|
|
103
|
+
[--force] [--package-type-id <id>]
|
|
104
|
+
--allowed-kinds agent,connector,service,agent-bundle
|
|
105
|
+
| --confirm-allowed-kinds (accept default kinds above)
|
|
103
106
|
memorix-service catalog-store verify
|
|
104
|
-
memorix-service catalog-store recover --store-id <id>
|
|
107
|
+
memorix-service catalog-store recover --store-id <id> --out <file>
|
|
105
108
|
memorix-service catalog-store list
|
|
106
109
|
|
|
110
|
+
allowedKinds is write-once on createGlobalStore — a forgotten kind needs a second store.
|
|
107
111
|
Secrets (MAGIT_PACKAGE_STORE_SELECTOR, tokens) are never printed on stdout.
|
|
108
112
|
Provision/recover write selector lines to --out with mode 0600.`);
|
|
109
113
|
return 1;
|
|
@@ -126,9 +130,34 @@ async function provision(argv, deps) {
|
|
|
126
130
|
}
|
|
127
131
|
const force = hasFlag(argv, "--force");
|
|
128
132
|
const packageTypeId = parseFlag(argv, "--package-type-id");
|
|
133
|
+
const allowedKindsRaw = parseFlag(argv, "--allowed-kinds");
|
|
134
|
+
const confirmDefault = hasFlag(argv, "--confirm-allowed-kinds");
|
|
135
|
+
let allowedKinds;
|
|
136
|
+
if (allowedKindsRaw) {
|
|
137
|
+
allowedKinds = allowedKindsRaw
|
|
138
|
+
.split(",")
|
|
139
|
+
.map((k) => k.trim())
|
|
140
|
+
.filter(Boolean);
|
|
141
|
+
if (allowedKinds.length === 0) {
|
|
142
|
+
deps.io.error("--allowed-kinds must list at least one kind");
|
|
143
|
+
return 2;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else if (confirmDefault) {
|
|
147
|
+
allowedKinds = [...DEFAULT_TYPED_STORE_ALLOWED_KINDS];
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
deps.io.error([
|
|
151
|
+
"provision freezes allowedKinds forever on the Magit store (write-once).",
|
|
152
|
+
`Default would be: ${DEFAULT_TYPED_STORE_ALLOWED_KINDS.join(",")}`,
|
|
153
|
+
"Pass --allowed-kinds agent,connector,... OR --confirm-allowed-kinds to accept the default.",
|
|
154
|
+
].join("\n"));
|
|
155
|
+
return 2;
|
|
156
|
+
}
|
|
129
157
|
const magitSvc = deps.createMagit();
|
|
130
158
|
const result = await magitSvc.provisionTypedPackageStore({
|
|
131
159
|
packageTypeId: packageTypeId || undefined,
|
|
160
|
+
allowedKinds,
|
|
132
161
|
force,
|
|
133
162
|
});
|
|
134
163
|
deps.writeSecretEnvFile(out, publisherEnv(result));
|
|
@@ -140,12 +169,14 @@ async function provision(argv, deps) {
|
|
|
140
169
|
action: "provision",
|
|
141
170
|
packageTypeId: result.packageTypeId,
|
|
142
171
|
storeId: result.storeId,
|
|
172
|
+
allowedKinds: result.allowedKinds,
|
|
143
173
|
pushed: result.pushed,
|
|
144
174
|
existingStoreCount: result.existingStoreCount,
|
|
145
175
|
secretsFile: abs,
|
|
146
176
|
next: [
|
|
147
177
|
`Install ${out} into the service secret env (never commit).`,
|
|
148
|
-
"
|
|
178
|
+
"Set MAGIT_CATALOG_TENANT=x12i MAGIT_CATALOG_REPO=memorix (defaults).",
|
|
179
|
+
"Mint Authix store grants: publisher write + consumer read (repoIds empty on consumer).",
|
|
149
180
|
"Run: memorix-service catalog-store verify",
|
|
150
181
|
"Optional: node scripts/magit-backfill-pack-catalog.mjs",
|
|
151
182
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-store-cli.js","sourceRoot":"","sources":["../src/catalog-store-cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"catalog-store-cli.js","sourceRoot":"","sources":["../src/catalog-store-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,4 +7,7 @@ export { generateSandboxOrgId, beginIsolationSession, cleanupIsolationSession, i
|
|
|
7
7
|
export { MagitPackService, createMagitPackService, isMetadataMagitEnabled, resolveMagitStorageTokenEnv, magitTypedStoreConfigured, magitPackageTypeIdConfigured, magitStoreSelectorConfigured, magitPackageTypeIdForDiagnostics, type MagitPackServiceConfig, type PackVersionSummary, type PackedPackageResult, } from "./magit/magit-pack-service.js";
|
|
8
8
|
export { companionPipelineUrl, isCompanionEnvelopeHardFailure, isTruthyEnv, normalizeCompanionOrigin, postCompanionPipeline, resolveCompanionSuiteUrls, resolveCompanionUrl, type CompanionFailClosedStatus, type CompanionHttpResult, type CompanionUrlResolution, } from "./optional-companion-url.js";
|
|
9
9
|
export { createInMemoryMcoAttemptStore, createInMemoryMcoOverrideStore, createMongoMcoAttemptStore, createMongoMcoOverrideStore, isOverrideActive, validateSetOverride, hasSecretPayload, findSecretPayloadIssues, sanitizeErrorText, MCO_COLLECTIONS, MCO_RECENT_CAP, type OpOverride, type SetOpOverride, type OpAttempt, type OpAttemptInput, type OpAttemptStatus, type OpStats, type McoOverrideStore, type McoAttemptStore, } from "./connector-ops/index.js";
|
|
10
|
+
export { createDiskBlobStore, createMemoryBlobStore, createS3BlobStore, createPlatformBlobStore, resolveBlobStoreConfig, assertSafeBlobKey, type BlobObjectStore, type BlobBackendKind, type BlobHead, type S3BlobClient, } from "./blob-store/index.js";
|
|
11
|
+
export { createInMemoryIntegrationInstanceStore, createMongoIntegrationInstanceStore, hasRegistrySecretPayload, INTEGRATION_COLLECTIONS, type IntegrationInstance, type IntegrationInstanceInput, type IntegrationListPage, type IntegrationInstanceStore, type IntegrationMutationAudit, } from "./integrations/index.js";
|
|
12
|
+
export { createInMemoryRestrictedObjectStore, createMongoRestrictedObjectStore, parseRestrictedKek, sha256Hex, RESTRICTED_COLLECTIONS, BREAK_GLASS_HEADER, BREAK_GLASS_REASON_HEADER, type RestrictedObjectMeta, type RestrictedObjectStore, type RestrictedPutInput, type RestrictedClassification, type RestrictedAccessAudit, } from "./restricted-store/index.js";
|
|
10
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,GAChC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,GAChC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sCAAsC,EACtC,mCAAmC,EACnC,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mCAAmC,EACnC,gCAAgC,EAChC,kBAAkB,EAClB,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,GAC3B,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,4 +7,7 @@ export { generateSandboxOrgId, beginIsolationSession, cleanupIsolationSession, i
|
|
|
7
7
|
export { MagitPackService, createMagitPackService, isMetadataMagitEnabled, resolveMagitStorageTokenEnv, magitTypedStoreConfigured, magitPackageTypeIdConfigured, magitStoreSelectorConfigured, magitPackageTypeIdForDiagnostics, } from "./magit/magit-pack-service.js";
|
|
8
8
|
export { companionPipelineUrl, isCompanionEnvelopeHardFailure, isTruthyEnv, normalizeCompanionOrigin, postCompanionPipeline, resolveCompanionSuiteUrls, resolveCompanionUrl, } from "./optional-companion-url.js";
|
|
9
9
|
export { createInMemoryMcoAttemptStore, createInMemoryMcoOverrideStore, createMongoMcoAttemptStore, createMongoMcoOverrideStore, isOverrideActive, validateSetOverride, hasSecretPayload, findSecretPayloadIssues, sanitizeErrorText, MCO_COLLECTIONS, MCO_RECENT_CAP, } from "./connector-ops/index.js";
|
|
10
|
+
export { createDiskBlobStore, createMemoryBlobStore, createS3BlobStore, createPlatformBlobStore, resolveBlobStoreConfig, assertSafeBlobKey, } from "./blob-store/index.js";
|
|
11
|
+
export { createInMemoryIntegrationInstanceStore, createMongoIntegrationInstanceStore, hasRegistrySecretPayload, INTEGRATION_COLLECTIONS, } from "./integrations/index.js";
|
|
12
|
+
export { createInMemoryRestrictedObjectStore, createMongoRestrictedObjectStore, parseRestrictedKek, sha256Hex, RESTRICTED_COLLECTIONS, BREAK_GLASS_HEADER, BREAK_GLASS_REASON_HEADER, } from "./restricted-store/index.js";
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,GAEd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GAKrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GAGxB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,GAIjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GAIpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,cAAc,GASf,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,GAEd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GAKrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GAGxB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,GAIjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GAIpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,cAAc,GASf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,GAKlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sCAAsC,EACtC,mCAAmC,EACnC,wBAAwB,EACxB,uBAAuB,GAMxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mCAAmC,EACnC,gCAAgC,EAChC,kBAAkB,EAClB,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,GAM1B,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,sCAAsC,EACtC,mCAAmC,GACpC,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,sCAAsC,EACtC,mCAAmC,GACpC,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MongoClient } from "mongodb";
|
|
2
|
+
import { type IntegrationInstanceStore } from "./types.js";
|
|
3
|
+
export declare function createInMemoryIntegrationInstanceStore(orgId: string): IntegrationInstanceStore;
|
|
4
|
+
export declare function createMongoIntegrationInstanceStore(client: MongoClient, orgId: string): IntegrationInstanceStore;
|
|
5
|
+
//# sourceMappingURL=instance-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-store.d.ts","sourceRoot":"","sources":["../../src/integrations/instance-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAIL,KAAK,wBAAwB,EAI9B,MAAM,YAAY,CAAC;AA+FpB,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,MAAM,GACZ,wBAAwB,CA8H1B;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACZ,wBAAwB,CA+I1B"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
import { INTEGRATION_COLLECTIONS, hasRegistrySecretPayload, } from "./types.js";
|
|
3
|
+
function operationalDbName(orgId) {
|
|
4
|
+
return `${orgId}_operational`;
|
|
5
|
+
}
|
|
6
|
+
function nextEtag() {
|
|
7
|
+
return `W/"${randomUUID()}"`;
|
|
8
|
+
}
|
|
9
|
+
function snapshotToken(items) {
|
|
10
|
+
const payload = items
|
|
11
|
+
.map((i) => `${i.instanceId}:${i.etag}:${i.enabled}:${i.lifecycleState}`)
|
|
12
|
+
.sort()
|
|
13
|
+
.join("|");
|
|
14
|
+
const h = createHash("sha256").update(payload).digest("hex").slice(0, 32);
|
|
15
|
+
return `rst_${h}`;
|
|
16
|
+
}
|
|
17
|
+
function stripSecrets(input) {
|
|
18
|
+
if (hasRegistrySecretPayload(input)) {
|
|
19
|
+
throw new Error("registry payload must not contain secrets (credentialRef only)");
|
|
20
|
+
}
|
|
21
|
+
if ("credential" in input ||
|
|
22
|
+
"secret" in input ||
|
|
23
|
+
"password" in input) {
|
|
24
|
+
throw new Error("registry payload must not contain secrets (credentialRef only)");
|
|
25
|
+
}
|
|
26
|
+
if (!input.credentialRef?.trim()) {
|
|
27
|
+
throw new Error("credentialRef is required");
|
|
28
|
+
}
|
|
29
|
+
if (!input.connectorId?.trim()) {
|
|
30
|
+
throw new Error("connectorId is required");
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
connectorId: input.connectorId.trim(),
|
|
34
|
+
...(input.instanceId != null
|
|
35
|
+
? { instanceId: String(input.instanceId).trim() }
|
|
36
|
+
: {}),
|
|
37
|
+
enabled: input.enabled !== false,
|
|
38
|
+
...(input.baseUrl != null ? { baseUrl: String(input.baseUrl) } : {}),
|
|
39
|
+
credentialRef: input.credentialRef.trim(),
|
|
40
|
+
...(input.tenant != null ? { tenant: input.tenant } : {}),
|
|
41
|
+
...(input.scope != null ? { scope: input.scope } : {}),
|
|
42
|
+
lifecycleState: input.lifecycleState ?? (input.enabled === false ? "disabled" : "active"),
|
|
43
|
+
...(input.health != null ? { health: input.health } : {}),
|
|
44
|
+
...(input.capabilities != null ? { capabilities: input.capabilities } : {}),
|
|
45
|
+
...(input.createdBy != null ? { createdBy: input.createdBy } : {}),
|
|
46
|
+
...(input.updatedBy != null ? { updatedBy: input.updatedBy } : {}),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function matchIfMatch(current, ifMatch) {
|
|
50
|
+
if (ifMatch == null || ifMatch === "")
|
|
51
|
+
return;
|
|
52
|
+
const want = ifMatch.trim();
|
|
53
|
+
if (want === "*")
|
|
54
|
+
return;
|
|
55
|
+
if (!current || current !== want) {
|
|
56
|
+
const err = new Error("etag mismatch (If-Match)");
|
|
57
|
+
err.code = "ETAG_MISMATCH";
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function sortItems(items) {
|
|
62
|
+
return [...items].sort((a, b) => a.instanceId.localeCompare(b.instanceId));
|
|
63
|
+
}
|
|
64
|
+
function toListPage(orgId, items, filter) {
|
|
65
|
+
let filtered = items;
|
|
66
|
+
if (filter?.connectorId) {
|
|
67
|
+
filtered = filtered.filter((i) => i.connectorId === filter.connectorId);
|
|
68
|
+
}
|
|
69
|
+
if (filter?.enabled != null) {
|
|
70
|
+
filtered = filtered.filter((i) => i.enabled === filter.enabled);
|
|
71
|
+
}
|
|
72
|
+
const sorted = sortItems(filtered);
|
|
73
|
+
const token = snapshotToken(sorted);
|
|
74
|
+
return {
|
|
75
|
+
orgId,
|
|
76
|
+
items: sorted,
|
|
77
|
+
registrySnapshotToken: token,
|
|
78
|
+
etag: token,
|
|
79
|
+
count: sorted.length,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export function createInMemoryIntegrationInstanceStore(orgId) {
|
|
83
|
+
const map = new Map();
|
|
84
|
+
const audits = [];
|
|
85
|
+
function pushAudit(partial) {
|
|
86
|
+
audits.unshift({
|
|
87
|
+
auditId: randomUUID(),
|
|
88
|
+
orgId,
|
|
89
|
+
at: partial.at ?? new Date().toISOString(),
|
|
90
|
+
instanceId: partial.instanceId,
|
|
91
|
+
action: partial.action,
|
|
92
|
+
actor: partial.actor,
|
|
93
|
+
etagBefore: partial.etagBefore,
|
|
94
|
+
etagAfter: partial.etagAfter,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
async get(instanceId) {
|
|
99
|
+
return map.get(instanceId) ?? null;
|
|
100
|
+
},
|
|
101
|
+
async list(opts) {
|
|
102
|
+
return toListPage(orgId, [...map.values()], opts);
|
|
103
|
+
},
|
|
104
|
+
async create(input) {
|
|
105
|
+
const clean = stripSecrets(input);
|
|
106
|
+
const instanceId = clean.instanceId?.trim() || `inst_${randomUUID().slice(0, 12)}`;
|
|
107
|
+
if (map.has(instanceId)) {
|
|
108
|
+
throw new Error(`instance ${instanceId} already exists`);
|
|
109
|
+
}
|
|
110
|
+
const now = new Date().toISOString();
|
|
111
|
+
const etag = nextEtag();
|
|
112
|
+
const doc = {
|
|
113
|
+
orgId,
|
|
114
|
+
connectorId: clean.connectorId,
|
|
115
|
+
instanceId,
|
|
116
|
+
enabled: clean.enabled !== false,
|
|
117
|
+
credentialRef: clean.credentialRef,
|
|
118
|
+
lifecycleState: clean.lifecycleState ?? "active",
|
|
119
|
+
etag,
|
|
120
|
+
createdAt: now,
|
|
121
|
+
updatedAt: now,
|
|
122
|
+
...(clean.baseUrl != null ? { baseUrl: clean.baseUrl } : {}),
|
|
123
|
+
...(clean.tenant != null ? { tenant: clean.tenant } : {}),
|
|
124
|
+
...(clean.scope != null ? { scope: clean.scope } : {}),
|
|
125
|
+
...(clean.health != null ? { health: clean.health } : {}),
|
|
126
|
+
...(clean.capabilities != null
|
|
127
|
+
? { capabilities: clean.capabilities }
|
|
128
|
+
: {}),
|
|
129
|
+
...(clean.createdBy != null ? { createdBy: clean.createdBy } : {}),
|
|
130
|
+
...(clean.updatedBy != null ? { updatedBy: clean.updatedBy } : {}),
|
|
131
|
+
};
|
|
132
|
+
map.set(instanceId, doc);
|
|
133
|
+
pushAudit({
|
|
134
|
+
instanceId,
|
|
135
|
+
action: "create",
|
|
136
|
+
actor: clean.createdBy ?? clean.updatedBy,
|
|
137
|
+
etagBefore: null,
|
|
138
|
+
etagAfter: etag,
|
|
139
|
+
});
|
|
140
|
+
return doc;
|
|
141
|
+
},
|
|
142
|
+
async put(instanceId, input, opts) {
|
|
143
|
+
const clean = stripSecrets({ ...input, instanceId });
|
|
144
|
+
const existing = map.get(instanceId);
|
|
145
|
+
matchIfMatch(existing?.etag, opts?.ifMatch);
|
|
146
|
+
const now = new Date().toISOString();
|
|
147
|
+
const etag = nextEtag();
|
|
148
|
+
const doc = {
|
|
149
|
+
orgId,
|
|
150
|
+
connectorId: clean.connectorId,
|
|
151
|
+
instanceId,
|
|
152
|
+
enabled: clean.enabled !== false,
|
|
153
|
+
credentialRef: clean.credentialRef,
|
|
154
|
+
lifecycleState: clean.lifecycleState ?? "active",
|
|
155
|
+
etag,
|
|
156
|
+
createdAt: existing?.createdAt ?? now,
|
|
157
|
+
updatedAt: now,
|
|
158
|
+
createdBy: existing?.createdBy ?? clean.createdBy,
|
|
159
|
+
...(clean.baseUrl != null ? { baseUrl: clean.baseUrl } : {}),
|
|
160
|
+
...(clean.tenant != null ? { tenant: clean.tenant } : {}),
|
|
161
|
+
...(clean.scope != null ? { scope: clean.scope } : {}),
|
|
162
|
+
...(clean.health != null ? { health: clean.health } : {}),
|
|
163
|
+
...(clean.capabilities != null
|
|
164
|
+
? { capabilities: clean.capabilities }
|
|
165
|
+
: {}),
|
|
166
|
+
...(clean.updatedBy != null ? { updatedBy: clean.updatedBy } : {}),
|
|
167
|
+
};
|
|
168
|
+
map.set(instanceId, doc);
|
|
169
|
+
pushAudit({
|
|
170
|
+
instanceId,
|
|
171
|
+
action: existing ? "update" : "create",
|
|
172
|
+
actor: clean.updatedBy ?? clean.createdBy,
|
|
173
|
+
etagBefore: existing?.etag ?? null,
|
|
174
|
+
etagAfter: etag,
|
|
175
|
+
});
|
|
176
|
+
return doc;
|
|
177
|
+
},
|
|
178
|
+
async delete(instanceId, opts) {
|
|
179
|
+
const existing = map.get(instanceId);
|
|
180
|
+
if (!existing)
|
|
181
|
+
return false;
|
|
182
|
+
matchIfMatch(existing.etag, opts?.ifMatch);
|
|
183
|
+
map.delete(instanceId);
|
|
184
|
+
pushAudit({
|
|
185
|
+
instanceId,
|
|
186
|
+
action: "delete",
|
|
187
|
+
etagBefore: existing.etag,
|
|
188
|
+
etagAfter: null,
|
|
189
|
+
});
|
|
190
|
+
return true;
|
|
191
|
+
},
|
|
192
|
+
async listMutations(opts) {
|
|
193
|
+
const limit = Math.min(Math.max(opts?.limit ?? 50, 1), 200);
|
|
194
|
+
return audits.slice(0, limit);
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
export function createMongoIntegrationInstanceStore(client, orgId) {
|
|
199
|
+
const db = client.db(operationalDbName(orgId));
|
|
200
|
+
const col = db.collection(INTEGRATION_COLLECTIONS.instances);
|
|
201
|
+
const auditCol = db.collection(INTEGRATION_COLLECTIONS.mutations);
|
|
202
|
+
async function pushAudit(partial) {
|
|
203
|
+
const row = {
|
|
204
|
+
auditId: randomUUID(),
|
|
205
|
+
orgId,
|
|
206
|
+
at: partial.at ?? new Date().toISOString(),
|
|
207
|
+
instanceId: partial.instanceId,
|
|
208
|
+
action: partial.action,
|
|
209
|
+
actor: partial.actor,
|
|
210
|
+
etagBefore: partial.etagBefore,
|
|
211
|
+
etagAfter: partial.etagAfter,
|
|
212
|
+
};
|
|
213
|
+
await auditCol.insertOne(row);
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
async get(instanceId) {
|
|
217
|
+
return (await col.findOne({ orgId, instanceId })) ?? null;
|
|
218
|
+
},
|
|
219
|
+
async list(opts) {
|
|
220
|
+
const filter = { orgId };
|
|
221
|
+
if (opts?.connectorId)
|
|
222
|
+
filter.connectorId = opts.connectorId;
|
|
223
|
+
if (opts?.enabled != null)
|
|
224
|
+
filter.enabled = opts.enabled;
|
|
225
|
+
const items = await col.find(filter).toArray();
|
|
226
|
+
return toListPage(orgId, items.map(({ _id: _drop, ...rest }) => rest));
|
|
227
|
+
},
|
|
228
|
+
async create(input) {
|
|
229
|
+
const clean = stripSecrets(input);
|
|
230
|
+
const instanceId = clean.instanceId?.trim() || `inst_${randomUUID().slice(0, 12)}`;
|
|
231
|
+
const existing = await col.findOne({ orgId, instanceId });
|
|
232
|
+
if (existing)
|
|
233
|
+
throw new Error(`instance ${instanceId} already exists`);
|
|
234
|
+
const now = new Date().toISOString();
|
|
235
|
+
const etag = nextEtag();
|
|
236
|
+
const doc = {
|
|
237
|
+
orgId,
|
|
238
|
+
connectorId: clean.connectorId,
|
|
239
|
+
instanceId,
|
|
240
|
+
enabled: clean.enabled !== false,
|
|
241
|
+
credentialRef: clean.credentialRef,
|
|
242
|
+
lifecycleState: clean.lifecycleState ?? "active",
|
|
243
|
+
etag,
|
|
244
|
+
createdAt: now,
|
|
245
|
+
updatedAt: now,
|
|
246
|
+
...(clean.baseUrl != null ? { baseUrl: clean.baseUrl } : {}),
|
|
247
|
+
...(clean.tenant != null ? { tenant: clean.tenant } : {}),
|
|
248
|
+
...(clean.scope != null ? { scope: clean.scope } : {}),
|
|
249
|
+
...(clean.health != null ? { health: clean.health } : {}),
|
|
250
|
+
...(clean.capabilities != null
|
|
251
|
+
? { capabilities: clean.capabilities }
|
|
252
|
+
: {}),
|
|
253
|
+
...(clean.createdBy != null ? { createdBy: clean.createdBy } : {}),
|
|
254
|
+
...(clean.updatedBy != null ? { updatedBy: clean.updatedBy } : {}),
|
|
255
|
+
};
|
|
256
|
+
await col.insertOne(doc);
|
|
257
|
+
await pushAudit({
|
|
258
|
+
instanceId,
|
|
259
|
+
action: "create",
|
|
260
|
+
actor: clean.createdBy ?? clean.updatedBy,
|
|
261
|
+
etagBefore: null,
|
|
262
|
+
etagAfter: etag,
|
|
263
|
+
});
|
|
264
|
+
return doc;
|
|
265
|
+
},
|
|
266
|
+
async put(instanceId, input, opts) {
|
|
267
|
+
const clean = stripSecrets({ ...input, instanceId });
|
|
268
|
+
const existing = await col.findOne({ orgId, instanceId });
|
|
269
|
+
matchIfMatch(existing?.etag, opts?.ifMatch);
|
|
270
|
+
const now = new Date().toISOString();
|
|
271
|
+
const etag = nextEtag();
|
|
272
|
+
const doc = {
|
|
273
|
+
orgId,
|
|
274
|
+
connectorId: clean.connectorId,
|
|
275
|
+
instanceId,
|
|
276
|
+
enabled: clean.enabled !== false,
|
|
277
|
+
credentialRef: clean.credentialRef,
|
|
278
|
+
lifecycleState: clean.lifecycleState ?? "active",
|
|
279
|
+
etag,
|
|
280
|
+
createdAt: existing?.createdAt ?? now,
|
|
281
|
+
updatedAt: now,
|
|
282
|
+
createdBy: existing?.createdBy ?? clean.createdBy,
|
|
283
|
+
...(clean.baseUrl != null ? { baseUrl: clean.baseUrl } : {}),
|
|
284
|
+
...(clean.tenant != null ? { tenant: clean.tenant } : {}),
|
|
285
|
+
...(clean.scope != null ? { scope: clean.scope } : {}),
|
|
286
|
+
...(clean.health != null ? { health: clean.health } : {}),
|
|
287
|
+
...(clean.capabilities != null
|
|
288
|
+
? { capabilities: clean.capabilities }
|
|
289
|
+
: {}),
|
|
290
|
+
...(clean.updatedBy != null ? { updatedBy: clean.updatedBy } : {}),
|
|
291
|
+
};
|
|
292
|
+
await col.replaceOne({ orgId, instanceId }, doc, { upsert: true });
|
|
293
|
+
await pushAudit({
|
|
294
|
+
instanceId,
|
|
295
|
+
action: existing ? "update" : "create",
|
|
296
|
+
actor: clean.updatedBy ?? clean.createdBy,
|
|
297
|
+
etagBefore: existing?.etag ?? null,
|
|
298
|
+
etagAfter: etag,
|
|
299
|
+
});
|
|
300
|
+
return doc;
|
|
301
|
+
},
|
|
302
|
+
async delete(instanceId, opts) {
|
|
303
|
+
const existing = await col.findOne({ orgId, instanceId });
|
|
304
|
+
if (!existing)
|
|
305
|
+
return false;
|
|
306
|
+
matchIfMatch(existing.etag, opts?.ifMatch);
|
|
307
|
+
await col.deleteOne({ orgId, instanceId });
|
|
308
|
+
await pushAudit({
|
|
309
|
+
instanceId,
|
|
310
|
+
action: "delete",
|
|
311
|
+
etagBefore: existing.etag,
|
|
312
|
+
etagAfter: null,
|
|
313
|
+
});
|
|
314
|
+
return true;
|
|
315
|
+
},
|
|
316
|
+
async listMutations(opts) {
|
|
317
|
+
const limit = Math.min(Math.max(opts?.limit ?? 50, 1), 200);
|
|
318
|
+
const rows = await auditCol
|
|
319
|
+
.find({ orgId })
|
|
320
|
+
.sort({ at: -1 })
|
|
321
|
+
.limit(limit)
|
|
322
|
+
.toArray();
|
|
323
|
+
return rows.map(({ _id: _d, ...rest }) => rest);
|
|
324
|
+
},
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=instance-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-store.js","sourceRoot":"","sources":["../../src/integrations/instance-store.ts"],"names":[],"mappings":"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"}
|