@tailor-platform/sdk 2.0.0-next.2 → 2.0.0-next.4

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.
Files changed (441) hide show
  1. package/CHANGELOG.md +511 -10
  2. package/README.md +9 -9
  3. package/agent-skills/{tailor-sdk → tailor}/SKILL.md +3 -1
  4. package/dist/aigateway-DR4Kwuik.mjs +9 -0
  5. package/dist/aigateway-DR4Kwuik.mjs.map +1 -0
  6. package/dist/application-BO4ZF8wP.mjs +3 -0
  7. package/dist/application-BX13RArL.mjs +6669 -0
  8. package/dist/application-BX13RArL.mjs.map +1 -0
  9. package/dist/authconnection-CZvi9ANm.mjs +9 -0
  10. package/dist/authconnection-CZvi9ANm.mjs.map +1 -0
  11. package/dist/brand-Eo4pLXPJ.mjs.map +1 -1
  12. package/dist/cli/cache/bundle-cache.d.mts +1 -0
  13. package/dist/cli/cache/store.d.mts +1 -0
  14. package/dist/cli/cache/types.d.mts +1 -0
  15. package/dist/cli/commands/api/api-call.d.mts +19 -0
  16. package/dist/cli/commands/api/index.d.mts +3 -0
  17. package/dist/cli/commands/deploy/aigateway.d.mts +1 -0
  18. package/dist/cli/commands/deploy/application.d.mts +1 -0
  19. package/dist/cli/commands/deploy/apply-phases.d.mts +1 -0
  20. package/dist/cli/commands/deploy/auth.d.mts +1 -0
  21. package/dist/cli/commands/deploy/deploy.d.mts +24 -0
  22. package/dist/cli/commands/deploy/executor.d.mts +1 -0
  23. package/dist/cli/commands/deploy/function-registry-types.d.mts +12 -0
  24. package/dist/cli/commands/deploy/function-registry.d.mts +2 -0
  25. package/dist/cli/commands/deploy/idp.d.mts +1 -0
  26. package/dist/cli/commands/deploy/resolver.d.mts +1 -0
  27. package/dist/cli/commands/deploy/secret-manager.d.mts +1 -0
  28. package/dist/cli/commands/deploy/staticwebsite.d.mts +1 -0
  29. package/dist/cli/commands/deploy/tailordb/index.d.mts +1 -0
  30. package/dist/cli/commands/deploy/types.d.mts +1 -0
  31. package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +1 -0
  32. package/dist/cli/commands/deploy/workflow.d.mts +1 -0
  33. package/dist/cli/commands/executor/get.d.mts +29 -0
  34. package/dist/cli/commands/executor/jobs.d.mts +123 -0
  35. package/dist/cli/commands/executor/list.d.mts +19 -0
  36. package/dist/cli/commands/executor/transform.d.mts +41 -0
  37. package/dist/cli/commands/executor/trigger.d.mts +41 -0
  38. package/dist/cli/commands/executor/webhook.d.mts +22 -0
  39. package/dist/cli/commands/function/get.d.mts +18 -0
  40. package/dist/cli/commands/function/list.d.mts +22 -0
  41. package/dist/cli/commands/function/transform.d.mts +11 -0
  42. package/dist/cli/commands/generate/options.d.mts +7 -0
  43. package/dist/cli/commands/generate/seed/bundler.d.mts +26 -0
  44. package/dist/cli/commands/generate/service.d.mts +11 -0
  45. package/dist/cli/commands/machineuser/list.d.mts +27 -0
  46. package/dist/cli/commands/machineuser/token.d.mts +22 -0
  47. package/dist/cli/commands/oauth2client/get.d.mts +18 -0
  48. package/dist/cli/commands/oauth2client/list.d.mts +20 -0
  49. package/dist/cli/commands/oauth2client/transform.d.mts +20 -0
  50. package/dist/cli/commands/organization/folder/create.d.mts +18 -0
  51. package/dist/cli/commands/organization/folder/delete.d.mts +16 -0
  52. package/dist/cli/commands/organization/folder/get.d.mts +17 -0
  53. package/dist/cli/commands/organization/folder/list.d.mts +22 -0
  54. package/dist/cli/commands/organization/folder/update.d.mts +18 -0
  55. package/dist/cli/commands/organization/get.d.mts +16 -0
  56. package/dist/cli/commands/organization/list.d.mts +15 -0
  57. package/dist/cli/commands/organization/transform.d.mts +27 -0
  58. package/dist/cli/commands/organization/tree.d.mts +25 -0
  59. package/dist/cli/commands/organization/update.d.mts +17 -0
  60. package/dist/cli/commands/remove.d.mts +16 -0
  61. package/dist/cli/commands/show.d.mts +34 -0
  62. package/dist/cli/commands/tailordb/migrate/bundler.d.mts +28 -0
  63. package/dist/cli/commands/tailordb/migrate/config.d.mts +19 -0
  64. package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +223 -0
  65. package/dist/cli/commands/tailordb/migrate/generate.d.mts +17 -0
  66. package/dist/cli/commands/tailordb/migrate/snapshot-types.d.mts +202 -0
  67. package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +98 -0
  68. package/dist/cli/commands/tailordb/migrate/types.d.mts +7 -0
  69. package/dist/cli/commands/tailordb/truncate.d.mts +19 -0
  70. package/dist/cli/commands/workflow/executions.d.mts +75 -0
  71. package/dist/cli/commands/workflow/get.d.mts +29 -0
  72. package/dist/cli/commands/workflow/list.d.mts +19 -0
  73. package/dist/cli/commands/workflow/resume.d.mts +23 -0
  74. package/dist/cli/commands/workflow/start.d.mts +61 -0
  75. package/dist/cli/commands/workflow/status.d.mts +5 -0
  76. package/dist/cli/commands/workflow/transform.d.mts +33 -0
  77. package/dist/cli/commands/workflow/wait.d.mts +16 -0
  78. package/dist/cli/commands/workflow/waiter.d.mts +23 -0
  79. package/dist/cli/commands/workspace/app/health.d.mts +18 -0
  80. package/dist/cli/commands/workspace/app/list.d.mts +22 -0
  81. package/dist/cli/commands/workspace/app/transform.d.mts +18 -0
  82. package/dist/cli/commands/workspace/create.d.mts +25 -0
  83. package/dist/cli/commands/workspace/delete.d.mts +15 -0
  84. package/dist/cli/commands/workspace/get.d.mts +17 -0
  85. package/dist/cli/commands/workspace/list.d.mts +17 -0
  86. package/dist/cli/commands/workspace/restore.d.mts +15 -0
  87. package/dist/cli/commands/workspace/transform.d.mts +16 -0
  88. package/dist/cli/commands/workspace/user/invite.d.mts +22 -0
  89. package/dist/cli/commands/workspace/user/list.d.mts +22 -0
  90. package/dist/cli/commands/workspace/user/remove.d.mts +17 -0
  91. package/dist/cli/commands/workspace/user/transform.d.mts +8 -0
  92. package/dist/cli/commands/workspace/user/update.d.mts +22 -0
  93. package/dist/cli/erd-viewer-assets/app.js +279 -36
  94. package/dist/cli/erd-viewer-assets/index.html +4 -0
  95. package/dist/cli/erd-viewer-assets/styles.css +252 -5
  96. package/dist/cli/index.d.mts +18 -3
  97. package/dist/cli/index.mjs +2237 -520
  98. package/dist/cli/index.mjs.map +1 -1
  99. package/dist/cli/lib.d.mts +81 -21107
  100. package/dist/cli/lib.mjs +7 -10
  101. package/dist/cli/lib.mjs.map +1 -1
  102. package/dist/cli/query/index.d.mts +39 -0
  103. package/dist/cli/services/application.d.mts +1 -0
  104. package/dist/cli/services/auth/service.d.mts +1 -0
  105. package/dist/cli/services/executor/service.d.mts +1 -0
  106. package/dist/cli/services/http-adapter/bundler.d.mts +1 -0
  107. package/dist/cli/services/http-adapter/service.d.mts +1 -0
  108. package/dist/cli/services/resolver/service.d.mts +1 -0
  109. package/dist/cli/services/tailordb/service.d.mts +1 -0
  110. package/dist/cli/services/workflow/bundler.d.mts +1 -0
  111. package/dist/cli/services/workflow/service.d.mts +1 -0
  112. package/dist/cli/shared/args.d.mts +13 -0
  113. package/dist/cli/shared/client.d.mts +1273 -0
  114. package/dist/cli/shared/config-loader.d.mts +26 -0
  115. package/dist/cli/shared/context.d.mts +28 -0
  116. package/dist/cli/shared/script-executor.d.mts +75 -0
  117. package/dist/cli/shared/seed-chunker.d.mts +46 -0
  118. package/dist/cli/shared/trigger-context.d.mts +1 -0
  119. package/dist/cli/shared/type-generator.d.mts +20 -0
  120. package/dist/cli/ts-hook.d.mts +4 -0
  121. package/dist/cli/ts-hook.mjs +333 -0
  122. package/dist/completion/zsh-worker.zsh +1531 -1131
  123. package/dist/configure/config/index.d.mts +21 -0
  124. package/dist/configure/config/types.d.mts +105 -0
  125. package/dist/configure/index.d.mts +124 -9
  126. package/dist/configure/index.mjs +136 -23
  127. package/dist/configure/index.mjs.map +1 -1
  128. package/dist/configure/services/aigateway/index.d.mts +17 -0
  129. package/dist/configure/services/aigateway/types.d.mts +11 -0
  130. package/dist/configure/services/auth/index.d.mts +34 -0
  131. package/dist/configure/services/auth/types.d.mts +172 -0
  132. package/dist/configure/services/executor/executor.d.mts +81 -0
  133. package/dist/configure/services/executor/index.d.mts +8 -0
  134. package/dist/configure/services/executor/operation.d.mts +45 -0
  135. package/dist/configure/services/executor/trigger/event.d.mts +272 -0
  136. package/dist/configure/services/executor/trigger/index.d.mts +8 -0
  137. package/dist/configure/services/executor/trigger/schedule.d.mts +25 -0
  138. package/dist/configure/services/executor/trigger/webhook.d.mts +44 -0
  139. package/dist/configure/services/executor/types.d.mts +2 -0
  140. package/dist/configure/services/http-adapter/http-adapter.d.mts +125 -0
  141. package/dist/configure/services/http-adapter/index.d.mts +2 -0
  142. package/dist/configure/services/idp/index.d.mts +64 -0
  143. package/dist/configure/services/idp/permission.d.mts +80 -0
  144. package/dist/configure/services/idp/types.d.mts +20 -0
  145. package/dist/configure/services/index.d.mts +34 -0
  146. package/dist/configure/services/resolver/index.d.mts +5 -0
  147. package/dist/configure/services/resolver/resolver.d.mts +75 -0
  148. package/dist/configure/services/resolver/types.d.mts +6 -0
  149. package/dist/configure/services/secrets/index.d.mts +38 -0
  150. package/dist/configure/services/secrets/types.d.mts +11 -0
  151. package/dist/configure/services/staticwebsite/index.d.mts +19 -0
  152. package/dist/configure/services/staticwebsite/types.d.mts +11 -0
  153. package/dist/configure/services/tailordb/index.d.mts +4 -0
  154. package/dist/configure/services/tailordb/permission.d.mts +119 -0
  155. package/dist/configure/services/tailordb/schema.d.mts +456 -0
  156. package/dist/configure/services/tailordb/types.d.mts +149 -0
  157. package/dist/configure/services/workflow/execution-policy.d.mts +71 -0
  158. package/dist/configure/services/workflow/execution-policy.types.d.mts +104 -0
  159. package/dist/configure/services/workflow/index.d.mts +8 -0
  160. package/dist/configure/services/workflow/job.d.mts +84 -0
  161. package/dist/configure/services/workflow/types.d.mts +2 -0
  162. package/dist/configure/services/workflow/wait-point.d.mts +73 -0
  163. package/dist/configure/services/workflow/workflow.d.mts +54 -0
  164. package/dist/configure/types/aigateway-name.d.mts +12 -0
  165. package/dist/configure/types/connection-name.d.mts +12 -0
  166. package/dist/configure/types/field-runtime.d.mts +17 -0
  167. package/dist/configure/types/field.d.mts +9 -0
  168. package/dist/configure/types/field.types.d.mts +109 -0
  169. package/dist/configure/types/idp-name.d.mts +12 -0
  170. package/dist/configure/types/index.d.mts +4 -0
  171. package/dist/configure/types/machine-user.d.mts +2 -0
  172. package/dist/configure/types/type.d.mts +82 -0
  173. package/dist/{context-Bd266-ru.mjs → context-DYQVYWqZ.mjs} +4 -5
  174. package/dist/context-DYQVYWqZ.mjs.map +1 -0
  175. package/dist/{crashreport-DFq-vsU0.mjs → crashreport-Cg-pqRJV.mjs} +6 -6
  176. package/dist/{crashreport-DFq-vsU0.mjs.map → crashreport-Cg-pqRJV.mjs.map} +1 -1
  177. package/dist/{crashreport-BMWcxeSE.mjs → crashreport-D3RjuSYb.mjs} +1 -1
  178. package/dist/enum-constants-j9QBF0cB.mjs.map +1 -1
  179. package/dist/{errors-Dtf2WPaW.mjs → errors-118wUDRr.mjs} +2 -2
  180. package/dist/errors-118wUDRr.mjs.map +1 -0
  181. package/dist/field-runtime-CAnh_oow.mjs +183 -0
  182. package/dist/field-runtime-CAnh_oow.mjs.map +1 -0
  183. package/dist/{file-BbdFGdMV.mjs → file-BUcmVIH2.mjs} +12 -14
  184. package/dist/file-BUcmVIH2.mjs.map +1 -0
  185. package/dist/{file-utils-CYZnO1pX.mjs → file-utils-yEiIS4nJ.mjs} +2 -2
  186. package/dist/file-utils-yEiIS4nJ.mjs.map +1 -0
  187. package/dist/{globals-Cf0sxIt8.mjs → globals-BjhJJ2dN.mjs} +5 -47
  188. package/dist/globals-BjhJJ2dN.mjs.map +1 -0
  189. package/dist/iconv-QWaZh0TT.mjs +38 -0
  190. package/dist/iconv-QWaZh0TT.mjs.map +1 -0
  191. package/dist/{idp-BDbK5gjm.mjs → idp-RA_swu-h.mjs} +12 -5
  192. package/dist/idp-RA_swu-h.mjs.map +1 -0
  193. package/dist/{interceptor-D-q1rvRl.mjs → interceptor-e33JtsC-.mjs} +2 -2
  194. package/dist/interceptor-e33JtsC-.mjs.map +1 -0
  195. package/dist/kysely/index.d.mts +2 -3
  196. package/dist/{kysely-type-DR8uzZTA.mjs → kysely-type-D-zflMGf.mjs} +2 -2
  197. package/dist/{kysely-type-DR8uzZTA.mjs.map → kysely-type-D-zflMGf.mjs.map} +1 -1
  198. package/dist/{logger-CxF-Ex5d.mjs → logger-BEiZZ3qT.mjs} +3 -3
  199. package/dist/{logger-CxF-Ex5d.mjs.map → logger-BEiZZ3qT.mjs.map} +1 -1
  200. package/dist/parser/service/auth/index.d.mts +1 -0
  201. package/dist/parser/service/auth/schema.d.mts +1 -0
  202. package/dist/parser/service/http-adapter/index.d.mts +1 -0
  203. package/dist/parser/service/http-adapter/schema.d.mts +1 -0
  204. package/dist/parser/service/idp/types.d.mts +4 -0
  205. package/dist/parser/service/tailordb/types.d.mts +126 -0
  206. package/dist/platform-serialize-RoRtBS0v.mjs +46 -0
  207. package/dist/platform-serialize-RoRtBS0v.mjs.map +1 -0
  208. package/dist/plugin/builtin/enum-constants/index.d.mts +16 -1
  209. package/dist/plugin/builtin/file-utils/index.d.mts +16 -1
  210. package/dist/plugin/builtin/file-utils/index.mjs +1 -1
  211. package/dist/plugin/builtin/kysely-type/index.d.mts +16 -1
  212. package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
  213. package/dist/plugin/builtin/seed/index.d.mts +45 -1
  214. package/dist/plugin/builtin/seed/index.mjs +1 -1
  215. package/dist/plugin/get-generated-type.d.mts +17 -0
  216. package/dist/plugin/index.d.mts +3 -118
  217. package/dist/plugin/index.mjs +1 -1
  218. package/dist/plugin/index.mjs.map +1 -1
  219. package/dist/plugin/manager.d.mts +1 -0
  220. package/dist/plugin/types.d.mts +243 -0
  221. package/dist/plugin/with-context.d.mts +102 -0
  222. package/dist/{runtime-CY4JvrDj.mjs → register-ts-hook-BM1caLT0.mjs} +4128 -2744
  223. package/dist/register-ts-hook-BM1caLT0.mjs.map +1 -0
  224. package/dist/{registry-DH4m7eYo.mjs → registry-BSbq6SPo.mjs} +4 -3
  225. package/dist/registry-BSbq6SPo.mjs.map +1 -0
  226. package/dist/{repl-editor-DmGr9zMw.mjs → repl-editor-BCozyiNq.mjs} +6 -5
  227. package/dist/{repl-editor-DmGr9zMw.mjs.map → repl-editor-BCozyiNq.mjs.map} +1 -1
  228. package/dist/resource_pb-BRv7AMXK.mjs +49 -0
  229. package/dist/resource_pb-BRv7AMXK.mjs.map +1 -0
  230. package/dist/runtime/aigateway.d.mts +26 -0
  231. package/dist/runtime/aigateway.mjs +3 -0
  232. package/dist/runtime/authconnection.d.mts +22 -2
  233. package/dist/runtime/authconnection.mjs +2 -2
  234. package/dist/runtime/context.d.mts +55 -2
  235. package/dist/runtime/context.mjs +2 -2
  236. package/dist/runtime/file.d.mts +170 -2
  237. package/dist/runtime/file.mjs +2 -2
  238. package/dist/runtime/globals.d.mts +31 -19
  239. package/dist/runtime/iconv.d.mts +73 -2
  240. package/dist/runtime/iconv.mjs +2 -2
  241. package/dist/runtime/idp.d.mts +129 -2
  242. package/dist/runtime/idp.mjs +2 -2
  243. package/dist/runtime/index.d.mts +47 -9
  244. package/dist/runtime/index.mjs +9 -8
  245. package/dist/runtime/secretmanager.d.mts +41 -2
  246. package/dist/runtime/secretmanager.mjs +2 -2
  247. package/dist/{types-BZ7QKVE8.d.mts → runtime/types.d.mts} +4 -5
  248. package/dist/runtime/workflow.d.mts +113 -2
  249. package/dist/runtime/workflow.mjs +2 -2
  250. package/dist/{schema-Dtw9Orye.mjs → schema-C4LYbXVG.mjs} +21 -186
  251. package/dist/schema-C4LYbXVG.mjs.map +1 -0
  252. package/dist/{secret-file-VSVGy1V0.mjs → secret-file-aoNXJmKa.mjs} +3 -3
  253. package/dist/secret-file-aoNXJmKa.mjs.map +1 -0
  254. package/dist/secretmanager-Bd45j7an.mjs +98 -0
  255. package/dist/secretmanager-Bd45j7an.mjs.map +1 -0
  256. package/dist/secretmanager-CYlpffsz.mjs +13 -0
  257. package/dist/secretmanager-CYlpffsz.mjs.map +1 -0
  258. package/dist/seed/index.d.mts +1 -2
  259. package/dist/{seed-izIEyP3z.mjs → seed-CRSQJI_z.mjs} +14 -3
  260. package/dist/seed-CRSQJI_z.mjs.map +1 -0
  261. package/dist/service-CkIwEctX.mjs +3 -0
  262. package/dist/{service-DU1mVzri2.mjs → service-DeZeYa06.mjs} +3 -3
  263. package/dist/service-DeZeYa06.mjs.map +1 -0
  264. package/dist/{service-DjyqbCaJ.mjs → service-ufH7sS8o.mjs} +396 -58
  265. package/dist/service-ufH7sS8o.mjs.map +1 -0
  266. package/dist/service_pb-B2FF59sP.mjs +3 -0
  267. package/dist/service_pb-B5w9rjPY.mjs +955 -0
  268. package/dist/service_pb-B5w9rjPY.mjs.map +1 -0
  269. package/dist/tailor-proto/src/tailor/v1/aigateway_pb.d.mts +204 -0
  270. package/dist/tailor-proto/src/tailor/v1/aigateway_resource_pb.d.mts +58 -0
  271. package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +316 -0
  272. package/dist/tailor-proto/src/tailor/v1/application_resource_pb.d.mts +161 -0
  273. package/dist/tailor-proto/src/tailor/v1/auth_pb.d.mts +2070 -0
  274. package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +861 -0
  275. package/dist/tailor-proto/src/tailor/v1/events_pb.d.mts +112 -0
  276. package/dist/tailor-proto/src/tailor/v1/events_resource_pb.d.mts +69 -0
  277. package/dist/tailor-proto/src/tailor/v1/executor_pb.d.mts +439 -0
  278. package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +564 -0
  279. package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +145 -0
  280. package/dist/tailor-proto/src/tailor/v1/function_registry_pb.d.mts +451 -0
  281. package/dist/tailor-proto/src/tailor/v1/function_resource_pb.d.mts +192 -0
  282. package/dist/tailor-proto/src/tailor/v1/http_adapter_resource_pb.d.mts +50 -0
  283. package/dist/tailor-proto/src/tailor/v1/idp_pb.d.mts +407 -0
  284. package/dist/tailor-proto/src/tailor/v1/idp_resource_pb.d.mts +430 -0
  285. package/dist/tailor-proto/src/tailor/v1/metadata_pb.d.mts +73 -0
  286. package/dist/tailor-proto/src/tailor/v1/metadata_resource_pb.d.mts +17 -0
  287. package/dist/tailor-proto/src/tailor/v1/meter_pb.d.mts +309 -0
  288. package/dist/tailor-proto/src/tailor/v1/pipeline_pb.d.mts +591 -0
  289. package/dist/tailor-proto/src/tailor/v1/pipeline_resource_pb.d.mts +330 -0
  290. package/dist/tailor-proto/src/tailor/v1/resource_pb.d.mts +113 -0
  291. package/dist/tailor-proto/src/tailor/v1/secret_manager_pb.d.mts +346 -0
  292. package/dist/tailor-proto/src/tailor/v1/secret_manager_resource_pb.d.mts +54 -0
  293. package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +3576 -0
  294. package/dist/tailor-proto/src/tailor/v1/stateflow_pb.d.mts +187 -0
  295. package/dist/tailor-proto/src/tailor/v1/stateflow_resource_pb.d.mts +29 -0
  296. package/dist/tailor-proto/src/tailor/v1/staticwebsite_pb.d.mts +429 -0
  297. package/dist/tailor-proto/src/tailor/v1/staticwebsite_resource_pb.d.mts +90 -0
  298. package/dist/tailor-proto/src/tailor/v1/tailordb_pb.d.mts +684 -0
  299. package/dist/tailor-proto/src/tailor/v1/tailordb_resource_pb.d.mts +797 -0
  300. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_pb.d.mts +330 -0
  301. package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +183 -0
  302. package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +862 -0
  303. package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +310 -0
  304. package/dist/tailor-proto/src/tailor/v1/workspace_pb.d.mts +2015 -0
  305. package/dist/tailor-proto/src/tailor/v1/workspace_resource_pb.d.mts +483 -0
  306. package/dist/{telemetry-CdqJEzkj.mjs → telemetry-BRVdwh14.mjs} +3 -3
  307. package/dist/telemetry-BRVdwh14.mjs.map +1 -0
  308. package/dist/telemetry-CkbkeJxl.mjs +3 -0
  309. package/dist/types/aigateway.generated.d.mts +9 -0
  310. package/dist/types/app-config.generated.d.mts +4 -0
  311. package/dist/types/auth-connection.generated.d.mts +20 -0
  312. package/dist/types/auth.generated.d.mts +145 -0
  313. package/dist/types/executor.generated.d.mts +177 -0
  314. package/dist/types/helpers.d.mts +39 -0
  315. package/dist/types/http-adapter.generated.d.mts +17 -0
  316. package/dist/{workflow.generated-ClEjBYhm.d.mts → types/idp.generated.d.mts} +98 -185
  317. package/dist/types/resolver.generated.d.mts +39 -0
  318. package/dist/types/secrets.generated.d.mts +14 -0
  319. package/dist/types/staticwebsite.generated.d.mts +10 -0
  320. package/dist/{types-CdcQh4Z2.d.mts → types/tailordb.generated.d.mts} +2 -287
  321. package/dist/types/workflow.generated.d.mts +12 -0
  322. package/dist/types-C-lQ4se3.mjs +4 -0
  323. package/dist/types-CXF2OYdR.mjs +199 -0
  324. package/dist/types-CXF2OYdR.mjs.map +1 -0
  325. package/dist/utils/test/index.d.mts +5 -89
  326. package/dist/utils/test/index.mjs.map +1 -1
  327. package/dist/utils/test/mock.d.mts +87 -0
  328. package/dist/vitest/environment.d.mts +1 -2
  329. package/dist/vitest/environment.mjs +2 -2
  330. package/dist/vitest/environment.mjs.map +1 -1
  331. package/dist/vitest/index.d.mts +12 -428
  332. package/dist/vitest/index.mjs +740 -9
  333. package/dist/vitest/index.mjs.map +1 -1
  334. package/dist/vitest/mock-kysely.d.mts +62 -0
  335. package/dist/vitest/mock.d.mts +9 -0
  336. package/dist/vitest/mocks/aigateway.d.mts +30 -0
  337. package/dist/vitest/mocks/authconnection.d.mts +28 -0
  338. package/dist/vitest/mocks/file.d.mts +41 -0
  339. package/dist/vitest/mocks/iconv.d.mts +27 -0
  340. package/dist/vitest/mocks/idp.d.mts +44 -0
  341. package/dist/vitest/mocks/secretmanager.d.mts +33 -0
  342. package/dist/vitest/mocks/tailordb.d.mts +71 -0
  343. package/dist/vitest/mocks/workflow.d.mts +117 -0
  344. package/dist/vitest/setup.d.mts +1 -2
  345. package/dist/vitest/setup.mjs +2 -2
  346. package/dist/vitest/workflow-local.d.mts +40 -0
  347. package/dist/workflow-GNuSnsTx.mjs +22 -0
  348. package/dist/workflow-GNuSnsTx.mjs.map +1 -0
  349. package/docs/cli/application.md +98 -250
  350. package/docs/cli/auth.md +51 -295
  351. package/docs/cli/completion.md +1 -25
  352. package/docs/cli/crashreport.md +3 -61
  353. package/docs/cli/executor.md +23 -187
  354. package/docs/cli/function.md +14 -130
  355. package/docs/cli/organization.md +11 -221
  356. package/docs/cli/plugin.md +29 -0
  357. package/docs/cli/query.md +2 -22
  358. package/docs/cli/secret.md +71 -251
  359. package/docs/cli/setup.md +137 -41
  360. package/docs/cli/skills.md +50 -39
  361. package/docs/cli/staticwebsite.md +32 -180
  362. package/docs/cli/tailordb.md +97 -323
  363. package/docs/cli/upgrade.md +2 -22
  364. package/docs/cli/user.md +78 -247
  365. package/docs/cli/workflow.md +44 -203
  366. package/docs/cli/workspace.md +165 -538
  367. package/docs/cli-reference.md +167 -67
  368. package/docs/configuration.md +34 -4
  369. package/docs/github-actions.md +46 -19
  370. package/docs/migration/v2.md +397 -26
  371. package/docs/multi-environment.md +29 -7
  372. package/docs/plugin/custom.md +4 -4
  373. package/docs/plugin/index.md +8 -8
  374. package/docs/quickstart.md +8 -7
  375. package/docs/runtime.md +9 -3
  376. package/docs/services/aigateway.md +18 -2
  377. package/docs/services/auth.md +34 -42
  378. package/docs/services/http-adapter.md +16 -1
  379. package/docs/services/idp.md +55 -2
  380. package/docs/services/resolver.md +2 -2
  381. package/docs/services/secret.md +11 -11
  382. package/docs/services/staticwebsite.md +8 -2
  383. package/docs/services/tailordb-migration.md +25 -23
  384. package/docs/services/tailordb.md +55 -32
  385. package/docs/services/workflow.md +92 -14
  386. package/docs/testing.md +49 -3
  387. package/package.json +42 -31
  388. package/postinstall.mjs +4 -6
  389. package/dist/application-Dtqap5jM.mjs +0 -3
  390. package/dist/application-XuMWK4eq.mjs +0 -7257
  391. package/dist/application-XuMWK4eq.mjs.map +0 -1
  392. package/dist/authconnection-D2MhtTN5.mjs +0 -15
  393. package/dist/authconnection-D2MhtTN5.mjs.map +0 -1
  394. package/dist/authconnection-DvUQAjQS.d.mts +0 -39
  395. package/dist/context-Bd266-ru.mjs.map +0 -1
  396. package/dist/context-C2lEi9uw.d.mts +0 -47
  397. package/dist/errors-Dtf2WPaW.mjs.map +0 -1
  398. package/dist/field-DOsJCPFa.mjs +0 -22
  399. package/dist/field-DOsJCPFa.mjs.map +0 -1
  400. package/dist/file-BbdFGdMV.mjs.map +0 -1
  401. package/dist/file-Dq3NIt_F.d.mts +0 -211
  402. package/dist/file-utils-CYZnO1pX.mjs.map +0 -1
  403. package/dist/globals-Cf0sxIt8.mjs.map +0 -1
  404. package/dist/http-adapter.generated-DFsXDdm5.d.mts +0 -581
  405. package/dist/iconv-Co-TOPuH.d.mts +0 -122
  406. package/dist/iconv-D2vi8G36.mjs +0 -63
  407. package/dist/iconv-D2vi8G36.mjs.map +0 -1
  408. package/dist/idp-BDbK5gjm.mjs.map +0 -1
  409. package/dist/idp-DrhVrLmV.d.mts +0 -160
  410. package/dist/index-BI-_j9Z3.d.mts +0 -1013
  411. package/dist/index-C4JirJH8.d.mts +0 -18
  412. package/dist/index-CZfWhr0a.d.mts +0 -18
  413. package/dist/index-Cg8VKAdN.d.mts +0 -46
  414. package/dist/index-DYRjoLXD.d.mts +0 -47
  415. package/dist/index-lFpcjHPU.d.mts +0 -201
  416. package/dist/index-nW7hE6oE.d.mts +0 -18
  417. package/dist/interceptor-D-q1rvRl.mjs.map +0 -1
  418. package/dist/mock-FPxmnt-y.mjs +0 -759
  419. package/dist/mock-FPxmnt-y.mjs.map +0 -1
  420. package/dist/registry-DH4m7eYo.mjs.map +0 -1
  421. package/dist/rolldown-runtime-DXywRVcq.mjs +0 -20
  422. package/dist/runtime-CY4JvrDj.mjs.map +0 -1
  423. package/dist/schema-Dtw9Orye.mjs.map +0 -1
  424. package/dist/secret-file-VSVGy1V0.mjs.map +0 -1
  425. package/dist/secretmanager-B3n4KHfm.d.mts +0 -55
  426. package/dist/secretmanager-BVxw3ih_.mjs +0 -24
  427. package/dist/secretmanager-BVxw3ih_.mjs.map +0 -1
  428. package/dist/seed-izIEyP3z.mjs.map +0 -1
  429. package/dist/service-DCqIWibD.mjs +0 -3
  430. package/dist/service-DU1mVzri2.mjs.map +0 -1
  431. package/dist/service-DjyqbCaJ.mjs.map +0 -1
  432. package/dist/telemetry-CdqJEzkj.mjs.map +0 -1
  433. package/dist/telemetry-ClwW5ohF.mjs +0 -3
  434. package/dist/types-74etvaxy.mjs +0 -4
  435. package/dist/types-BDRml5C3.d.mts +0 -574
  436. package/dist/types-BQijbo4m.mjs +0 -371
  437. package/dist/types-BQijbo4m.mjs.map +0 -1
  438. package/dist/types-BX4q6Mo6.d.mts +0 -339
  439. package/dist/workflow-BOmaZwwG.mjs +0 -43
  440. package/dist/workflow-BOmaZwwG.mjs.map +0 -1
  441. package/dist/workflow-BVy4XWjS.d.mts +0 -101
@@ -12,7 +12,7 @@ For the CLI command reference, see [`tailordb migration`](../cli/tailordb.md#tai
12
12
 
13
13
  - **Local snapshot–based diff detection** — each migration is generated by diffing your current type definitions against the previous snapshot stored in `migrations/<NNNN>/`.
14
14
  - **Transaction-wrapped data migrations** — each `migrate.ts` script runs inside a database transaction on the platform; if the script throws, all changes in that migration roll back.
15
- - **Automatic execution during `apply`** — `tailor-sdk deploy` detects pending migrations, runs the two-stage type update (pre-migration → script → post-migration), and updates the migration checkpoint label.
15
+ - **Automatic execution during `apply`** — `tailor deploy` detects pending migrations, runs the two-stage type update (pre-migration → script → post-migration), and updates the migration checkpoint label.
16
16
  - **Type-safe scripts** — the generated `db.ts` provides Kysely types that reflect the schema state **before** the migration runs, so transformations are written against the actual data shape.
17
17
 
18
18
  **Files in `migrations/`**
@@ -42,24 +42,24 @@ When you start with no `migrations/` directory:
42
42
  2. Define your initial types in `tailordb/`.
43
43
  3. Generate the initial migration:
44
44
  ```bash
45
- tailor-sdk tailordb migration generate
45
+ tailor tailordb migration generate
46
46
  ```
47
47
  This creates `migrations/0000/schema.json` from your current types.
48
- 4. Run `tailor-sdk deploy`. The migration label is set to `0000` on the deployed namespace.
48
+ 4. Run `tailor deploy`. The migration label is set to `0000` on the deployed namespace.
49
49
 
50
50
  ### Adding migrations to an existing project
51
51
 
52
52
  If you already have a deployed workspace whose schema matches your local type definitions:
53
53
 
54
54
  1. Add the `migration` block to `tailor.config.ts`.
55
- 2. Run `tailor-sdk tailordb migration generate` to create `0000/schema.json` from current local types.
56
- 3. Run `tailor-sdk deploy`. Because remote schema already matches, no script runs; only the migration label is set.
55
+ 2. Run `tailor tailordb migration generate` to create `0000/schema.json` from current local types.
56
+ 3. Run `tailor deploy`. Because remote schema already matches, no script runs; only the migration label is set.
57
57
 
58
58
  If your local types and remote schema have **diverged**, reconcile them before introducing migrations — either update local types to match remote, or accept that the first non-`0000` migration will reflect that gap.
59
59
 
60
60
  ### Resetting
61
61
 
62
- `tailor-sdk tailordb migration generate --init` deletes the existing `migrations/` directory and starts over from `0000`. Use this only on projects that are not yet deployed, or when you have decided to re-baseline (the next `apply` will see all migrations as new and require coordination — see [Resetting a deployed project](#resetting-a-deployed-project)).
62
+ `tailor tailordb migration generate --init` deletes the existing `migrations/` directory and starts over from `0000`. Use this only on projects that are not yet deployed, or when you have decided to re-baseline (the next `apply` will see all migrations as new and require coordination — see [Resetting a deployed project](#resetting-a-deployed-project)).
63
63
 
64
64
  ## Migration Workflow
65
65
 
@@ -69,7 +69,7 @@ A typical change cycle:
69
69
 
70
70
  ```typescript
71
71
  // tailordb/user.ts
72
- export const user = db.type("User", {
72
+ export const user = db.table("User", {
73
73
  name: db.string(),
74
74
  email: db.string(), // ← new required field
75
75
  ...db.fields.timestamps(),
@@ -79,7 +79,7 @@ A typical change cycle:
79
79
  2. **Generate the migration.**
80
80
 
81
81
  ```bash
82
- tailor-sdk tailordb migration generate --name "add email to user"
82
+ tailor tailordb migration generate --name "add email to user"
83
83
  ```
84
84
 
85
85
  Output:
@@ -109,7 +109,7 @@ A typical change cycle:
109
109
 
110
110
  4. **Apply.**
111
111
  ```bash
112
- tailor-sdk deploy
112
+ tailor deploy
113
113
  ```
114
114
  The pre-migration phase relaxes the new field to optional, the script runs and populates values, then the post-migration phase enforces `required: true`.
115
115
 
@@ -126,10 +126,10 @@ Warning: data loss possible:
126
126
  No `migrate.ts` is generated automatically because the schema change itself is non-breaking, but the existing data is dropped during the post-migration phase. If you need to preserve or transform that data first (for example, copy a column into another table before it disappears), add a script with:
127
127
 
128
128
  ```bash
129
- tailor-sdk tailordb migration script 0002
129
+ tailor tailordb migration script 0002
130
130
  ```
131
131
 
132
- This writes `migrations/0002/migrate.ts` and `migrations/0002/db.ts` next to the existing `diff.json`. The removed field stays readable inside `migrate.ts` because the pre-migration phase keeps it on the type until the script finishes (see [Per-migration phases](#per-migration-phases)). The next `tailor-sdk deploy` runs the script automatically — `migrate.ts` is executed whenever the file exists on disk, regardless of whether the diff itself required it.
132
+ This writes `migrations/0002/migrate.ts` and `migrations/0002/db.ts` next to the existing `diff.json`. The removed field stays readable inside `migrate.ts` because the pre-migration phase keeps it on the type until the script finishes (see [Per-migration phases](#per-migration-phases)). The next `tailor deploy` runs the script automatically — `migrate.ts` is executed whenever the file exists on disk, regardless of whether the diff itself required it.
133
133
 
134
134
  ## Configuration
135
135
 
@@ -245,7 +245,7 @@ The same pattern works for switching between scalar and array.
245
245
 
246
246
  ## Automatic Migration Execution
247
247
 
248
- When you run `tailor-sdk deploy`, the SDK detects pending migrations (anything past the current `sdk-migration` label on the deployed namespace) and runs them in order before continuing with the rest of the apply.
248
+ When you run `tailor deploy`, the SDK detects pending migrations (anything past the current `sdk-migration` label on the deployed namespace) and runs them in order before continuing with the rest of the apply.
249
249
 
250
250
  ### Per-migration phases
251
251
 
@@ -275,10 +275,12 @@ Namespace: tailordb
275
275
  - Field 'email': required: remote=false, expected=true
276
276
  ```
277
277
 
278
+ The error also points you at `migration status`, `migration generate`, `migration sync`, and `migration set` — see [Remote schema drift detected](#remote-schema-drift-detected) for which one applies.
279
+
278
280
  To bypass both checks (not recommended outside of recovery scenarios):
279
281
 
280
282
  ```bash
281
- tailor-sdk deploy --no-schema-check
283
+ tailor deploy --no-schema-check
282
284
  ```
283
285
 
284
286
  ### Example output
@@ -297,7 +299,7 @@ tailor-sdk deploy --no-schema-check
297
299
 
298
300
  ## `migration set` Semantics
299
301
 
300
- `tailor-sdk tailordb migration set <N>` updates the `sdk-migration` label on the deployed namespace's metadata. **It does not modify any data or schema.** It only changes which migrations the next `apply` will consider pending.
302
+ `tailor tailordb migration set <N>` updates the `sdk-migration` label on the deployed namespace's metadata. **It does not modify any data or schema.** It only changes which migrations the next `apply` will consider pending.
301
303
 
302
304
  | Movement | Effect on next `apply` | Effect on data |
303
305
  | -------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------- |
@@ -314,7 +316,7 @@ Use cases:
314
316
 
315
317
  ## `migration sync` Semantics
316
318
 
317
- `tailor-sdk tailordb migration sync <N>` reconstructs the schema snapshot at migration `N` from the working tree's migration history and **overwrites the remote schema to match it**, then sets the `sdk-migration` label to `N`. Unlike `migration set`, it changes the remote schema as well as the bookkeeping. Like `set`, it never runs `migrate.ts` scripts itself — it only changes what the next `apply` considers pending:
319
+ `tailor tailordb migration sync <N>` reconstructs the schema snapshot at migration `N` from the working tree's migration history and **overwrites the remote schema to match it**, then sets the `sdk-migration` label to `N`. Unlike `migration set`, it changes the remote schema as well as the bookkeeping. Like `set`, it never runs `migrate.ts` scripts itself — it only changes what the next `apply` considers pending:
318
320
 
319
321
  | Movement | Effect on next `apply` | Effect on data |
320
322
  | -------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
@@ -325,7 +327,7 @@ Before anything is sent to the remote, `sync` verifies that replaying the full m
325
327
 
326
328
  Because syncing backward causes already-applied scripts to re-execute on the next deploy, **write `migrate.ts` scripts to be idempotent** (see [Performance and Large Tables](#performance-and-large-tables) for resumable `where` clauses).
327
329
 
328
- The main use case is recovering from drift after a `deploy --no-schema-check` from an older revision: instead of checking out that revision, run `migration sync <N>` to restore the remote to a known snapshot, then `tailor-sdk deploy` to apply the remaining migrations from the working tree.
330
+ The main use case is recovering from drift after a `deploy --no-schema-check` from an older revision: instead of checking out that revision, run `migration sync <N>` to restore the remote to a known snapshot, then `tailor deploy` to apply the remaining migrations from the working tree.
329
331
 
330
332
  ## Team Workflow and CI/CD
331
333
 
@@ -340,7 +342,7 @@ Migration numbers are assigned sequentially, so two developers branching off the
340
342
  ### CI / CD
341
343
 
342
344
  - For non-interactive environments, pass `--yes` to `migration generate` and `--yes` to `apply`. `apply` runs migrations automatically when the `migrations/` directory is configured.
343
- - Run `tailor-sdk tailordb migration status` in CI to detect "developer forgot to commit a migration" situations early. The exit code is non-zero only on errors, so check the output.
345
+ - Run `tailor tailordb migration status` in CI to detect "developer forgot to commit a migration" situations early. The exit code is non-zero only on errors, so check the output.
344
346
  - Avoid running migrations in parallel against the same workspace — there is no locking. Serialize deploys per environment.
345
347
 
346
348
  ### Resetting a deployed project
@@ -348,8 +350,8 @@ Migration numbers are assigned sequentially, so two developers branching off the
348
350
  `migration generate --init` is destructive locally but does not touch the deployed workspace. Re-baselining a deployed project requires:
349
351
 
350
352
  1. Run `migration generate --init` to start over from `0000`.
351
- 2. Run `tailor-sdk tailordb migration set 0` against the deployed namespace.
352
- 3. Run `tailor-sdk deploy` — the new `0000` becomes the baseline.
353
+ 2. Run `tailor tailordb migration set 0` against the deployed namespace.
354
+ 3. Run `tailor deploy` — the new `0000` becomes the baseline.
353
355
 
354
356
  Coordinate this with your team because everyone else's local migrations will be invalidated.
355
357
 
@@ -367,7 +369,7 @@ After a failure:
367
369
 
368
370
  1. Read the `Logs:` block in the apply output to find the cause.
369
371
  2. Fix `migrate.ts` (or the data it depends on).
370
- 3. Re-run `tailor-sdk deploy`. The same migration runs again because its label was never bumped, and the prior-checkpoint schema is a clean baseline to retry against.
372
+ 3. Re-run `tailor deploy`. The same migration runs again because its label was never bumped, and the prior-checkpoint schema is a clean baseline to retry against.
371
373
 
372
374
  If a migration **succeeds in script** but the **post-migration phase** fails (rare; usually a constraint violation the script should have prevented), the pre-migration changes are **not** rolled back: the script's data changes are already committed and the post-migration phase may have dropped removed columns or types, which cannot be reverted without data loss. Investigate, fix, and re-run.
373
375
 
@@ -396,7 +398,7 @@ The machine user needs read/write access to every type the migration script touc
396
398
 
397
399
  If you see `No machine user available for migration execution`, either:
398
400
 
399
- - Add `machineUsers: { ... }` to your auth config and `tailor-sdk deploy` it, or
401
+ - Add `machineUsers: { ... }` to your auth config and `tailor deploy` it, or
400
402
  - Set `migration.machineUser` to an existing machine user name in the db config.
401
403
 
402
404
  ## Multi-Namespace Coordination
@@ -439,7 +441,7 @@ For genuinely different schemas across environments, prefer separate workspaces
439
441
 
440
442
  **Resolution:**
441
443
 
442
- 1. `tailor-sdk tailordb migration status` to see local vs remote.
444
+ 1. `tailor tailordb migration status` to see local vs remote.
443
445
  2. Compare with teammates — has someone applied different migrations?
444
446
  3. If remote was changed manually, decide whether to update local migrations to match or to use `migration set <N>` to align bookkeeping.
445
447
  4. To force the remote schema back to a known snapshot, use `migration sync <N>` (see [`migration sync` Semantics](#migration-sync-semantics)).
@@ -471,7 +473,7 @@ For genuinely different schemas across environments, prefer separate workspaces
471
473
 
472
474
  **Cause:** Runtime error in your `migrate.ts`, a permission error from the machine user, or a constraint violation when post-migration tightens types.
473
475
 
474
- **Resolution:** Read the `Logs:` block. Fix the script or the data assumption it relies on, and re-run `tailor-sdk deploy`. The label is not bumped on failure, so the same migration retries.
476
+ **Resolution:** Read the `Logs:` block. Fix the script or the data assumption it relies on, and re-run `tailor deploy`. The label is not bumped on failure, so the same migration retries.
475
477
 
476
478
  ### `migrate.ts` not found for a migration that needs one
477
479
 
@@ -29,7 +29,7 @@ Define TailorDB Types in files matching glob patterns specified in `tailor.confi
29
29
  import { db } from "@tailor-platform/sdk";
30
30
 
31
31
  // Export both value and type
32
- export const user = db.type("User", {
32
+ export const user = db.table("User", {
33
33
  name: db.string(),
34
34
  email: db.string().unique(),
35
35
  age: db.int(),
@@ -38,7 +38,7 @@ export const user = db.type("User", {
38
38
  export type user = typeof user;
39
39
 
40
40
  // You can define multiple types in the same file
41
- export const role = db.type("Role", {
41
+ export const role = db.table("Role", {
42
42
  name: db.string().unique(),
43
43
  });
44
44
  export type role = typeof role;
@@ -47,7 +47,7 @@ export type role = typeof role;
47
47
  Specify plural form by passing an array as first argument:
48
48
 
49
49
  ```typescript
50
- db.type(["User", "UserList"], {
50
+ db.table(["User", "UserList"], {
51
51
  name: db.string(),
52
52
  });
53
53
  ```
@@ -55,7 +55,7 @@ db.type(["User", "UserList"], {
55
55
  Pass a description as second argument:
56
56
 
57
57
  ```typescript
58
- db.type("User", "User in the system", {
58
+ db.table("User", "User in the system", {
59
59
  name: db.string(),
60
60
  });
61
61
  ```
@@ -174,11 +174,11 @@ db.string().unique();
174
174
  Add a relation to field with automatic index and foreign key constraint:
175
175
 
176
176
  ```typescript
177
- const role = db.type("Role", {
177
+ const role = db.table("Role", {
178
178
  name: db.string(),
179
179
  });
180
180
 
181
- const user = db.type("User", {
181
+ const user = db.table("User", {
182
182
  name: db.string(),
183
183
  roleId: db.uuid().relation({
184
184
  type: "n-1",
@@ -190,7 +190,7 @@ const user = db.type("User", {
190
190
  For one-to-one relations, use `type: "1-1"`:
191
191
 
192
192
  ```typescript
193
- const userProfile = db.type("UserProfile", {
193
+ const userProfile = db.table("UserProfile", {
194
194
  userId: db.uuid().relation({
195
195
  type: "1-1",
196
196
  toward: { type: user },
@@ -202,7 +202,7 @@ const userProfile = db.type("UserProfile", {
202
202
  For foreign key constraint without creating a relation, use `type: "keyOnly"`:
203
203
 
204
204
  ```typescript
205
- const user = db.type("User", {
205
+ const user = db.table("User", {
206
206
  roleId: db.uuid().relation({
207
207
  type: "keyOnly",
208
208
  toward: { type: role },
@@ -213,11 +213,11 @@ const user = db.type("User", {
213
213
  Create relations against different fields using `toward.key`:
214
214
 
215
215
  ```typescript
216
- const user = db.type("User", {
216
+ const user = db.table("User", {
217
217
  email: db.string().unique(),
218
218
  });
219
219
 
220
- const userProfile = db.type("UserProfile", {
220
+ const userProfile = db.table("UserProfile", {
221
221
  userEmail: db.string().relation({
222
222
  type: "1-1",
223
223
  toward: { type: user, key: "email" },
@@ -228,7 +228,7 @@ const userProfile = db.type("UserProfile", {
228
228
  Customize relation names using `toward.as` / `backward` options:
229
229
 
230
230
  ```typescript
231
- const userProfile = db.type("UserProfile", {
231
+ const userProfile = db.table("UserProfile", {
232
232
  userId: db.uuid().relation({
233
233
  type: "1-1",
234
234
  toward: { type: user, as: "base" },
@@ -254,6 +254,29 @@ type User {
254
254
  - `toward.as` - Customizes the field name for accessing the related type from this type
255
255
  - `backward` - Customizes the field name for accessing this type from the related type
256
256
 
257
+ Relation names share the same GraphQL field namespace as fields, files, and other relations on
258
+ the type. The SDK rejects duplicate or empty relation names. Use `toward.as` when multiple fields
259
+ on the same type point to the same target type, because their default forward names are derived
260
+ from the target type name:
261
+
262
+ ```typescript
263
+ const post = db.table("Post", {
264
+ authorID: db.uuid().relation({
265
+ type: "n-1",
266
+ toward: { type: user, as: "author" },
267
+ backward: "authoredPosts",
268
+ }),
269
+ reviewerID: db.uuid().relation({
270
+ type: "n-1",
271
+ toward: { type: user, as: "reviewer" },
272
+ backward: "reviewedPosts",
273
+ }),
274
+ });
275
+ ```
276
+
277
+ Use `toward.as` or `backward` when a generated relation name would conflict with an existing
278
+ field, files entry, or relation on the same type.
279
+
257
280
  ### Hooks
258
281
 
259
282
  Add hooks to execute functions during data creation or update. Hooks receive three arguments:
@@ -277,11 +300,11 @@ db.string().hooks({
277
300
 
278
301
  #### Type-level Hooks
279
302
 
280
- Set hooks for multiple fields at once using `db.type().hooks()`:
303
+ Set hooks for multiple fields at once using `db.table().hooks()`:
281
304
 
282
305
  ```typescript
283
306
  export const customer = db
284
- .type("Customer", {
307
+ .table("Customer", {
285
308
  firstName: db.string(),
286
309
  lastName: db.string(),
287
310
  fullName: db.string(),
@@ -299,7 +322,7 @@ export const customer = db
299
322
  ```typescript
300
323
  // Compile error - cannot set hooks on the same field twice
301
324
  export const user = db
302
- .type("User", {
325
+ .table("User", {
303
326
  name: db.string().hooks({ create: ({ data }) => data.firstName }), // Field-level
304
327
  })
305
328
  .hooks({
@@ -308,7 +331,7 @@ export const user = db
308
331
 
309
332
  // OK - set hooks on different fields
310
333
  export const user = db
311
- .type("User", {
334
+ .table("User", {
312
335
  firstName: db.string().hooks({ create: () => "John" }), // Field-level on firstName
313
336
  lastName: db.string(),
314
337
  })
@@ -340,11 +363,11 @@ db.string().validate(
340
363
 
341
364
  #### Type-level Validation
342
365
 
343
- Set validators for multiple fields at once using `db.type().validate()`:
366
+ Set validators for multiple fields at once using `db.table().validate()`:
344
367
 
345
368
  ```typescript
346
369
  export const user = db
347
- .type("User", {
370
+ .table("User", {
348
371
  name: db.string(),
349
372
  email: db.string(),
350
373
  })
@@ -362,7 +385,7 @@ export const user = db
362
385
  ```typescript
363
386
  // Compile error - cannot set validation on the same field twice
364
387
  export const user = db
365
- .type("User", {
388
+ .table("User", {
366
389
  name: db.string().validate(({ value }) => value.length > 0), // Field-level
367
390
  })
368
391
  .validate({
@@ -371,7 +394,7 @@ export const user = db
371
394
 
372
395
  // OK - set validation on different fields
373
396
  export const user = db
374
- .type("User", {
397
+ .table("User", {
375
398
  name: db.string().validate(({ value }) => value.length > 0), // Field-level on name
376
399
  email: db.string(),
377
400
  })
@@ -403,7 +426,7 @@ db.string().serial({
403
426
  ### Common Fields
404
427
 
405
428
  ```typescript
406
- export const user = db.type("User", {
429
+ export const user = db.table("User", {
407
430
  name: db.string(),
408
431
  ...db.fields.timestamps(),
409
432
  });
@@ -416,7 +439,7 @@ export const user = db.type("User", {
416
439
  ### Composite Indexes
417
440
 
418
441
  ```typescript
419
- db.type("User", {
442
+ db.table("User", {
420
443
  firstName: db.string(),
421
444
  lastName: db.string(),
422
445
  }).indexes({
@@ -429,7 +452,7 @@ db.type("User", {
429
452
  ### File Fields
430
453
 
431
454
  ```typescript
432
- db.type("User", {
455
+ db.table("User", {
433
456
  name: db.string(),
434
457
  }).files({
435
458
  avatar: "profile image",
@@ -439,7 +462,7 @@ db.type("User", {
439
462
  ### Features
440
463
 
441
464
  ```typescript
442
- db.type("User", {
465
+ db.table("User", {
443
466
  name: db.string(),
444
467
  }).features({
445
468
  aggregation: true,
@@ -452,7 +475,7 @@ db.type("User", {
452
475
  Enable event publishing for a type to trigger executors on record changes:
453
476
 
454
477
  ```typescript
455
- db.type("User", {
478
+ db.table("User", {
456
479
  name: db.string(),
457
480
  }).features({
458
481
  publishEvents: true,
@@ -463,7 +486,7 @@ db.type("User", {
463
486
 
464
487
  - When `publishEvents: true`, record creation/update/deletion events are published
465
488
  - When not specified, it is **automatically set to `true`** if an executor uses this type with `recordCreatedTrigger`, `recordUpdatedTrigger`, or `recordDeletedTrigger`
466
- - When explicitly set to `false` while an executor uses this type, an error is thrown during `tailor-sdk deploy`
489
+ - When explicitly set to `false` while an executor uses this type, an error is thrown during `tailor deploy`
467
490
 
468
491
  **Use cases:**
469
492
 
@@ -471,7 +494,7 @@ db.type("User", {
471
494
 
472
495
  ```typescript
473
496
  // publishEvents is automatically enabled because an executor uses this type
474
- export const order = db.type("Order", {
497
+ export const order = db.table("Order", {
475
498
  status: db.string(),
476
499
  });
477
500
 
@@ -485,7 +508,7 @@ db.type("User", {
485
508
  2. **Manual enable**: Enable event publishing for external consumers or debugging
486
509
 
487
510
  ```typescript
488
- db.type("AuditLog", {
511
+ db.table("AuditLog", {
489
512
  action: db.string(),
490
513
  }).features({
491
514
  publishEvents: true, // Enable even without executor triggers
@@ -495,7 +518,7 @@ db.type("User", {
495
518
  3. **Explicit disable**: Disable event publishing for a type that doesn't need it (error if executor uses it)
496
519
 
497
520
  ```typescript
498
- db.type("TempData", {
521
+ db.table("TempData", {
499
522
  data: db.string(),
500
523
  }).features({
501
524
  publishEvents: false, // Explicitly disable
@@ -511,7 +534,7 @@ Extract subsets of fields from a `TailorDBType` for reuse in resolvers, executor
511
534
  Select specific fields and optionally modify their properties:
512
535
 
513
536
  ```typescript
514
- const user = db.type("User", {
537
+ const user = db.table("User", {
515
538
  id: db.uuid(),
516
539
  name: db.string(),
517
540
  email: db.string().unique(),
@@ -581,7 +604,7 @@ Configure Permission and GQLPermission. For details, see the [TailorDB Permissio
581
604
  **Important**: Following the secure-by-default principle, all operations are denied if permissions are not configured. You must explicitly grant permissions for each operation (create, read, update, delete).
582
605
 
583
606
  ```typescript
584
- db.type("User", {
607
+ db.table("User", {
585
608
  name: db.string(),
586
609
  role: db.enum(["admin", "user"]).index(),
587
610
  })
@@ -611,7 +634,7 @@ import {
611
634
  unsafeAllowAllGqlPermission,
612
635
  } from "@tailor-platform/sdk";
613
636
 
614
- db.type("User", {
637
+ db.table("User", {
615
638
  name: db.string(),
616
639
  })
617
640
  .permission(unsafeAllowAllTypePermission)
@@ -622,6 +645,6 @@ db.type("User", {
622
645
 
623
646
  ## Migrations
624
647
 
625
- When you change a TailorDB type definition, the SDK can generate a migration that captures the diff and, for breaking changes, runs a data transformation script during `tailor-sdk deploy`. See the [TailorDB Migrations guide](./tailordb-migration.md) for the full workflow, configuration, supported change types, team coordination, and troubleshooting.
648
+ When you change a TailorDB type definition, the SDK can generate a migration that captures the diff and, for breaking changes, runs a data transformation script during `tailor deploy`. See the [TailorDB Migrations guide](./tailordb-migration.md) for the full workflow, configuration, supported change types, team coordination, and troubleshooting.
626
649
 
627
650
  For the CLI command reference, see [`tailordb migration`](../cli/tailordb.md#tailordb-migration).
@@ -207,23 +207,23 @@ Wait points allow a workflow job to suspend execution and wait for an external s
207
207
 
208
208
  ### Defining Wait Points
209
209
 
210
- Use `defineWaitPoint` to declare a single typed wait point:
210
+ Use `createWaitPoint` to create a single typed wait point:
211
211
 
212
212
  ```typescript
213
- import { defineWaitPoint } from "@tailor-platform/sdk";
213
+ import { createWaitPoint } from "@tailor-platform/sdk";
214
214
 
215
- export const approval = defineWaitPoint<
215
+ export const approval = createWaitPoint<
216
216
  { message: string; requestId: string },
217
217
  { approved: boolean }
218
218
  >("approval");
219
219
  ```
220
220
 
221
- For multiple wait points, use `defineWaitPoints` with a builder callback. Property names become wait point keys, and JSDoc on each property is preserved in IDE autocompletion:
221
+ For multiple wait points, use `createWaitPoints` with a builder callback. Property names become wait point keys, and JSDoc on each property is preserved in IDE autocompletion:
222
222
 
223
223
  ```typescript
224
- import { defineWaitPoints } from "@tailor-platform/sdk";
224
+ import { createWaitPoints } from "@tailor-platform/sdk";
225
225
 
226
- export const waitPoints = defineWaitPoints((define) => ({
226
+ export const waitPoints = createWaitPoints((define) => ({
227
227
  /** Manager approval step */
228
228
  managerApproval: define<{ amount: number }, { approved: boolean }>(),
229
229
  /** Finance review step */
@@ -245,9 +245,9 @@ Both must be JsonValue-compatible (plain objects/arrays; no class instances or f
245
245
  Call `.wait()` inside a workflow job body to suspend execution:
246
246
 
247
247
  ```typescript
248
- import { createWorkflow, createWorkflowJob, defineWaitPoint } from "@tailor-platform/sdk";
248
+ import { createWaitPoint, createWorkflow, createWorkflowJob } from "@tailor-platform/sdk";
249
249
 
250
- export const approval = defineWaitPoint<
250
+ export const approval = createWaitPoint<
251
251
  { message: string; requestId: string },
252
252
  { approved: boolean }
253
253
  >("approval");
@@ -351,6 +351,84 @@ export default createWorkflow({
351
351
  });
352
352
  ```
353
353
 
354
+ ## Execution Policies
355
+
356
+ Execution policies apply a per-key concurrency cap to workflow job function dispatches. Declare them at the workspace level and pass a matching key when triggering a job; the platform serializes dispatches that resolve to the same key and suspends any that would exceed the cap until slots free up.
357
+
358
+ ### Declaring Policies
359
+
360
+ Use `defineWorkflowExecutionPolicies` with a builder callback. Property names supply the workspace-unique name and default key prefix verbatim, matching the mental model of `defineWaitPoints`. Override `name` or `key` in the body when the property identifier is not valid execution policy grammar or the key prefix needs to differ. Set `matchType: "prefix"` to register the prefix as a wildcard that matches every dispatch key starting with it (the default, `"exact"`, matches only a dispatch key equal to it).
361
+
362
+ ```typescript
363
+ import { defineWorkflowExecutionPolicies } from "@tailor-platform/sdk";
364
+
365
+ export const executionPolicies = defineWorkflowExecutionPolicies((define) => ({
366
+ /** Shared cap across every "premium" worker dispatch. */
367
+ premium: define({ concurrencyPolicy: { maxConcurrentExecutions: 5 } }),
368
+ /** Per-tenant cap: one pool per resolved tenant key. */
369
+ tenantApi: define({
370
+ name: "tenant-api",
371
+ matchType: "prefix",
372
+ concurrencyPolicy: { maxConcurrentExecutions: 3 },
373
+ }),
374
+ }));
375
+ ```
376
+
377
+ For a single policy, use `defineWorkflowExecutionPolicy(name, def?)`; the key prefix defaults to `name` when `key` is omitted.
378
+
379
+ `concurrencyPolicy` is optional; when omitted, the policy registers the key as valid without a user-defined limit (platform safety nets still apply).
380
+
381
+ Register the policies on your config so the SDK creates them on the workspace during deploy:
382
+
383
+ ```typescript
384
+ // tailor.config.ts
385
+ import { defineConfig } from "@tailor-platform/sdk";
386
+ import { executionPolicies } from "./workflows/policies";
387
+
388
+ export default defineConfig({
389
+ workflow: {
390
+ files: ["workflows/**/*.ts"],
391
+ executionPolicies,
392
+ },
393
+ });
394
+ ```
395
+
396
+ ### Key Grammar
397
+
398
+ `key` accepts `[a-z0-9_:.-]` and must start with `[a-z0-9]`. An exact key must also end with `[a-z0-9]`; a wildcard prefix (`matchType: "prefix"`) may end with any of those characters, since the platform appends a trailing `*` after it. The platform-registered key — including that trailing `*` when wildcarded — is 2 to 64 characters long, so a wildcard prefix must be at most 63 characters. `foo:bar` is a valid exact key; `tenant-api` with `matchType: "prefix"` registers `tenant-api*` as a wildcard prefix.
399
+
400
+ An exact-key policy applies to dispatches whose runtime key equals the policy key. A wildcard policy applies to every dispatch whose runtime key begins with the prefix; each concrete resolved key gets its own independent pool of the declared size (a `cap = 3` wildcard yields three concurrent dispatches per resolved key, not three across every match). The longest matching prefix wins when a dispatch could match more than one wildcard.
401
+
402
+ ### Referencing a Policy from a Workflow
403
+
404
+ Pass the runtime key through the `executionPolicyKey` option on `job.trigger()` or `tailor.workflow.triggerJobFunction()`. For exact-key policies, use `<policy>.key` directly — it's typed so only a value that came from a declared policy can be passed. For wildcard policies (`matchType: "prefix"`), there is no `<policy>.key` — call `<policy>.keyFor(suffix)` to build the concrete key. `keyFor` joins the prefix and suffix with `.` by default; override it with `separator` — the second argument to `defineWorkflowExecutionPolicies` (applies to every policy in the group), or a `def` field on a single `defineWorkflowExecutionPolicy`.
405
+
406
+ ```typescript
407
+ import { createWorkflowJob } from "@tailor-platform/sdk";
408
+ import { executionPolicies } from "./policies";
409
+ import { sendNotification } from "./jobs/send-notification";
410
+ import { fetchTenant } from "./jobs/fetch-tenant";
411
+
412
+ export const mainJob = createWorkflowJob({
413
+ name: "main-job",
414
+ body: async (input: { tenantId: string }) => {
415
+ // Exact key policy: pass .key directly.
416
+ await sendNotification.trigger(
417
+ { message: "Order processed" },
418
+ { executionPolicyKey: executionPolicies.premium.key },
419
+ );
420
+
421
+ // Wildcard policy: build the concrete key with keyFor().
422
+ await fetchTenant.trigger(
423
+ { tenantId: input.tenantId },
424
+ { executionPolicyKey: executionPolicies.tenantApi.keyFor(input.tenantId) },
425
+ );
426
+ },
427
+ });
428
+ ```
429
+
430
+ The same `executionPolicyKey` option is available on `tailor.workflow.triggerJobFunction(name, args, options)` for jobs invoked by name.
431
+
354
432
  ## Triggering a Workflow from a Resolver
355
433
 
356
434
  You can start a workflow execution from a resolver using `workflow.trigger()`.
@@ -406,22 +484,22 @@ Manage workflows using the CLI:
406
484
 
407
485
  ```bash
408
486
  # List workflows
409
- tailor-sdk workflow list
487
+ tailor workflow list
410
488
 
411
489
  # Get workflow details
412
- tailor-sdk workflow get <name>
490
+ tailor workflow get <name>
413
491
 
414
492
  # Start a workflow
415
- tailor-sdk workflow start <name> -m <machine-user> -a '{"key": "value"}'
493
+ tailor workflow start <name> -m <machine-user> -a '{"key": "value"}'
416
494
 
417
495
  # List executions
418
- tailor-sdk workflow executions
496
+ tailor workflow executions
419
497
 
420
498
  # Get execution details with logs
421
- tailor-sdk workflow executions <execution-id> --logs
499
+ tailor workflow executions <execution-id> --logs
422
500
 
423
501
  # Resume a failed execution
424
- tailor-sdk workflow resume <execution-id>
502
+ tailor workflow resume <execution-id>
425
503
  ```
426
504
 
427
505
  See [Workflow CLI Commands](../cli/workflow.md) for full documentation.