primitive-admin 1.2.0-alpha.6 → 1.2.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/assets/skill/skills/primitive-platform/SKILL.md +12 -6
- package/dist/src/commands/apps-children.d.ts +1 -1
- package/dist/src/commands/apps-children.js +172 -28
- package/dist/src/commands/apps-children.js.map +1 -1
- package/dist/src/commands/auth.js +147 -38
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/config.js +43 -4
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/database-types.js +313 -13
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.js +143 -54
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.js +70 -11
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.js +9 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/llm.js +6 -9
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/settings.d.ts +9 -12
- package/dist/src/commands/settings.js +79 -31
- package/dist/src/commands/settings.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +12 -2
- package/dist/src/commands/sync-app-settings.js +35 -10
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +118 -6
- package/dist/src/commands/sync.js +638 -65
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +25 -6
- package/dist/src/lib/api-client.js +106 -72
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +38 -0
- package/dist/src/lib/app-settings-descriptor.js +96 -4
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/child-apps-local.d.ts +45 -21
- package/dist/src/lib/child-apps-local.js +68 -30
- package/dist/src/lib/child-apps-local.js.map +1 -1
- package/dist/src/lib/credentials-home.d.ts +51 -0
- package/dist/src/lib/credentials-home.js +169 -0
- package/dist/src/lib/credentials-home.js.map +1 -0
- package/dist/src/lib/credentials-lock.d.ts +80 -0
- package/dist/src/lib/credentials-lock.js +222 -0
- package/dist/src/lib/credentials-lock.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +92 -5
- package/dist/src/lib/credentials-store.js +377 -53
- package/dist/src/lib/credentials-store.js.map +1 -1
- package/dist/src/lib/env-resolver-core.d.ts +1 -1
- package/dist/src/lib/env-resolver-core.js.map +1 -1
- package/dist/src/lib/function-bundle.d.ts +38 -18
- package/dist/src/lib/function-bundle.js +60 -35
- package/dist/src/lib/function-bundle.js.map +1 -1
- package/dist/src/lib/function-collect.d.ts +1 -1
- package/dist/src/lib/function-collect.js +4 -0
- package/dist/src/lib/function-collect.js.map +1 -1
- package/dist/src/lib/function-document-types.d.ts +5 -3
- package/dist/src/lib/function-document-types.js +10 -14
- package/dist/src/lib/function-document-types.js.map +1 -1
- package/dist/src/lib/function-source-roots.d.ts +67 -0
- package/dist/src/lib/function-source-roots.js +148 -0
- package/dist/src/lib/function-source-roots.js.map +1 -0
- package/dist/src/lib/function-sync.d.ts +27 -0
- package/dist/src/lib/function-sync.js +16 -3
- package/dist/src/lib/function-sync.js.map +1 -1
- package/dist/src/lib/function-triggers.d.ts +3 -15
- package/dist/src/lib/function-triggers.js +10 -72
- package/dist/src/lib/function-triggers.js.map +1 -1
- package/dist/src/lib/function-typecheck.d.ts +37 -2
- package/dist/src/lib/function-typecheck.js +210 -28
- package/dist/src/lib/function-typecheck.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +148 -0
- package/dist/src/lib/generated-config-surfaces.js +229 -35
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-sdk-types.d.ts +1 -1
- package/dist/src/lib/generated-sdk-types.js +1 -1
- package/dist/src/lib/generated-sdk-types.js.map +1 -1
- package/dist/src/lib/local-state.d.ts +21 -6
- package/dist/src/lib/local-state.js +78 -34
- package/dist/src/lib/local-state.js.map +1 -1
- package/dist/src/lib/login-scope-lines.d.ts +1 -1
- package/dist/src/lib/login-scope-lines.js +1 -1
- package/dist/src/lib/login-scope-lines.js.map +1 -1
- package/dist/src/lib/project-config.d.ts +7 -0
- package/dist/src/lib/project-config.js +22 -1
- package/dist/src/lib/project-config.js.map +1 -1
- package/dist/src/lib/push-failure-report.d.ts +45 -0
- package/dist/src/lib/push-failure-report.js +57 -0
- package/dist/src/lib/push-failure-report.js.map +1 -0
- package/dist/src/lib/root-import-decision.d.ts +9 -4
- package/dist/src/lib/root-import-decision.js +24 -3
- package/dist/src/lib/root-import-decision.js.map +1 -1
- package/dist/src/lib/scope-request.d.ts +8 -5
- package/dist/src/lib/scope-request.js +17 -8
- package/dist/src/lib/scope-request.js.map +1 -1
- package/dist/src/lib/sync-selectors.d.ts +5 -1
- package/dist/src/lib/sync-selectors.js +23 -13
- package/dist/src/lib/sync-selectors.js.map +1 -1
- package/dist/src/lib/transient-retry.d.ts +9 -0
- package/dist/src/lib/transient-retry.js +37 -0
- package/dist/src/lib/transient-retry.js.map +1 -1
- package/dist/src/lib/vars-override.d.ts +105 -0
- package/dist/src/lib/vars-override.js +143 -0
- package/dist/src/lib/vars-override.js.map +1 -0
- package/package.json +2 -2
- package/dist/src/lib/generated-workflow-model-fields.d.ts +0 -20
- package/dist/src/lib/generated-workflow-model-fields.js +0 -53
- package/dist/src/lib/generated-workflow-model-fields.js.map +0 -1
- package/dist/src/lib/workflow-field-descriptor.d.ts +0 -91
- package/dist/src/lib/workflow-field-descriptor.js +0 -153
- package/dist/src/lib/workflow-field-descriptor.js.map +0 -1
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* The scoped-login request `primitive login --scope …` and
|
|
3
3
|
* `primitive token --scope …` send to `GET /admin/api/oauth-cli` (#3889).
|
|
4
4
|
*
|
|
5
|
-
* One builder serves both commands, so they agree on every rule:
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* One builder serves both commands, so they agree on every rule: `--step-up`
|
|
6
|
+
* asks for a step-up holding exactly `--scope` (#4564), and a list holding
|
|
7
|
+
* `admin` is one with or without the flag; a step-up names the current
|
|
8
|
+
* session as its parent and is pinned to the environment's app unless
|
|
9
|
+
* `--app` says otherwise (`--app none` asks for an unpinned one); a printed
|
|
10
|
+
* token carries its lifetime. `primitive auth sessions create` builds its CI-session request
|
|
10
11
|
* here too (#3890). Every mistake is a usage error before any browser opens.
|
|
11
12
|
*
|
|
12
13
|
* Pure: the flags, the environment's app id and the stored session's id are
|
|
@@ -54,6 +55,9 @@ export function buildScopeRequest(input) {
|
|
|
54
55
|
const { command } = input;
|
|
55
56
|
if (command === "sessions")
|
|
56
57
|
return buildCiSessionRequest(input);
|
|
58
|
+
if (input.stepUp && input.scope === undefined) {
|
|
59
|
+
return usage(`--step-up needs the scopes the command needs: primitive ${command} --step-up --scope <list> [--app <ids>]`);
|
|
60
|
+
}
|
|
57
61
|
if (input.scope === undefined) {
|
|
58
62
|
if (input.app !== undefined)
|
|
59
63
|
return usage(`--app needs --scope: primitive ${command} --scope <list> --app <ids>`);
|
|
@@ -75,9 +79,9 @@ export function buildScopeRequest(input) {
|
|
|
75
79
|
if (unknown.length > 0) {
|
|
76
80
|
return usage(`Unknown scope ${unknown.join(", ")}. Scopes are ${ADMIN_SCOPES.join(", ")}.`);
|
|
77
81
|
}
|
|
78
|
-
const stepUp = scopes.includes("admin");
|
|
82
|
+
const stepUp = input.stepUp === true || scopes.includes("admin");
|
|
79
83
|
if (stepUp && !input.parentSid) {
|
|
80
|
-
return usage("
|
|
84
|
+
return usage("A step-up builds on your current login. Run `primitive login` first.");
|
|
81
85
|
}
|
|
82
86
|
let apps;
|
|
83
87
|
if (input.app === "none")
|
|
@@ -92,7 +96,12 @@ export function buildScopeRequest(input) {
|
|
|
92
96
|
}
|
|
93
97
|
else
|
|
94
98
|
apps = stepUp && input.envAppId ? [input.envAppId] : [];
|
|
95
|
-
|
|
99
|
+
// An explicit step-up says so; one holding `admin` is inferred by the
|
|
100
|
+
// server, as it is from older CLIs.
|
|
101
|
+
const query = {
|
|
102
|
+
...(input.stepUp ? { kind: "step-up" } : {}),
|
|
103
|
+
scope: scopes.join(","),
|
|
104
|
+
};
|
|
96
105
|
if (apps.length > 0)
|
|
97
106
|
query.apps = apps.join(",");
|
|
98
107
|
if (stepUp)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-request.js","sourceRoot":"","sources":["../../../src/lib/scope-request.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scope-request.js","sourceRoot":"","sources":["../../../src/lib/scope-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,8 +118,12 @@ export declare function trackedSelectorKeys(syncState: SyncState | null | undefi
|
|
|
118
118
|
* retire one tracked key — the operator had to restore the TOML, which prune
|
|
119
119
|
* would then decline to consider, or drop `--only` and push the whole tree.
|
|
120
120
|
* Callers that pass no `tracked` keep the local-files-only meaning.
|
|
121
|
+
*
|
|
122
|
+
* `varsOverridePath` is the selected machine-local environment's
|
|
123
|
+
* `vars.<name>.override.toml` (#4485): a key either file declares is matched,
|
|
124
|
+
* and either file existing is "the file exists" for a tracked key.
|
|
121
125
|
*/
|
|
122
|
-
export declare function unmatchedSelectors(selection: SyncSelection, configDir: string, tracked?: TrackedSelectorKeys | null): string[];
|
|
126
|
+
export declare function unmatchedSelectors(selection: SyncSelection, configDir: string, tracked?: TrackedSelectorKeys | null, varsOverridePath?: string | null): string[];
|
|
123
127
|
/** The file a selector points at, for an operator-facing message. */
|
|
124
128
|
export declare function selectorFileHint(type: string): string;
|
|
125
129
|
/**
|
|
@@ -201,8 +201,12 @@ export function trackedSelectorKeys(syncState, options) {
|
|
|
201
201
|
* retire one tracked key — the operator had to restore the TOML, which prune
|
|
202
202
|
* would then decline to consider, or drop `--only` and push the whole tree.
|
|
203
203
|
* Callers that pass no `tracked` keep the local-files-only meaning.
|
|
204
|
+
*
|
|
205
|
+
* `varsOverridePath` is the selected machine-local environment's
|
|
206
|
+
* `vars.<name>.override.toml` (#4485): a key either file declares is matched,
|
|
207
|
+
* and either file existing is "the file exists" for a tracked key.
|
|
204
208
|
*/
|
|
205
|
-
export function unmatchedSelectors(selection, configDir, tracked) {
|
|
209
|
+
export function unmatchedSelectors(selection, configDir, tracked, varsOverridePath) {
|
|
206
210
|
const missing = [];
|
|
207
211
|
for (const [label, keys] of selection.entityKeys) {
|
|
208
212
|
const descriptor = getConfigObjectDescriptor(label);
|
|
@@ -228,24 +232,30 @@ export function unmatchedSelectors(selection, configDir, tracked) {
|
|
|
228
232
|
missing.push("app");
|
|
229
233
|
}
|
|
230
234
|
if (selection.varKeys.size > 0) {
|
|
231
|
-
const
|
|
232
|
-
// The tracked-var fallback below needs
|
|
233
|
-
// key it matches is one
|
|
234
|
-
// from a PARSED
|
|
235
|
+
const varsFiles = [join(configDir, "vars.toml"), ...(varsOverridePath ? [varsOverridePath] : [])];
|
|
236
|
+
// The tracked-var fallback below needs a var file to exist, even though the
|
|
237
|
+
// key it matches is one no file declares any more: push plans var writes
|
|
238
|
+
// from a PARSED var table only (`preflightParsedVars` → `planVarsPush`),
|
|
235
239
|
// so with no file at all the deletion that would justify the selector is
|
|
236
|
-
// never planned and the push applies nothing.
|
|
237
|
-
//
|
|
238
|
-
|
|
240
|
+
// never planned and the push applies nothing. No var file at all is still
|
|
241
|
+
// this check's to refuse.
|
|
242
|
+
let varsFileExists = false;
|
|
239
243
|
let declared = new Set();
|
|
240
|
-
|
|
244
|
+
for (const varsPath of varsFiles) {
|
|
245
|
+
if (!existsSync(varsPath))
|
|
246
|
+
continue;
|
|
247
|
+
varsFileExists = true;
|
|
241
248
|
try {
|
|
242
|
-
//
|
|
243
|
-
|
|
249
|
+
// A var file is a FLAT root table — `API_BASE_URL = "…"`, no section.
|
|
250
|
+
for (const key of Object.keys(parseConfigToml(readFileSync(varsPath, "utf-8")))) {
|
|
251
|
+
declared.add(key);
|
|
252
|
+
}
|
|
244
253
|
}
|
|
245
254
|
catch {
|
|
246
|
-
// A malformed
|
|
255
|
+
// A malformed var file is the push preflight's error to report, not
|
|
247
256
|
// this check's — treat it as "cannot tell" and stay quiet.
|
|
248
|
-
declared = selection.varKeys;
|
|
257
|
+
declared = new Set(selection.varKeys);
|
|
258
|
+
break;
|
|
249
259
|
}
|
|
250
260
|
}
|
|
251
261
|
for (const key of selection.varKeys) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-selectors.js","sourceRoot":"","sources":["../../../src/lib/sync-selectors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sync-selectors.js","sourceRoot":"","sources":["../../../src/lib/sync-selectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,15 @@ export declare function isTransientStatus(status: number): boolean;
|
|
|
23
23
|
export declare function failureStatus(error: unknown): number | undefined;
|
|
24
24
|
/** Whether a failed request is worth making again. */
|
|
25
25
|
export declare function isTransientFailure(error: unknown): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether a failure is a request the server never answered, or answered with
|
|
28
|
+
* a transient status. Unlike `isTransientFailure`, an error with no status is
|
|
29
|
+
* transient only when it is a transport failure: an error the CLI raised
|
|
30
|
+
* itself (a file it could not parse, a check it made) is an answer too. An
|
|
31
|
+
* error that wraps another (`cause`) is judged by the one it wraps, so a
|
|
32
|
+
* push's own message around a dropped request or a 503 keeps its verdict.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isTransientRequestFailure(error: unknown): boolean;
|
|
26
35
|
/**
|
|
27
36
|
* Run `attempt`, retrying a transient failure on the back-off schedule.
|
|
28
37
|
*
|
|
@@ -31,6 +31,43 @@ export function isTransientFailure(error) {
|
|
|
31
31
|
const status = failureStatus(error);
|
|
32
32
|
return status === undefined || isTransientStatus(status);
|
|
33
33
|
}
|
|
34
|
+
/** Socket-level codes a request fails with when it got no answer. */
|
|
35
|
+
const TRANSPORT_ERROR_CODES = new Set([
|
|
36
|
+
"ECONNRESET",
|
|
37
|
+
"ECONNREFUSED",
|
|
38
|
+
"ECONNABORTED",
|
|
39
|
+
"ETIMEDOUT",
|
|
40
|
+
"EPIPE",
|
|
41
|
+
"EAI_AGAIN",
|
|
42
|
+
"UND_ERR_SOCKET",
|
|
43
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
44
|
+
"UND_ERR_HEADERS_TIMEOUT",
|
|
45
|
+
"UND_ERR_BODY_TIMEOUT",
|
|
46
|
+
]);
|
|
47
|
+
/**
|
|
48
|
+
* Whether a failure is a request the server never answered, or answered with
|
|
49
|
+
* a transient status. Unlike `isTransientFailure`, an error with no status is
|
|
50
|
+
* transient only when it is a transport failure: an error the CLI raised
|
|
51
|
+
* itself (a file it could not parse, a check it made) is an answer too. An
|
|
52
|
+
* error that wraps another (`cause`) is judged by the one it wraps, so a
|
|
53
|
+
* push's own message around a dropped request or a 503 keeps its verdict.
|
|
54
|
+
*/
|
|
55
|
+
export function isTransientRequestFailure(error) {
|
|
56
|
+
return requestFailureIsTransient(error, 0);
|
|
57
|
+
}
|
|
58
|
+
function requestFailureIsTransient(error, depth) {
|
|
59
|
+
if (!error || typeof error !== "object" || depth > 4)
|
|
60
|
+
return false;
|
|
61
|
+
const status = failureStatus(error);
|
|
62
|
+
if (status !== undefined)
|
|
63
|
+
return isTransientStatus(status);
|
|
64
|
+
const code = error.code;
|
|
65
|
+
if (typeof code === "string" && TRANSPORT_ERROR_CODES.has(code))
|
|
66
|
+
return true;
|
|
67
|
+
if (error instanceof TypeError && error.message === "fetch failed")
|
|
68
|
+
return true;
|
|
69
|
+
return requestFailureIsTransient(error.cause, depth + 1);
|
|
70
|
+
}
|
|
34
71
|
const defaultSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
35
72
|
/**
|
|
36
73
|
* Run `attempt`, retrying a transient failure on the back-off schedule.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transient-retry.js","sourceRoot":"","sources":["../../../src/lib/transient-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE3D,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;AAC3D,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,MAAM,GAAI,KAAa,EAAE,UAAU,IAAK,KAAa,EAAE,MAAM,CAAC;IACpE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,MAAM,KAAK,SAAS,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CAClC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAyB,EACzB,OAA0E,EAC1E,WAA8B,yBAAyB,EACvD,QAAuC,YAAY;IAEnD,KAAK,IAAI,QAAQ,GAAG,CAAC,GAAI,QAAQ,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"transient-retry.js","sourceRoot":"","sources":["../../../src/lib/transient-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A child app's own config var values: `vars.<name>.override.toml` (#4485).
|
|
3
|
+
*
|
|
4
|
+
* A machine-local environment `<name>` (#4117) shares the committed
|
|
5
|
+
* environment's `primitive/<tree>/`, so the `vars.toml` there holds the
|
|
6
|
+
* parent's values. Vars whose value belongs to one app — its database ids, a
|
|
7
|
+
* webhook URL embedding its app id, an OAuth origin — need a place of their
|
|
8
|
+
* own that survives a push, a diff and a pull without touching what merges to
|
|
9
|
+
* main. That place is `primitive/<tree>/vars.<name>.override.toml`, a flat
|
|
10
|
+
* `KEY = "value"` table under the same rules as `vars.toml`:
|
|
11
|
+
*
|
|
12
|
+
* - It is read only when `<name>` is the SELECTED environment. A committed
|
|
13
|
+
* environment has no override, so a file named for one is never read.
|
|
14
|
+
* - It LAYERS over `vars.toml`: its keys replace or add, every other key keeps
|
|
15
|
+
* `vars.toml`'s value, and no key can be made absent on the child.
|
|
16
|
+
* - It is machine-local and git-ignored (`primitive/*\/*.override.toml`).
|
|
17
|
+
*
|
|
18
|
+
* Everything here is pure apart from `readLocalVars`, which reads the two
|
|
19
|
+
* files; the commands own the writes.
|
|
20
|
+
*/
|
|
21
|
+
/** The tree's shared var file. */
|
|
22
|
+
export declare const VARS_FILE_NAME = "vars.toml";
|
|
23
|
+
/**
|
|
24
|
+
* The gitignore pattern that keeps every override file out of a commit,
|
|
25
|
+
* written by `primitive init` and carried by both app templates.
|
|
26
|
+
*/
|
|
27
|
+
export declare const VARS_OVERRIDE_GITIGNORE_PATTERN = "primitive/*/*.override.toml";
|
|
28
|
+
/** A flat var table: key to value. */
|
|
29
|
+
export type VarTable = Record<string, string>;
|
|
30
|
+
/** `vars.<name>.override.toml` — the override file's name inside the tree. */
|
|
31
|
+
export declare function varsOverrideFileName(name: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* The override file for `env` in the tree `configDir`, or `null` for a
|
|
34
|
+
* committed environment, which never has one. Refuses a name that is not a
|
|
35
|
+
* safe path component.
|
|
36
|
+
*/
|
|
37
|
+
export declare function varsOverridePath(configDir: string, env: {
|
|
38
|
+
name: string;
|
|
39
|
+
local: boolean;
|
|
40
|
+
}): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* `base` with `override`'s keys replacing or adding to it. Either side may be
|
|
43
|
+
* absent; the result is a new table.
|
|
44
|
+
*/
|
|
45
|
+
export declare function layerVars(base: Record<string, unknown> | null, override: Record<string, unknown> | null): Record<string, unknown>;
|
|
46
|
+
/** The two var files of an environment and the table they layer into. */
|
|
47
|
+
export interface LocalVars {
|
|
48
|
+
basePath: string;
|
|
49
|
+
/** `vars.toml`'s table, or `null` when the file is absent. */
|
|
50
|
+
base: Record<string, unknown> | null;
|
|
51
|
+
/** The override file, or `null` for an environment that has none. */
|
|
52
|
+
overridePath: string | null;
|
|
53
|
+
/** The override's table, or `null` when there is no file. */
|
|
54
|
+
override: Record<string, unknown> | null;
|
|
55
|
+
/** What the environment's vars are: `base` with `override` layered over it. */
|
|
56
|
+
layered: Record<string, unknown>;
|
|
57
|
+
/** Override keys `vars.toml` also declares, sorted. */
|
|
58
|
+
overridingKeys: string[];
|
|
59
|
+
/** Override keys `vars.toml` does not declare, sorted. */
|
|
60
|
+
addedKeys: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Reads `vars.toml` in `configDir` and the override at `overridePath`, and
|
|
64
|
+
* layers them. A file that cannot be parsed throws an error naming it.
|
|
65
|
+
*/
|
|
66
|
+
export declare function readLocalVars(configDir: string, overridePath: string | null): LocalVars;
|
|
67
|
+
/**
|
|
68
|
+
* The override file's body: a header saying what the file is, then the keys
|
|
69
|
+
* sorted. An empty table is a comment-only file.
|
|
70
|
+
*/
|
|
71
|
+
export declare function serializeVarsOverride(vars: VarTable, target: {
|
|
72
|
+
name: string;
|
|
73
|
+
tree: string;
|
|
74
|
+
}): string;
|
|
75
|
+
/**
|
|
76
|
+
* What `config pull` on a machine-local environment writes into its override
|
|
77
|
+
* file. `vars.toml` is never written by such a pull, so each pulled key —
|
|
78
|
+
* every key on the server or in the override, or only `selectedKeys` — is
|
|
79
|
+
* resolved against it: a server value equal to `vars.toml`'s is dropped from
|
|
80
|
+
* the override, any other server value is held there, and a key the server no
|
|
81
|
+
* longer has is removed. Keys outside the selection stay as they are.
|
|
82
|
+
*/
|
|
83
|
+
export declare function planVarsOverridePull(serverVars: ReadonlyArray<{
|
|
84
|
+
key: string;
|
|
85
|
+
value?: string;
|
|
86
|
+
}>, baseVars: Record<string, unknown>, selectedKeys: ReadonlySet<string> | null, currentOverride: Record<string, unknown>, target: {
|
|
87
|
+
name: string;
|
|
88
|
+
tree: string;
|
|
89
|
+
}): {
|
|
90
|
+
vars: VarTable;
|
|
91
|
+
content: string;
|
|
92
|
+
};
|
|
93
|
+
/** The one line push, diff and pull print when an override is in play. */
|
|
94
|
+
export declare function varsOverrideSummaryLine(fileName: string, keys: {
|
|
95
|
+
overridingKeys: readonly string[];
|
|
96
|
+
addedKeys: readonly string[];
|
|
97
|
+
}): string;
|
|
98
|
+
/**
|
|
99
|
+
* The note a push on a child with an override prints when it changed the
|
|
100
|
+
* value of a var that already existed and left at least one function as it
|
|
101
|
+
* was. Functions read vars through a cache keyed by function version, so an
|
|
102
|
+
* unchanged function keeps the value it first read until a new version of it
|
|
103
|
+
* is pushed or its isolate is recycled. `null` when neither applies.
|
|
104
|
+
*/
|
|
105
|
+
export declare function cachedVarsNote(changedKeys: readonly string[], skippedFunctionCount: number): string | null;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A child app's own config var values: `vars.<name>.override.toml` (#4485).
|
|
3
|
+
*
|
|
4
|
+
* A machine-local environment `<name>` (#4117) shares the committed
|
|
5
|
+
* environment's `primitive/<tree>/`, so the `vars.toml` there holds the
|
|
6
|
+
* parent's values. Vars whose value belongs to one app — its database ids, a
|
|
7
|
+
* webhook URL embedding its app id, an OAuth origin — need a place of their
|
|
8
|
+
* own that survives a push, a diff and a pull without touching what merges to
|
|
9
|
+
* main. That place is `primitive/<tree>/vars.<name>.override.toml`, a flat
|
|
10
|
+
* `KEY = "value"` table under the same rules as `vars.toml`:
|
|
11
|
+
*
|
|
12
|
+
* - It is read only when `<name>` is the SELECTED environment. A committed
|
|
13
|
+
* environment has no override, so a file named for one is never read.
|
|
14
|
+
* - It LAYERS over `vars.toml`: its keys replace or add, every other key keeps
|
|
15
|
+
* `vars.toml`'s value, and no key can be made absent on the child.
|
|
16
|
+
* - It is machine-local and git-ignored (`primitive/*\/*.override.toml`).
|
|
17
|
+
*
|
|
18
|
+
* Everything here is pure apart from `readLocalVars`, which reads the two
|
|
19
|
+
* files; the commands own the writes.
|
|
20
|
+
*/
|
|
21
|
+
import { existsSync, readFileSync } from "fs";
|
|
22
|
+
import { basename, join } from "path";
|
|
23
|
+
import { parseConfigToml, stringifyConfigToml } from "./config-toml.js";
|
|
24
|
+
import { assertSafePathComponent } from "./sync-paths.js";
|
|
25
|
+
/** The tree's shared var file. */
|
|
26
|
+
export const VARS_FILE_NAME = "vars.toml";
|
|
27
|
+
/**
|
|
28
|
+
* The gitignore pattern that keeps every override file out of a commit,
|
|
29
|
+
* written by `primitive init` and carried by both app templates.
|
|
30
|
+
*/
|
|
31
|
+
export const VARS_OVERRIDE_GITIGNORE_PATTERN = "primitive/*/*.override.toml";
|
|
32
|
+
/** `vars.<name>.override.toml` — the override file's name inside the tree. */
|
|
33
|
+
export function varsOverrideFileName(name) {
|
|
34
|
+
assertSafePathComponent(name, "environment name");
|
|
35
|
+
return `vars.${name}.override.toml`;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The override file for `env` in the tree `configDir`, or `null` for a
|
|
39
|
+
* committed environment, which never has one. Refuses a name that is not a
|
|
40
|
+
* safe path component.
|
|
41
|
+
*/
|
|
42
|
+
export function varsOverridePath(configDir, env) {
|
|
43
|
+
if (!env.local)
|
|
44
|
+
return null;
|
|
45
|
+
return join(configDir, varsOverrideFileName(env.name));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* `base` with `override`'s keys replacing or adding to it. Either side may be
|
|
49
|
+
* absent; the result is a new table.
|
|
50
|
+
*/
|
|
51
|
+
export function layerVars(base, override) {
|
|
52
|
+
return { ...(base ?? {}), ...(override ?? {}) };
|
|
53
|
+
}
|
|
54
|
+
function readVarTable(path) {
|
|
55
|
+
if (!existsSync(path))
|
|
56
|
+
return null;
|
|
57
|
+
try {
|
|
58
|
+
return parseConfigToml(readFileSync(path, "utf-8"));
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
throw new Error(`${basename(path)}: ${err?.message || String(err)}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Reads `vars.toml` in `configDir` and the override at `overridePath`, and
|
|
66
|
+
* layers them. A file that cannot be parsed throws an error naming it.
|
|
67
|
+
*/
|
|
68
|
+
export function readLocalVars(configDir, overridePath) {
|
|
69
|
+
const basePath = join(configDir, VARS_FILE_NAME);
|
|
70
|
+
const base = readVarTable(basePath);
|
|
71
|
+
const override = overridePath ? readVarTable(overridePath) : null;
|
|
72
|
+
const overrideKeys = Object.keys(override ?? {}).sort();
|
|
73
|
+
return {
|
|
74
|
+
basePath,
|
|
75
|
+
base,
|
|
76
|
+
overridePath,
|
|
77
|
+
override,
|
|
78
|
+
layered: layerVars(base, override),
|
|
79
|
+
overridingKeys: overrideKeys.filter((key) => base !== null && key in base),
|
|
80
|
+
addedKeys: overrideKeys.filter((key) => base === null || !(key in base)),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The override file's body: a header saying what the file is, then the keys
|
|
85
|
+
* sorted. An empty table is a comment-only file.
|
|
86
|
+
*/
|
|
87
|
+
export function serializeVarsOverride(vars, target) {
|
|
88
|
+
const sorted = {};
|
|
89
|
+
for (const key of Object.keys(vars).sort())
|
|
90
|
+
sorted[key] = vars[key];
|
|
91
|
+
const header = `# Config var values for the machine-local environment "${target.name}" only.\n` +
|
|
92
|
+
`# Layered over primitive/${target.tree}/${VARS_FILE_NAME} when "${target.name}" is\n` +
|
|
93
|
+
"# selected: a key here replaces or adds to that file's value. Machine-local —\n" +
|
|
94
|
+
"# never commit this file. Non-secret values only; use `primitive secrets`\n" +
|
|
95
|
+
"# for credentials.\n\n";
|
|
96
|
+
return header + stringifyConfigToml(sorted);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* What `config pull` on a machine-local environment writes into its override
|
|
100
|
+
* file. `vars.toml` is never written by such a pull, so each pulled key —
|
|
101
|
+
* every key on the server or in the override, or only `selectedKeys` — is
|
|
102
|
+
* resolved against it: a server value equal to `vars.toml`'s is dropped from
|
|
103
|
+
* the override, any other server value is held there, and a key the server no
|
|
104
|
+
* longer has is removed. Keys outside the selection stay as they are.
|
|
105
|
+
*/
|
|
106
|
+
export function planVarsOverridePull(serverVars, baseVars, selectedKeys, currentOverride, target) {
|
|
107
|
+
const server = new Map(serverVars.map((v) => [v.key, String(v.value ?? "")]));
|
|
108
|
+
const vars = {};
|
|
109
|
+
for (const [key, value] of Object.entries(currentOverride))
|
|
110
|
+
vars[key] = String(value);
|
|
111
|
+
const pulled = selectedKeys ?? new Set([...server.keys(), ...Object.keys(currentOverride)]);
|
|
112
|
+
for (const key of pulled) {
|
|
113
|
+
const value = server.get(key);
|
|
114
|
+
if (value === undefined || (key in baseVars && String(baseVars[key]) === value)) {
|
|
115
|
+
delete vars[key];
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
vars[key] = value;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return { vars, content: serializeVarsOverride(vars, target) };
|
|
122
|
+
}
|
|
123
|
+
/** The one line push, diff and pull print when an override is in play. */
|
|
124
|
+
export function varsOverrideSummaryLine(fileName, keys) {
|
|
125
|
+
return (`Vars override: ${fileName} (${keys.overridingKeys.length} overriding ${VARS_FILE_NAME}, ` +
|
|
126
|
+
`${keys.addedKeys.length} added)`);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The note a push on a child with an override prints when it changed the
|
|
130
|
+
* value of a var that already existed and left at least one function as it
|
|
131
|
+
* was. Functions read vars through a cache keyed by function version, so an
|
|
132
|
+
* unchanged function keeps the value it first read until a new version of it
|
|
133
|
+
* is pushed or its isolate is recycled. `null` when neither applies.
|
|
134
|
+
*/
|
|
135
|
+
export function cachedVarsNote(changedKeys, skippedFunctionCount) {
|
|
136
|
+
if (changedKeys.length === 0 || skippedFunctionCount === 0)
|
|
137
|
+
return null;
|
|
138
|
+
const keys = [...changedKeys].sort().join(", ");
|
|
139
|
+
return (`Note: changed var value(s) ${keys}; ${skippedFunctionCount} unchanged function(s) were not re-pushed. ` +
|
|
140
|
+
"A running function version caches the vars it has read, so it keeps the old value " +
|
|
141
|
+
"until a new version of it is pushed (any change to its code or TOML) or its isolate recycles.");
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=vars-override.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vars-override.js","sourceRoot":"","sources":["../../../src/lib/vars-override.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "primitive-admin",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.8",
|
|
4
4
|
"description": "CLI for administering Primitive applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"commander": "^12.1.0",
|
|
59
59
|
"esbuild": "0.25.12",
|
|
60
60
|
"inquirer": "^9.2.12",
|
|
61
|
-
"js-bao": "0.12.0-alpha.
|
|
61
|
+
"js-bao": "0.12.0-alpha.8",
|
|
62
62
|
"mime-types": "^2.1.35",
|
|
63
63
|
"open": "^10.0.3",
|
|
64
64
|
"smol-toml": "1.7.0",
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GENERATED FILE — DO NOT EDIT BY HAND.
|
|
3
|
-
*
|
|
4
|
-
* Source of truth: the `WorkflowDefinition` model in the repo-root
|
|
5
|
-
* `models.yaml` — the one statically-parseable server anchor for the
|
|
6
|
-
* `[workflow]`-level config surface (issue #2326, Phase 1 of #1976).
|
|
7
|
-
*
|
|
8
|
-
* Regenerate with:
|
|
9
|
-
* node cli/scripts/gen-workflow-fields.mjs (runs automatically at CLI prebuild)
|
|
10
|
-
*
|
|
11
|
-
* A CI freshness guard (`cli/scripts/gen-workflow-fields.mjs --check`, also
|
|
12
|
-
* asserted by `cli/tests/unit/workflow-field-descriptor-drift-guard.test.ts`)
|
|
13
|
-
* fails if this committed artifact does not match a fresh parse of
|
|
14
|
-
* `models.yaml`. The same test asserts every field below is classified in
|
|
15
|
-
* `cli/src/lib/workflow-field-descriptor.ts` as synced, structural, or
|
|
16
|
-
* internal — so a new server-side workflow field cannot be silently ignored by
|
|
17
|
-
* the CLI.
|
|
18
|
-
*/
|
|
19
|
-
/** Every `WorkflowDefinition` field, in `models.yaml` declaration order (#2326). */
|
|
20
|
-
export declare const GENERATED_WORKFLOW_MODEL_FIELDS: readonly string[];
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GENERATED FILE — DO NOT EDIT BY HAND.
|
|
3
|
-
*
|
|
4
|
-
* Source of truth: the `WorkflowDefinition` model in the repo-root
|
|
5
|
-
* `models.yaml` — the one statically-parseable server anchor for the
|
|
6
|
-
* `[workflow]`-level config surface (issue #2326, Phase 1 of #1976).
|
|
7
|
-
*
|
|
8
|
-
* Regenerate with:
|
|
9
|
-
* node cli/scripts/gen-workflow-fields.mjs (runs automatically at CLI prebuild)
|
|
10
|
-
*
|
|
11
|
-
* A CI freshness guard (`cli/scripts/gen-workflow-fields.mjs --check`, also
|
|
12
|
-
* asserted by `cli/tests/unit/workflow-field-descriptor-drift-guard.test.ts`)
|
|
13
|
-
* fails if this committed artifact does not match a fresh parse of
|
|
14
|
-
* `models.yaml`. The same test asserts every field below is classified in
|
|
15
|
-
* `cli/src/lib/workflow-field-descriptor.ts` as synced, structural, or
|
|
16
|
-
* internal — so a new server-side workflow field cannot be silently ignored by
|
|
17
|
-
* the CLI.
|
|
18
|
-
*/
|
|
19
|
-
/** Every `WorkflowDefinition` field, in `models.yaml` declaration order (#2326). */
|
|
20
|
-
export const GENERATED_WORKFLOW_MODEL_FIELDS = [
|
|
21
|
-
"workflowId",
|
|
22
|
-
"appId",
|
|
23
|
-
"workflowKey",
|
|
24
|
-
"name",
|
|
25
|
-
"status",
|
|
26
|
-
"latestRevision",
|
|
27
|
-
"description",
|
|
28
|
-
"stepsR2Key",
|
|
29
|
-
"draftStepsR2Key",
|
|
30
|
-
"draftInputSchema",
|
|
31
|
-
"draftOutputSchema",
|
|
32
|
-
"draftModifiedAt",
|
|
33
|
-
"activeConfigId",
|
|
34
|
-
"inputSchema",
|
|
35
|
-
"outputSchema",
|
|
36
|
-
"perUserMaxRunning",
|
|
37
|
-
"perUserMaxQueued",
|
|
38
|
-
"perAppMaxRunning",
|
|
39
|
-
"perAppMaxQueued",
|
|
40
|
-
"queueTtlSeconds",
|
|
41
|
-
"dequeueOrder",
|
|
42
|
-
"requiresClientApply",
|
|
43
|
-
"syncCallable",
|
|
44
|
-
"accessRule",
|
|
45
|
-
"metadataManifest",
|
|
46
|
-
"runAs",
|
|
47
|
-
"lock",
|
|
48
|
-
"capabilities",
|
|
49
|
-
"createdBy",
|
|
50
|
-
"createdAt",
|
|
51
|
-
"modifiedAt",
|
|
52
|
-
];
|
|
53
|
-
//# sourceMappingURL=generated-workflow-model-fields.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generated-workflow-model-fields.js","sourceRoot":"","sources":["../../../src/lib/generated-workflow-model-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,oFAAoF;AACpF,MAAM,CAAC,MAAM,+BAA+B,GAAsB;IAChE,YAAY;IACZ,OAAO;IACP,aAAa;IACb,MAAM;IACN,QAAQ;IACR,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,OAAO;IACP,MAAM;IACN,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;CACb,CAAC"}
|