@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
|
@@ -11,20 +11,42 @@ Deployment commands resolve the target workspace from, in priority order, the `-
|
|
|
11
11
|
For one-off commands, pass the workspace explicitly:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
tailor
|
|
14
|
+
tailor deploy -w <staging-workspace-id>
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
For environments you switch between regularly, create a named profile per environment with the [profile commands](./cli/workspace.md#profile-create) and select it with `--profile` (`-p`) or `TAILOR_PLATFORM_PROFILE`:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
tailor
|
|
21
|
-
tailor
|
|
20
|
+
tailor profile create staging -u you@example.com -w <staging-workspace-id>
|
|
21
|
+
tailor profile create production -u you@example.com -w <production-workspace-id> --permission read
|
|
22
22
|
|
|
23
|
-
tailor
|
|
23
|
+
tailor deploy -p staging
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
Profiles are created with `write` permission by default. The production profile above opts into `--permission read`, which blocks write commands such as `deploy` while the profile is active — a guard against deploying to production by accident. To deploy to production deliberately, pass the workspace explicitly with `-w` without selecting the profile — the guard applies only while a profile is selected via `-p` or `TAILOR_PLATFORM_PROFILE` — or use a separate profile created with `write` permission.
|
|
27
27
|
|
|
28
|
+
If a profile targets a non-default Tailor Platform API, save that connection on the profile as well. User login tokens are stored per Platform URL, so you can log in once for each Platform and then switch with only the profile:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
export TAILOR_PLATFORM_URL=<platform-api-url>
|
|
32
|
+
export TAILOR_PLATFORM_OAUTH2_CLIENT_ID=<oauth2-client-id>
|
|
33
|
+
export TAILOR_PLATFORM_CONSOLE_URL=<console-url>
|
|
34
|
+
|
|
35
|
+
tailor login
|
|
36
|
+
tailor profile create development \
|
|
37
|
+
-u you@example.com \
|
|
38
|
+
-w <development-workspace-id> \
|
|
39
|
+
--platform-url "$TAILOR_PLATFORM_URL" \
|
|
40
|
+
--oauth2-client-id "$TAILOR_PLATFORM_OAUTH2_CLIENT_ID" \
|
|
41
|
+
--console-url "$TAILOR_PLATFORM_CONSOLE_URL"
|
|
42
|
+
|
|
43
|
+
unset TAILOR_PLATFORM_URL TAILOR_PLATFORM_OAUTH2_CLIENT_ID TAILOR_PLATFORM_CONSOLE_URL
|
|
44
|
+
tailor deploy -p development
|
|
45
|
+
tailor open -p development
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
After the profile exists, run `tailor login -p development` to refresh the login for that Platform without re-exporting the connection variables.
|
|
49
|
+
|
|
28
50
|
## Varying config values per environment
|
|
29
51
|
|
|
30
52
|
`tailor.config.ts` is a TypeScript module evaluated locally each time an SDK command loads it, so any value can branch on `process.env`. If the config also defines an auth before-login hook, mind the `process.env` caveat in [Environment Variables](./configuration.md#environment-variables). Keep one env file per environment and load it with the global [`--env-file`](./cli-reference.md#environment-file-loading) option:
|
|
@@ -32,17 +54,17 @@ Profiles are created with `write` permission by default. The production profile
|
|
|
32
54
|
```ini
|
|
33
55
|
# .env.production
|
|
34
56
|
APP_ENV=production
|
|
35
|
-
|
|
57
|
+
TAILOR_APP_LOG_LEVEL=WARN
|
|
36
58
|
```
|
|
37
59
|
|
|
38
60
|
```bash
|
|
39
|
-
tailor
|
|
61
|
+
tailor deploy -w <production-workspace-id> --env-file .env.production
|
|
40
62
|
```
|
|
41
63
|
|
|
42
64
|
```typescript
|
|
43
65
|
export default defineConfig({
|
|
44
66
|
name: "my-app",
|
|
45
|
-
logLevel: process.env.
|
|
67
|
+
logLevel: process.env.TAILOR_APP_LOG_LEVEL ?? "DEBUG",
|
|
46
68
|
});
|
|
47
69
|
```
|
|
48
70
|
|
package/docs/plugin/custom.md
CHANGED
|
@@ -93,7 +93,7 @@ interface Plugin<TypeConfig = unknown, PluginConfig = unknown> {
|
|
|
93
93
|
onTypeLoaded(context) {
|
|
94
94
|
const { type, typeConfig, namespace } = context;
|
|
95
95
|
return {
|
|
96
|
-
types: { archive: db.
|
|
96
|
+
types: { archive: db.table(`Deleted_${type.name}`, { ... }) },
|
|
97
97
|
extends: { fields: { deletedAt: db.datetime({ optional: true }) } },
|
|
98
98
|
executors: [{ name: `${type.name}-on-delete`, resolve: async () => await import("./on-delete"), context: { sourceType: type, namespace } }],
|
|
99
99
|
};
|
|
@@ -122,7 +122,7 @@ Same as `TypePluginOutput` but without `extends` (namespace plugins cannot exten
|
|
|
122
122
|
```typescript
|
|
123
123
|
onNamespaceLoaded(context) {
|
|
124
124
|
return {
|
|
125
|
-
types: { auditLog: db.
|
|
125
|
+
types: { auditLog: db.table("AuditLog", { action: db.string(), ... }) },
|
|
126
126
|
};
|
|
127
127
|
},
|
|
128
128
|
```
|
|
@@ -343,7 +343,7 @@ function processSoftDelete(
|
|
|
343
343
|
|
|
344
344
|
// Generate archive type
|
|
345
345
|
const archiveType = db
|
|
346
|
-
.
|
|
346
|
+
.table(`${prefix}${type.name}`, {
|
|
347
347
|
originalId: db.uuid().description("ID of the deleted record"),
|
|
348
348
|
originalData: db.string().description("JSON snapshot of deleted record"),
|
|
349
349
|
deletedAt: db.datetime().description("When the record was deleted"),
|
|
@@ -450,7 +450,7 @@ export const plugins = definePlugins(
|
|
|
450
450
|
|
|
451
451
|
// tailordb/customer.ts
|
|
452
452
|
export const customer = db
|
|
453
|
-
.
|
|
453
|
+
.table("Customer", {
|
|
454
454
|
name: db.string(),
|
|
455
455
|
email: db.string(),
|
|
456
456
|
})
|
package/docs/plugin/index.md
CHANGED
|
@@ -6,7 +6,7 @@ Plugins extend TailorDB types by automatically generating additional types, exec
|
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
9
|
-
When you run `tailor
|
|
9
|
+
When you run `tailor generate`, the SDK:
|
|
10
10
|
|
|
11
11
|
1. Loads all TailorDB types with plugin attachments
|
|
12
12
|
2. Passes each type to the attached plugins
|
|
@@ -43,7 +43,7 @@ Use the `.plugin()` method to attach plugins to specific types:
|
|
|
43
43
|
import { db } from "@tailor-platform/sdk";
|
|
44
44
|
|
|
45
45
|
export const user = db
|
|
46
|
-
.
|
|
46
|
+
.table("User", {
|
|
47
47
|
name: db.string(),
|
|
48
48
|
email: db.string(),
|
|
49
49
|
})
|
|
@@ -58,7 +58,7 @@ Some plugins accept per-type configuration:
|
|
|
58
58
|
|
|
59
59
|
```typescript
|
|
60
60
|
export const customer = db
|
|
61
|
-
.
|
|
61
|
+
.table("Customer", {
|
|
62
62
|
name: db.string(),
|
|
63
63
|
// ...
|
|
64
64
|
})
|
|
@@ -102,18 +102,18 @@ Plugins can generate:
|
|
|
102
102
|
- **Field Extensions**: Additional fields added to the source type
|
|
103
103
|
- **Output Files**: TypeScript code and other files via generation-time hooks
|
|
104
104
|
|
|
105
|
-
Generated files are placed under `.tailor
|
|
105
|
+
Generated files are placed under `.tailor/<plugin-id>/` (the plugin ID is sanitized,
|
|
106
106
|
e.g. `@example/soft-delete` → `example-soft-delete`), such as:
|
|
107
107
|
|
|
108
|
-
- `.tailor
|
|
109
|
-
- `.tailor
|
|
108
|
+
- `.tailor/example-soft-delete/types`
|
|
109
|
+
- `.tailor/example-soft-delete/executors`
|
|
110
110
|
|
|
111
111
|
## Plugin Lifecycle
|
|
112
112
|
|
|
113
|
-
Plugins have 5 hooks across two lifecycle phases. Each hook fires at a specific point in the `tailor
|
|
113
|
+
Plugins have 5 hooks across two lifecycle phases. Each hook fires at a specific point in the `tailor generate` pipeline:
|
|
114
114
|
|
|
115
115
|
```
|
|
116
|
-
tailor
|
|
116
|
+
tailor generate
|
|
117
117
|
│
|
|
118
118
|
├─ Load TailorDB types
|
|
119
119
|
│ ├─ onTypeLoaded ← per type with .plugin() attached
|
package/docs/quickstart.md
CHANGED
|
@@ -12,7 +12,7 @@ Contact us [here](https://www.tailor.tech/demo) to get started.
|
|
|
12
12
|
|
|
13
13
|
### Install Node.js
|
|
14
14
|
|
|
15
|
-
The SDK requires Node.js 22 or later. Install Node.js via your package manager by following the official Node.js instructions.
|
|
15
|
+
The SDK requires Node.js 22.15.0 or later. Install Node.js via your package manager by following the official Node.js instructions.
|
|
16
16
|
|
|
17
17
|
Alternatively, you can use [Bun](https://bun.sh/) as the runtime.
|
|
18
18
|
|
|
@@ -24,20 +24,22 @@ The following command creates a new project with the required configuration file
|
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
npm create @tailor-platform/sdk -- --template hello-world example-app
|
|
27
|
+
cd example-app
|
|
27
28
|
# Or with Bun:
|
|
28
29
|
# bun create @tailor-platform/sdk --template hello-world example-app
|
|
30
|
+
# cd example-app
|
|
29
31
|
```
|
|
30
32
|
|
|
31
33
|
Before deploying your app, you need to create a workspace:
|
|
32
34
|
|
|
33
35
|
```bash
|
|
34
|
-
npx tailor
|
|
35
|
-
npx tailor
|
|
36
|
-
npx tailor
|
|
36
|
+
npx tailor login
|
|
37
|
+
npx tailor workspace create --name <workspace-name> --region <workspace-region>
|
|
38
|
+
npx tailor workspace list
|
|
37
39
|
|
|
38
40
|
# Or with Bun:
|
|
39
|
-
# bunx tailor
|
|
40
|
-
# bunx tailor
|
|
41
|
+
# bunx tailor login
|
|
42
|
+
# bunx tailor workspace create --name <workspace-name> --region <workspace-region>
|
|
41
43
|
|
|
42
44
|
# OR
|
|
43
45
|
# Create a new workspace using Tailor Platform Console
|
|
@@ -49,7 +51,6 @@ npx tailor-sdk workspace list
|
|
|
49
51
|
Run the deploy command to deploy your project:
|
|
50
52
|
|
|
51
53
|
```bash
|
|
52
|
-
cd example-app
|
|
53
54
|
npm run deploy -- --workspace-id <your-workspace-id>
|
|
54
55
|
# Or with Bun:
|
|
55
56
|
# bun run deploy --workspace-id <your-workspace-id>
|
package/docs/runtime.md
CHANGED
|
@@ -19,6 +19,8 @@ import {
|
|
|
19
19
|
workflow,
|
|
20
20
|
context,
|
|
21
21
|
file,
|
|
22
|
+
aigateway,
|
|
23
|
+
logger,
|
|
22
24
|
} from "@tailor-platform/sdk/runtime";
|
|
23
25
|
|
|
24
26
|
const utf8 = iconv.convert(sjisBuffer, "Shift_JIS", "UTF-8");
|
|
@@ -30,11 +32,15 @@ const token = await authconnection.getConnectionToken("google");
|
|
|
30
32
|
const client = new idp.Client({ namespace: "my-namespace" });
|
|
31
33
|
const { users } = await client.users({ first: 10 });
|
|
32
34
|
|
|
33
|
-
const executionId = await workflow.
|
|
35
|
+
const executionId = await workflow.startWorkflow("approval", { reportId });
|
|
34
36
|
|
|
35
37
|
const invoker = context.getInvoker();
|
|
36
38
|
|
|
37
39
|
const { metadata } = await file.upload("my-namespace", "Document", "attachment", recordId, bytes);
|
|
40
|
+
|
|
41
|
+
const { url } = await aigateway.get("my-aigateway");
|
|
42
|
+
|
|
43
|
+
logger.info("order processed", { orderId: "o-1", total: 99.5 });
|
|
38
44
|
```
|
|
39
45
|
|
|
40
46
|
## Subpath imports
|
|
@@ -42,10 +48,12 @@ const { metadata } = await file.upload("my-namespace", "Document", "attachment",
|
|
|
42
48
|
Each namespace can also be imported individually so you only pull what you need:
|
|
43
49
|
|
|
44
50
|
```ts
|
|
45
|
-
import
|
|
46
|
-
import type
|
|
51
|
+
import { iconv } from "@tailor-platform/sdk/runtime/iconv";
|
|
52
|
+
import { idp, type ListUsersResponse, type ClientConfig } from "@tailor-platform/sdk/runtime/idp";
|
|
47
53
|
```
|
|
48
54
|
|
|
55
|
+
`TailorContextAPI` and `TailorWorkflowAPI` describe the imported SDK wrapper objects. When typing direct access to the platform-provided globals or a runtime mock, use `PlatformContextAPI` or `PlatformWorkflowAPI` instead.
|
|
56
|
+
|
|
49
57
|
## Activating the global types
|
|
50
58
|
|
|
51
59
|
Most users do not need to touch the globals entry — `@tailor-platform/sdk/runtime` (and its subpath modules) cover the same surface without depending on any ambient declaration.
|
|
@@ -76,9 +84,11 @@ The runtime entry re-exports the following namespaces. Detailed signatures, para
|
|
|
76
84
|
- `secretmanager` — secret-vault access (`getSecret`, `getSecrets`)
|
|
77
85
|
- `authconnection` — OAuth-style connection tokens (`getConnectionToken`)
|
|
78
86
|
- `idp` — IdP user management (`new Client({ namespace })`)
|
|
79
|
-
- `workflow` — workflow & job control (`
|
|
87
|
+
- `workflow` — workflow & job control (`startWorkflow`, `resumeWorkflowExecution`, `execJobFunction`, `wait`, `resolve`)
|
|
80
88
|
- `context` — execution context (`getInvoker`)
|
|
81
|
-
- `file` — `tailordb.file` BLOB API (`upload`, `download`, `downloadAsBase64`, `delete`, `getMetadata`, `downloadStream`, `uploadStream
|
|
89
|
+
- `file` — `tailordb.file` BLOB API (`upload`, `download`, `downloadAsBase64`, `delete`, `getMetadata`, `downloadStream`, `uploadStream`)
|
|
90
|
+
- `aigateway` — AI Gateway URL resolution (`get`)
|
|
91
|
+
- `logger` — structured logging with severity and attributes; the message is written to standard output, the full entry with its attributes is exported over OpenTelemetry where the attributes are queryable (`debug`, `info`, `warn`, `error`, `setAttributes`)
|
|
82
92
|
|
|
83
93
|
## Testing
|
|
84
94
|
|
|
@@ -91,17 +101,16 @@ import { expect, test } from "vitest";
|
|
|
91
101
|
|
|
92
102
|
test("encodes via iconv", () => {
|
|
93
103
|
using iconvM = mockIconv();
|
|
94
|
-
iconvM.
|
|
104
|
+
iconvM.convert.mockReturnValue(new Uint8Array([0x82, 0xa0]));
|
|
95
105
|
|
|
96
106
|
const out = iconv.convert("あ", "UTF-8", "Shift_JIS");
|
|
97
107
|
|
|
98
108
|
expect(out).toEqual(new Uint8Array([0x82, 0xa0]));
|
|
99
|
-
expect(iconvM.
|
|
109
|
+
expect(iconvM.convert).toHaveBeenCalledWith("あ", "UTF-8", "Shift_JIS");
|
|
100
110
|
}); // iconvM disposed here — the iconv mock is removed (previous state restored)
|
|
101
111
|
|
|
102
112
|
test("reads from a vault", async () => {
|
|
103
|
-
using sm = mockSecretmanager();
|
|
104
|
-
sm.setSecrets({ "my-vault": { API_KEY: "sk-123" } });
|
|
113
|
+
using sm = mockSecretmanager({ secrets: { "my-vault": { API_KEY: "sk-123" } } });
|
|
105
114
|
|
|
106
115
|
await expect(secretmanager.getSecret("my-vault", "API_KEY")).resolves.toBe("sk-123");
|
|
107
116
|
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# AI Gateway
|
|
2
2
|
|
|
3
|
-
AI Gateway provides a unified endpoint for accessing
|
|
3
|
+
AI Gateway provides a unified endpoint for accessing a range of large language models through a single OpenAI-compatible API, with platform-managed credentials and workspace-scoped authentication.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
7
|
AI Gateway provides:
|
|
8
8
|
|
|
9
|
-
- A unified, OpenAI-compatible endpoint for multiple LLM
|
|
9
|
+
- A unified, OpenAI-compatible endpoint for multiple LLM models
|
|
10
10
|
- Mandatory authentication via your workspace's auth (request tokens are resolved against the configured auth namespace)
|
|
11
11
|
- Per-workspace isolation: each gateway is provisioned with its own platform-assigned URL
|
|
12
12
|
- Optional CORS allow-list for browser-based clients
|
|
@@ -31,6 +31,7 @@ const aiGateway = defineAIGateway("my-aigateway", {
|
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
export default defineConfig({
|
|
34
|
+
name: "my-app",
|
|
34
35
|
aiGateways: [aiGateway],
|
|
35
36
|
});
|
|
36
37
|
```
|
|
@@ -80,6 +81,7 @@ const website = defineStaticWebSite("my-frontend", {
|
|
|
80
81
|
});
|
|
81
82
|
|
|
82
83
|
const aiGateway = defineAIGateway("my-aigateway", {
|
|
84
|
+
// Name of an auth namespace in your workspace; request tokens are resolved against it.
|
|
83
85
|
authNamespace: "default",
|
|
84
86
|
cors: [website.url],
|
|
85
87
|
});
|
|
@@ -95,3 +97,19 @@ export default defineConfig({
|
|
|
95
97
|
aiGateways: [aiGateway],
|
|
96
98
|
});
|
|
97
99
|
```
|
|
100
|
+
|
|
101
|
+
## Runtime Usage
|
|
102
|
+
|
|
103
|
+
Resolvers, executors, and workflow jobs can resolve a gateway's platform-assigned URL by name via `aigateway.get()`. The name is type-checked and autocompleted against the AI Gateways defined in `aiGateways`:
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
import { aigateway } from "@tailor-platform/sdk/runtime";
|
|
107
|
+
|
|
108
|
+
const { url } = await aigateway.get("my-aigateway");
|
|
109
|
+
|
|
110
|
+
// await aigateway.get("unknown"); // Type error — only "my-aigateway" is allowed
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Type narrowing is provided by the generated `tailor.d.ts` (the `AIGatewayNameRegistry` interface). Run `tailor generate` (or `deploy`) after defining new AI Gateways to refresh it. Before the first generate run, `get()` accepts any string.
|
|
114
|
+
|
|
115
|
+
The same URL is also shown by `tailor show`, which lists the URL of each AI Gateway defined in `aiGateways` once it has been deployed.
|
package/docs/services/auth.md
CHANGED
|
@@ -86,7 +86,7 @@ Example TailorDB type for user profile:
|
|
|
86
86
|
// tailordb/user.ts
|
|
87
87
|
import { db } from "@tailor-platform/sdk";
|
|
88
88
|
|
|
89
|
-
export const user = db.
|
|
89
|
+
export const user = db.table("User", {
|
|
90
90
|
email: db.string().unique(), // usernameField must have unique constraint
|
|
91
91
|
role: db.enum(["admin", "user"]),
|
|
92
92
|
...db.fields.timestamps(),
|
|
@@ -107,7 +107,7 @@ userProfile: {
|
|
|
107
107
|
|
|
108
108
|
**usernameField**: The field in the TailorDB type used as the username. This field must have a unique constraint (`.unique()`) since it is used to uniquely identify users.
|
|
109
109
|
|
|
110
|
-
**attributes**: Specifies which fields from the TailorDB type are used as user attributes. Set to `true` to enable a field.
|
|
110
|
+
**attributes**: Specifies which fields from the TailorDB type are used as user attributes. Set to `true` to enable a field. Machine user definitions must assign values to attributes derived from required fields; attributes derived from optional fields may be omitted (see [Machine Users](#machine-users)). Only fields with ValueOperand types (string, boolean, string[], boolean[]) can be used as attributes. The `id` field and datetime/date/time types are excluded.
|
|
111
111
|
|
|
112
112
|
## Attribute List
|
|
113
113
|
|
|
@@ -130,7 +130,7 @@ Example TailorDB type with UUID fields for attribute list:
|
|
|
130
130
|
// tailordb/user.ts
|
|
131
131
|
import { db } from "@tailor-platform/sdk";
|
|
132
132
|
|
|
133
|
-
export const user = db.
|
|
133
|
+
export const user = db.table("User", {
|
|
134
134
|
email: db.string().unique(),
|
|
135
135
|
role: db.enum(["admin", "user"]),
|
|
136
136
|
organizationId: db.uuid(), // Can be used in attributeList
|
|
@@ -139,18 +139,18 @@ export const user = db.type("User", {
|
|
|
139
139
|
});
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
The `attributeList` values are accessible via `
|
|
142
|
+
The `attributeList` values are accessible via the runtime principal's `attributeList` as a tuple:
|
|
143
143
|
|
|
144
144
|
```typescript
|
|
145
145
|
// In a resolver
|
|
146
146
|
body: (context) => {
|
|
147
|
-
const [organizationId, teamId] = context.
|
|
147
|
+
const [organizationId, teamId] = context.caller?.attributeList ?? [];
|
|
148
148
|
},
|
|
149
149
|
|
|
150
150
|
// In TailorDB hooks
|
|
151
151
|
.hooks({
|
|
152
152
|
field: {
|
|
153
|
-
create: ({
|
|
153
|
+
create: ({ invoker }) => invoker?.attributeList[0] ?? null, // First UUID from list
|
|
154
154
|
},
|
|
155
155
|
})
|
|
156
156
|
```
|
|
@@ -160,7 +160,7 @@ body: (context) => {
|
|
|
160
160
|
When you want to use machine users without defining a `userProfile`, define `machineUserAttributes` instead. These attributes are used for:
|
|
161
161
|
|
|
162
162
|
- type-safe `machineUsers[*].attributes`
|
|
163
|
-
- `
|
|
163
|
+
- runtime principal `attributes` typing (via `tailor.d.ts`)
|
|
164
164
|
|
|
165
165
|
```typescript
|
|
166
166
|
import { defineAuth, t } from "@tailor-platform/sdk";
|
|
@@ -182,7 +182,7 @@ export const auth = defineAuth("my-auth", {
|
|
|
182
182
|
To update types in `tailor.d.ts`, run:
|
|
183
183
|
|
|
184
184
|
```bash
|
|
185
|
-
tailor
|
|
185
|
+
tailor generate
|
|
186
186
|
```
|
|
187
187
|
|
|
188
188
|
## Machine Users
|
|
@@ -200,12 +200,12 @@ machineUsers: {
|
|
|
200
200
|
},
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
-
**attributes**: Values for attributes enabled in `userProfile.attributes` (or
|
|
203
|
+
**attributes**: Values for attributes enabled in `userProfile.attributes` (or fields defined in `machineUserAttributes` when `userProfile` is omitted). Attribute keys mirror the field's optionality: attributes derived from required fields must be set, while attributes derived from optional fields may be omitted. Setting an attribute to `null` or `undefined` is equivalent to omitting it — the attribute is deployed as unset. These values are accessible via the runtime principal's `attributes`:
|
|
204
204
|
|
|
205
205
|
```typescript
|
|
206
206
|
// In a resolver
|
|
207
207
|
body: (context) => {
|
|
208
|
-
const role = context.
|
|
208
|
+
const role = context.caller?.attributes.role;
|
|
209
209
|
},
|
|
210
210
|
```
|
|
211
211
|
|
|
@@ -230,25 +230,25 @@ machineUsers: {
|
|
|
230
230
|
},
|
|
231
231
|
```
|
|
232
232
|
|
|
233
|
-
These values are accessible via `
|
|
233
|
+
These values are accessible via the runtime principal's `attributeList`:
|
|
234
234
|
|
|
235
235
|
```typescript
|
|
236
236
|
// In a resolver
|
|
237
237
|
body: (context) => {
|
|
238
|
-
const [organizationId, teamId] = context.
|
|
238
|
+
const [organizationId, teamId] = context.caller?.attributeList ?? [];
|
|
239
239
|
},
|
|
240
240
|
|
|
241
241
|
// In TailorDB hooks
|
|
242
242
|
.hooks({
|
|
243
243
|
field: {
|
|
244
|
-
create: ({
|
|
244
|
+
create: ({ invoker }) => invoker?.attributes.role === "ADMIN" ? "default" : null,
|
|
245
245
|
},
|
|
246
246
|
})
|
|
247
247
|
|
|
248
248
|
// In TailorDB validate
|
|
249
249
|
.validate({
|
|
250
250
|
field: [
|
|
251
|
-
({
|
|
251
|
+
({ invoker }) => invoker?.attributes.role === "ADMIN",
|
|
252
252
|
"Only admins can set this field",
|
|
253
253
|
],
|
|
254
254
|
})
|
|
@@ -264,12 +264,12 @@ Machine users are useful for:
|
|
|
264
264
|
Get a machine user token using the CLI:
|
|
265
265
|
|
|
266
266
|
```bash
|
|
267
|
-
tailor
|
|
267
|
+
tailor machineuser token <name>
|
|
268
268
|
```
|
|
269
269
|
|
|
270
270
|
### Specifying a machine user invoker
|
|
271
271
|
|
|
272
|
-
Resolvers, executors, and `workflow.
|
|
272
|
+
Resolvers, executors, and `workflow.start()` accept an `invoker` option that chooses which machine user runs the operation. Pass the machine user name as a plain string — it is type-narrowed to the names you registered in `machineUsers`.
|
|
273
273
|
|
|
274
274
|
```typescript
|
|
275
275
|
// tailor.config.ts
|
|
@@ -284,21 +284,21 @@ export const auth = defineAuth("my-auth", {
|
|
|
284
284
|
```
|
|
285
285
|
|
|
286
286
|
```typescript
|
|
287
|
-
// resolvers/
|
|
287
|
+
// resolvers/start-workflow.ts
|
|
288
288
|
import { createResolver, t } from "@tailor-platform/sdk";
|
|
289
289
|
import myWorkflow from "../workflows/my-workflow";
|
|
290
290
|
|
|
291
291
|
export default createResolver({
|
|
292
|
-
name: "
|
|
292
|
+
name: "startMyWorkflow",
|
|
293
293
|
operation: "mutation",
|
|
294
294
|
input: {
|
|
295
295
|
id: t.string(),
|
|
296
296
|
},
|
|
297
297
|
body: async ({ input }) => {
|
|
298
|
-
//
|
|
299
|
-
const workflowRunId = await myWorkflow.
|
|
298
|
+
// Start workflow with machine user permissions
|
|
299
|
+
const workflowRunId = await myWorkflow.start(
|
|
300
300
|
{ id: input.id },
|
|
301
|
-
{
|
|
301
|
+
{ invoker: "admin-machine-user" },
|
|
302
302
|
);
|
|
303
303
|
return { workflowRunId };
|
|
304
304
|
},
|
|
@@ -308,7 +308,7 @@ export default createResolver({
|
|
|
308
308
|
});
|
|
309
309
|
```
|
|
310
310
|
|
|
311
|
-
Type narrowing is provided by the generated `tailor.d.ts` (the `MachineUserNameRegistry` interface). Run `tailor
|
|
311
|
+
Type narrowing is provided by the generated `tailor.d.ts` (the `MachineUserNameRegistry` interface). Run `tailor generate` (or `deploy`) after defining new machine users to refresh it.
|
|
312
312
|
|
|
313
313
|
## OAuth 2.0 Clients
|
|
314
314
|
|
|
@@ -348,7 +348,7 @@ oauth2Clients: {
|
|
|
348
348
|
Get OAuth2 client credentials using the CLI:
|
|
349
349
|
|
|
350
350
|
```bash
|
|
351
|
-
tailor
|
|
351
|
+
tailor oauth2client get <name>
|
|
352
352
|
```
|
|
353
353
|
|
|
354
354
|
## Identity Provider
|
|
@@ -363,21 +363,18 @@ See [IdP](./idp.md) for configuring identity providers.
|
|
|
363
363
|
|
|
364
364
|
## Auth Connections
|
|
365
365
|
|
|
366
|
-
Auth connections enable OAuth2 authentication with external providers (Google, Microsoft 365, QuickBooks, etc.) for application-to-application flows. Functions can access connection tokens at runtime via `
|
|
366
|
+
Auth connections enable OAuth2 authentication with external providers (Google, Microsoft 365, QuickBooks, etc.) for application-to-application flows. Functions can access connection tokens at runtime via `authconnection.getConnectionToken()` (from `@tailor-platform/sdk/runtime`).
|
|
367
367
|
|
|
368
368
|
For the official Tailor Platform documentation, see [AuthConnection Guide](https://docs.tailor.tech/guides/auth/authconnection).
|
|
369
369
|
|
|
370
|
-
> [!
|
|
371
|
-
>
|
|
372
|
-
> A deploy revokes and recreates the connection — discarding the token obtained via `authconnection authorize` — whenever it cannot confirm the secret is unchanged. That check relies on a hash stored locally in `.tailor-sdk/secrets-state.json`, which is gitignored and therefore not shared across machines. So a deploy from CI, a clean checkout, another developer's machine, or after deleting `.tailor-sdk/` recreates the connection and drops its token. Only repeated deploys from the same machine that still holds that state keep the token.
|
|
373
|
-
>
|
|
374
|
-
> Because of this, prefer to **create the connection and its token from the Console**. You can jump to the connections page with:
|
|
370
|
+
> [!NOTE]
|
|
371
|
+
> Deploy updates connections **in-place**, preserving the OAuth token. If the connection requires re-authorization after an update, the deploy will warn you:
|
|
375
372
|
>
|
|
376
373
|
> ```bash
|
|
377
|
-
> tailor
|
|
374
|
+
> tailor authconnection authorize --name <connection-name>
|
|
375
|
+
> # Or via the Console:
|
|
376
|
+
> tailor authconnection open
|
|
378
377
|
> ```
|
|
379
|
-
>
|
|
380
|
-
> The `connections` field in `defineAuth()` and the `authconnection authorize` flow are documented below for reference.
|
|
381
378
|
|
|
382
379
|
### Setup Flow
|
|
383
380
|
|
|
@@ -409,10 +406,10 @@ export const auth = defineAuth("my-auth", {
|
|
|
409
406
|
});
|
|
410
407
|
```
|
|
411
408
|
|
|
412
|
-
After `tailor
|
|
409
|
+
After `tailor deploy`, authorize the connection:
|
|
413
410
|
|
|
414
411
|
```bash
|
|
415
|
-
tailor
|
|
412
|
+
tailor authconnection authorize --name google-connection \
|
|
416
413
|
--scopes "openid,profile,email"
|
|
417
414
|
```
|
|
418
415
|
|
|
@@ -430,30 +427,25 @@ The authorize command opens a browser for the OAuth2 flow. The authorization cod
|
|
|
430
427
|
| `authUrl` | `string` | No | Override for the authorization endpoint. |
|
|
431
428
|
| `tokenUrl` | `string` | No | Override for the token endpoint. |
|
|
432
429
|
|
|
433
|
-
###
|
|
434
|
-
|
|
435
|
-
The SDK uses hash-based change detection for connection configs. Only connections whose configuration has changed since the last `apply` are updated (revoked and recreated). Deleting the `.tailor-sdk/` directory forces all connections to be re-sent.
|
|
430
|
+
### Retrieving Connection Tokens
|
|
436
431
|
|
|
437
|
-
|
|
438
|
-
> The secret hash lives in `.tailor-sdk/secrets-state.json`, which is gitignored and not shared across machines or CI. When that state is missing — a clean checkout, CI, another machine, or after deleting `.tailor-sdk/` — a deploy cannot confirm the secret is unchanged, so it revokes and recreates the connection and discards the token stored by `authconnection authorize`. For shared and CI workflows, manage the connection and create its token from the Console (`tailor-sdk authconnection open`) instead.
|
|
439
|
-
|
|
440
|
-
### `auth.getConnectionToken()`
|
|
441
|
-
|
|
442
|
-
`auth.getConnectionToken()` retrieves connection tokens at runtime by calling `tailor.authconnection.getConnectionToken()` internally. When `connections` is defined in `defineAuth()`, the connection name is type-checked and autocompleted against the defined keys:
|
|
432
|
+
Use `authconnection.getConnectionToken()` from `@tailor-platform/sdk/runtime` to retrieve connection tokens at runtime. The connection name is type-checked and autocompleted against the connections defined in `defineAuth()`'s `connections`:
|
|
443
433
|
|
|
444
434
|
```typescript
|
|
445
|
-
import {
|
|
435
|
+
import { authconnection } from "@tailor-platform/sdk/runtime";
|
|
446
436
|
|
|
447
437
|
// In a resolver, executor, or workflow:
|
|
448
|
-
const tokens = await
|
|
438
|
+
const tokens = await authconnection.getConnectionToken("google-connection");
|
|
449
439
|
const response = await fetch("https://www.googleapis.com/...", {
|
|
450
440
|
headers: { Authorization: `Bearer ${tokens.access_token}` },
|
|
451
441
|
});
|
|
452
442
|
|
|
453
|
-
//
|
|
443
|
+
// authconnection.getConnectionToken("unknown"); // Type error — only "google-connection" is allowed
|
|
454
444
|
```
|
|
455
445
|
|
|
456
|
-
|
|
446
|
+
Type narrowing is provided by the generated `tailor.d.ts` (the `ConnectionNameRegistry` interface). Run `tailor generate` (or `deploy`) after defining new connections to refresh it. Before the first generate, or when `connections` is not defined in `defineAuth()`, `getConnectionToken()` accepts any string — this also supports connections managed entirely via the CLI.
|
|
447
|
+
|
|
448
|
+
This keeps runtime files independent from `tailor.config.ts`.
|
|
457
449
|
|
|
458
450
|
See [Built-in Interfaces](https://docs.tailor.tech/guides/function/builtin-interfaces.html#auth-connection) for the full runtime API.
|
|
459
451
|
|
|
@@ -463,19 +455,19 @@ Auth connections can also be managed via the CLI:
|
|
|
463
455
|
|
|
464
456
|
```bash
|
|
465
457
|
# Open the connections page in the Console (recommended for creating connections/tokens)
|
|
466
|
-
tailor
|
|
458
|
+
tailor authconnection open
|
|
467
459
|
|
|
468
460
|
# Authorize (opens browser for OAuth2 flow)
|
|
469
|
-
tailor
|
|
461
|
+
tailor authconnection authorize --name google-connection
|
|
470
462
|
|
|
471
463
|
# List all connections
|
|
472
|
-
tailor
|
|
464
|
+
tailor authconnection list
|
|
473
465
|
|
|
474
466
|
# Revoke a connection
|
|
475
|
-
tailor
|
|
467
|
+
tailor authconnection revoke --name google-connection
|
|
476
468
|
```
|
|
477
469
|
|
|
478
|
-
Connection creation
|
|
470
|
+
Connection creation and updates are handled by `tailor deploy` via the config. Deploy updates connections in-place, preserving the authorized token, and warns you if an update requires re-authorization (see the note above).
|
|
479
471
|
|
|
480
472
|
See [Auth Resource Commands](../cli/auth.md) for full CLI documentation.
|
|
481
473
|
|
|
@@ -538,21 +530,21 @@ Manage Auth resources using the CLI:
|
|
|
538
530
|
|
|
539
531
|
```bash
|
|
540
532
|
# Auth connections
|
|
541
|
-
tailor
|
|
542
|
-
tailor
|
|
543
|
-
tailor
|
|
533
|
+
tailor authconnection authorize --name <name>
|
|
534
|
+
tailor authconnection list
|
|
535
|
+
tailor authconnection revoke --name <name>
|
|
544
536
|
|
|
545
537
|
# List machine users
|
|
546
|
-
tailor
|
|
538
|
+
tailor machineuser list
|
|
547
539
|
|
|
548
540
|
# Get machine user token
|
|
549
|
-
tailor
|
|
541
|
+
tailor machineuser token <name>
|
|
550
542
|
|
|
551
543
|
# List OAuth2 clients
|
|
552
|
-
tailor
|
|
544
|
+
tailor oauth2client list
|
|
553
545
|
|
|
554
546
|
# Get OAuth2 client credentials
|
|
555
|
-
tailor
|
|
547
|
+
tailor oauth2client get <name>
|
|
556
548
|
```
|
|
557
549
|
|
|
558
550
|
See [Auth Resource Commands](../cli/auth.md) for full documentation.
|