@tailor-platform/sdk 2.0.0-next.0 → 2.0.0-next.10
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 +972 -0
- 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-DArFTTJ9.mjs +3 -0
- package/dist/{application-76hhIhnJ.mjs → application-miwiXtB4.mjs} +1963 -1953
- package/dist/application-miwiXtB4.mjs.map +1 -0
- package/dist/{assert-CKfwrmCV.mjs → assert-DBxo8jPo.mjs} +1 -2
- package/dist/{assert-CKfwrmCV.mjs.map → assert-DBxo8jPo.mjs.map} +1 -1
- package/dist/authconnection-CZvi9ANm.mjs +9 -0
- package/dist/authconnection-CZvi9ANm.mjs.map +1 -0
- package/dist/{brand-DlnJ375c.mjs → brand-Eo4pLXPJ.mjs} +1 -2
- package/dist/brand-Eo4pLXPJ.mjs.map +1 -0
- 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 +34 -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 +7 -0
- package/dist/cli/commands/deploy/idp.d.mts +5 -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 +9 -0
- package/dist/cli/commands/deploy/types.d.mts +3 -0
- package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +3 -0
- package/dist/cli/commands/deploy/workflow.d.mts +4 -0
- package/dist/cli/commands/executor/get.d.mts +28 -0
- package/dist/cli/commands/executor/jobs.d.mts +122 -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 +40 -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 +26 -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/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 +74 -0
- package/dist/cli/commands/workflow/get.d.mts +30 -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 +60 -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 -5534
- package/dist/cli/lib.d.mts +90 -21180
- package/dist/cli/lib.mjs +157 -16
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/cli/main.d.mts +23 -0
- package/dist/cli/main.mjs +6583 -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 +3 -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 +2 -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 +1273 -0
- package/dist/cli/shared/config-loader.d.mts +25 -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/type-generator.d.mts +19 -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 +4223 -0
- package/dist/configure/config/index.d.mts +20 -0
- package/dist/configure/config/types.d.mts +111 -0
- package/dist/configure/index.d.mts +135 -7
- package/dist/configure/index.mjs +409 -56
- 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 +271 -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 +4 -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 +83 -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 +56 -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-s0lxhu8_.mjs → context-DYQVYWqZ.mjs} +4 -6
- package/dist/context-DYQVYWqZ.mjs.map +1 -0
- package/dist/{crashreport-BhD0y14F.mjs → crashreport-B5LqCTfF.mjs} +25 -17
- package/dist/{crashreport-BhD0y14F.mjs.map → crashreport-B5LqCTfF.mjs.map} +1 -1
- package/dist/{crashreport-D1wKBJ8N.mjs → crashreport-eI7ty7ok.mjs} +1 -2
- package/dist/{enum-constants-C7DaWeQo.mjs → enum-constants-j9QBF0cB.mjs} +1 -2
- package/dist/enum-constants-j9QBF0cB.mjs.map +1 -0
- package/dist/{errors-EsY4XO6O.mjs → errors-D7583Zz7.mjs} +18 -3
- package/dist/errors-D7583Zz7.mjs.map +1 -0
- package/dist/{file-B58Dm-2P.mjs → file-BUcmVIH2.mjs} +12 -23
- package/dist/file-BUcmVIH2.mjs.map +1 -0
- package/dist/{file-utils-BHPxPXmn.mjs → file-utils-yEiIS4nJ.mjs} +7 -8
- package/dist/file-utils-yEiIS4nJ.mjs.map +1 -0
- package/dist/{globals-ByrCoDip.mjs → globals-DQotNuwK.mjs} +32 -6
- package/dist/globals-DQotNuwK.mjs.map +1 -0
- package/dist/iconv-QWaZh0TT.mjs +38 -0
- package/dist/iconv-QWaZh0TT.mjs.map +1 -0
- package/dist/{idp-Ch95ag8h.mjs → idp-RA_swu-h.mjs} +12 -6
- package/dist/idp-RA_swu-h.mjs.map +1 -0
- package/dist/{interceptor-DOqRkCya.mjs → interceptor-e33JtsC-.mjs} +2 -3
- package/dist/interceptor-e33JtsC-.mjs.map +1 -0
- package/dist/kysely/index.d.mts +5 -7
- package/dist/kysely/index.mjs +0 -1
- package/dist/kysely/index.mjs.map +1 -1
- package/dist/{kysely-type-D1e0Vwkd.mjs → kysely-type-DqIRgDYR.mjs} +6 -6
- package/dist/kysely-type-DqIRgDYR.mjs.map +1 -0
- 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/{multiline-Cf9ODpr1.mjs → multiline-sfHpTZZK.mjs} +1 -2
- package/dist/{multiline-Cf9ODpr1.mjs.map → multiline-sfHpTZZK.mjs.map} +1 -1
- package/dist/{package-json-DcQApfPQ.mjs → package-json-8b0O9TlX.mjs} +1 -2
- package/dist/{package-json-DcQApfPQ.mjs.map → package-json-8b0O9TlX.mjs.map} +1 -1
- package/dist/package-json-Cv2Z-TqQ.mjs +3 -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 +1 -2
- package/dist/plugin/builtin/file-utils/index.d.mts +15 -1
- package/dist/plugin/builtin/file-utils/index.mjs +1 -2
- package/dist/plugin/builtin/kysely-type/index.d.mts +15 -1
- package/dist/plugin/builtin/kysely-type/index.mjs +1 -2
- package/dist/plugin/builtin/seed/index.d.mts +46 -2
- package/dist/plugin/builtin/seed/index.mjs +1 -2
- package/dist/plugin/builtin/seed/seed-type-processor.d.mts +19 -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 -119
- package/dist/plugin/index.mjs +1 -2
- 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-C7qTBDD2.mjs → register-ts-hook-BAHMwxfG.mjs} +12374 -8672
- package/dist/register-ts-hook-BAHMwxfG.mjs.map +1 -0
- package/dist/registry-BIGVUrMB.mjs +54 -0
- package/dist/registry-BIGVUrMB.mjs.map +1 -0
- package/dist/{repl-editor-CJG3sz7A.mjs → repl-editor-BCozyiNq.mjs} +7 -7
- package/dist/{repl-editor-CJG3sz7A.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 -3
- package/dist/runtime/context.d.mts +54 -2
- package/dist/runtime/context.mjs +2 -3
- package/dist/runtime/field-parse.d.mts +10 -0
- package/dist/runtime/file.d.mts +170 -2
- package/dist/runtime/file.mjs +2 -3
- package/dist/runtime/globals.d.mts +38 -53
- package/dist/runtime/globals.mjs +0 -1
- package/dist/runtime/iconv.d.mts +73 -2
- package/dist/runtime/iconv.mjs +2 -3
- package/dist/runtime/idp.d.mts +129 -2
- package/dist/runtime/idp.mjs +2 -3
- package/dist/runtime/index.d.mts +48 -9
- package/dist/runtime/index.mjs +10 -9
- 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 -3
- package/dist/runtime/types.d.mts +25 -0
- package/dist/runtime/workflow.d.mts +124 -2
- package/dist/runtime/workflow.mjs +2 -3
- package/dist/{schema-1msIhXwA.mjs → schema--xYWRGfe.mjs} +289 -231
- package/dist/schema--xYWRGfe.mjs.map +1 -0
- package/dist/{secret-file-CWzF8rry.mjs → secret-file-C3J4Gy8r.mjs} +2 -3
- package/dist/{secret-file-CWzF8rry.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/index.mjs +0 -1
- package/dist/seed/index.mjs.map +1 -1
- package/dist/seed-LUVr7jHL.mjs +444 -0
- package/dist/seed-LUVr7jHL.mjs.map +1 -0
- package/dist/{service-DMohAx8a2.mjs → service-B5WynBHQ.mjs} +3 -4
- package/dist/service-B5WynBHQ.mjs.map +1 -0
- package/dist/service-BNtPsK9Q.mjs +837 -0
- package/dist/service-BNtPsK9Q.mjs.map +1 -0
- package/dist/service-D5jn05ZI.mjs +3 -0
- package/dist/service_pb-BwZRiNug.mjs +167 -0
- package/dist/service_pb-BwZRiNug.mjs.map +1 -0
- package/dist/service_pb-wRkxUta6.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 +315 -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 +563 -0
- package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +144 -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 +3575 -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 +182 -0
- package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +861 -0
- package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +309 -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-BQbbVo2t.mjs → telemetry-BRVdwh14.mjs} +4 -5
- 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/type-source-DH_LH20p.mjs +13 -0
- package/dist/type-source-DH_LH20p.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 +209 -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 +6 -99
- package/dist/utils/test/index.mjs +60 -40
- package/dist/utils/test/index.mjs.map +1 -1
- package/dist/utils/test/mock.d.mts +86 -0
- package/dist/vitest/environment.d.mts +1 -2
- package/dist/vitest/environment.mjs +2 -3
- package/dist/vitest/environment.mjs.map +1 -1
- package/dist/vitest/index.d.mts +15 -392
- package/dist/vitest/index.mjs +1347 -9
- 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 +157 -0
- package/dist/vitest/setup.d.mts +1 -2
- package/dist/vitest/setup.mjs +2 -3
- package/dist/vitest/setup.mjs.map +1 -1
- package/dist/vitest/workflow-local.d.mts +41 -0
- package/dist/workflow-CsaQ9qK-.mjs +42 -0
- package/dist/workflow-CsaQ9qK-.mjs.map +1 -0
- package/dist/{client-CobIRHl-.mjs → workspace_resource_pb-UGK1SSn_.mjs} +55 -616
- package/dist/workspace_resource_pb-UGK1SSn_.mjs.map +1 -0
- package/docs/cli/application.md +150 -252
- package/docs/cli/auth.md +51 -295
- package/docs/cli/completion.md +4 -25
- package/docs/cli/crashreport.md +3 -63
- package/docs/cli/executor.md +72 -183
- package/docs/cli/function.md +17 -133
- 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 +71 -427
- 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 +213 -96
- package/docs/configuration.md +40 -8
- package/docs/github-actions.md +72 -24
- package/docs/migration/v2.md +1316 -0
- package/docs/multi-environment.md +29 -7
- package/docs/plugin/custom.md +6 -6
- package/docs/plugin/index.md +9 -9
- package/docs/quickstart.md +8 -7
- package/docs/runtime.md +21 -12
- package/docs/services/aigateway.md +115 -0
- package/docs/services/auth.md +70 -61
- package/docs/services/executor.md +8 -5
- package/docs/services/http-adapter.md +16 -1
- package/docs/services/idp.md +55 -2
- package/docs/services/resolver.md +63 -11
- package/docs/services/secret.md +11 -11
- package/docs/services/staticwebsite.md +8 -2
- package/docs/services/tailordb-migration.md +43 -28
- package/docs/services/tailordb.md +200 -99
- package/docs/services/workflow.md +135 -59
- package/docs/testing.md +253 -145
- package/package.json +61 -47
- package/postinstall.mjs +4 -6
- package/dist/actor-J2gJ0eK5.d.mts +0 -24
- package/dist/application-76hhIhnJ.mjs.map +0 -1
- package/dist/application-av2raLs6.mjs +0 -4
- package/dist/authconnection-BIYzEh2p.d.mts +0 -39
- package/dist/authconnection-D8SJGMpj.mjs +0 -16
- package/dist/authconnection-D8SJGMpj.mjs.map +0 -1
- package/dist/brand-DlnJ375c.mjs.map +0 -1
- package/dist/chunk-BkoGK1jX.mjs +0 -21
- 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/cli/skills.d.mts +0 -1
- package/dist/cli/skills.mjs +0 -22
- package/dist/cli/skills.mjs.map +0 -1
- package/dist/client-C68VWo4g.mjs +0 -4
- package/dist/client-CobIRHl-.mjs.map +0 -1
- package/dist/context-CUBwSBq4.d.mts +0 -68
- package/dist/context-s0lxhu8_.mjs.map +0 -1
- package/dist/enum-constants-C7DaWeQo.mjs.map +0 -1
- package/dist/env-B-g-qgE4.d.mts +0 -7
- package/dist/errors-EsY4XO6O.mjs.map +0 -1
- package/dist/field-C4zdJLW5.mjs +0 -23
- package/dist/field-C4zdJLW5.mjs.map +0 -1
- package/dist/file-B58Dm-2P.mjs.map +0 -1
- package/dist/file-BzK8z3X-.d.mts +0 -250
- package/dist/file-utils-BHPxPXmn.mjs.map +0 -1
- package/dist/globals-ByrCoDip.mjs.map +0 -1
- package/dist/iconv-DreIffeM.mjs +0 -64
- package/dist/iconv-DreIffeM.mjs.map +0 -1
- package/dist/iconv-kwrmd1U_.d.mts +0 -122
- package/dist/idp-BlBPtXJ-.d.mts +0 -160
- package/dist/idp-Ch95ag8h.mjs.map +0 -1
- package/dist/index-CLxubakC.d.mts +0 -1225
- package/dist/index-CPRnOjjt.d.mts +0 -18
- package/dist/index-CQZVJ5SX.d.mts +0 -18
- package/dist/index-CfRFkXIO.d.mts +0 -47
- package/dist/index-DRhMpdnA.d.mts +0 -46
- package/dist/index-DUupuPhZ.d.mts +0 -18
- package/dist/interceptor-DOqRkCya.mjs.map +0 -1
- package/dist/job-BpsFXPbi.mjs +0 -54
- package/dist/job-BpsFXPbi.mjs.map +0 -1
- package/dist/kysely-type-D1e0Vwkd.mjs.map +0 -1
- package/dist/logger-DpJyJvNz.mjs +0 -221
- package/dist/logger-DpJyJvNz.mjs.map +0 -1
- package/dist/mock-DMgIygjE.mjs +0 -806
- package/dist/mock-DMgIygjE.mjs.map +0 -1
- package/dist/package-json-wzO6nV9O.mjs +0 -4
- package/dist/plugin-C_FyVSdl.d.mts +0 -634
- package/dist/registry-D0uB0OrK.mjs +0 -178
- package/dist/registry-D0uB0OrK.mjs.map +0 -1
- package/dist/runtime-C7qTBDD2.mjs.map +0 -1
- package/dist/schema-1msIhXwA.mjs.map +0 -1
- package/dist/secretmanager-B9h-U_8U.mjs +0 -25
- package/dist/secretmanager-B9h-U_8U.mjs.map +0 -1
- package/dist/secretmanager-CKLB3wAQ.d.mts +0 -55
- package/dist/seed-BH2FbrPV.mjs +0 -1171
- package/dist/seed-BH2FbrPV.mjs.map +0 -1
- package/dist/service-BHQIerYh.mjs +0 -4
- package/dist/service-DMohAx8a2.mjs.map +0 -1
- package/dist/service-wI3Hvrgx.mjs +0 -460
- package/dist/service-wI3Hvrgx.mjs.map +0 -1
- package/dist/tailordb-BlBGmQK-.d.mts +0 -863
- package/dist/telemetry-BQbbVo2t.mjs.map +0 -1
- package/dist/telemetry-w92bvGdC.mjs +0 -4
- package/dist/types-2Be3wSMc.mjs +0 -5
- package/dist/types-CmzfQP_m.mjs +0 -372
- package/dist/types-CmzfQP_m.mjs.map +0 -1
- package/dist/workflow--aPbA8Uq.mjs +0 -39
- package/dist/workflow--aPbA8Uq.mjs.map +0 -1
- package/dist/workflow-CMamswkK.d.mts +0 -96
- package/dist/workflow.generated-Bf1tWylx.d.mts +0 -1416
- package/docs/generator/builtin.md +0 -257
- package/docs/generator/custom.md +0 -147
- package/docs/generator/index.md +0 -66
|
@@ -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
|
@@ -18,7 +18,7 @@ const myPlugin: Plugin = {
|
|
|
18
18
|
export default myPlugin; // Required: must be default export
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
This is required so that
|
|
21
|
+
This is required so that other plugins and generation-time hooks can use plugin-generated TailorDB types via `getGeneratedType()`.
|
|
22
22
|
|
|
23
23
|
## Plugin Interface
|
|
24
24
|
|
|
@@ -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
|
```
|
|
@@ -276,7 +276,7 @@ import type {
|
|
|
276
276
|
|
|
277
277
|
## getGeneratedType Helper
|
|
278
278
|
|
|
279
|
-
The SDK provides an async `getGeneratedType()` helper function to retrieve plugin-generated TailorDB types. This enables
|
|
279
|
+
The SDK provides an async `getGeneratedType()` helper function to retrieve plugin-generated TailorDB types. This enables plugins and other tools to work with types generated by plugins.
|
|
280
280
|
|
|
281
281
|
```typescript
|
|
282
282
|
import { join } from "node:path";
|
|
@@ -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
|
|
@@ -149,7 +149,7 @@ These hooks produce TailorDB types, resolvers, and executors that become part of
|
|
|
149
149
|
| `onResolverReady` | TailorDB types, Resolvers, Auth | Write output files |
|
|
150
150
|
| `onExecutorReady` | TailorDB types, Resolvers, Executors, Auth | Write output files |
|
|
151
151
|
|
|
152
|
-
These hooks receive all finalized data and produce output files (TypeScript code, etc.).
|
|
152
|
+
These hooks receive all finalized data and produce output files (TypeScript code, etc.). No `importPath` required.
|
|
153
153
|
|
|
154
154
|
A plugin can implement hooks from either or both phases.
|
|
155
155
|
|
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,17 +48,17 @@ 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.
|
|
52
60
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
If you want to opt into the globals explicitly (or you are migrating ahead of v2.0), add a single side-effect import anywhere in your project:
|
|
61
|
+
Importing from `@tailor-platform/sdk` does not activate the ambient `tailor.*` / `tailordb.*` declarations. If you want to opt into the globals, add a single side-effect import anywhere in your project:
|
|
56
62
|
|
|
57
63
|
```ts
|
|
58
64
|
import "@tailor-platform/sdk/runtime/globals";
|
|
@@ -68,6 +74,8 @@ Or register the entry in `tsconfig.json`:
|
|
|
68
74
|
}
|
|
69
75
|
```
|
|
70
76
|
|
|
77
|
+
The globals entry exposes the lowercase `tailordb.*` namespace only. If your project still references the removed capital-cased `Tailordb.*` namespace from `@tailor-platform/function-types`, migrate before upgrading in two steps: run `pnpm dlx @tailor-platform/sdk-codemod v2/tailordb-namespace` to rewrite `Tailordb.*` references to lowercase `tailordb.*`, then add the `import "@tailor-platform/sdk/runtime/globals"` opt-in above so the rewritten references resolve.
|
|
78
|
+
|
|
71
79
|
## Namespaces
|
|
72
80
|
|
|
73
81
|
The runtime entry re-exports the following namespaces. Detailed signatures, parameters, and return types live in the JSDoc next to each export — hover the symbol in your IDE or browse the source.
|
|
@@ -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`; `startJobFunction` is kept as an alias of `execJobFunction`)
|
|
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
|
});
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# AI Gateway
|
|
2
|
+
|
|
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
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
AI Gateway provides:
|
|
8
|
+
|
|
9
|
+
- A unified, OpenAI-compatible endpoint for multiple LLM models
|
|
10
|
+
- Mandatory authentication via your workspace's auth (request tokens are resolved against the configured auth namespace)
|
|
11
|
+
- Per-workspace isolation: each gateway is provisioned with its own platform-assigned URL
|
|
12
|
+
- Optional CORS allow-list for browser-based clients
|
|
13
|
+
- Built-in usage tracking and rate limiting (configured platform-side)
|
|
14
|
+
|
|
15
|
+
## Configuration
|
|
16
|
+
|
|
17
|
+
Configure an AI Gateway using `defineAIGateway()`:
|
|
18
|
+
|
|
19
|
+
**Definition Rules:**
|
|
20
|
+
|
|
21
|
+
- **Multiple gateways allowed**: You can define multiple AI Gateways in your config file
|
|
22
|
+
- **Configuration location**: Define in `tailor.config.ts` and add to the `aiGateways` array
|
|
23
|
+
- **Uniqueness**: Gateway names must be unique across all AI Gateways
|
|
24
|
+
- **Name pattern**: `name` must match `^[a-z0-9][a-z0-9-]{1,28}[a-z0-9]$` (lowercase alphanumeric and hyphens, 3-30 characters)
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import { defineAIGateway, defineConfig } from "@tailor-platform/sdk";
|
|
28
|
+
|
|
29
|
+
const aiGateway = defineAIGateway("my-aigateway", {
|
|
30
|
+
authNamespace: "default",
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export default defineConfig({
|
|
34
|
+
name: "my-app",
|
|
35
|
+
aiGateways: [aiGateway],
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Options
|
|
40
|
+
|
|
41
|
+
### authNamespace
|
|
42
|
+
|
|
43
|
+
The auth namespace used to resolve request tokens against your workspace's auth configuration. Must match an existing auth namespace.
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
defineAIGateway("my-aigateway", {
|
|
47
|
+
authNamespace: "default",
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### cors
|
|
52
|
+
|
|
53
|
+
Optional list of allowed origins for browser-based clients. Each entry is one of:
|
|
54
|
+
|
|
55
|
+
- `*` — any origin (any scheme, any host)
|
|
56
|
+
- `http(s)://*` — any host on the given scheme
|
|
57
|
+
- `http(s)://*.example.com` — any subdomain of `example.com` on the given scheme
|
|
58
|
+
- `http(s)://app.example.com` — an exact origin
|
|
59
|
+
|
|
60
|
+
An optional `:port` may be appended in all URL forms. Omitting `cors` (or passing `[]`) disables cross-origin access — browsers will block any cross-origin reads.
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
defineAIGateway("my-aigateway", {
|
|
64
|
+
authNamespace: "default",
|
|
65
|
+
cors: ["https://app.example.com", "https://*.example.com"],
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Complete Example
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
import {
|
|
73
|
+
defineAIGateway,
|
|
74
|
+
defineAuth,
|
|
75
|
+
defineConfig,
|
|
76
|
+
defineStaticWebSite,
|
|
77
|
+
} from "@tailor-platform/sdk";
|
|
78
|
+
|
|
79
|
+
const website = defineStaticWebSite("my-frontend", {
|
|
80
|
+
description: "Frontend application",
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
const aiGateway = defineAIGateway("my-aigateway", {
|
|
84
|
+
// Name of an auth namespace in your workspace; request tokens are resolved against it.
|
|
85
|
+
authNamespace: "default",
|
|
86
|
+
cors: [website.url],
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const auth = defineAuth("my-auth", {
|
|
90
|
+
// ...auth configuration...
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
export default defineConfig({
|
|
94
|
+
name: "my-app",
|
|
95
|
+
auth,
|
|
96
|
+
staticWebsites: [website],
|
|
97
|
+
aiGateways: [aiGateway],
|
|
98
|
+
});
|
|
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.
|