@tailor-platform/sdk 2.0.0-next.1 → 2.0.0-next.11
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/CHANGELOG.md +1056 -24
- package/README.md +9 -9
- package/agent-skills/{tailor-sdk → tailor}/SKILL.md +3 -1
- package/dist/aigateway-DR4Kwuik.mjs +9 -0
- package/dist/aigateway-DR4Kwuik.mjs.map +1 -0
- package/dist/{application-DqS1yBg3.mjs → application-CM6hKnSK.mjs} +2155 -2008
- package/dist/application-CM6hKnSK.mjs.map +1 -0
- package/dist/application-CXNaUNhv.mjs +3 -0
- package/dist/authconnection-CZvi9ANm.mjs +9 -0
- package/dist/authconnection-CZvi9ANm.mjs.map +1 -0
- package/dist/brand-Eo4pLXPJ.mjs.map +1 -1
- package/dist/cli/cache/bundle-cache.d.mts +2 -0
- package/dist/cli/cache/store.d.mts +1 -0
- package/dist/cli/cache/types.d.mts +1 -0
- package/dist/cli/commands/api/api-call.d.mts +19 -0
- package/dist/cli/commands/api/index.d.mts +4 -0
- package/dist/cli/commands/deploy/aigateway.d.mts +5 -0
- package/dist/cli/commands/deploy/application.d.mts +7 -0
- package/dist/cli/commands/deploy/apply-phases.d.mts +14 -0
- package/dist/cli/commands/deploy/auth.d.mts +5 -0
- package/dist/cli/commands/deploy/deploy.d.mts +35 -0
- package/dist/cli/commands/deploy/executor.d.mts +7 -0
- package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
- package/dist/cli/commands/deploy/function-registry.d.mts +6 -0
- package/dist/cli/commands/deploy/idp.d.mts +5 -0
- package/dist/cli/commands/deploy/label.d.mts +2 -0
- package/dist/cli/commands/deploy/resolver.d.mts +5 -0
- package/dist/cli/commands/deploy/secret-manager.d.mts +5 -0
- package/dist/cli/commands/deploy/staticwebsite.d.mts +5 -0
- package/dist/cli/commands/deploy/tailordb/index.d.mts +10 -0
- package/dist/cli/commands/deploy/types.d.mts +4 -0
- package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +2 -0
- package/dist/cli/commands/deploy/workflow.d.mts +4 -0
- package/dist/cli/commands/executor/get.d.mts +19 -0
- package/dist/cli/commands/executor/jobs.d.mts +85 -0
- package/dist/cli/commands/executor/list.d.mts +18 -0
- package/dist/cli/commands/executor/transform.d.mts +42 -0
- package/dist/cli/commands/executor/trigger.d.mts +30 -0
- package/dist/cli/commands/executor/webhook.d.mts +21 -0
- package/dist/cli/commands/function/get.d.mts +17 -0
- package/dist/cli/commands/function/list.d.mts +21 -0
- package/dist/cli/commands/function/transform.d.mts +12 -0
- package/dist/cli/commands/generate/options.d.mts +6 -0
- package/dist/cli/commands/generate/seed/bundler.d.mts +27 -0
- package/dist/cli/commands/generate/service.d.mts +15 -0
- package/dist/cli/commands/machineuser/list.d.mts +26 -0
- package/dist/cli/commands/machineuser/token.d.mts +21 -0
- package/dist/cli/commands/oauth2client/get.d.mts +17 -0
- package/dist/cli/commands/oauth2client/list.d.mts +19 -0
- package/dist/cli/commands/oauth2client/transform.d.mts +21 -0
- package/dist/cli/commands/organization/folder/create.d.mts +17 -0
- package/dist/cli/commands/organization/folder/delete.d.mts +15 -0
- package/dist/cli/commands/organization/folder/get.d.mts +16 -0
- package/dist/cli/commands/organization/folder/list.d.mts +21 -0
- package/dist/cli/commands/organization/folder/update.d.mts +17 -0
- package/dist/cli/commands/organization/get.d.mts +15 -0
- package/dist/cli/commands/organization/list.d.mts +14 -0
- package/dist/cli/commands/organization/transform.d.mts +29 -0
- package/dist/cli/commands/organization/tree.d.mts +24 -0
- package/dist/cli/commands/organization/update.d.mts +16 -0
- package/dist/cli/commands/remove.d.mts +15 -0
- package/dist/cli/commands/show.d.mts +39 -0
- package/dist/cli/commands/staticwebsite/deploy.d.mts +19 -0
- package/dist/cli/commands/tailordb/migrate/bundler.d.mts +29 -0
- package/dist/cli/commands/tailordb/migrate/config.d.mts +18 -0
- package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +246 -0
- package/dist/cli/commands/tailordb/migrate/generate.d.mts +16 -0
- package/dist/cli/commands/tailordb/migrate/schema-checks.d.mts +5 -0
- package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +208 -0
- package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
- package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
- package/dist/cli/commands/tailordb/truncate.d.mts +18 -0
- package/dist/cli/commands/workflow/executions.d.mts +62 -0
- package/dist/cli/commands/workflow/get.d.mts +21 -0
- package/dist/cli/commands/workflow/list.d.mts +18 -0
- package/dist/cli/commands/workflow/resume.d.mts +22 -0
- package/dist/cli/commands/workflow/start.d.mts +48 -0
- package/dist/cli/commands/workflow/status.d.mts +6 -0
- package/dist/cli/commands/workflow/transform.d.mts +34 -0
- package/dist/cli/commands/workflow/wait.d.mts +15 -0
- package/dist/cli/commands/workflow/waiter.d.mts +23 -0
- package/dist/cli/commands/workspace/app/health.d.mts +17 -0
- package/dist/cli/commands/workspace/app/list.d.mts +21 -0
- package/dist/cli/commands/workspace/app/transform.d.mts +20 -0
- package/dist/cli/commands/workspace/create.d.mts +27 -0
- package/dist/cli/commands/workspace/delete.d.mts +14 -0
- package/dist/cli/commands/workspace/get.d.mts +16 -0
- package/dist/cli/commands/workspace/list.d.mts +17 -0
- package/dist/cli/commands/workspace/restore.d.mts +14 -0
- package/dist/cli/commands/workspace/transform.d.mts +20 -0
- package/dist/cli/commands/workspace/user/invite.d.mts +21 -0
- package/dist/cli/commands/workspace/user/list.d.mts +21 -0
- package/dist/cli/commands/workspace/user/remove.d.mts +16 -0
- package/dist/cli/commands/workspace/user/transform.d.mts +9 -0
- package/dist/cli/commands/workspace/user/update.d.mts +21 -0
- package/dist/cli/index.mjs +12 -5481
- package/dist/cli/lib.d.mts +86 -21048
- package/dist/cli/lib.mjs +245 -46
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/cli/main.d.mts +23 -0
- package/dist/cli/main.mjs +6777 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cli/query/index.d.mts +38 -0
- package/dist/cli/services/application.d.mts +12 -0
- package/dist/cli/services/auth/service.d.mts +3 -0
- package/dist/cli/services/executor/service.d.mts +1 -0
- package/dist/cli/services/http-adapter/bundler.d.mts +4 -0
- package/dist/cli/services/http-adapter/service.d.mts +2 -0
- package/dist/cli/services/resolver/service.d.mts +1 -0
- package/dist/cli/services/tailordb/service.d.mts +3 -0
- package/dist/cli/services/workflow/bundler.d.mts +3 -0
- package/dist/cli/services/workflow/service.d.mts +1 -0
- package/dist/cli/shared/args.d.mts +13 -0
- package/dist/cli/shared/client.d.mts +1298 -0
- package/dist/cli/shared/config-loader.d.mts +32 -0
- package/dist/cli/shared/context.d.mts +29 -0
- package/dist/cli/shared/error-json.d.mts +23 -0
- package/dist/cli/shared/readonly-guard.d.mts +25 -0
- package/dist/cli/shared/script-executor.d.mts +77 -0
- package/dist/cli/shared/seed-chunker.d.mts +45 -0
- package/dist/cli/shared/seed-context.d.mts +49 -0
- package/dist/cli/shared/tailordb-namespaces.d.mts +40 -0
- package/dist/cli/shared/tsconfig-paths-plugin.d.mts +2 -0
- package/dist/cli/shared/type-generator.d.mts +20 -0
- package/dist/cli/shared/workspace-name.d.mts +1 -0
- package/dist/cli/ts-hook.d.mts +4 -0
- package/dist/cli/ts-hook.mjs +333 -0
- package/dist/completion/zsh-worker.zsh +1471 -1217
- package/dist/configure/config/index.d.mts +20 -0
- package/dist/configure/config/types.d.mts +134 -0
- package/dist/configure/index.d.mts +135 -8
- package/dist/configure/index.mjs +558 -36
- package/dist/configure/index.mjs.map +1 -1
- package/dist/configure/services/aigateway/index.d.mts +16 -0
- package/dist/configure/services/aigateway/types.d.mts +10 -0
- package/dist/configure/services/auth/index.d.mts +33 -0
- package/dist/configure/services/auth/types.d.mts +168 -0
- package/dist/configure/services/executor/executor.d.mts +70 -0
- package/dist/configure/services/executor/index.d.mts +9 -0
- package/dist/configure/services/executor/operation.d.mts +50 -0
- package/dist/configure/services/executor/trigger/event.d.mts +514 -0
- package/dist/configure/services/executor/trigger/index.d.mts +7 -0
- package/dist/configure/services/executor/trigger/schedule.d.mts +24 -0
- package/dist/configure/services/executor/trigger/webhook.d.mts +43 -0
- package/dist/configure/services/executor/types.d.mts +2 -0
- package/dist/configure/services/http-adapter/http-adapter.d.mts +124 -0
- package/dist/configure/services/http-adapter/index.d.mts +2 -0
- package/dist/configure/services/idp/index.d.mts +60 -0
- package/dist/configure/services/idp/permission.d.mts +64 -0
- package/dist/configure/services/idp/types.d.mts +23 -0
- package/dist/configure/services/index.d.mts +40 -0
- package/dist/configure/services/resolver/index.d.mts +6 -0
- package/dist/configure/services/resolver/permission.d.mts +64 -0
- package/dist/configure/services/resolver/resolver.d.mts +88 -0
- package/dist/configure/services/resolver/types.d.mts +5 -0
- package/dist/configure/services/secrets/index.d.mts +37 -0
- package/dist/configure/services/secrets/types.d.mts +10 -0
- package/dist/configure/services/staticwebsite/index.d.mts +18 -0
- package/dist/configure/services/staticwebsite/types.d.mts +10 -0
- package/dist/configure/services/tailordb/index.d.mts +3 -0
- package/dist/configure/services/tailordb/permission.d.mts +103 -0
- package/dist/configure/services/tailordb/schema.d.mts +486 -0
- package/dist/configure/services/tailordb/types.d.mts +198 -0
- package/dist/configure/services/workflow/execution-policy.d.mts +70 -0
- package/dist/configure/services/workflow/execution-policy.types.d.mts +103 -0
- package/dist/configure/services/workflow/index.d.mts +9 -0
- package/dist/configure/services/workflow/job.d.mts +92 -0
- package/dist/configure/services/workflow/types.d.mts +2 -0
- package/dist/configure/services/workflow/wait-point.d.mts +72 -0
- package/dist/configure/services/workflow/workflow.d.mts +66 -0
- package/dist/configure/types/aigateway-name.d.mts +12 -0
- package/dist/configure/types/connection-name.d.mts +12 -0
- package/dist/configure/types/field.d.mts +8 -0
- package/dist/configure/types/field.types.d.mts +70 -0
- package/dist/configure/types/idp-name.d.mts +12 -0
- package/dist/configure/types/index.d.mts +5 -0
- package/dist/configure/types/machine-user.d.mts +2 -0
- package/dist/configure/types/permission-operand.types.d.mts +20 -0
- package/dist/configure/types/type.d.mts +73 -0
- package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
- package/dist/context-DYQVYWqZ.mjs.map +1 -0
- package/dist/{crashreport-BsjAkFWw.mjs → crashreport-B5LqCTfF.mjs} +10 -11
- package/dist/{crashreport-BsjAkFWw.mjs.map → crashreport-B5LqCTfF.mjs.map} +1 -1
- package/dist/{crashreport-pr6Rhvza.mjs → crashreport-eI7ty7ok.mjs} +1 -1
- package/dist/{errors-Dtf2WPaW.mjs → errors-D7583Zz7.mjs} +18 -2
- package/dist/errors-D7583Zz7.mjs.map +1 -0
- package/dist/{file-_oUZo76X.mjs → file-BUcmVIH2.mjs} +12 -22
- package/dist/file-BUcmVIH2.mjs.map +1 -0
- package/dist/{globals-Crz8o65k.mjs → globals-TfAVItuK.mjs} +32 -55
- package/dist/globals-TfAVItuK.mjs.map +1 -0
- package/dist/iconv-QWaZh0TT.mjs +38 -0
- package/dist/iconv-QWaZh0TT.mjs.map +1 -0
- package/dist/{idp-BDbK5gjm.mjs → idp-RA_swu-h.mjs} +12 -5
- package/dist/idp-RA_swu-h.mjs.map +1 -0
- package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
- package/dist/interceptor-e33JtsC-.mjs.map +1 -0
- package/dist/kysely/index.d.mts +5 -7
- package/dist/logger-BtX0suGY.mjs +48 -0
- package/dist/logger-BtX0suGY.mjs.map +1 -0
- package/dist/logger-CXQq9YIp.mjs +317 -0
- package/dist/logger-CXQq9YIp.mjs.map +1 -0
- package/dist/node-builtins-CmaL2Cbq.mjs +36 -0
- package/dist/node-builtins-CmaL2Cbq.mjs.map +1 -0
- package/dist/parser/service/auth/index.d.mts +1 -0
- package/dist/parser/service/auth/schema.d.mts +3 -0
- package/dist/parser/service/http-adapter/index.d.mts +1 -0
- package/dist/parser/service/http-adapter/schema.d.mts +1 -0
- package/dist/parser/service/idp/types.d.mts +5 -0
- package/dist/parser/service/tailordb/type-source.d.mts +10 -0
- package/dist/parser/service/tailordb/types.d.mts +131 -0
- package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
- package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
- package/dist/plugin/builtin/enum-constants/index.d.mts +15 -1
- package/dist/plugin/builtin/enum-constants/index.mjs +115 -2
- package/dist/plugin/builtin/enum-constants/index.mjs.map +1 -0
- package/dist/plugin/builtin/file-utils/index.d.mts +15 -1
- package/dist/plugin/builtin/file-utils/index.mjs +149 -2
- package/dist/plugin/builtin/file-utils/index.mjs.map +1 -0
- package/dist/plugin/builtin/kysely-type/index.d.mts +15 -1
- package/dist/plugin/builtin/kysely-type/index.mjs +274 -2
- package/dist/plugin/builtin/kysely-type/index.mjs.map +1 -0
- package/dist/plugin/builtin/seed/index.d.mts +46 -2
- package/dist/plugin/builtin/seed/index.mjs +1 -1
- package/dist/plugin/builtin/seed/seed-type-processor.d.mts +21 -0
- package/dist/plugin/builtin/seed/types.d.mts +2 -0
- package/dist/plugin/get-generated-type.d.mts +16 -0
- package/dist/plugin/index.d.mts +3 -117
- package/dist/plugin/index.mjs +1 -1
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/plugin/manager.d.mts +2 -0
- package/dist/plugin/types.d.mts +242 -0
- package/dist/plugin/with-context.d.mts +101 -0
- package/dist/{runtime-n9NCkjee.mjs → register-ts-hook-LYV7zH-e.mjs} +9652 -4479
- package/dist/register-ts-hook-LYV7zH-e.mjs.map +1 -0
- package/dist/{registry-DdsYlL_P.mjs → registry-BIGVUrMB.mjs} +12 -9
- package/dist/registry-BIGVUrMB.mjs.map +1 -0
- package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
- package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
- package/dist/runtime/aigateway.d.mts +25 -0
- package/dist/runtime/aigateway.mjs +3 -0
- package/dist/runtime/authconnection.d.mts +21 -2
- package/dist/runtime/authconnection.mjs +2 -2
- package/dist/runtime/context.d.mts +54 -2
- package/dist/runtime/context.mjs +2 -2
- package/dist/runtime/field-parse.d.mts +10 -0
- package/dist/runtime/file.d.mts +170 -2
- package/dist/runtime/file.mjs +2 -2
- package/dist/runtime/globals.d.mts +38 -20
- package/dist/runtime/iconv.d.mts +73 -2
- package/dist/runtime/iconv.mjs +2 -2
- package/dist/runtime/idp.d.mts +129 -2
- package/dist/runtime/idp.mjs +2 -2
- package/dist/runtime/index.d.mts +48 -9
- package/dist/runtime/index.mjs +10 -8
- package/dist/runtime/logger.d.mts +98 -0
- package/dist/runtime/logger.mjs +3 -0
- package/dist/runtime/secretmanager.d.mts +41 -2
- package/dist/runtime/secretmanager.mjs +2 -2
- package/dist/runtime/types.d.mts +25 -0
- package/dist/runtime/workflow.d.mts +106 -2
- package/dist/runtime/workflow.mjs +2 -2
- package/dist/{schema-BhkpP5Hw.mjs → schema--xYWRGfe.mjs} +288 -229
- package/dist/schema--xYWRGfe.mjs.map +1 -0
- package/dist/{secret-file-DBqZhjFQ.mjs → secret-file-C3J4Gy8r.mjs} +2 -2
- package/dist/{secret-file-DBqZhjFQ.mjs.map → secret-file-C3J4Gy8r.mjs.map} +1 -1
- package/dist/secretmanager-CYlpffsz.mjs +13 -0
- package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
- package/dist/secretmanager-IY4UvinW.mjs +131 -0
- package/dist/secretmanager-IY4UvinW.mjs.map +1 -0
- package/dist/seed/index.d.mts +4 -4
- package/dist/seed-B-yckgQY.mjs +483 -0
- package/dist/seed-B-yckgQY.mjs.map +1 -0
- package/dist/{service-DU1mVzri.mjs → service-B5WynBHQ.mjs} +3 -3
- package/dist/{service-DU1mVzri.mjs.map → service-B5WynBHQ.mjs.map} +1 -1
- package/dist/service-M7OYziQP.mjs +3 -0
- package/dist/service-k1xy_A5G.mjs +864 -0
- package/dist/service-k1xy_A5G.mjs.map +1 -0
- package/dist/service_pb-D5--My_M.mjs +167 -0
- package/dist/service_pb-D5--My_M.mjs.map +1 -0
- package/dist/service_pb-i8CmnQP4.mjs +3 -0
- package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +203 -0
- package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +57 -0
- package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +420 -0
- package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +160 -0
- package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2069 -0
- package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +865 -0
- package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +111 -0
- package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +68 -0
- package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +438 -0
- package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +586 -0
- package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +192 -0
- package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +450 -0
- package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +191 -0
- package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +49 -0
- package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +406 -0
- package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +429 -0
- package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +72 -0
- package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +16 -0
- package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +308 -0
- package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +590 -0
- package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +329 -0
- package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +112 -0
- package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +345 -0
- package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +53 -0
- package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3658 -0
- package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +186 -0
- package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +28 -0
- package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +428 -0
- package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +89 -0
- package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +683 -0
- package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +796 -0
- package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +329 -0
- package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +207 -0
- package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +961 -0
- package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +330 -0
- package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2014 -0
- package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +482 -0
- package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
- package/dist/telemetry-BRVdwh14.mjs.map +1 -0
- package/dist/telemetry-CkbkeJxl.mjs +3 -0
- package/dist/test-env-key-D7UkZp99.mjs +75 -0
- package/dist/test-env-key-D7UkZp99.mjs.map +1 -0
- package/dist/types/aigateway.generated.d.mts +12 -0
- package/dist/types/app-config.generated.d.mts +4 -0
- package/dist/types/auth-connection.generated.d.mts +33 -0
- package/dist/types/auth.generated.d.mts +188 -0
- package/dist/types/executor.generated.d.mts +229 -0
- package/dist/types/helpers.d.mts +40 -0
- package/dist/types/http-adapter.generated.d.mts +28 -0
- package/dist/types/idp.generated.d.mts +626 -0
- package/dist/types/resolver.generated.d.mts +82 -0
- package/dist/types/secrets.generated.d.mts +14 -0
- package/dist/types/staticwebsite.generated.d.mts +14 -0
- package/dist/types/tailordb.generated.d.mts +468 -0
- package/dist/types/workflow.generated.d.mts +17 -0
- package/dist/user-agent-Bgsszb5I.mjs +28 -0
- package/dist/user-agent-Bgsszb5I.mjs.map +1 -0
- package/dist/utils/test/index.d.mts +5 -100
- package/dist/utils/test/index.mjs +38 -189
- package/dist/utils/test/index.mjs.map +1 -1
- package/dist/vitest/environment.d.mts +1 -2
- package/dist/vitest/environment.mjs +2 -2
- package/dist/vitest/environment.mjs.map +1 -1
- package/dist/vitest/index.d.mts +17 -431
- package/dist/vitest/index.mjs +1234 -67
- package/dist/vitest/index.mjs.map +1 -1
- package/dist/vitest/mock-kysely.d.mts +61 -0
- package/dist/vitest/mock.d.mts +10 -0
- package/dist/vitest/mocks/aigateway.d.mts +40 -0
- package/dist/vitest/mocks/authconnection.d.mts +38 -0
- package/dist/vitest/mocks/file.d.mts +58 -0
- package/dist/vitest/mocks/iconv.d.mts +51 -0
- package/dist/vitest/mocks/idp.d.mts +60 -0
- package/dist/vitest/mocks/logger.d.mts +45 -0
- package/dist/vitest/mocks/secretmanager.d.mts +44 -0
- package/dist/vitest/mocks/tailordb.d.mts +115 -0
- package/dist/vitest/mocks/workflow.d.mts +148 -0
- package/dist/vitest/setup.d.mts +1 -2
- package/dist/vitest/setup.mjs +2 -2
- package/dist/vitest/workflow-local.d.mts +41 -0
- package/dist/workflow-Bamae_Yc.mjs +34 -0
- package/dist/workflow-Bamae_Yc.mjs.map +1 -0
- package/dist/{client-z_oHGVNy.mjs → workspace_resource_pb-DXnO2AT-.mjs} +57 -621
- package/dist/workspace_resource_pb-DXnO2AT-.mjs.map +1 -0
- package/docs/cli/application.md +150 -250
- package/docs/cli/auth.md +51 -295
- package/docs/cli/completion.md +1 -25
- package/docs/cli/crashreport.md +3 -61
- package/docs/cli/executor.md +72 -183
- package/docs/cli/function.md +16 -132
- package/docs/cli/organization.md +11 -221
- package/docs/cli/plugin.md +29 -0
- package/docs/cli/query.md +2 -22
- package/docs/cli/secret.md +71 -251
- package/docs/cli/setup.md +138 -40
- package/docs/cli/skills.md +50 -39
- package/docs/cli/staticwebsite.md +32 -180
- package/docs/cli/tailordb.md +89 -413
- package/docs/cli/upgrade.md +2 -22
- package/docs/cli/user.md +78 -247
- package/docs/cli/workflow.md +150 -172
- package/docs/cli/workspace.md +167 -538
- package/docs/cli-reference.md +214 -96
- package/docs/configuration.md +90 -6
- package/docs/github-actions.md +72 -24
- package/docs/migration/v2.md +1613 -0
- package/docs/multi-environment.md +29 -7
- package/docs/plugin/custom.md +4 -4
- package/docs/plugin/index.md +8 -8
- package/docs/quickstart.md +8 -7
- package/docs/runtime.md +18 -9
- package/docs/services/aigateway.md +20 -2
- package/docs/services/auth.md +51 -59
- package/docs/services/executor.md +91 -6
- package/docs/services/http-adapter.md +16 -1
- package/docs/services/idp.md +62 -7
- package/docs/services/resolver.md +67 -11
- package/docs/services/secret.md +11 -11
- package/docs/services/staticwebsite.md +8 -2
- package/docs/services/tailordb-migration.md +55 -29
- package/docs/services/tailordb.md +205 -102
- package/docs/services/workflow.md +163 -55
- package/docs/testing.md +244 -143
- package/package.json +61 -46
- package/postinstall.mjs +4 -6
- package/dist/application-DB2r36Et.mjs +0 -3
- package/dist/application-DqS1yBg3.mjs.map +0 -1
- package/dist/authconnection-D2MhtTN5.mjs +0 -15
- package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
- package/dist/authconnection-DvUQAjQS.d.mts +0 -39
- package/dist/cli/erd-viewer-assets/app.js +0 -1181
- package/dist/cli/erd-viewer-assets/index.html +0 -73
- package/dist/cli/erd-viewer-assets/serve.json +0 -13
- package/dist/cli/erd-viewer-assets/styles.css +0 -789
- package/dist/cli/index.d.mts +0 -5
- package/dist/cli/index.mjs.map +0 -1
- package/dist/client-Dbohmtkv.mjs +0 -3
- package/dist/client-z_oHGVNy.mjs.map +0 -1
- package/dist/context-Bd266-ru.mjs.map +0 -1
- package/dist/context-BuuIb8CC.d.mts +0 -68
- package/dist/enum-constants-j9QBF0cB.mjs +0 -116
- package/dist/enum-constants-j9QBF0cB.mjs.map +0 -1
- package/dist/errors-Dtf2WPaW.mjs.map +0 -1
- package/dist/field-DOsJCPFa.mjs +0 -22
- package/dist/field-DOsJCPFa.mjs.map +0 -1
- package/dist/file-BB8Vs9O_.d.mts +0 -250
- package/dist/file-_oUZo76X.mjs.map +0 -1
- package/dist/file-utils-DcyIPFQh.mjs +0 -150
- package/dist/file-utils-DcyIPFQh.mjs.map +0 -1
- package/dist/globals-Crz8o65k.mjs.map +0 -1
- package/dist/http-adapter.generated-WgMnb7Sb.d.mts +0 -580
- package/dist/iconv-Co-TOPuH.d.mts +0 -122
- package/dist/iconv-D2vi8G36.mjs +0 -63
- package/dist/iconv-D2vi8G36.mjs.map +0 -1
- package/dist/idp-BDbK5gjm.mjs.map +0 -1
- package/dist/idp-DrhVrLmV.d.mts +0 -160
- package/dist/index-5vPyRu1y.d.mts +0 -18
- package/dist/index-B7AKc18V.d.mts +0 -47
- package/dist/index-BlpzXncY.d.mts +0 -1016
- package/dist/index-CK7u9isy.d.mts +0 -46
- package/dist/index-CNYe5lnW.d.mts +0 -18
- package/dist/index-DjUdWlzf.d.mts +0 -18
- package/dist/index-ZePLwxw7.d.mts +0 -208
- package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
- package/dist/job-fuc3j1Ma.mjs +0 -53
- package/dist/job-fuc3j1Ma.mjs.map +0 -1
- package/dist/kysely-type-DR8uzZTA.mjs +0 -274
- package/dist/kysely-type-DR8uzZTA.mjs.map +0 -1
- package/dist/logger-CxF-Ex5d.mjs +0 -220
- package/dist/logger-CxF-Ex5d.mjs.map +0 -1
- package/dist/mock-BjFj5o1I.mjs +0 -804
- package/dist/mock-BjFj5o1I.mjs.map +0 -1
- package/dist/registry-DdsYlL_P.mjs.map +0 -1
- package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
- package/dist/runtime-n9NCkjee.mjs.map +0 -1
- package/dist/schema-BhkpP5Hw.mjs.map +0 -1
- package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
- package/dist/secretmanager-BVxw3ih_.mjs +0 -24
- package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
- package/dist/seed-jf3008-h.mjs +0 -1160
- package/dist/seed-jf3008-h.mjs.map +0 -1
- package/dist/service-CCL8ruDf.mjs +0 -459
- package/dist/service-CCL8ruDf.mjs.map +0 -1
- package/dist/service-D6yonf2I.mjs +0 -3
- package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
- package/dist/telemetry-ClwW5ohF.mjs +0 -3
- package/dist/test-env-key-D9kM6ETE.mjs +0 -49
- package/dist/test-env-key-D9kM6ETE.mjs.map +0 -1
- package/dist/types-B2RpYyA_.mjs +0 -371
- package/dist/types-B2RpYyA_.mjs.map +0 -1
- package/dist/types-ClhIrW_C.mjs +0 -4
- package/dist/types-DCUhgpyI.d.mts +0 -784
- package/dist/types-DhO_VEZd.d.mts +0 -574
- package/dist/types-DwDgacni.d.mts +0 -338
- package/dist/workflow-BbKvGLQg.d.mts +0 -96
- package/dist/workflow-DgemCAz3.mjs +0 -38
- package/dist/workflow-DgemCAz3.mjs.map +0 -1
- package/dist/workflow.generated-DtQwEo-x.d.mts +0 -671
|
@@ -10,7 +10,7 @@ Workflows provide:
|
|
|
10
10
|
- Durable execution with automatic state management
|
|
11
11
|
- Resume capabilities from failure points
|
|
12
12
|
- Access to TailorDB via Kysely query builder
|
|
13
|
-
- Job
|
|
13
|
+
- Job starting to compose multi-step logic
|
|
14
14
|
|
|
15
15
|
For the official Tailor Platform documentation, see [Workflow Guide](https://docs.tailor.tech/guides/workflow).
|
|
16
16
|
|
|
@@ -26,12 +26,12 @@ All workflow components must follow these rules:
|
|
|
26
26
|
- **Job name uniqueness**: Job names must be unique across the entire project (not just within one file)
|
|
27
27
|
- **mainJob required**: Every workflow must specify a `mainJob`
|
|
28
28
|
|
|
29
|
-
| Rule | Description
|
|
30
|
-
| ---------------------------------------------- |
|
|
31
|
-
| `createWorkflow` result must be default export | Workflow files must export the workflow as default
|
|
32
|
-
| All jobs must be named exports | Includes `mainJob` and any job
|
|
33
|
-
| Job `name` values must be unique | Job names must be unique across the entire project
|
|
34
|
-
| `mainJob` is required | Every workflow must specify a `mainJob`
|
|
29
|
+
| Rule | Description |
|
|
30
|
+
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
31
|
+
| `createWorkflow` result must be default export | Workflow files must export the workflow as default |
|
|
32
|
+
| All jobs must be named exports | Includes `mainJob` and any job started via `.start()` (even if referenced only within the same file) |
|
|
33
|
+
| Job `name` values must be unique | Job names must be unique across the entire project |
|
|
34
|
+
| `mainJob` is required | Every workflow must specify a `mainJob` |
|
|
35
35
|
|
|
36
36
|
## Creating a Workflow Job
|
|
37
37
|
|
|
@@ -92,11 +92,11 @@ export const nullJob = createWorkflowJob({
|
|
|
92
92
|
|
|
93
93
|
These constraints are enforced at compile time — you will get a type error if you use an unsupported type.
|
|
94
94
|
|
|
95
|
-
##
|
|
95
|
+
## Starting Jobs
|
|
96
96
|
|
|
97
|
-
Use `.
|
|
97
|
+
Use `.start()` to start other jobs from within a job.
|
|
98
98
|
|
|
99
|
-
Jobs are
|
|
99
|
+
Jobs are started by calling `.start()` on the other job object (no `deps` and no `jobs` object in the context).
|
|
100
100
|
|
|
101
101
|
```typescript
|
|
102
102
|
import { createWorkflowJob } from "@tailor-platform/sdk";
|
|
@@ -106,10 +106,10 @@ import { sendNotification } from "./jobs/send-notification";
|
|
|
106
106
|
export const mainJob = createWorkflowJob({
|
|
107
107
|
name: "main-job",
|
|
108
108
|
body: (input: { customerId: string }) => {
|
|
109
|
-
const customer = fetchCustomer.
|
|
109
|
+
const customer = fetchCustomer.start({
|
|
110
110
|
customerId: input.customerId,
|
|
111
111
|
});
|
|
112
|
-
const notification = sendNotification.
|
|
112
|
+
const notification = sendNotification.start({
|
|
113
113
|
message: "Order processed",
|
|
114
114
|
recipient: customer.email,
|
|
115
115
|
});
|
|
@@ -120,51 +120,51 @@ export const mainJob = createWorkflowJob({
|
|
|
120
120
|
|
|
121
121
|
### Deterministic Execution Requirement
|
|
122
122
|
|
|
123
|
-
Workflow jobs use a **suspend/resume execution model**. When a job calls `.
|
|
123
|
+
Workflow jobs use a **suspend/resume execution model**. When a job calls `.start()`, the runtime suspends the current job, executes the started job, and then **re-executes the calling job from the beginning** with cached results from previous starts.
|
|
124
124
|
|
|
125
|
-
This means that **job code must be deterministic** — every re-execution must produce the same sequence of `.
|
|
125
|
+
This means that **job code must be deterministic** — every re-execution must produce the same sequence of `.start()` calls with the same arguments in the same order.
|
|
126
126
|
|
|
127
|
-
Using `.
|
|
127
|
+
Using `.start()` inside a loop works correctly, as long as the loop is deterministic:
|
|
128
128
|
|
|
129
129
|
```typescript
|
|
130
130
|
// ✅ OK: deterministic loop — same calls in the same order on every execution
|
|
131
131
|
const regions = ["us", "eu", "ap"];
|
|
132
132
|
for (const region of regions) {
|
|
133
|
-
const result = fetchData.
|
|
133
|
+
const result = fetchData.start({ region });
|
|
134
134
|
results.push(result);
|
|
135
135
|
}
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
```typescript
|
|
139
139
|
// ❌ Bad: non-deterministic — argument changes between executions
|
|
140
|
-
processJob.
|
|
140
|
+
processJob.start({ timestamp: Date.now() });
|
|
141
141
|
|
|
142
|
-
// ✅ OK: call Date.now() in
|
|
143
|
-
const timestamp = timestampJob.
|
|
144
|
-
processJob.
|
|
142
|
+
// ✅ OK: call Date.now() in a separate job
|
|
143
|
+
const timestamp = timestampJob.start();
|
|
144
|
+
processJob.start({ timestamp });
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
```typescript
|
|
148
148
|
// ❌ Bad: non-deterministic — external data may change between executions
|
|
149
149
|
const items = await fetch("https://api.example.com/items").then((r) => r.json());
|
|
150
150
|
for (const item of items) {
|
|
151
|
-
processItem.
|
|
151
|
+
processItem.start({ id: item.id });
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
// ✅ OK: call fetch("https://api.example.com/items").then((r) => r.json()); in
|
|
155
|
-
const items = fetchItemsJob.
|
|
154
|
+
// ✅ OK: call fetch("https://api.example.com/items").then((r) => r.json()); in a separate job
|
|
155
|
+
const items = fetchItemsJob.start();
|
|
156
156
|
for (const item of items) {
|
|
157
|
-
processItem.
|
|
157
|
+
processItem.start({ id: item.id });
|
|
158
158
|
}
|
|
159
159
|
```
|
|
160
160
|
|
|
161
|
-
If the runtime detects that a `.
|
|
161
|
+
If the runtime detects that a `.start()` call at the same position has different arguments than the previous execution, it will throw an **argument hash mismatch error**.
|
|
162
162
|
|
|
163
163
|
**Guidelines:**
|
|
164
164
|
|
|
165
|
-
- Do not use non-deterministic values (random numbers, timestamps, external API responses) as `.
|
|
166
|
-
- Do not use conditions that may change between executions to decide whether to call `.
|
|
167
|
-
- Any data that varies between executions should be fetched **inside the
|
|
165
|
+
- Do not use non-deterministic values (random numbers, timestamps, external API responses) as `.start()` arguments.
|
|
166
|
+
- Do not use conditions that may change between executions to decide whether to call `.start()`.
|
|
167
|
+
- Any data that varies between executions should be fetched **inside the started job**, not passed as an argument from the calling job.
|
|
168
168
|
|
|
169
169
|
## Workflow Definition
|
|
170
170
|
|
|
@@ -180,13 +180,13 @@ export const processOrder = createWorkflowJob({
|
|
|
180
180
|
name: "process-order",
|
|
181
181
|
body: (input: { customerId: string }, { env, invoker }) => {
|
|
182
182
|
// `env` contains values from `tailor.config.ts` -> `env`.
|
|
183
|
-
// `invoker` is the principal running this job,
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
const customer = fetchCustomer.
|
|
183
|
+
// `invoker` is the principal running this job, or the machine user
|
|
184
|
+
// configured through the start `invoker` option; `null` for anonymous calls.
|
|
185
|
+
// Start other jobs by calling .start() on the job object.
|
|
186
|
+
const customer = fetchCustomer.start({
|
|
187
187
|
customerId: input.customerId,
|
|
188
188
|
});
|
|
189
|
-
sendNotification.
|
|
189
|
+
sendNotification.start({
|
|
190
190
|
message: "Order processed",
|
|
191
191
|
recipient: customer.email,
|
|
192
192
|
});
|
|
@@ -201,29 +201,59 @@ export default createWorkflow({
|
|
|
201
201
|
});
|
|
202
202
|
```
|
|
203
203
|
|
|
204
|
+
## Execution Events
|
|
205
|
+
|
|
206
|
+
Workflows can publish execution lifecycle events for executors. When an executor subscribes to a workflow's events, `deploy` enables publishing automatically. A `workflowExecution*` trigger enables it on the workflow, and a `workflowJobExecution*` trigger enables it on every job that workflow runs. See [Workflow Execution Triggers](./executor.md#workflow-execution-triggers).
|
|
207
|
+
|
|
208
|
+
Publishing follows the subscription in both directions: removing the last subscribing trigger turns it back off on the next `deploy`.
|
|
209
|
+
|
|
210
|
+
Set `publishEvents` explicitly to pin the value instead. Use `true` to publish workflow-level events with no subscribing executor:
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
export default createWorkflow({
|
|
214
|
+
name: "order-processing",
|
|
215
|
+
mainJob: processOrder,
|
|
216
|
+
publishEvents: true,
|
|
217
|
+
});
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
A job takes the same field for its own execution events:
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
export const processOrder = createWorkflowJob({
|
|
224
|
+
name: "process-order",
|
|
225
|
+
publishEvents: true,
|
|
226
|
+
body: async () => ({ processed: true }),
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Use `false` to keep publishing off. `deploy` fails if an executor subscribes to events the value opts out of, so the subscription cannot silently go unfulfilled.
|
|
231
|
+
|
|
232
|
+
**Subscribing from another config:** an executor in another config auto-enables publishing the same way, as long as both configs take part in the same `deploy` (`--config a,b`). The workflow a `workflowExecution*` or `workflowJobExecution*` trigger names must be declared by a config in the run; `deploy` fails otherwise rather than creating an executor whose events never arrive. `deploy` records the dependency on the workflow itself, so deploying that config alone later asks for confirmation instead of silently turning publishing off. Declaring `publishEvents` clears the record: a declared value no longer depends on which configs are deployed together, so there is nothing left to warn about.
|
|
233
|
+
|
|
204
234
|
## Wait Points
|
|
205
235
|
|
|
206
236
|
Wait points allow a workflow job to suspend execution and wait for an external signal before resuming. This enables human-in-the-loop patterns such as approvals, reviews, and manual confirmations.
|
|
207
237
|
|
|
208
238
|
### Defining Wait Points
|
|
209
239
|
|
|
210
|
-
Use `
|
|
240
|
+
Use `createWaitPoint` to create a single typed wait point:
|
|
211
241
|
|
|
212
242
|
```typescript
|
|
213
|
-
import {
|
|
243
|
+
import { createWaitPoint } from "@tailor-platform/sdk";
|
|
214
244
|
|
|
215
|
-
export const approval =
|
|
245
|
+
export const approval = createWaitPoint<
|
|
216
246
|
{ message: string; requestId: string },
|
|
217
247
|
{ approved: boolean }
|
|
218
248
|
>("approval");
|
|
219
249
|
```
|
|
220
250
|
|
|
221
|
-
For multiple wait points, use `
|
|
251
|
+
For multiple wait points, use `createWaitPoints` with a builder callback. Property names become wait point keys, and JSDoc on each property is preserved in IDE autocompletion:
|
|
222
252
|
|
|
223
253
|
```typescript
|
|
224
|
-
import {
|
|
254
|
+
import { createWaitPoints } from "@tailor-platform/sdk";
|
|
225
255
|
|
|
226
|
-
export const waitPoints =
|
|
256
|
+
export const waitPoints = createWaitPoints((define) => ({
|
|
227
257
|
/** Manager approval step */
|
|
228
258
|
managerApproval: define<{ amount: number }, { approved: boolean }>(),
|
|
229
259
|
/** Finance review step */
|
|
@@ -245,9 +275,9 @@ Both must be JsonValue-compatible (plain objects/arrays; no class instances or f
|
|
|
245
275
|
Call `.wait()` inside a workflow job body to suspend execution:
|
|
246
276
|
|
|
247
277
|
```typescript
|
|
248
|
-
import { createWorkflow, createWorkflowJob
|
|
278
|
+
import { createWaitPoint, createWorkflow, createWorkflowJob } from "@tailor-platform/sdk";
|
|
249
279
|
|
|
250
|
-
export const approval =
|
|
280
|
+
export const approval = createWaitPoint<
|
|
251
281
|
{ message: string; requestId: string },
|
|
252
282
|
{ approved: boolean }
|
|
253
283
|
>("approval");
|
|
@@ -351,28 +381,106 @@ export default createWorkflow({
|
|
|
351
381
|
});
|
|
352
382
|
```
|
|
353
383
|
|
|
354
|
-
##
|
|
384
|
+
## Execution Policies
|
|
385
|
+
|
|
386
|
+
Execution policies apply a per-key concurrency cap to workflow job function dispatches. Declare them at the workspace level and pass a matching key when starting a job; the platform serializes dispatches that resolve to the same key and suspends any that would exceed the cap until slots free up.
|
|
387
|
+
|
|
388
|
+
### Declaring Policies
|
|
389
|
+
|
|
390
|
+
Use `defineWorkflowExecutionPolicies` with a builder callback. Property names supply the workspace-unique name and default key prefix verbatim, matching the mental model of `createWaitPoints`. Override `name` or `key` in the body when the property identifier is not valid execution policy grammar or the key prefix needs to differ. Set `matchType: "prefix"` to register the prefix as a wildcard that matches every dispatch key starting with it (the default, `"exact"`, matches only a dispatch key equal to it).
|
|
391
|
+
|
|
392
|
+
```typescript
|
|
393
|
+
import { defineWorkflowExecutionPolicies } from "@tailor-platform/sdk";
|
|
394
|
+
|
|
395
|
+
export const executionPolicies = defineWorkflowExecutionPolicies((define) => ({
|
|
396
|
+
/** Shared cap across every "premium" worker dispatch. */
|
|
397
|
+
premium: define({ concurrencyPolicy: { maxConcurrentExecutions: 5 } }),
|
|
398
|
+
/** Per-tenant cap: one pool per resolved tenant key. */
|
|
399
|
+
tenantApi: define({
|
|
400
|
+
name: "tenant-api",
|
|
401
|
+
matchType: "prefix",
|
|
402
|
+
concurrencyPolicy: { maxConcurrentExecutions: 3 },
|
|
403
|
+
}),
|
|
404
|
+
}));
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
For a single policy, use `defineWorkflowExecutionPolicy(name, def?)`; the key prefix defaults to `name` when `key` is omitted.
|
|
408
|
+
|
|
409
|
+
`concurrencyPolicy` is optional; when omitted, the policy registers the key as valid without a user-defined limit (platform safety nets still apply).
|
|
410
|
+
|
|
411
|
+
Register the policies on your config so the SDK creates them on the workspace during deploy:
|
|
412
|
+
|
|
413
|
+
```typescript
|
|
414
|
+
// tailor.config.ts
|
|
415
|
+
import { defineConfig } from "@tailor-platform/sdk";
|
|
416
|
+
import { executionPolicies } from "./workflows/policies";
|
|
417
|
+
|
|
418
|
+
export default defineConfig({
|
|
419
|
+
workflow: {
|
|
420
|
+
files: ["workflows/**/*.ts"],
|
|
421
|
+
executionPolicies,
|
|
422
|
+
},
|
|
423
|
+
});
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
### Key Grammar
|
|
427
|
+
|
|
428
|
+
`key` accepts `[a-z0-9_:.-]` and must start with `[a-z0-9]`. An exact key must also end with `[a-z0-9]`; a wildcard prefix (`matchType: "prefix"`) may end with any of those characters, since the platform appends a trailing `*` after it. The platform-registered key — including that trailing `*` when wildcarded — is 2 to 64 characters long, so a wildcard prefix must be at most 63 characters. `foo:bar` is a valid exact key; `tenant-api` with `matchType: "prefix"` registers `tenant-api*` as a wildcard prefix.
|
|
429
|
+
|
|
430
|
+
An exact-key policy applies to dispatches whose runtime key equals the policy key. A wildcard policy applies to every dispatch whose runtime key begins with the prefix; each concrete resolved key gets its own independent pool of the declared size (a `cap = 3` wildcard yields three concurrent dispatches per resolved key, not three across every match). When a dispatch matches more than one policy (for example, an exact key that also falls under a wildcard prefix, or two wildcard prefixes where one starts with the other), every matching policy's cap is enforced independently, and the tightest one blocks.
|
|
431
|
+
|
|
432
|
+
### Referencing a Policy from a Workflow
|
|
433
|
+
|
|
434
|
+
Pass the runtime key through the `executionPolicyKey` option on `job.start()` or `tailor.workflow.execJobFunction()`. For exact-key policies, use `<policy>.key` directly — it's typed so only a value that came from a declared policy can be passed. For wildcard policies (`matchType: "prefix"`), there is no `<policy>.key` — call `<policy>.keyFor(suffix)` to build the concrete key. `keyFor` joins the prefix and suffix with `.` by default; override it with `separator` — the second argument to `defineWorkflowExecutionPolicies` (applies to every policy in the group), or a `def` field on a single `defineWorkflowExecutionPolicy`.
|
|
435
|
+
|
|
436
|
+
```typescript
|
|
437
|
+
import { createWorkflowJob } from "@tailor-platform/sdk";
|
|
438
|
+
import { executionPolicies } from "./policies";
|
|
439
|
+
import { sendNotification } from "./jobs/send-notification";
|
|
440
|
+
import { fetchTenant } from "./jobs/fetch-tenant";
|
|
441
|
+
|
|
442
|
+
export const mainJob = createWorkflowJob({
|
|
443
|
+
name: "main-job",
|
|
444
|
+
body: async (input: { tenantId: string }) => {
|
|
445
|
+
// Exact key policy: pass .key directly.
|
|
446
|
+
await sendNotification.start(
|
|
447
|
+
{ message: "Order processed" },
|
|
448
|
+
{ executionPolicyKey: executionPolicies.premium.key },
|
|
449
|
+
);
|
|
450
|
+
|
|
451
|
+
// Wildcard policy: build the concrete key with keyFor().
|
|
452
|
+
await fetchTenant.start(
|
|
453
|
+
{ tenantId: input.tenantId },
|
|
454
|
+
{ executionPolicyKey: executionPolicies.tenantApi.keyFor(input.tenantId) },
|
|
455
|
+
);
|
|
456
|
+
},
|
|
457
|
+
});
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
The same `executionPolicyKey` option is available on `tailor.workflow.execJobFunction(name, args, options)` for jobs invoked by name.
|
|
461
|
+
|
|
462
|
+
## Starting a Workflow from a Resolver
|
|
355
463
|
|
|
356
|
-
You can start a workflow execution from a resolver using `workflow.
|
|
464
|
+
You can start a workflow execution from a resolver using `workflow.start()`.
|
|
357
465
|
|
|
358
|
-
- `workflow.
|
|
359
|
-
- To run with machine-user permissions, pass `{
|
|
466
|
+
- `workflow.start(args, options?)` returns a workflow run ID (`Promise<string>`).
|
|
467
|
+
- To run with machine-user permissions, pass `{ invoker: "<machine-user>" }`. The name is type-narrowed to the machine users defined in your auth config.
|
|
360
468
|
|
|
361
469
|
```typescript
|
|
362
470
|
import { createResolver, t } from "@tailor-platform/sdk";
|
|
363
471
|
import orderProcessingWorkflow from "../workflows/order-processing";
|
|
364
472
|
|
|
365
473
|
export default createResolver({
|
|
366
|
-
name: "
|
|
474
|
+
name: "startOrderProcessing",
|
|
367
475
|
operation: "mutation",
|
|
368
476
|
input: {
|
|
369
477
|
orderId: t.string(),
|
|
370
478
|
customerId: t.string(),
|
|
371
479
|
},
|
|
372
480
|
body: async ({ input }) => {
|
|
373
|
-
const workflowRunId = await orderProcessingWorkflow.
|
|
481
|
+
const workflowRunId = await orderProcessingWorkflow.start(
|
|
374
482
|
{ orderId: input.orderId, customerId: input.customerId },
|
|
375
|
-
{
|
|
483
|
+
{ invoker: "manager-machine-user" },
|
|
376
484
|
);
|
|
377
485
|
|
|
378
486
|
return { workflowRunId };
|
|
@@ -383,7 +491,7 @@ export default createResolver({
|
|
|
383
491
|
});
|
|
384
492
|
```
|
|
385
493
|
|
|
386
|
-
See the full working example in the repository: [example/resolvers/
|
|
494
|
+
See the full working example in the repository: [example/resolvers/startWorkflow.ts](https://github.com/tailor-platform/sdk/blob/main/example/resolvers/startWorkflow.ts).
|
|
387
495
|
|
|
388
496
|
## File Organization
|
|
389
497
|
|
|
@@ -406,22 +514,22 @@ Manage workflows using the CLI:
|
|
|
406
514
|
|
|
407
515
|
```bash
|
|
408
516
|
# List workflows
|
|
409
|
-
tailor
|
|
517
|
+
tailor workflow list
|
|
410
518
|
|
|
411
519
|
# Get workflow details
|
|
412
|
-
tailor
|
|
520
|
+
tailor workflow get <name>
|
|
413
521
|
|
|
414
522
|
# Start a workflow
|
|
415
|
-
tailor
|
|
523
|
+
tailor workflow start <name> -m <machine-user> -a '{"key": "value"}'
|
|
416
524
|
|
|
417
525
|
# List executions
|
|
418
|
-
tailor
|
|
526
|
+
tailor workflow executions
|
|
419
527
|
|
|
420
528
|
# Get execution details with logs
|
|
421
|
-
tailor
|
|
529
|
+
tailor workflow executions <execution-id> --logs
|
|
422
530
|
|
|
423
531
|
# Resume a failed execution
|
|
424
|
-
tailor
|
|
532
|
+
tailor workflow resume <execution-id>
|
|
425
533
|
```
|
|
426
534
|
|
|
427
535
|
See [Workflow CLI Commands](../cli/workflow.md) for full documentation.
|