@camstack/server 1.2.482 → 1.2.483
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.
|
@@ -40,8 +40,8 @@ exports.resolveAgentInfraCapabilities = resolveAgentInfraCapabilities;
|
|
|
40
40
|
*
|
|
41
41
|
* **To roll back:** set `CAMSTACK_AGENT_LOCAL_DATA_STORE=1` in the agent
|
|
42
42
|
* container's environment and restart it. That restores `INFRA_CAPABILITIES`
|
|
43
|
-
* EXACTLY
|
|
44
|
-
* boots its own `sqlite-settings` again and the data door resolves that engine
|
|
43
|
+
* EXACTLY (same entries, same order, same `required` flags) minus the hub-only
|
|
44
|
+
* `keychain`, which no flag brings to an agent — so the agent boots its own `sqlite-settings` again and the data door resolves that engine
|
|
45
45
|
* instead of the hub (a local engine always wins over the remote; see
|
|
46
46
|
* `data-store-dispatch.ts`). No redeploy, no revert, and the other two commits
|
|
47
47
|
* in this series stay in place: commit 1 is inert whenever a local engine
|
|
@@ -56,6 +56,21 @@ const system_1 = require("@camstack/system");
|
|
|
56
56
|
exports.AGENT_LOCAL_DATA_STORE_ENV = 'CAMSTACK_AGENT_LOCAL_DATA_STORE';
|
|
57
57
|
/** The capability an agent no longer boots. */
|
|
58
58
|
const DATA_STORE_PROVIDER = 'data-store-provider';
|
|
59
|
+
/**
|
|
60
|
+
* The keychain (D787) is the HUB's, always — whatever the rollback flag says.
|
|
61
|
+
*
|
|
62
|
+
* Booting it on an agent was the bug that locked the hub on 2026-10-08: the
|
|
63
|
+
* agent's settings door forwards to the hub, so an agent's keychain wrote the
|
|
64
|
+
* `keychain:keys` row INTO THE HUB'S DATABASE while writing the master key to
|
|
65
|
+
* the AGENT's `<dataDir>/.keychain/master.key`. The Mac agent booted first,
|
|
66
|
+
* generated the key on the Mac, and the hub's next boot found a wrapped data
|
|
67
|
+
* key and no key file under `/data` — `key-missing`, locked. An agent-local
|
|
68
|
+
* keychain also shadowed `$hub-cap-fwd` for the agent's own forked addons, so
|
|
69
|
+
* their secrets resolved against a keychain that could only ever be locked.
|
|
70
|
+
*
|
|
71
|
+
* An agent reaches the keychain the way it reaches every hub cap: forwarded.
|
|
72
|
+
*/
|
|
73
|
+
const HUB_ONLY_INFRA = new Set(['keychain']);
|
|
59
74
|
/**
|
|
60
75
|
* Truthy spellings an operator actually types into a docker `-e`. Anything
|
|
61
76
|
* else — including the empty string a declared-but-unset variable produces —
|
|
@@ -77,7 +92,6 @@ function isEnabled(raw) {
|
|
|
77
92
|
* `INFRA_CAPABILITIES` itself is never touched: the hub reads the same array.
|
|
78
93
|
*/
|
|
79
94
|
function resolveAgentInfraCapabilities(env) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return system_1.INFRA_CAPABILITIES.filter((cap) => cap.name !== DATA_STORE_PROVIDER);
|
|
95
|
+
const keepLocalStore = isEnabled(env[exports.AGENT_LOCAL_DATA_STORE_ENV]);
|
|
96
|
+
return system_1.INFRA_CAPABILITIES.filter((cap) => !HUB_ONLY_INFRA.has(cap.name) && (keepLocalStore || cap.name !== DATA_STORE_PROVIDER));
|
|
83
97
|
}
|
|
@@ -7235,6 +7235,51 @@ function createCapRouter_pipelineAnalytics(getProvider, createRemoteProxy) {
|
|
|
7235
7235
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7236
7236
|
return p.writeRetrainArchive(methodInput);
|
|
7237
7237
|
}),
|
|
7238
|
+
previewRetrainDataset: trpc_middleware_js_1.adminProcedure
|
|
7239
|
+
.input(types_94.pipelineAnalyticsCapability.methods.previewRetrainDataset.input.loose())
|
|
7240
|
+
.output(types_94.pipelineAnalyticsCapability.methods.previewRetrainDataset.output)
|
|
7241
|
+
.query(async ({ input, ctx }) => {
|
|
7242
|
+
const { nodeId, ...methodInput } = input;
|
|
7243
|
+
const p = resolveProvider('pipeline-analytics', nodeId, () => getProvider(ctx), createRemoteProxy);
|
|
7244
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7245
|
+
return p.previewRetrainDataset(methodInput);
|
|
7246
|
+
}),
|
|
7247
|
+
createRetrainDatasetVersion: trpc_middleware_js_1.adminProcedure
|
|
7248
|
+
.input(types_94.pipelineAnalyticsCapability.methods.createRetrainDatasetVersion.input.loose())
|
|
7249
|
+
.output(types_94.pipelineAnalyticsCapability.methods.createRetrainDatasetVersion.output)
|
|
7250
|
+
.mutation(async ({ input, ctx }) => {
|
|
7251
|
+
const { nodeId, ...methodInput } = input;
|
|
7252
|
+
const p = resolveProvider('pipeline-analytics', nodeId, () => getProvider(ctx), createRemoteProxy);
|
|
7253
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7254
|
+
return p.createRetrainDatasetVersion(methodInput);
|
|
7255
|
+
}),
|
|
7256
|
+
listRetrainDatasetVersions: trpc_middleware_js_1.adminProcedure
|
|
7257
|
+
.input(types_94.pipelineAnalyticsCapability.methods.listRetrainDatasetVersions.input.loose())
|
|
7258
|
+
.output(types_94.pipelineAnalyticsCapability.methods.listRetrainDatasetVersions.output)
|
|
7259
|
+
.query(async ({ input, ctx }) => {
|
|
7260
|
+
const { nodeId, ...methodInput } = input;
|
|
7261
|
+
const p = resolveProvider('pipeline-analytics', nodeId, () => getProvider(ctx), createRemoteProxy);
|
|
7262
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7263
|
+
return p.listRetrainDatasetVersions(methodInput);
|
|
7264
|
+
}),
|
|
7265
|
+
deleteRetrainDatasetVersion: trpc_middleware_js_1.adminProcedure
|
|
7266
|
+
.input(types_94.pipelineAnalyticsCapability.methods.deleteRetrainDatasetVersion.input.loose())
|
|
7267
|
+
.output(types_94.pipelineAnalyticsCapability.methods.deleteRetrainDatasetVersion.output)
|
|
7268
|
+
.mutation(async ({ input, ctx }) => {
|
|
7269
|
+
const { nodeId, ...methodInput } = input;
|
|
7270
|
+
const p = resolveProvider('pipeline-analytics', nodeId, () => getProvider(ctx), createRemoteProxy);
|
|
7271
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7272
|
+
return p.deleteRetrainDatasetVersion(methodInput);
|
|
7273
|
+
}),
|
|
7274
|
+
verifyRetrainDatasetVersion: trpc_middleware_js_1.adminProcedure
|
|
7275
|
+
.input(types_94.pipelineAnalyticsCapability.methods.verifyRetrainDatasetVersion.input.loose())
|
|
7276
|
+
.output(types_94.pipelineAnalyticsCapability.methods.verifyRetrainDatasetVersion.output)
|
|
7277
|
+
.query(async ({ input, ctx }) => {
|
|
7278
|
+
const { nodeId, ...methodInput } = input;
|
|
7279
|
+
const p = resolveProvider('pipeline-analytics', nodeId, () => getProvider(ctx), createRemoteProxy);
|
|
7280
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7281
|
+
return p.verifyRetrainDatasetVersion(methodInput);
|
|
7282
|
+
}),
|
|
7238
7283
|
listRetrainAssistProfiles: trpc_middleware_js_1.adminProcedure
|
|
7239
7284
|
.input(types_94.pipelineAnalyticsCapability.methods.listRetrainAssistProfiles.input.loose())
|
|
7240
7285
|
.output(types_94.pipelineAnalyticsCapability.methods.listRetrainAssistProfiles.output)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/server",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.483",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
6
|
"files": [
|
|
@@ -37,18 +37,18 @@
|
|
|
37
37
|
]
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@camstack/addon-admin-ui": "1.2.
|
|
41
|
-
"@camstack/addon-agent-ui": "1.2.
|
|
40
|
+
"@camstack/addon-admin-ui": "1.2.356",
|
|
41
|
+
"@camstack/addon-agent-ui": "1.2.193",
|
|
42
42
|
"@camstack/addon-auth": "1.2.132",
|
|
43
43
|
"@camstack/addon-decoder-nodeav": "1.2.121",
|
|
44
44
|
"@camstack/addon-notifiers": "1.2.128",
|
|
45
45
|
"@camstack/addon-pipeline": "1.2.346",
|
|
46
46
|
"@camstack/addon-pipeline-orchestrator": "1.2.298",
|
|
47
|
-
"@camstack/addon-post-analysis": "1.2.
|
|
47
|
+
"@camstack/addon-post-analysis": "1.2.345",
|
|
48
48
|
"@camstack/sdk": "1.2.126",
|
|
49
|
-
"@camstack/system": "1.2.
|
|
50
|
-
"@camstack/types": "1.2.
|
|
51
|
-
"@camstack/ui-library": "1.2.
|
|
49
|
+
"@camstack/system": "1.2.378",
|
|
50
|
+
"@camstack/types": "1.2.329",
|
|
51
|
+
"@camstack/ui-library": "1.2.251",
|
|
52
52
|
"@fastify/compress": "^9.0.0",
|
|
53
53
|
"@fastify/cookie": "^11.0.2",
|
|
54
54
|
"@fastify/cors": "^11.2.0",
|