primitive-admin 1.0.61 → 1.0.63
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 +52 -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 +21 -128
- 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 +115 -26
- 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 +24 -1
- package/dist/src/commands/init.js +1194 -279
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +166 -435
- 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.d.ts +10 -0
- package/dist/src/commands/scripts.js +203 -241
- 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 +1904 -51
- package/dist/src/commands/sync.js +9468 -1790
- 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 +187 -0
- package/dist/src/lib/env-resolver-core.js +325 -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-client-platforms.d.ts +14 -0
- package/dist/src/lib/init-client-platforms.js +71 -0
- package/dist/src/lib/init-client-platforms.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-email-redirect-uris.d.ts +37 -0
- package/dist/src/lib/init-email-redirect-uris.js +46 -0
- package/dist/src/lib/init-email-redirect-uris.js.map +1 -0
- package/dist/src/lib/init-ios-links.d.ts +90 -0
- package/dist/src/lib/init-ios-links.js +218 -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/integration-selector.d.ts +42 -0
- package/dist/src/lib/integration-selector.js +46 -0
- package/dist/src/lib/integration-selector.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/local-test-cases.d.ts +63 -0
- package/dist/src/lib/local-test-cases.js +135 -0
- package/dist/src/lib/local-test-cases.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.d.ts +8 -0
- package/dist/src/lib/project-config.js +30 -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-file-names.d.ts +40 -0
- package/dist/src/lib/test-case-file-names.js +91 -0
- package/dist/src/lib/test-case-file-names.js.map +1 -0
- 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/web-url.d.ts +40 -0
- package/dist/src/lib/web-url.js +76 -0
- package/dist/src/lib/web-url.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-apply.js","sourceRoot":"","sources":["../../../src/lib/workflow-apply.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workflow-apply.js","sourceRoot":"","sources":["../../../src/lib/workflow-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAGH,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,OAAO,EAAE,aAAa,EAAE,CAAC;AAezB,yEAAyE;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAexD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,sBAAsB,CACpC,eAAuB,EACvB,KAA2B;IAE3B,IAAI,eAAe,KAAK,uBAAuB;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAClE,IAAI,eAAe;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,cAAc,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAEnD,MAAM,OAAO,GACX,gFAAgF,CAAC;IACnF,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CACL,8CAA8C,OAAO,yBAAyB;YAC9E,8EAA8E;YAC9E,qDAAqD;YACrD,2EAA2E;YAC3E,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,CACL,oFAAoF;QACpF,OAAO,OAAO,sCAAsC;QACpD,+EAA+E;QAC/E,sEAAsE,CACvE,CAAC;AACJ,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiB,EACjB,KAAa,EACb,UAAkB,EAClB,QAAa,EACb,KAAY,EACZ,OAAiC,EAAE;IAEnC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAE3D,8EAA8E;IAC9E,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC;IAE1D,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,wEAAwE;IACxE,yEAAyE;IACzE,4EAA4E;IAC5E,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CACzC,KAAK,EACL,UAAU,EACV;QACE,GAAG,4BAA4B,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7D,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACtD,0EAA0E;QAC1E,oEAAoE;QACpE,yEAAyE;QACzE,oEAAoE;QACpE,gEAAgE;QAChE,gBAAgB,EACd,QAAQ,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;KAClF,EACD,kBAAkB,CACnB,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,gBAAgB;IAChB,IAAI,gBAAgB,GAAuB,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;IAEzE,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,wEAAwE;IACxE,2CAA2C;IAC3C,MAAM,WAAW,GAAI,QAAgB,CAAC,WAAW,IAAI,SAAS,CAAC;IAC/D,IAAI,eAAe,GAAG,eAAe,CAAC;IACtC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE;YACnE,KAAK;YACL,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE;YAClD,KAAK;YACL,WAAW;YACX,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;SAC/E,CAAC,CAAC;QACH,eAAe,GAAG,uBAAuB,CAAC;IAC5C,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,IAAI,kBAAkB,IAAI,OAAO,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,EAAE,CAAC;QACnE,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,cAAc,CACrD,KAAK,EACL,UAAU,EACV,EAAE,YAAY,EAAE,IAAI,EAAE,EACtB,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CACrC,CAAC;QACF,IAAI,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC9C,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACjE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -97,7 +97,7 @@ function renderTypeDecl(name, schema) {
|
|
|
97
97
|
* TS-specific naming + type-declaration rendering happens here.
|
|
98
98
|
*/
|
|
99
99
|
function parseWorkflow(input) {
|
|
100
|
-
// #1464 removed `@iarna/toml`; #1446 makes `
|
|
100
|
+
// #1464 removed `@iarna/toml`; #1446 makes `config pull` emit schemas as native
|
|
101
101
|
// TOML tables (incl. mixed-type enums like `enum = ["ok", 1]`, TOML 1.0). The
|
|
102
102
|
// shared IR uses `parseConfigToml` + `safeJsonParse` under the hood.
|
|
103
103
|
const ir = describeWorkflowInvoker({
|
|
@@ -119,9 +119,9 @@ function parseWorkflow(input) {
|
|
|
119
119
|
inputRequired: ir.inputRequired,
|
|
120
120
|
// Object-shaped only when the schema declares exactly `type: "object"` —
|
|
121
121
|
// the one case where `Partial<<Key>Input>` is a sound cron `rootInput`
|
|
122
|
-
// type. Schema-less / union / scalar / array → not object-shaped.
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
// type. Schema-less / union / scalar / array → not object-shaped. Decided
|
|
123
|
+
// in the SHARED IR (#2806) so the Swift cron helper cannot disagree.
|
|
124
|
+
inputIsObjectShaped: ir.inputIsObjectShaped,
|
|
125
125
|
requiresClientApply: ir.requiresClientApply,
|
|
126
126
|
};
|
|
127
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,0BAA0B,GAE3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,KAAK,GAGN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAErD,oEAAoE;AACpE,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAyD3C;;;;;;;;;GASG;AACH,SAAS,cAAc,CAAC,IAAY,EAAE,MAAW;IAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,yEAAyE;QACzE,wEAAwE;QACxE,2DAA2D;QAC3D,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3D,OAAO,oBAAoB,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,KAA2B;IAChD,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,17 @@ export interface WorkflowInvokerIR {
|
|
|
61
61
|
* renderer reparses the TOML for it.
|
|
62
62
|
*/
|
|
63
63
|
requiresClientApply: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the input schema is a plain object (`type: "object"`). Only an
|
|
66
|
+
* object-shaped input can be partialized, which is what each renderer's
|
|
67
|
+
* cron-trigger `rootInput` decision turns on: TS types it
|
|
68
|
+
* `Partial<<Key>Input>` (an `inputMapping` may supply the rest) and leaves
|
|
69
|
+
* Swift's — which has no `Partial<>` — an open `JSONValue`; anything else
|
|
70
|
+
* (schema-less / union / scalar / array) binds the full `<Key>Input` on both.
|
|
71
|
+
* Decided ONCE here (#2806) so the two renderers cannot disagree about which
|
|
72
|
+
* inputs are partializable.
|
|
73
|
+
*/
|
|
74
|
+
inputIsObjectShaped: boolean;
|
|
64
75
|
/** Parsed input schema, or `undefined` when absent. */
|
|
65
76
|
inputSchema: unknown;
|
|
66
77
|
/** Parsed output schema, or `undefined` when absent. */
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
import { parseConfigToml } from "../config-toml.js";
|
|
23
23
|
import { safeJsonParse } from "../workflow-payload.js";
|
|
24
24
|
import { schemaRejectsEmptyObject } from "./schemaToTs.js";
|
|
25
|
+
import { describeSchema } from "./generated-schema-descriptor.js";
|
|
25
26
|
import { INTERNAL_WORKFLOW_KEY_PREFIX, isPlatformOwnedWorkflowKey, } from "../platform-owned.js";
|
|
26
27
|
// Re-export so existing importers of these codegen symbols keep working; the
|
|
27
28
|
// single source of truth is now `../platform-owned.js` (#1660), shared with the
|
|
@@ -64,6 +65,10 @@ export function describeWorkflowInvoker(source) {
|
|
|
64
65
|
// server applies when it decides whether a completed run needs a client
|
|
65
66
|
// apply. An absent key means apply-mode.
|
|
66
67
|
requiresClientApply: workflow.requiresClientApply !== false,
|
|
68
|
+
// Object-shaped only when the schema declares exactly `type: "object"` —
|
|
69
|
+
// the one case a cron `rootInput` may legitimately be partial.
|
|
70
|
+
inputIsObjectShaped: inputSchema !== undefined &&
|
|
71
|
+
describeSchema(inputSchema).singularType === "object",
|
|
67
72
|
inputSchema,
|
|
68
73
|
outputSchema,
|
|
69
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokerIR.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/invokerIR.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,gFAAgF;AAChF,qEAAqE;AACrE,OAAO,EAAE,4BAA4B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"invokerIR.js","sourceRoot":"","sources":["../../../../src/lib/workflow-codegen/invokerIR.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,6EAA6E;AAC7E,gFAAgF;AAChF,qEAAqE;AACrE,OAAO,EAAE,4BAA4B,EAAE,CAAC;AA4DxC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA6B;IAE7B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,CAAQ,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,GAAG,GACP,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC,QAAQ,CAAC,GAAG;QACd,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAEtB,IAAI,qBAAqB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,2EAA2E;IAC3E,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE1D,OAAO;QACL,GAAG;QACH,YAAY,EAAE,QAAQ,CAAC,YAAY,KAAK,IAAI;QAC5C,yEAAyE;QACzE,oEAAoE;QACpE,aAAa,EACX,WAAW,KAAK,SAAS,IAAI,wBAAwB,CAAC,WAAW,CAAC;QACpE,2EAA2E;QAC3E,wEAAwE;QACxE,yCAAyC;QACzC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,KAAK,KAAK;QAC3D,yEAAyE;QACzE,+DAA+D;QAC/D,mBAAmB,EACjB,WAAW,KAAK,SAAS;YACzB,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY,KAAK,QAAQ;QACvD,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply a workflow's named config sidecars, and honor `activeConfigName`
|
|
3
|
+
* (issue #2645, spec §Contracts/Named configs).
|
|
4
|
+
*
|
|
5
|
+
* ── What this is for ─────────────────────────────────────────────────────
|
|
6
|
+
* Named configs used to be reachable only through `workflows configs
|
|
7
|
+
* create/update/duplicate/activate`. Those verbs are removed, so `config push`
|
|
8
|
+
* has to apply the bodies now — otherwise the capability would have been
|
|
9
|
+
* deleted rather than moved to TOML, which the spec's criterion 2 forbids.
|
|
10
|
+
*
|
|
11
|
+
* ── Division of labour with `applyWorkflowBody` ──────────────────────────
|
|
12
|
+
* The ACTIVE config's body stays where it already is: the `steps` at the top of
|
|
13
|
+
* `workflows/<key>.toml`, written through `applyWorkflowBody`'s
|
|
14
|
+
* ordering-sensitive sequence (metadata PATCH → steps → deferred `syncCallable`
|
|
15
|
+
* PATCH, #807). That path is deliberately untouched — a second single-object
|
|
16
|
+
* apply is what broke that ordering before. This module handles the OTHER named
|
|
17
|
+
* configs, each from its own sidecar, and then the activation.
|
|
18
|
+
*
|
|
19
|
+
* So each config body is declared exactly once: the live one at the top of the
|
|
20
|
+
* workflow file, every other one in `workflows/<key>.configs/<name>.toml`.
|
|
21
|
+
* After a pull that follows an `activeConfigName` change, the two swap roles.
|
|
22
|
+
*
|
|
23
|
+
* ── Ordering ─────────────────────────────────────────────────────────────
|
|
24
|
+
* Bodies first, activation last. Activating a config before writing its steps
|
|
25
|
+
* would put an empty or stale body into service for the width of one call.
|
|
26
|
+
*/
|
|
27
|
+
import type { ApiClient } from "./api-client.js";
|
|
28
|
+
import type { WorkflowConfigSidecar } from "./workflow-config-sidecar.js";
|
|
29
|
+
export interface ApplyWorkflowConfigsOptions {
|
|
30
|
+
/** The workflow's configs as the server currently has them. */
|
|
31
|
+
serverConfigs: any[];
|
|
32
|
+
/** `[workflow].activeConfigName` from the TOML, when the author set one. */
|
|
33
|
+
activeConfigName?: string;
|
|
34
|
+
/** The config that is live right now, so a no-op activation is skipped. */
|
|
35
|
+
currentActiveConfigId?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Let `activeConfigName` NAME the config that just received the workflow
|
|
38
|
+
* file's body, instead of requiring it to already exist.
|
|
39
|
+
*
|
|
40
|
+
* Create only. A workflow the server has just made carries one config it
|
|
41
|
+
* named itself ("default"), holding the body from `workflows/<key>.toml` —
|
|
42
|
+
* and pull never writes a sidecar for the active config, so on a fresh app
|
|
43
|
+
* there is nothing else `activeConfigName` could be referring to.
|
|
44
|
+
*
|
|
45
|
+
* Deliberately NOT set on update: there, an `activeConfigName` matching no
|
|
46
|
+
* config and no sidecar is far more likely a typo than a rename, and
|
|
47
|
+
* renaming the live config out from under that typo would be a silent
|
|
48
|
+
* mutation. Update keeps failing with the message that names the file to
|
|
49
|
+
* author.
|
|
50
|
+
*/
|
|
51
|
+
adoptActiveConfigName?: boolean;
|
|
52
|
+
log?: (message: string) => void;
|
|
53
|
+
}
|
|
54
|
+
export interface ApplyWorkflowConfigsResult {
|
|
55
|
+
/** Config name → id, which the rest of push needs to resolve test cases. */
|
|
56
|
+
configIds: Map<string, string>;
|
|
57
|
+
/** Whether this call moved the live config. */
|
|
58
|
+
activated: boolean;
|
|
59
|
+
/** The config that is live once this call returns, when known. */
|
|
60
|
+
activeConfigId?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create or update each sidecar's config, then activate the named one.
|
|
64
|
+
*
|
|
65
|
+
* Reports whether it activated anything: activation writes the workflow
|
|
66
|
+
* DEFINITION (`activeConfigId`, and with it a fresh `modifiedAt`), so the
|
|
67
|
+
* caller's sync state is stale afterwards unless it re-reads — which is how a
|
|
68
|
+
* push that only switched the active config left the next one to conflict.
|
|
69
|
+
*/
|
|
70
|
+
export declare function applyWorkflowConfigSidecars(client: ApiClient, appId: string, workflowId: string, sidecars: readonly WorkflowConfigSidecar[], options: ApplyWorkflowConfigsOptions): Promise<ApplyWorkflowConfigsResult>;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply a workflow's named config sidecars, and honor `activeConfigName`
|
|
3
|
+
* (issue #2645, spec §Contracts/Named configs).
|
|
4
|
+
*
|
|
5
|
+
* ── What this is for ─────────────────────────────────────────────────────
|
|
6
|
+
* Named configs used to be reachable only through `workflows configs
|
|
7
|
+
* create/update/duplicate/activate`. Those verbs are removed, so `config push`
|
|
8
|
+
* has to apply the bodies now — otherwise the capability would have been
|
|
9
|
+
* deleted rather than moved to TOML, which the spec's criterion 2 forbids.
|
|
10
|
+
*
|
|
11
|
+
* ── Division of labour with `applyWorkflowBody` ──────────────────────────
|
|
12
|
+
* The ACTIVE config's body stays where it already is: the `steps` at the top of
|
|
13
|
+
* `workflows/<key>.toml`, written through `applyWorkflowBody`'s
|
|
14
|
+
* ordering-sensitive sequence (metadata PATCH → steps → deferred `syncCallable`
|
|
15
|
+
* PATCH, #807). That path is deliberately untouched — a second single-object
|
|
16
|
+
* apply is what broke that ordering before. This module handles the OTHER named
|
|
17
|
+
* configs, each from its own sidecar, and then the activation.
|
|
18
|
+
*
|
|
19
|
+
* So each config body is declared exactly once: the live one at the top of the
|
|
20
|
+
* workflow file, every other one in `workflows/<key>.configs/<name>.toml`.
|
|
21
|
+
* After a pull that follows an `activeConfigName` change, the two swap roles.
|
|
22
|
+
*
|
|
23
|
+
* ── Ordering ─────────────────────────────────────────────────────────────
|
|
24
|
+
* Bodies first, activation last. Activating a config before writing its steps
|
|
25
|
+
* would put an empty or stale body into service for the width of one call.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Create or update each sidecar's config, then activate the named one.
|
|
29
|
+
*
|
|
30
|
+
* Reports whether it activated anything: activation writes the workflow
|
|
31
|
+
* DEFINITION (`activeConfigId`, and with it a fresh `modifiedAt`), so the
|
|
32
|
+
* caller's sync state is stale afterwards unless it re-reads — which is how a
|
|
33
|
+
* push that only switched the active config left the next one to conflict.
|
|
34
|
+
*/
|
|
35
|
+
export async function applyWorkflowConfigSidecars(client, appId, workflowId, sidecars, options) {
|
|
36
|
+
const { serverConfigs, activeConfigName, currentActiveConfigId, adoptActiveConfigName, } = options;
|
|
37
|
+
const log = options.log ?? (() => { });
|
|
38
|
+
const nameToId = new Map();
|
|
39
|
+
for (const config of serverConfigs ?? []) {
|
|
40
|
+
if (config?.configName && config?.configId) {
|
|
41
|
+
nameToId.set(config.configName, config.configId);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// The workflow file's own `[[steps]]` IS the active config's body — pull
|
|
45
|
+
// deliberately does not repeat it as a sidecar
|
|
46
|
+
// (`workflowConfigSidecarsToWrite`). So when `activeConfigName` names no
|
|
47
|
+
// config the server knows, the config that just received that body is the
|
|
48
|
+
// one the file is naming, and it takes the authored name.
|
|
49
|
+
//
|
|
50
|
+
// Without this, a pulled tree could not be pushed back: the server names a
|
|
51
|
+
// new workflow's first config "default" (`admin-api.ts`), so any workflow
|
|
52
|
+
// whose active config is called something else pulled to a tree whose
|
|
53
|
+
// `activeConfigName` matched no sidecar and no server config — push then
|
|
54
|
+
// refused a file pull had just written. This runs BEFORE the sidecar loop so
|
|
55
|
+
// a `default.toml` sidecar creates its own config rather than overwriting
|
|
56
|
+
// the active body on its way past.
|
|
57
|
+
if (adoptActiveConfigName &&
|
|
58
|
+
activeConfigName &&
|
|
59
|
+
!nameToId.has(activeConfigName) &&
|
|
60
|
+
currentActiveConfigId) {
|
|
61
|
+
await client.updateWorkflowConfig(appId, workflowId, currentActiveConfigId, { configName: activeConfigName });
|
|
62
|
+
// The name it had is now free, and the map must say so. Leaving the old
|
|
63
|
+
// entry pointing at this id makes the sidecar of that name look like an
|
|
64
|
+
// existing config: the loop below UPDATES the just-renamed one instead of
|
|
65
|
+
// creating its own, both sidecars collapse onto a single config, and
|
|
66
|
+
// whichever is applied last silently wins. A fresh cross-app push of a
|
|
67
|
+
// two-config workflow landed exactly one config because of this.
|
|
68
|
+
for (const [name, id] of nameToId) {
|
|
69
|
+
if (id === currentActiveConfigId)
|
|
70
|
+
nameToId.delete(name);
|
|
71
|
+
}
|
|
72
|
+
nameToId.set(activeConfigName, currentActiveConfigId);
|
|
73
|
+
log(` Named the active config "${activeConfigName}"`);
|
|
74
|
+
}
|
|
75
|
+
for (const sidecar of sidecars) {
|
|
76
|
+
const existingId = nameToId.get(sidecar.name);
|
|
77
|
+
if (existingId) {
|
|
78
|
+
// In place: the config keeps its id, so anything pointing at it (a test
|
|
79
|
+
// case, a running trigger) keeps working across the edit.
|
|
80
|
+
//
|
|
81
|
+
// `description` and `status` travel with the steps: they are in the file,
|
|
82
|
+
// so the file owns them (#1567's convention — an omitted `description`
|
|
83
|
+
// sends `null` and clears, since that is what the round-trip means). An
|
|
84
|
+
// update that sent steps alone silently ignored half of what the author
|
|
85
|
+
// wrote, which is the same invisibility the flag removal was about.
|
|
86
|
+
await client.updateWorkflowConfig(appId, workflowId, existingId, {
|
|
87
|
+
steps: sidecar.steps,
|
|
88
|
+
expressions: sidecar.expressions,
|
|
89
|
+
description: sidecar.description ?? null,
|
|
90
|
+
// A defaulted enum, so there is no "clear": an absent key leaves the
|
|
91
|
+
// server's value alone rather than inventing one.
|
|
92
|
+
status: sidecar.status,
|
|
93
|
+
});
|
|
94
|
+
log(` Updated config "${sidecar.name}"`);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const created = await client.createWorkflowConfig(appId, workflowId, {
|
|
98
|
+
configName: sidecar.name,
|
|
99
|
+
description: sidecar.description,
|
|
100
|
+
steps: sidecar.steps,
|
|
101
|
+
expressions: sidecar.expressions,
|
|
102
|
+
});
|
|
103
|
+
if (created?.configId)
|
|
104
|
+
nameToId.set(sidecar.name, created.configId);
|
|
105
|
+
log(` Created config "${sidecar.name}"`);
|
|
106
|
+
// Create always mints an ACTIVE config (admin-api.ts, createWorkflowConfig
|
|
107
|
+
// hard-codes it), so a sidecar that says otherwise needs the follow-up
|
|
108
|
+
// write or its `status` would be silently dropped on a fresh app.
|
|
109
|
+
if (created?.configId && sidecar.status && sidecar.status !== "active") {
|
|
110
|
+
await client.updateWorkflowConfig(appId, workflowId, created.configId, {
|
|
111
|
+
status: sidecar.status,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
let activated = false;
|
|
117
|
+
let activeConfigId = currentActiveConfigId;
|
|
118
|
+
if (activeConfigName) {
|
|
119
|
+
const targetId = nameToId.get(activeConfigName);
|
|
120
|
+
if (!targetId) {
|
|
121
|
+
// Leaving the old config live would mean the committed file says one
|
|
122
|
+
// config is running and another is — the exact drift this issue removes.
|
|
123
|
+
// A typo has to stop the push, not be absorbed by it.
|
|
124
|
+
throw new Error(`activeConfigName "${activeConfigName}" names no configuration. ` +
|
|
125
|
+
`Author it at workflows/<key>.configs/${activeConfigName}.toml, or ` +
|
|
126
|
+
`correct the name in workflows/<key>.toml.`);
|
|
127
|
+
}
|
|
128
|
+
if (targetId !== currentActiveConfigId) {
|
|
129
|
+
await client.activateWorkflowConfig(appId, workflowId, targetId);
|
|
130
|
+
log(` Activated config "${activeConfigName}"`);
|
|
131
|
+
activated = true;
|
|
132
|
+
}
|
|
133
|
+
activeConfigId = targetId;
|
|
134
|
+
}
|
|
135
|
+
return { configIds: nameToId, activated, activeConfigId };
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=workflow-config-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-config-apply.js","sourceRoot":"","sources":["../../../src/lib/workflow-config-apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Named workflow configs as files (issue #2645, spec §Contracts/Named configs).
|
|
3
|
+
*
|
|
4
|
+
* A workflow's named configurations used to reach the server only through
|
|
5
|
+
* `workflows configs create/update/duplicate/activate` — verbs, not files. That
|
|
6
|
+
* made the live body of a running workflow invisible to the repo and to review,
|
|
7
|
+
* which is precisely the failure #1976 records and the reason this issue exists.
|
|
8
|
+
* The design-gate decision was "TOML wins": each config body is a file at
|
|
9
|
+
* `workflows/<key>.configs/<name>.toml`, and `activeConfigName` in
|
|
10
|
+
* `workflows/<key>.toml` names the live one.
|
|
11
|
+
*
|
|
12
|
+
* The layout mirrors the `<key>.tests/` sidecar convention the sync tree
|
|
13
|
+
* already uses, so there is one directory idiom rather than two.
|
|
14
|
+
*
|
|
15
|
+
* workflows/order-intake.toml # the workflow, incl. activeConfigName
|
|
16
|
+
* workflows/order-intake.configs/v2.toml # a named config body
|
|
17
|
+
* workflows/order-intake.tests/*.toml # test cases (pre-existing)
|
|
18
|
+
*
|
|
19
|
+
* File shape:
|
|
20
|
+
*
|
|
21
|
+
* [config]
|
|
22
|
+
* description = "second cut"
|
|
23
|
+
* status = "active"
|
|
24
|
+
*
|
|
25
|
+
* [[steps]]
|
|
26
|
+
* id = "greet"
|
|
27
|
+
* kind = "noop"
|
|
28
|
+
*
|
|
29
|
+
* [expr.cel]
|
|
30
|
+
* ready = "input.ok == true"
|
|
31
|
+
*
|
|
32
|
+
* The config's NAME is the file name and is deliberately not restated inside
|
|
33
|
+
* the file: a second declaration would be a second thing to change and a
|
|
34
|
+
* mismatch to adjudicate, which is the shape of problem this issue removes.
|
|
35
|
+
*/
|
|
36
|
+
/** Directory holding a workflow's named config bodies. */
|
|
37
|
+
export declare function workflowConfigsDir(configDir: string, key: string): string;
|
|
38
|
+
/** The config name a sidecar file declares — its base name. */
|
|
39
|
+
export declare function workflowConfigNameFromFile(file: string): string;
|
|
40
|
+
/** A named config body, as authored on disk. */
|
|
41
|
+
export interface WorkflowConfigSidecar {
|
|
42
|
+
name: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
status?: string;
|
|
45
|
+
/** Always an array once parsed: an empty body is a real, pushable state. */
|
|
46
|
+
steps: any[];
|
|
47
|
+
/** `[expr.cel]` named guards travelling with these steps (#1614). */
|
|
48
|
+
expressions?: {
|
|
49
|
+
cel: Record<string, string>;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Emit a server config record as its sidecar file body. */
|
|
53
|
+
export declare function serializeWorkflowConfigSidecar(config: any): string;
|
|
54
|
+
/** Read a parsed sidecar back into the body `config push` applies. */
|
|
55
|
+
export declare function parseWorkflowConfigSidecar(name: string, tomlData: any): WorkflowConfigSidecar;
|
|
56
|
+
/**
|
|
57
|
+
* Every named config authored for a workflow, in file-name order.
|
|
58
|
+
*
|
|
59
|
+
* An absent directory returns an empty list rather than throwing: a workflow
|
|
60
|
+
* with no sidecars is the ordinary single-config case, where the body is the
|
|
61
|
+
* `steps` in `workflows/<key>.toml`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function readWorkflowConfigSidecars(configDir: string, key: string, readToml?: (path: string) => any): WorkflowConfigSidecar[];
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Named workflow configs as files (issue #2645, spec §Contracts/Named configs).
|
|
3
|
+
*
|
|
4
|
+
* A workflow's named configurations used to reach the server only through
|
|
5
|
+
* `workflows configs create/update/duplicate/activate` — verbs, not files. That
|
|
6
|
+
* made the live body of a running workflow invisible to the repo and to review,
|
|
7
|
+
* which is precisely the failure #1976 records and the reason this issue exists.
|
|
8
|
+
* The design-gate decision was "TOML wins": each config body is a file at
|
|
9
|
+
* `workflows/<key>.configs/<name>.toml`, and `activeConfigName` in
|
|
10
|
+
* `workflows/<key>.toml` names the live one.
|
|
11
|
+
*
|
|
12
|
+
* The layout mirrors the `<key>.tests/` sidecar convention the sync tree
|
|
13
|
+
* already uses, so there is one directory idiom rather than two.
|
|
14
|
+
*
|
|
15
|
+
* workflows/order-intake.toml # the workflow, incl. activeConfigName
|
|
16
|
+
* workflows/order-intake.configs/v2.toml # a named config body
|
|
17
|
+
* workflows/order-intake.tests/*.toml # test cases (pre-existing)
|
|
18
|
+
*
|
|
19
|
+
* File shape:
|
|
20
|
+
*
|
|
21
|
+
* [config]
|
|
22
|
+
* description = "second cut"
|
|
23
|
+
* status = "active"
|
|
24
|
+
*
|
|
25
|
+
* [[steps]]
|
|
26
|
+
* id = "greet"
|
|
27
|
+
* kind = "noop"
|
|
28
|
+
*
|
|
29
|
+
* [expr.cel]
|
|
30
|
+
* ready = "input.ok == true"
|
|
31
|
+
*
|
|
32
|
+
* The config's NAME is the file name and is deliberately not restated inside
|
|
33
|
+
* the file: a second declaration would be a second thing to change and a
|
|
34
|
+
* mismatch to adjudicate, which is the shape of problem this issue removes.
|
|
35
|
+
*/
|
|
36
|
+
import { existsSync, readdirSync, readFileSync } from "fs";
|
|
37
|
+
import { basename, join } from "path";
|
|
38
|
+
import { parseConfigToml, stringifyConfigToml } from "./config-toml.js";
|
|
39
|
+
/** Directory holding a workflow's named config bodies. */
|
|
40
|
+
export function workflowConfigsDir(configDir, key) {
|
|
41
|
+
return join(configDir, "workflows", `${key}.configs`);
|
|
42
|
+
}
|
|
43
|
+
/** The config name a sidecar file declares — its base name. */
|
|
44
|
+
export function workflowConfigNameFromFile(file) {
|
|
45
|
+
return basename(file, ".toml");
|
|
46
|
+
}
|
|
47
|
+
/** Emit a server config record as its sidecar file body. */
|
|
48
|
+
export function serializeWorkflowConfigSidecar(config) {
|
|
49
|
+
const cel = config?.expressions?.cel && typeof config.expressions.cel === "object"
|
|
50
|
+
? config.expressions.cel
|
|
51
|
+
: undefined;
|
|
52
|
+
const data = {
|
|
53
|
+
config: {
|
|
54
|
+
description: config?.description || undefined,
|
|
55
|
+
status: config?.status || undefined,
|
|
56
|
+
},
|
|
57
|
+
steps: Array.isArray(config?.steps) ? config.steps : [],
|
|
58
|
+
...(cel && Object.keys(cel).length > 0 ? { expr: { cel } } : {}),
|
|
59
|
+
};
|
|
60
|
+
for (const k of Object.keys(data.config)) {
|
|
61
|
+
if (data.config[k] === undefined)
|
|
62
|
+
delete data.config[k];
|
|
63
|
+
}
|
|
64
|
+
return stringifyConfigToml(data);
|
|
65
|
+
}
|
|
66
|
+
/** Read a parsed sidecar back into the body `config push` applies. */
|
|
67
|
+
export function parseWorkflowConfigSidecar(name, tomlData) {
|
|
68
|
+
const config = tomlData?.config || {};
|
|
69
|
+
const cel = tomlData?.expr?.cel && typeof tomlData.expr.cel === "object"
|
|
70
|
+
? tomlData.expr.cel
|
|
71
|
+
: undefined;
|
|
72
|
+
return {
|
|
73
|
+
name,
|
|
74
|
+
description: config.description ?? undefined,
|
|
75
|
+
status: config.status ?? undefined,
|
|
76
|
+
steps: Array.isArray(tomlData?.steps) ? tomlData.steps : [],
|
|
77
|
+
...(cel ? { expressions: { cel } } : {}),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Every named config authored for a workflow, in file-name order.
|
|
82
|
+
*
|
|
83
|
+
* An absent directory returns an empty list rather than throwing: a workflow
|
|
84
|
+
* with no sidecars is the ordinary single-config case, where the body is the
|
|
85
|
+
* `steps` in `workflows/<key>.toml`.
|
|
86
|
+
*/
|
|
87
|
+
export function readWorkflowConfigSidecars(configDir, key, readToml = (p) => parseConfigToml(readFileSync(p, "utf-8"))) {
|
|
88
|
+
const dir = workflowConfigsDir(configDir, key);
|
|
89
|
+
if (!existsSync(dir))
|
|
90
|
+
return [];
|
|
91
|
+
return readdirSync(dir)
|
|
92
|
+
.filter((f) => f.endsWith(".toml"))
|
|
93
|
+
.sort()
|
|
94
|
+
.map((f) => parseWorkflowConfigSidecar(workflowConfigNameFromFile(f), readToml(join(dir, f))));
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=workflow-config-sidecar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-config-sidecar.js","sourceRoot":"","sources":["../../../src/lib/workflow-config-sidecar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `[workflow]` fields whose model default the CLI has to know (#2743).
|
|
3
|
+
*
|
|
4
|
+
* Two call sites need the same map, and they must not drift:
|
|
5
|
+
* - `buildWorkflowPayloadFromToml` (update mode) sends the CONCRETE default
|
|
6
|
+
* for a field the TOML omits, so the push converges the server instead of
|
|
7
|
+
* preserving the old value. It deliberately does NOT send `null` for these:
|
|
8
|
+
* a server predating #2743 coerces a queue-limit `null` to `0`
|
|
9
|
+
* (`Number(null)`), so an explicit default is the only value that converges
|
|
10
|
+
* identically on both.
|
|
11
|
+
* - `normalizeWorkflowTomlDefaults` (`config diff`) fills the same defaults into
|
|
12
|
+
* the local side, so a hand-authored file that omits them compares equal to
|
|
13
|
+
* a server holding the defaults — and unequal to one holding a real
|
|
14
|
+
* override.
|
|
15
|
+
*
|
|
16
|
+
* These mirror `models.yaml` (`WorkflowDefinition`): `perUserMaxRunning=4`,
|
|
17
|
+
* `perUserMaxQueued=100`, `perAppMaxRunning=25`, `perAppMaxQueued=10000`,
|
|
18
|
+
* `queueTtlSeconds=43200`, `dequeueOrder="fifo"`, `requiresClientApply=true`,
|
|
19
|
+
* `syncCallable=false`.
|
|
20
|
+
*
|
|
21
|
+
* This is deliberately NOT a generic `models.yaml` default importer — the model
|
|
22
|
+
* carries defaults the serializer never writes. Only the serializer-emitted
|
|
23
|
+
* surface with a concrete default belongs here, because the remote side of a
|
|
24
|
+
* diff is hashed via `serializeWorkflow`. Emit-when-set fields whose GET value
|
|
25
|
+
* is null/empty when unset (`description`, `accessRule`, `runAs`,
|
|
26
|
+
* `capabilities`, the schemas, `lock`) have no default: push sends `null` for
|
|
27
|
+
* them and both sides of the diff simply omit the key.
|
|
28
|
+
*/
|
|
29
|
+
export declare const WORKFLOW_MODEL_DEFAULTS: Record<string, unknown>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `[workflow]` fields whose model default the CLI has to know (#2743).
|
|
3
|
+
*
|
|
4
|
+
* Two call sites need the same map, and they must not drift:
|
|
5
|
+
* - `buildWorkflowPayloadFromToml` (update mode) sends the CONCRETE default
|
|
6
|
+
* for a field the TOML omits, so the push converges the server instead of
|
|
7
|
+
* preserving the old value. It deliberately does NOT send `null` for these:
|
|
8
|
+
* a server predating #2743 coerces a queue-limit `null` to `0`
|
|
9
|
+
* (`Number(null)`), so an explicit default is the only value that converges
|
|
10
|
+
* identically on both.
|
|
11
|
+
* - `normalizeWorkflowTomlDefaults` (`config diff`) fills the same defaults into
|
|
12
|
+
* the local side, so a hand-authored file that omits them compares equal to
|
|
13
|
+
* a server holding the defaults — and unequal to one holding a real
|
|
14
|
+
* override.
|
|
15
|
+
*
|
|
16
|
+
* These mirror `models.yaml` (`WorkflowDefinition`): `perUserMaxRunning=4`,
|
|
17
|
+
* `perUserMaxQueued=100`, `perAppMaxRunning=25`, `perAppMaxQueued=10000`,
|
|
18
|
+
* `queueTtlSeconds=43200`, `dequeueOrder="fifo"`, `requiresClientApply=true`,
|
|
19
|
+
* `syncCallable=false`.
|
|
20
|
+
*
|
|
21
|
+
* This is deliberately NOT a generic `models.yaml` default importer — the model
|
|
22
|
+
* carries defaults the serializer never writes. Only the serializer-emitted
|
|
23
|
+
* surface with a concrete default belongs here, because the remote side of a
|
|
24
|
+
* diff is hashed via `serializeWorkflow`. Emit-when-set fields whose GET value
|
|
25
|
+
* is null/empty when unset (`description`, `accessRule`, `runAs`,
|
|
26
|
+
* `capabilities`, the schemas, `lock`) have no default: push sends `null` for
|
|
27
|
+
* them and both sides of the diff simply omit the key.
|
|
28
|
+
*/
|
|
29
|
+
export const WORKFLOW_MODEL_DEFAULTS = {
|
|
30
|
+
// #2803 — no `status`. Availability is server-owned and off the config wire,
|
|
31
|
+
// so the file has no status line for a diff to normalize or a push to send.
|
|
32
|
+
perUserMaxRunning: 4,
|
|
33
|
+
perUserMaxQueued: 100,
|
|
34
|
+
perAppMaxRunning: 25,
|
|
35
|
+
perAppMaxQueued: 10000,
|
|
36
|
+
queueTtlSeconds: 43200,
|
|
37
|
+
dequeueOrder: "fifo",
|
|
38
|
+
requiresClientApply: true,
|
|
39
|
+
syncCallable: false,
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=workflow-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-defaults.js","sourceRoot":"","sources":["../../../src/lib/workflow-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA4B;IAC9D,6EAA6E;IAC7E,4EAA4E;IAC5E,iBAAiB,EAAE,CAAC;IACpB,gBAAgB,EAAE,GAAG;IACrB,gBAAgB,EAAE,EAAE;IACpB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,IAAI;IACzB,YAAY,EAAE,KAAK;CACpB,CAAC"}
|