primitive-admin 1.0.61 → 1.0.62
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 +125 -69
- package/assets/skill/skills/primitive-platform/SKILL.md +336 -37
- package/dist/bin/primitive.js +25 -14
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/analytics.js +36 -16
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps.js +49 -188
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/blob-buckets.js +13 -153
- package/dist/src/commands/blob-buckets.js.map +1 -1
- package/dist/src/commands/collection-type-configs.js +14 -100
- package/dist/src/commands/collection-type-configs.js.map +1 -1
- package/dist/src/commands/collections.js +47 -8
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/config.d.ts +46 -0
- package/dist/src/commands/config.js +479 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/commands/connections.js +12 -7
- package/dist/src/commands/connections.js.map +1 -1
- package/dist/src/commands/cron-triggers.js +84 -176
- package/dist/src/commands/cron-triggers.js.map +1 -1
- package/dist/src/commands/database-type-configs.d.ts +2 -0
- package/dist/src/commands/database-type-configs.js +171 -0
- package/dist/src/commands/database-type-configs.js.map +1 -0
- package/dist/src/commands/database-types.js +4 -4
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.d.ts +63 -0
- package/dist/src/commands/databases.js +649 -87
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.js +869 -12
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.js +18 -125
- package/dist/src/commands/email-templates.js.map +1 -1
- package/dist/src/commands/env.d.ts +12 -1
- package/dist/src/commands/env.js +98 -25
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/feature-flags.d.ts +14 -0
- package/dist/src/commands/feature-flags.js +116 -0
- package/dist/src/commands/feature-flags.js.map +1 -0
- package/dist/src/commands/group-type-configs.js +14 -109
- package/dist/src/commands/group-type-configs.js.map +1 -1
- package/dist/src/commands/init.d.ts +9 -1
- package/dist/src/commands/init.js +1056 -277
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +136 -421
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/metadata-category-configs.d.ts +12 -0
- package/dist/src/commands/metadata-category-configs.js +112 -0
- package/dist/src/commands/metadata-category-configs.js.map +1 -0
- package/dist/src/commands/metadata.js +33 -141
- package/dist/src/commands/metadata.js.map +1 -1
- package/dist/src/commands/prompts.js +206 -563
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.d.ts +1 -1
- package/dist/src/commands/rule-sets.js +16 -132
- package/dist/src/commands/rule-sets.js.map +1 -1
- package/dist/src/commands/scripts.js +67 -234
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/sessions.js +17 -5
- package/dist/src/commands/sessions.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +113 -70
- package/dist/src/commands/sync-app-settings.js +193 -242
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +1932 -49
- package/dist/src/commands/sync.js +9521 -1769
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.js +8 -2
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.js +92 -1
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/vars.js +44 -58
- package/dist/src/commands/vars.js.map +1 -1
- package/dist/src/commands/webhooks.js +318 -156
- package/dist/src/commands/webhooks.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +49 -12
- package/dist/src/commands/workflows.js +652 -1086
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/access-rule-display.d.ts +21 -0
- package/dist/src/lib/access-rule-display.js +34 -0
- package/dist/src/lib/access-rule-display.js.map +1 -0
- package/dist/src/lib/api-client.d.ts +541 -61
- package/dist/src/lib/api-client.js +559 -102
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +180 -25
- package/dist/src/lib/app-settings-descriptor.js +403 -82
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/canonical-json.d.ts +12 -0
- package/dist/src/lib/canonical-json.js +35 -0
- package/dist/src/lib/canonical-json.js.map +1 -0
- package/dist/src/lib/cli-manifest.d.ts +8 -0
- package/dist/src/lib/cli-manifest.js +1 -0
- package/dist/src/lib/cli-manifest.js.map +1 -1
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +6 -2
- package/dist/src/lib/codegen-shared/generatedFiles.js +9 -2
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +6 -6
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +8 -8
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -1
- package/dist/src/lib/config-object-descriptor.d.ts +127 -0
- package/dist/src/lib/config-object-descriptor.js +658 -0
- package/dist/src/lib/config-object-descriptor.js.map +1 -0
- package/dist/src/lib/config-payload.d.ts +85 -0
- package/dist/src/lib/config-payload.js +116 -0
- package/dist/src/lib/config-payload.js.map +1 -0
- package/dist/src/lib/config-surface.d.ts +130 -0
- package/dist/src/lib/config-surface.js +300 -0
- package/dist/src/lib/config-surface.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +10 -0
- package/dist/src/lib/credentials-store.js +23 -0
- package/dist/src/lib/credentials-store.js.map +1 -1
- package/dist/src/lib/data-input.d.ts +23 -0
- package/dist/src/lib/data-input.js +50 -0
- package/dist/src/lib/data-input.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTemplates.js +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +1 -1
- package/dist/src/lib/env-resolver-core.d.ts +147 -0
- package/dist/src/lib/env-resolver-core.js +265 -0
- package/dist/src/lib/env-resolver-core.js.map +1 -0
- package/dist/src/lib/env-resolver.d.ts +28 -6
- package/dist/src/lib/env-resolver.js +44 -32
- package/dist/src/lib/env-resolver.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +12 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +682 -0
- package/dist/src/lib/generated-config-surfaces.js +4058 -0
- package/dist/src/lib/generated-config-surfaces.js.map +1 -0
- package/dist/src/lib/generated-template-lint.d.ts +212 -0
- package/dist/src/lib/generated-template-lint.js +624 -0
- package/dist/src/lib/generated-template-lint.js.map +1 -0
- package/dist/src/lib/init-adopt.d.ts +16 -0
- package/dist/src/lib/init-adopt.js +34 -0
- package/dist/src/lib/init-adopt.js.map +1 -0
- package/dist/src/lib/init-assets.d.ts +39 -0
- package/dist/src/lib/init-assets.js +97 -0
- package/dist/src/lib/init-assets.js.map +1 -0
- package/dist/src/lib/init-config.d.ts +44 -5
- package/dist/src/lib/init-config.js +80 -7
- package/dist/src/lib/init-config.js.map +1 -1
- package/dist/src/lib/init-ios-links.d.ts +50 -0
- package/dist/src/lib/init-ios-links.js +153 -0
- package/dist/src/lib/init-ios-links.js.map +1 -0
- package/dist/src/lib/init-plan.d.ts +80 -0
- package/dist/src/lib/init-plan.js +95 -0
- package/dist/src/lib/init-plan.js.map +1 -0
- package/dist/src/lib/init-production-env.d.ts +48 -0
- package/dist/src/lib/init-production-env.js +59 -0
- package/dist/src/lib/init-production-env.js.map +1 -0
- package/dist/src/lib/init-schema.d.ts +74 -0
- package/dist/src/lib/init-schema.js +358 -0
- package/dist/src/lib/init-schema.js.map +1 -0
- package/dist/src/lib/init-xcode.d.ts +33 -0
- package/dist/src/lib/init-xcode.js +114 -0
- package/dist/src/lib/init-xcode.js.map +1 -0
- package/dist/src/lib/integration-request-config.d.ts +30 -0
- package/dist/src/lib/integration-request-config.js +145 -0
- package/dist/src/lib/integration-request-config.js.map +1 -0
- package/dist/src/lib/local-state.d.ts +55 -0
- package/dist/src/lib/local-state.js +167 -0
- package/dist/src/lib/local-state.js.map +1 -0
- package/dist/src/lib/log-inspection.d.ts +568 -0
- package/dist/src/lib/log-inspection.js +639 -0
- package/dist/src/lib/log-inspection.js.map +1 -0
- package/dist/src/lib/migration-nag.d.ts +2 -2
- package/dist/src/lib/migration-nag.js +3 -3
- package/dist/src/lib/object-status-filter.d.ts +22 -0
- package/dist/src/lib/object-status-filter.js +45 -0
- package/dist/src/lib/object-status-filter.js.map +1 -0
- package/dist/src/lib/output.d.ts +24 -1
- package/dist/src/lib/output.js +42 -1
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/package-manager.d.ts +140 -0
- package/dist/src/lib/package-manager.js +305 -0
- package/dist/src/lib/package-manager.js.map +1 -0
- package/dist/src/lib/paginate.d.ts +50 -0
- package/dist/src/lib/paginate.js +53 -0
- package/dist/src/lib/paginate.js.map +1 -1
- package/dist/src/lib/platform-owned.d.ts +29 -3
- package/dist/src/lib/platform-owned.js +42 -3
- package/dist/src/lib/platform-owned.js.map +1 -1
- package/dist/src/lib/project-config.js +13 -5
- package/dist/src/lib/project-config.js.map +1 -1
- package/dist/src/lib/query-operators.d.ts +1 -1
- package/dist/src/lib/query-operators.js +1 -1
- package/dist/src/lib/record-filter.d.ts +18 -0
- package/dist/src/lib/record-filter.js +55 -0
- package/dist/src/lib/record-filter.js.map +1 -0
- package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
- package/dist/src/lib/resolve-init-dev-port.js +55 -0
- package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
- package/dist/src/lib/resolve-init-server.d.ts +64 -0
- package/dist/src/lib/resolve-init-server.js +77 -0
- package/dist/src/lib/resolve-init-server.js.map +1 -0
- package/dist/src/lib/resolve-platform.d.ts +43 -14
- package/dist/src/lib/resolve-platform.js +74 -12
- package/dist/src/lib/resolve-platform.js.map +1 -1
- package/dist/src/lib/run-status.d.ts +19 -0
- package/dist/src/lib/run-status.generated.d.ts +39 -0
- package/dist/src/lib/run-status.generated.js +66 -0
- package/dist/src/lib/run-status.generated.js.map +1 -0
- package/dist/src/lib/run-status.js +19 -0
- package/dist/src/lib/run-status.js.map +1 -0
- package/dist/src/lib/server-text-normalization.d.ts +51 -0
- package/dist/src/lib/server-text-normalization.js +90 -0
- package/dist/src/lib/server-text-normalization.js.map +1 -0
- package/dist/src/lib/server-url.d.ts +22 -0
- package/dist/src/lib/server-url.js +33 -0
- package/dist/src/lib/server-url.js.map +1 -0
- package/dist/src/lib/signing-secret-status.d.ts +81 -0
- package/dist/src/lib/signing-secret-status.js +116 -0
- package/dist/src/lib/signing-secret-status.js.map +1 -0
- package/dist/src/lib/skill-installer.js +6 -3
- package/dist/src/lib/skill-installer.js.map +1 -1
- package/dist/src/lib/snapshots.d.ts +2 -2
- package/dist/src/lib/snapshots.js +2 -2
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +15 -2
- package/dist/src/lib/swift-codegen/dbGenerator.js +250 -18
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/generator.d.ts +11 -2
- package/dist/src/lib/swift-codegen/generator.js +181 -7
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +7 -3
- package/dist/src/lib/swift-codegen/siblingSymbols.js +4 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -1
- package/dist/src/lib/sync-dir-selector.d.ts +21 -0
- package/dist/src/lib/sync-dir-selector.js +30 -0
- package/dist/src/lib/sync-dir-selector.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +39 -0
- package/dist/src/lib/sync-paths.js +70 -2
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/sync-resource-types.d.ts +138 -31
- package/dist/src/lib/sync-resource-types.js +241 -47
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/sync-selectors.d.ts +95 -0
- package/dist/src/lib/sync-selectors.js +228 -0
- package/dist/src/lib/sync-selectors.js.map +1 -0
- package/dist/src/lib/template.d.ts +62 -4
- package/dist/src/lib/template.js +147 -39
- package/dist/src/lib/template.js.map +1 -1
- package/dist/src/lib/test-case-keys.d.ts +29 -0
- package/dist/src/lib/test-case-keys.js +55 -0
- package/dist/src/lib/test-case-keys.js.map +1 -0
- package/dist/src/lib/test-case-variables.d.ts +15 -0
- package/dist/src/lib/test-case-variables.js +29 -0
- package/dist/src/lib/test-case-variables.js.map +1 -0
- package/dist/src/lib/toml-database-config.d.ts +4 -4
- package/dist/src/lib/toml-database-config.js +27 -34
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/toml-metadata-config.d.ts +9 -5
- package/dist/src/lib/toml-metadata-config.js +40 -45
- package/dist/src/lib/toml-metadata-config.js.map +1 -1
- package/dist/src/lib/toml-native-form.d.ts +1 -1
- package/dist/src/lib/toml-native-form.js +1 -1
- package/dist/src/lib/toml-params-validator.d.ts +1 -1
- package/dist/src/lib/toml-params-validator.js +1 -1
- package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
- package/dist/src/lib/toml-scalar-edit.js +283 -0
- package/dist/src/lib/toml-scalar-edit.js.map +1 -0
- package/dist/src/lib/user-selector.d.ts +24 -0
- package/dist/src/lib/user-selector.js +33 -0
- package/dist/src/lib/user-selector.js.map +1 -0
- package/dist/src/lib/version-check.d.ts +25 -0
- package/dist/src/lib/version-check.js +77 -8
- package/dist/src/lib/version-check.js.map +1 -1
- package/dist/src/lib/watch.d.ts +121 -0
- package/dist/src/lib/watch.js +169 -0
- package/dist/src/lib/watch.js.map +1 -0
- package/dist/src/lib/workflow-apply.d.ts +69 -45
- package/dist/src/lib/workflow-apply.js +99 -72
- package/dist/src/lib/workflow-apply.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generator.js +4 -4
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +11 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js +5 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
- package/dist/src/lib/workflow-config-apply.d.ts +70 -0
- package/dist/src/lib/workflow-config-apply.js +137 -0
- package/dist/src/lib/workflow-config-apply.js.map +1 -0
- package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
- package/dist/src/lib/workflow-config-sidecar.js +96 -0
- package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
- package/dist/src/lib/workflow-defaults.d.ts +29 -0
- package/dist/src/lib/workflow-defaults.js +41 -0
- package/dist/src/lib/workflow-defaults.js.map +1 -0
- package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
- package/dist/src/lib/workflow-include-preserve.js +286 -0
- package/dist/src/lib/workflow-include-preserve.js.map +1 -0
- package/dist/src/lib/workflow-payload.d.ts +31 -20
- package/dist/src/lib/workflow-payload.js +100 -110
- package/dist/src/lib/workflow-payload.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +37 -16
- package/dist/src/lib/workflow-toml-validator.js +141 -16
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +78 -22
- package/dist/src/validators.d.ts +7 -7
- package/dist/src/validators.js +6 -6
- package/package.json +11 -6
- package/dist/src/commands/settings.d.ts +0 -15
- package/dist/src/commands/settings.js +0 -102
- package/dist/src/commands/settings.js.map +0 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared layout metadata for the per-entity resource types `
|
|
2
|
+
* Shared layout metadata for the per-entity resource types `config pull` writes
|
|
3
3
|
* into a sync slot (issue #1659).
|
|
4
4
|
*
|
|
5
|
-
* `
|
|
5
|
+
* `config pull` writes one file per server entity and records what it wrote in
|
|
6
6
|
* `.primitive-sync.json` (`SyncState.entities[<slot>]`). Until #1659 it never
|
|
7
7
|
* removed a local file whose entity had disappeared server-side, so the next
|
|
8
|
-
* `
|
|
8
|
+
* `config push` — which treats local TOML as the source of truth — silently
|
|
9
9
|
* re-created the just-deleted entity.
|
|
10
10
|
*
|
|
11
|
-
* This module holds the narrow descriptor the prune pass and `
|
|
11
|
+
* This module holds the narrow descriptor the prune pass and `config diff` share:
|
|
12
12
|
* directory, extension, state slot, key→filename derivation, and the sidecar
|
|
13
13
|
* test-directory block type. The pull write loops deliberately stay as they are
|
|
14
14
|
* — this table is layout metadata, not a write framework.
|
|
15
15
|
*/
|
|
16
16
|
import { existsSync, readFileSync, readdirSync, rmSync, statSync, unlinkSync } from "fs";
|
|
17
|
-
import { basename, dirname, join } from "path";
|
|
17
|
+
import { basename, dirname, join, resolve, sep } from "path";
|
|
18
18
|
import { parseConfigToml } from "./config-toml.js";
|
|
19
19
|
const tomlFile = (key) => `${key}.toml`;
|
|
20
20
|
/**
|
|
@@ -28,7 +28,7 @@ export function ruleSetFileKey(ruleSet) {
|
|
|
28
28
|
/**
|
|
29
29
|
* Every per-entity resource type in a sync slot. `app.toml` and `vars.toml` are
|
|
30
30
|
* root singletons, not per-entity directories, so they are not listed here —
|
|
31
|
-
* var removal is already handled within-file by `
|
|
31
|
+
* var removal is already handled within-file by `config push` (`planVarsPush`).
|
|
32
32
|
*/
|
|
33
33
|
export const SYNC_RESOURCE_TYPES = [
|
|
34
34
|
{
|
|
@@ -37,6 +37,9 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
37
37
|
ext: ".toml",
|
|
38
38
|
stateSlot: "integrations",
|
|
39
39
|
fileFromKey: tomlFile,
|
|
40
|
+
// #2769 — an integration's test cases live at `integrations/<key>.tests/`,
|
|
41
|
+
// pulled, pushed, diffed and pruned like every other block's.
|
|
42
|
+
testBlockType: "integration",
|
|
40
43
|
// `/admin/api/apps/{id}/integrations` paginates; pull drains it with fetchAll.
|
|
41
44
|
listingComplete: true,
|
|
42
45
|
},
|
|
@@ -84,6 +87,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
84
87
|
stateSlot: "workflows",
|
|
85
88
|
fileFromKey: tomlFile,
|
|
86
89
|
testBlockType: "workflow",
|
|
90
|
+
// #2645 — named config bodies live in `workflows/<key>.configs/`.
|
|
91
|
+
namedConfigsDirFromKey: (key) => `${key}.configs`,
|
|
87
92
|
// `/admin/api/apps/{id}/workflows` paginates; pull drains it with fetchAll.
|
|
88
93
|
listingComplete: true,
|
|
89
94
|
},
|
|
@@ -100,8 +105,8 @@ export const SYNC_RESOURCE_TYPES = [
|
|
|
100
105
|
listingComplete: true,
|
|
101
106
|
},
|
|
102
107
|
{
|
|
103
|
-
label: "database-type",
|
|
104
|
-
dir: "database-
|
|
108
|
+
label: "database-type-config",
|
|
109
|
+
dir: "database-type-configs",
|
|
105
110
|
ext: ".toml",
|
|
106
111
|
stateSlot: "databaseTypes",
|
|
107
112
|
fileFromKey: tomlFile,
|
|
@@ -187,6 +192,42 @@ export function isSafeSyncFilename(filename) {
|
|
|
187
192
|
return false;
|
|
188
193
|
return true;
|
|
189
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Whether a test-case attachment filename may be written to (or read from) the
|
|
197
|
+
* sidecar attachment directory (#2769).
|
|
198
|
+
*
|
|
199
|
+
* Attachment names come from the SERVER: pull writes each one into
|
|
200
|
+
* `<key>.tests/<slug>/`, so a stored name carrying a separator or a `..`
|
|
201
|
+
* segment would place a file outside the sync tree entirely. The rule is the
|
|
202
|
+
* same one state-derived filenames follow, plus a refusal of any leading-dot
|
|
203
|
+
* traversal spelling.
|
|
204
|
+
*/
|
|
205
|
+
export function isSafeAttachmentFilename(filename) {
|
|
206
|
+
if (!isSafeSyncFilename(filename))
|
|
207
|
+
return false;
|
|
208
|
+
// `.` and `..` are caught above; `...` and friends are not path traversal but
|
|
209
|
+
// are not names a fixture file needs either.
|
|
210
|
+
if (/^\.+$/.test(filename))
|
|
211
|
+
return false;
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The absolute path an attachment may be written to, or `null` when the name is
|
|
216
|
+
* unsafe or resolves outside `attachDir` (#2769). Both halves matter: the name
|
|
217
|
+
* check states the rule, and the resolved-path check enforces it against
|
|
218
|
+
* platform quirks the name check cannot anticipate.
|
|
219
|
+
*/
|
|
220
|
+
export function attachmentWritePath(attachDir, filename) {
|
|
221
|
+
if (!isSafeAttachmentFilename(filename))
|
|
222
|
+
return null;
|
|
223
|
+
const destination = resolve(attachDir, filename);
|
|
224
|
+
const root = resolve(attachDir);
|
|
225
|
+
if (destination !== join(root, filename))
|
|
226
|
+
return null;
|
|
227
|
+
if (!destination.startsWith(root + sep))
|
|
228
|
+
return null;
|
|
229
|
+
return destination;
|
|
230
|
+
}
|
|
190
231
|
/**
|
|
191
232
|
* Decide which of a type's managed entity keys should have their local file
|
|
192
233
|
* removed, given the prior sync state and the outcome of this pull's fetch.
|
|
@@ -195,7 +236,7 @@ export function isSafeSyncFilename(filename) {
|
|
|
195
236
|
* `SyncState.entities[<slot>]`, so a previous pull wrote its file) and is
|
|
196
237
|
* **absent from the server keys** this pull fetched. A local file that was
|
|
197
238
|
* never in prior state was hand-authored — it is left alone and reported by
|
|
198
|
-
* `
|
|
239
|
+
* `config diff` as new.
|
|
199
240
|
*
|
|
200
241
|
* Pure and side-effect-free (the caller owns the `unlinkSync`) so the safety
|
|
201
242
|
* rules are unit-testable without a live server.
|
|
@@ -278,7 +319,7 @@ export function preserveUnwrittenEntries(written, prior, serverKeys) {
|
|
|
278
319
|
* a command.
|
|
279
320
|
*
|
|
280
321
|
* `includeUntracked` decides whether an untracked file counts as a change:
|
|
281
|
-
* - `true` (default) suits "am I about to overwrite something?" — `
|
|
322
|
+
* - `true` (default) suits "am I about to overwrite something?" — `config revert`
|
|
282
323
|
* would clobber an untracked file just the same.
|
|
283
324
|
* - `false` suits "did the operator edit this file?" — an untracked file is the
|
|
284
325
|
* ordinary state of a pulled file in a sync dir that was never committed, and
|
|
@@ -321,10 +362,18 @@ export async function hasUncommittedChanges(path, options = {}) {
|
|
|
321
362
|
* way to be absent from the export is to have been deleted.
|
|
322
363
|
*/
|
|
323
364
|
export const ABSENT_FROM_EXPORT = "absent from sync export (deleted on server)";
|
|
324
|
-
/** `
|
|
365
|
+
/** `config diff` status for a local file whose managed entity is gone. */
|
|
325
366
|
export const LOCAL_ONLY_ABSENT = "local only (absent from export)";
|
|
326
|
-
/** `
|
|
367
|
+
/** `config diff` status for a local file the operator authored themselves. */
|
|
327
368
|
export const LOCAL_ONLY_NEW = "local only";
|
|
369
|
+
/**
|
|
370
|
+
* `config diff` status for a local file `config push` would refuse (#2880).
|
|
371
|
+
*
|
|
372
|
+
* Its own status rather than a hint on a Synced row: the whole point is that
|
|
373
|
+
* the file is NOT pushable, and the counts a caller reads to decide "is there
|
|
374
|
+
* anything to do?" have to say so.
|
|
375
|
+
*/
|
|
376
|
+
export const VALIDATION_ERROR = "validation error";
|
|
328
377
|
/**
|
|
329
378
|
* Classify a local file that has no matching server entity (issue #1659).
|
|
330
379
|
*
|
|
@@ -343,7 +392,7 @@ export function classifyLocalOnly(priorEntities, slot, key) {
|
|
|
343
392
|
*
|
|
344
393
|
* A file with uncommitted git edits is kept and reported instead: the operator
|
|
345
394
|
* may be mid-way through authoring a change they meant to push. Everything
|
|
346
|
-
* removed here is recoverable from the pre-pull snapshot via `
|
|
395
|
+
* removed here is recoverable from the pre-pull snapshot via `config revert`.
|
|
347
396
|
*/
|
|
348
397
|
export async function applyPrune(options) {
|
|
349
398
|
const { configDir, resourceType, keys, testCaseEntities, logger } = options;
|
|
@@ -373,6 +422,18 @@ export async function applyPrune(options) {
|
|
|
373
422
|
result.prunedKeys.push(key);
|
|
374
423
|
result.removed.push(relativePath);
|
|
375
424
|
log(` Removed ${relativePath} — ${ABSENT_FROM_EXPORT}`);
|
|
425
|
+
// #2645 — the entity's named config bodies go with it. They describe
|
|
426
|
+
// configurations of a block the server no longer has, and leaving them
|
|
427
|
+
// would have the next push re-create the block from its own leftovers.
|
|
428
|
+
const configsDirName = resourceType.namedConfigsDirFromKey?.(key);
|
|
429
|
+
if (configsDirName) {
|
|
430
|
+
const configsDir = join(configDir, resourceType.dir, configsDirName);
|
|
431
|
+
if (existsSync(configsDir) && isSafeSyncFilename(configsDirName)) {
|
|
432
|
+
rmSync(configsDir, { recursive: true, force: true });
|
|
433
|
+
result.removed.push(`${resourceType.dir}/${configsDirName}`);
|
|
434
|
+
log(` Removed ${resourceType.dir}/${configsDirName} — ${ABSENT_FROM_EXPORT}`);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
376
437
|
if (!resourceType.testBlockType)
|
|
377
438
|
continue;
|
|
378
439
|
// Sidecar tests: `<key>.tests/` holds the block's test-case TOMLs and their
|
|
@@ -403,7 +464,7 @@ export const addressById = (_key, entry) => entry && typeof entry.id === "string
|
|
|
403
464
|
export const addressByKey = (key) => key || undefined;
|
|
404
465
|
/**
|
|
405
466
|
* Live modified timestamp used by the drift check. Most admin/app detail
|
|
406
|
-
* endpoints serialize `modifiedAt` at the top level (the same field `
|
|
467
|
+
* endpoints serialize `modifiedAt` at the top level (the same field `config pull`
|
|
407
468
|
* records into state), with `updatedAt` as a defensive fallback. Two detail
|
|
408
469
|
* endpoints nest the entity under a wrapper key and need their own extractors
|
|
409
470
|
* below (`workflowPruneModifiedAt`, `emailTemplatePruneModifiedAt`) so the
|
|
@@ -422,7 +483,7 @@ export const workflowPruneModifiedAt = (detail) => pruneModifiedAt(detail && det
|
|
|
422
483
|
* Email-template detail-read extractor. `getEmailTemplate` returns
|
|
423
484
|
* `{ emailType, label, hasOverride, override, default, variables }`; the
|
|
424
485
|
* editable copy `sync` manages — and its `modifiedAt` — live under `override`
|
|
425
|
-
* (null when there is no override). `
|
|
486
|
+
* (null when there is no override). `config pull` likewise records
|
|
426
487
|
* `template.override?.modifiedAt`, so the drift check must read the same path.
|
|
427
488
|
*/
|
|
428
489
|
export const emailTemplatePruneModifiedAt = (detail) => pruneModifiedAt(detail && detail.override);
|
|
@@ -430,7 +491,7 @@ export const emailTemplatePruneModifiedAt = (detail) => pruneModifiedAt(detail &
|
|
|
430
491
|
* Read a declared identity field (`[<section>].<field>`) from a managed TOML
|
|
431
492
|
* file. Returns `undefined` when the field is absent, empty, or the file cannot
|
|
432
493
|
* be parsed — callers fall back to the filename-derived key, matching the
|
|
433
|
-
* `<field> || basename(file)` convention every `
|
|
494
|
+
* `<field> || basename(file)` convention every `config push` parser uses.
|
|
434
495
|
*
|
|
435
496
|
* Parsed via `parseConfigToml` (not `parseTomlFile`): the identity fields
|
|
436
497
|
* pruning reads are author-declared top-level values, unaffected by the
|
|
@@ -451,7 +512,7 @@ function declaredTomlKey(filePath, section, field) {
|
|
|
451
512
|
/**
|
|
452
513
|
* Build a `keyFromFile` for a TOML type whose entity key is declared at
|
|
453
514
|
* `[<section>].<field>`, falling back to the file basename (the exact key the
|
|
454
|
-
* matching `
|
|
515
|
+
* matching `config push` loop derives). This is what lets prune recognize an
|
|
455
516
|
* entity declared inside a **renamed** file and keep it out of the prune set,
|
|
456
517
|
* instead of deleting a remote entity that push just updated (issue #1655).
|
|
457
518
|
*/
|
|
@@ -467,22 +528,58 @@ function tomlDeclaredKeyFromFile(section, field) {
|
|
|
467
528
|
function basenameKeyFromFile(ext) {
|
|
468
529
|
return (filePath) => basename(filePath, ext);
|
|
469
530
|
}
|
|
531
|
+
/**
|
|
532
|
+
* Split a metadata-category key into the `resourceType`/`category` pair it
|
|
533
|
+
* names, or `null` when it is not exactly two non-empty components joined by a
|
|
534
|
+
* single `#`.
|
|
535
|
+
*
|
|
536
|
+
* Load-bearing for prune (#2762). Prune point-reads a candidate BEFORE deciding
|
|
537
|
+
* what to do with it, and only a missing address short-circuits that fetch — so
|
|
538
|
+
* a corrupt state key that still produced an address would be read with
|
|
539
|
+
* `undefined` in the request path, and the resulting 404 would be classified
|
|
540
|
+
* "already gone", silently dropping the state entry. Failing here instead
|
|
541
|
+
* routes such a key to the `no-id` skip: no client call, state retained.
|
|
542
|
+
*/
|
|
543
|
+
export function parseMetadataCategoryKey(key) {
|
|
544
|
+
if (typeof key !== "string")
|
|
545
|
+
return null;
|
|
546
|
+
const parts = key.split("#");
|
|
547
|
+
if (parts.length !== 2)
|
|
548
|
+
return null;
|
|
549
|
+
const [resourceType, category] = parts;
|
|
550
|
+
if (!resourceType || !category)
|
|
551
|
+
return null;
|
|
552
|
+
return { resourceType, category };
|
|
553
|
+
}
|
|
554
|
+
/** The same parse, for the spec's read/delete — safe when called standalone. */
|
|
555
|
+
function requireMetadataCategoryKey(key) {
|
|
556
|
+
const parsed = parseMetadataCategoryKey(key);
|
|
557
|
+
if (!parsed) {
|
|
558
|
+
throw new Error(`'${key}' is not a metadata category key — expected <resourceType>#<category>`);
|
|
559
|
+
}
|
|
560
|
+
return parsed;
|
|
561
|
+
}
|
|
470
562
|
/**
|
|
471
563
|
* `keyFromFile` for metadata-category-configs, whose key is the
|
|
472
564
|
* `resourceType#category` pair. Push reads `[metadataCategoryConfig]`
|
|
473
565
|
* `resourceType`/`category` and falls back to the filename
|
|
474
|
-
* (`resourceType.category.toml`, split on the first `.`)
|
|
566
|
+
* (`resourceType.category.toml`, split on the first `.`) for EACH component it
|
|
567
|
+
* did not find — mirror that per-component fallback exactly. Requiring both
|
|
568
|
+
* fields before honouring the declaration would key a half-declared file by its
|
|
569
|
+
* filename while push keyed it by the mix, and prune would then read the
|
|
570
|
+
* pushed key as undeclared and delete a definition a local file still owns.
|
|
475
571
|
*/
|
|
476
572
|
function metadataCategoryKeyFromFile(filePath) {
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
if (resourceType && category)
|
|
480
|
-
return `${resourceType}#${category}`;
|
|
573
|
+
let resourceType = declaredTomlKey(filePath, "metadataCategoryConfig", "resourceType");
|
|
574
|
+
let category = declaredTomlKey(filePath, "metadataCategoryConfig", "category");
|
|
481
575
|
const base = basename(filePath, ".toml");
|
|
482
576
|
const dot = base.indexOf(".");
|
|
483
577
|
if (dot > 0) {
|
|
484
|
-
|
|
578
|
+
resourceType = resourceType || base.slice(0, dot);
|
|
579
|
+
category = category || base.slice(dot + 1);
|
|
485
580
|
}
|
|
581
|
+
if (resourceType && category)
|
|
582
|
+
return `${resourceType}#${category}`;
|
|
486
583
|
return base;
|
|
487
584
|
}
|
|
488
585
|
function pruneTypeFor(label) {
|
|
@@ -494,7 +591,7 @@ function pruneTypeFor(label) {
|
|
|
494
591
|
/**
|
|
495
592
|
* Every resource type push-prune can retire. Id-addressed types (integrations,
|
|
496
593
|
* webhooks, cron-triggers, blob-buckets, prompts, workflows, transforms,
|
|
497
|
-
* rule-sets) fetch/delete by the stored id; key-addressed types (database-
|
|
594
|
+
* rule-sets) fetch/delete by the stored id; key-addressed types (database-type-configs,
|
|
498
595
|
* group-type-configs, collection-type-configs, email-templates) by the key.
|
|
499
596
|
*
|
|
500
597
|
* `--force` (the CLI's existing "override baseline drift" flag) only relaxes the
|
|
@@ -509,8 +606,13 @@ export const PUSH_PRUNE_SPECS = [
|
|
|
509
606
|
addressOf: addressById,
|
|
510
607
|
fetchDetail: (c, a, id) => c.getIntegration(a, id),
|
|
511
608
|
modifiedAtOf: pruneModifiedAt,
|
|
609
|
+
// Hard-delete rather than archive (#2803, following #2232's webhook
|
|
610
|
+
// reasoning). `--prune` is the CLI's hard-delete path: the file that
|
|
611
|
+
// declared this integration is gone from the config tree, and an archived
|
|
612
|
+
// row keeps holding its `integrationKey` with no way to reclaim it from
|
|
613
|
+
// `config`.
|
|
512
614
|
deleteEntity: async (c, a, id) => {
|
|
513
|
-
await c.deleteIntegration(a, id);
|
|
615
|
+
await c.deleteIntegration(a, id, { hard: true });
|
|
514
616
|
},
|
|
515
617
|
},
|
|
516
618
|
{
|
|
@@ -519,8 +621,15 @@ export const PUSH_PRUNE_SPECS = [
|
|
|
519
621
|
addressOf: addressById,
|
|
520
622
|
fetchDetail: (c, a, id) => c.getWebhook(a, id),
|
|
521
623
|
modifiedAtOf: pruneModifiedAt,
|
|
624
|
+
// Hard-delete rather than archive (#2232). Webhooks are the one pruned type with
|
|
625
|
+
// a per-app cap that archived rows still consume, so an archiving prune
|
|
626
|
+
// would burn a slot — and keep holding the `webhookKey` — with no way to
|
|
627
|
+
// reclaim it from `sync`. Enough prune cycles and the app could never
|
|
628
|
+
// create a webhook again. `--prune` is opt-in and confirmed, and the file
|
|
629
|
+
// that declared this webhook is gone from the config dir, so a hard delete
|
|
630
|
+
// is what "retire it" means here. Delivery rows are left behind either way.
|
|
522
631
|
deleteEntity: async (c, a, id) => {
|
|
523
|
-
await c.deleteWebhook(a, id);
|
|
632
|
+
await c.deleteWebhook(a, id, { hard: true });
|
|
524
633
|
},
|
|
525
634
|
},
|
|
526
635
|
{
|
|
@@ -529,8 +638,14 @@ export const PUSH_PRUNE_SPECS = [
|
|
|
529
638
|
addressOf: addressById,
|
|
530
639
|
fetchDetail: (c, a, id) => c.getCronTrigger(a, id),
|
|
531
640
|
modifiedAtOf: pruneModifiedAt,
|
|
641
|
+
// Hard-delete rather than archive (#2803, following #2232's webhook
|
|
642
|
+
// reasoning). Cron triggers have a per-app cap that archived rows still
|
|
643
|
+
// consume, and an archived row keeps holding its `triggerKey` with no way
|
|
644
|
+
// to reclaim it from `config`. `--prune` is opt-in and confirmed, and the
|
|
645
|
+
// file that declared this trigger is gone from the config tree, so a hard
|
|
646
|
+
// delete is what "retire it" means here.
|
|
532
647
|
deleteEntity: async (c, a, id) => {
|
|
533
|
-
await c.deleteCronTrigger(a, id);
|
|
648
|
+
await c.deleteCronTrigger(a, id, { hard: true });
|
|
534
649
|
},
|
|
535
650
|
},
|
|
536
651
|
{
|
|
@@ -549,8 +664,13 @@ export const PUSH_PRUNE_SPECS = [
|
|
|
549
664
|
addressOf: addressById,
|
|
550
665
|
fetchDetail: (c, a, id) => c.getPrompt(a, id),
|
|
551
666
|
modifiedAtOf: pruneModifiedAt,
|
|
667
|
+
// Hard-delete rather than archive (#2887, following #2232's webhook
|
|
668
|
+
// reasoning). A plain DELETE archives now, and an archived prompt keeps
|
|
669
|
+
// holding its `promptKey` with no way to reclaim it from `config`. This
|
|
670
|
+
// had to change in the SAME commit that made the plain DELETE soft, or
|
|
671
|
+
// `--prune` would have silently stopped destroying anything.
|
|
552
672
|
deleteEntity: async (c, a, id) => {
|
|
553
|
-
await c.deletePrompt(a, id);
|
|
673
|
+
await c.deletePrompt(a, id, true);
|
|
554
674
|
},
|
|
555
675
|
},
|
|
556
676
|
{
|
|
@@ -560,8 +680,12 @@ export const PUSH_PRUNE_SPECS = [
|
|
|
560
680
|
fetchDetail: (c, a, id) => c.getWorkflow(a, id),
|
|
561
681
|
// `getWorkflow` nests the entity (and modifiedAt) under `workflow`.
|
|
562
682
|
modifiedAtOf: workflowPruneModifiedAt,
|
|
683
|
+
// Hard-delete rather than archive (#2887) — same reasoning as the prompt
|
|
684
|
+
// spec above: the file that declared this workflow is gone from the config
|
|
685
|
+
// tree, `--prune` is opt-in and confirmed, and an archived row would go on
|
|
686
|
+
// holding its `workflowKey`.
|
|
563
687
|
deleteEntity: async (c, a, id) => {
|
|
564
|
-
await c.deleteWorkflow(a, id);
|
|
688
|
+
await c.deleteWorkflow(a, id, { hard: true });
|
|
565
689
|
},
|
|
566
690
|
},
|
|
567
691
|
{
|
|
@@ -587,7 +711,7 @@ export const PUSH_PRUNE_SPECS = [
|
|
|
587
711
|
},
|
|
588
712
|
},
|
|
589
713
|
{
|
|
590
|
-
resourceType: pruneTypeFor("database-type"),
|
|
714
|
+
resourceType: pruneTypeFor("database-type-config"),
|
|
591
715
|
keyFromFile: tomlDeclaredKeyFromFile("type", "databaseType"),
|
|
592
716
|
addressOf: addressByKey,
|
|
593
717
|
fetchDetail: (c, a, key) => c.getDatabaseTypeConfig(a, key),
|
|
@@ -629,30 +753,38 @@ export const PUSH_PRUNE_SPECS = [
|
|
|
629
753
|
},
|
|
630
754
|
},
|
|
631
755
|
{
|
|
632
|
-
//
|
|
633
|
-
//
|
|
634
|
-
//
|
|
756
|
+
// The admin-gated config-delete route (#1364) and its client wrapper are
|
|
757
|
+
// shipped, so this type retires exactly like its siblings: delete the file,
|
|
758
|
+
// `config push --prune` (#2762). The interactive `metadata categories delete`
|
|
759
|
+
// verb this replaced is gone.
|
|
635
760
|
resourceType: pruneTypeFor("metadata-category-config"),
|
|
636
761
|
keyFromFile: metadataCategoryKeyFromFile,
|
|
637
|
-
|
|
638
|
-
|
|
762
|
+
// Key-addressed like the other config types, but the key is a PAIR: one
|
|
763
|
+
// that does not parse has no address at all, which routes the candidate to
|
|
764
|
+
// the `no-id` skip BEFORE the point read (see parseMetadataCategoryKey).
|
|
765
|
+
addressOf: (key) => (parseMetadataCategoryKey(key) ? key : undefined),
|
|
766
|
+
fetchDetail: async (c, a, key) => {
|
|
639
767
|
// The state key is the `resourceType#category` pair; the getter is
|
|
640
|
-
// path-addressed by both.
|
|
641
|
-
|
|
642
|
-
const [resourceType, category] = key.split("#");
|
|
768
|
+
// path-addressed by both.
|
|
769
|
+
const { resourceType, category } = requireMetadataCategoryKey(key);
|
|
643
770
|
return c.getMetadataCategoryConfig(a, resourceType, category);
|
|
644
771
|
},
|
|
645
772
|
modifiedAtOf: pruneModifiedAt,
|
|
646
|
-
deleteEntity:
|
|
773
|
+
deleteEntity: async (c, a, key) => {
|
|
774
|
+
const { resourceType, category } = requireMetadataCategoryKey(key);
|
|
775
|
+
await c.deleteMetadataCategoryConfig(a, resourceType, category);
|
|
776
|
+
},
|
|
777
|
+
// The warning the retired verb's confirm prompt used to carry.
|
|
778
|
+
deleteCaveat: "stored metadata values are NOT deleted and become unreachable — delete values first ('primitive metadata delete') if you need them gone",
|
|
647
779
|
},
|
|
648
780
|
];
|
|
649
781
|
/**
|
|
650
782
|
* The set of entity keys the local managed files of a type declare — collected
|
|
651
|
-
* the way `
|
|
783
|
+
* the way `config push` derives keys: parse every file in the type's directory
|
|
652
784
|
* and read its declared identity (`<in-file key> || basename`), NOT by assuming
|
|
653
785
|
* the file lives at its canonical `<key>.toml` path.
|
|
654
786
|
*
|
|
655
|
-
* This is the crux of the #1655 destructive-delete fix. `
|
|
787
|
+
* This is the crux of the #1655 destructive-delete fix. `config push` accepts a
|
|
656
788
|
* managed file at a **noncanonical filename** (e.g. `prompts/custom.toml` with
|
|
657
789
|
* `prompt.key = "greeting"`) and still updates the `greeting` entity. Collecting
|
|
658
790
|
* declared keys — rather than checking whether `greeting.toml` exists — means a
|
|
@@ -682,11 +814,11 @@ export function collectLocalDeclaredKeys(input) {
|
|
|
682
814
|
*
|
|
683
815
|
* A key is a candidate iff it was in the prior state slot (a prior pull managed
|
|
684
816
|
* it) AND **no** local file in the type's directory declares that key (via
|
|
685
|
-
* {@link collectLocalDeclaredKeys}, mirroring how `
|
|
817
|
+
* {@link collectLocalDeclaredKeys}, mirroring how `config push` derives keys). A
|
|
686
818
|
* key still declared by some file — even one renamed away from the canonical
|
|
687
|
-
* `<key>.toml` path — is left alone, since `
|
|
819
|
+
* `<key>.toml` path — is left alone, since `config push` would update it, not
|
|
688
820
|
* delete it (issue #1655). A file whose key was never in prior state was
|
|
689
|
-
* hand-authored and is left for `
|
|
821
|
+
* hand-authored and is left for `config push` to create; it is never a candidate.
|
|
690
822
|
*/
|
|
691
823
|
export function collectPushPruneCandidates(input) {
|
|
692
824
|
const { spec, configDir, priorEntities } = input;
|
|
@@ -732,6 +864,58 @@ export function decidePushPruneCandidate(input) {
|
|
|
732
864
|
return { action: "drop-state" };
|
|
733
865
|
return { action: "skip", reason: "unconfirmed" };
|
|
734
866
|
}
|
|
867
|
+
/**
|
|
868
|
+
* Classify an error thrown by a prune delete — one arm for every type.
|
|
869
|
+
*
|
|
870
|
+
* Keyed on the status alone (`ConflictError` is an `ApiError` with 409), so no
|
|
871
|
+
* per-type carve-out can creep into the push command's delete loop and make the
|
|
872
|
+
* race recovery true for some types and not others (#2762).
|
|
873
|
+
*/
|
|
874
|
+
export function classifyPruneDeleteFailure(err) {
|
|
875
|
+
const status = err?.statusCode;
|
|
876
|
+
if (status === 404)
|
|
877
|
+
return "raced-absent";
|
|
878
|
+
if (status === 409)
|
|
879
|
+
return "blocked";
|
|
880
|
+
return "failed";
|
|
881
|
+
}
|
|
882
|
+
const PRUNE_SKIP_LABELS = {
|
|
883
|
+
drift: "skipped — modified on server since last sync (use --force)",
|
|
884
|
+
unconfirmed: "skipped — could not confirm (fetch failed)",
|
|
885
|
+
"no-id": "skipped — no id in sync state",
|
|
886
|
+
unsupported: "skipped — no delete surface for this type",
|
|
887
|
+
};
|
|
888
|
+
/**
|
|
889
|
+
* Render the prune plan the operator reads before the batch confirmation.
|
|
890
|
+
*
|
|
891
|
+
* Pure, and here rather than in `sync.ts`, so what the plan states about a type
|
|
892
|
+
* is testable without a server — specifically that a type's `deleteCaveat`
|
|
893
|
+
* (metadata's orphaned values, which used to live in the retired verb's confirm
|
|
894
|
+
* prompt) appears under its delete lines and nowhere else. `config push` renders
|
|
895
|
+
* the plan ONCE, before the `--dry-run` branch, so both paths print the same
|
|
896
|
+
* lines (#2762).
|
|
897
|
+
*/
|
|
898
|
+
export function formatPrunePlan(items) {
|
|
899
|
+
return items.map(({ spec, key, decision }) => {
|
|
900
|
+
const detail = `${spec.resourceType.label}: ${key}`;
|
|
901
|
+
if (decision.action === "delete") {
|
|
902
|
+
return {
|
|
903
|
+
kind: "delete",
|
|
904
|
+
status: "will delete",
|
|
905
|
+
detail,
|
|
906
|
+
note: spec.deleteCaveat,
|
|
907
|
+
};
|
|
908
|
+
}
|
|
909
|
+
if (decision.action === "drop-state") {
|
|
910
|
+
return { kind: "absent", status: "already absent", detail };
|
|
911
|
+
}
|
|
912
|
+
return {
|
|
913
|
+
kind: "skip",
|
|
914
|
+
status: PRUNE_SKIP_LABELS[decision.reason] ?? "skipped",
|
|
915
|
+
detail,
|
|
916
|
+
};
|
|
917
|
+
});
|
|
918
|
+
}
|
|
735
919
|
/**
|
|
736
920
|
* Remove a pruned block's sidecar `<key>.tests/` directory and its
|
|
737
921
|
* `entities.testCases` state records. The main file is already gone (that is
|
|
@@ -743,6 +927,16 @@ export function removePrunedSidecar(options) {
|
|
|
743
927
|
const log = logger ?? (() => { });
|
|
744
928
|
const removed = [];
|
|
745
929
|
const removedTestCaseKeys = [];
|
|
930
|
+
// #2645 — the entity's named config bodies orphan the same way its tests do.
|
|
931
|
+
const configsDirName = resourceType.namedConfigsDirFromKey?.(key);
|
|
932
|
+
if (configsDirName) {
|
|
933
|
+
const configsDir = join(configDir, resourceType.dir, configsDirName);
|
|
934
|
+
if (existsSync(configsDir) && isSafeSyncFilename(configsDirName)) {
|
|
935
|
+
rmSync(configsDir, { recursive: true, force: true });
|
|
936
|
+
removed.push(`${resourceType.dir}/${configsDirName}`);
|
|
937
|
+
log(` Removed orphaned ${resourceType.dir}/${configsDirName}`);
|
|
938
|
+
}
|
|
939
|
+
}
|
|
746
940
|
if (!resourceType.testBlockType)
|
|
747
941
|
return { removed, removedTestCaseKeys };
|
|
748
942
|
const testsDirName = `${key}.tests`;
|
|
@@ -763,13 +957,13 @@ export function removePrunedSidecar(options) {
|
|
|
763
957
|
}
|
|
764
958
|
return { removed, removedTestCaseKeys };
|
|
765
959
|
}
|
|
766
|
-
/** `
|
|
960
|
+
/** `config diff` status for a managed remote entity whose local file is gone. */
|
|
767
961
|
export const REMOTE_ONLY_WILL_DELETE = "remote only (will delete with push --prune)";
|
|
768
|
-
/** `
|
|
962
|
+
/** `config diff` status for a server entity that was never synced (hand-created). */
|
|
769
963
|
export const REMOTE_ONLY_UNMANAGED = "remote only (left alone)";
|
|
770
964
|
/**
|
|
771
965
|
* Classify a "remote only" entity (present server-side, no local file) for
|
|
772
|
-
* `
|
|
966
|
+
* `config diff` (issue #1655). A key the prior pull managed means the operator
|
|
773
967
|
* deleted its local file and `push --prune` will delete the remote entity; a key
|
|
774
968
|
* never synced was authored on the server and is left alone. Prior sync state is
|
|
775
969
|
* the discriminator, exactly as it is for the local-only / pull-prune split.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-resource-types.js","sourceRoot":"","sources":["../../../src/lib/sync-resource-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-resource-types.js","sourceRoot":"","sources":["../../../src/lib/sync-resource-types.ts"],"names":[],"mappings":"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"}
|