@tailor-platform/sdk 1.32.1 → 1.33.1

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 (92) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/dist/{application-p2GujXmg.mjs → application-CYPU-WIc.mjs} +58 -43
  3. package/dist/application-CYPU-WIc.mjs.map +1 -0
  4. package/dist/application-dnB8CQiT.mjs +4 -0
  5. package/dist/cli/index.d.mts +2 -2
  6. package/dist/cli/index.mjs +28 -35
  7. package/dist/cli/index.mjs.map +1 -1
  8. package/dist/cli/lib.d.mts +104 -12
  9. package/dist/cli/lib.mjs +7 -13
  10. package/dist/cli/lib.mjs.map +1 -1
  11. package/dist/cli/skills.mjs +0 -1
  12. package/dist/cli/skills.mjs.map +1 -1
  13. package/dist/{client-D5P1myz0.mjs → client-CYGsf3Zl.mjs} +91 -27
  14. package/dist/client-CYGsf3Zl.mjs.map +1 -0
  15. package/dist/{client-gpRgZl1b.mjs → client-ea1w8SmG.mjs} +1 -4
  16. package/dist/configure/index.d.mts +5 -5
  17. package/dist/configure/index.mjs +81 -12
  18. package/dist/configure/index.mjs.map +1 -1
  19. package/dist/crash-report-CbueUPaP.mjs +4 -0
  20. package/dist/{crash-report-DnwITWeV.mjs → crash-report-OXafT1iS.mjs} +3 -3
  21. package/dist/{crash-report-DnwITWeV.mjs.map → crash-report-OXafT1iS.mjs.map} +1 -1
  22. package/dist/{enum-constants-CkKARYb7.mjs → enum-constants-DI85-fPE.mjs} +2 -1
  23. package/dist/{enum-constants-CkKARYb7.mjs.map → enum-constants-DI85-fPE.mjs.map} +1 -1
  24. package/dist/{env-BZLTIlIo.d.mts → env-BvIWsJxg.d.mts} +2 -2
  25. package/dist/{file-utils-D2TxR_kj.mjs → file-utils-C4rXlOVt.mjs} +2 -1
  26. package/dist/{file-utils-D2TxR_kj.mjs.map → file-utils-C4rXlOVt.mjs.map} +1 -1
  27. package/dist/{index-CgMytw2A.d.mts → index-0H-YH8Ya.d.mts} +3 -2
  28. package/dist/{index-vVGamLOw.d.mts → index-BM2SqNfO.d.mts} +3 -2
  29. package/dist/{index-CoReoodF.d.mts → index-BU6fmwJC.d.mts} +3 -2
  30. package/dist/{index-BYk_9R3S.d.mts → index-DlivLpTN.d.mts} +145 -32
  31. package/dist/{index-BQKAzTPA.d.mts → index-mAV9kYJA.d.mts} +3 -2
  32. package/dist/{interceptor-1LL1gBsF.mjs → interceptor-f7slMkCC.mjs} +1 -2
  33. package/dist/{interceptor-1LL1gBsF.mjs.map → interceptor-f7slMkCC.mjs.map} +1 -1
  34. package/dist/kysely/index.d.mts +5 -1
  35. package/dist/kysely/index.mjs +0 -1
  36. package/dist/kysely/index.mjs.map +1 -1
  37. package/dist/{kysely-type-BK0b4Rqt.mjs → kysely-type-BwMqaL3z.mjs} +18 -7
  38. package/dist/kysely-type-BwMqaL3z.mjs.map +1 -0
  39. package/dist/{package-json-VqyFvGiP.mjs → package-json-CfUqjJaQ.mjs} +1 -1
  40. package/dist/{package-json-VqyFvGiP.mjs.map → package-json-CfUqjJaQ.mjs.map} +1 -1
  41. package/dist/package-json-D5Km1jjt.mjs +4 -0
  42. package/dist/plugin/builtin/enum-constants/index.d.mts +1 -1
  43. package/dist/plugin/builtin/enum-constants/index.mjs +1 -2
  44. package/dist/plugin/builtin/file-utils/index.d.mts +1 -1
  45. package/dist/plugin/builtin/file-utils/index.mjs +1 -2
  46. package/dist/plugin/builtin/kysely-type/index.d.mts +1 -1
  47. package/dist/plugin/builtin/kysely-type/index.mjs +1 -2
  48. package/dist/plugin/builtin/seed/index.d.mts +1 -1
  49. package/dist/plugin/builtin/seed/index.mjs +1 -2
  50. package/dist/plugin/index.d.mts +2 -2
  51. package/dist/plugin/index.mjs +0 -1
  52. package/dist/plugin/index.mjs.map +1 -1
  53. package/dist/{plugin-IIDZW9GG.d.mts → plugin-DQqzlulP.d.mts} +46 -33
  54. package/dist/{runtime-7DOyTTxR.mjs → runtime-CDvdBV66.mjs} +1032 -306
  55. package/dist/runtime-CDvdBV66.mjs.map +1 -0
  56. package/dist/{schema-BITbkmq3.mjs → schema-D27cW0Ca.mjs} +2 -1
  57. package/dist/schema-D27cW0Ca.mjs.map +1 -0
  58. package/dist/seed/index.mjs +0 -1
  59. package/dist/seed/index.mjs.map +1 -1
  60. package/dist/{seed-BXrSEJbv.mjs → seed-BZIFDG27.mjs} +11 -3
  61. package/dist/seed-BZIFDG27.mjs.map +1 -0
  62. package/dist/telemetry-C508zIi1.mjs +4 -0
  63. package/dist/{telemetry-B4sp-dD2.mjs → telemetry-CREcGK8y.mjs} +2 -2
  64. package/dist/{telemetry-B4sp-dD2.mjs.map → telemetry-CREcGK8y.mjs.map} +1 -1
  65. package/dist/utils/test/index.d.mts +2 -2
  66. package/dist/utils/test/index.mjs +0 -2
  67. package/dist/utils/test/index.mjs.map +1 -1
  68. package/dist/{workflow.generated-C2A5Ye0m.d.mts → workflow.generated-u9MgzqbM.d.mts} +14 -3
  69. package/docs/cli/application.md +17 -0
  70. package/docs/cli/auth.md +1 -1
  71. package/docs/cli/crash-report.md +1 -1
  72. package/docs/cli/executor.md +2 -2
  73. package/docs/cli/secret.md +3 -3
  74. package/docs/cli/staticwebsite.md +1 -1
  75. package/docs/cli/tailordb.md +4 -2
  76. package/docs/cli/user.md +2 -2
  77. package/docs/cli-reference.md +116 -100
  78. package/docs/generator/builtin.md +1 -1
  79. package/docs/services/executor.md +54 -0
  80. package/docs/services/idp.md +22 -0
  81. package/package.json +20 -20
  82. package/dist/application-Cwt_ifTT.mjs +0 -12
  83. package/dist/application-p2GujXmg.mjs.map +0 -1
  84. package/dist/chunk-COzJYswC.mjs +0 -9
  85. package/dist/client-D5P1myz0.mjs.map +0 -1
  86. package/dist/crash-report-Cm9vFmTN.mjs +0 -7
  87. package/dist/kysely-type-BK0b4Rqt.mjs.map +0 -1
  88. package/dist/package-json-88x7bPKC.mjs +0 -5
  89. package/dist/runtime-7DOyTTxR.mjs.map +0 -1
  90. package/dist/schema-BITbkmq3.mjs.map +0 -1
  91. package/dist/seed-BXrSEJbv.mjs.map +0 -1
  92. package/dist/telemetry-DXIGGa6A.mjs +0 -5
@@ -1,5 +1,5 @@
1
1
  /// <reference types="@tailor-platform/function-types" />
2
- import { At as BuiltinIdP, S as TailorDBServiceInput, T as AuthConfig } from "./plugin-IIDZW9GG.mjs";
2
+ import { At as BuiltinIdP, S as TailorDBServiceInput, T as AuthConfig } from "./plugin-DQqzlulP.mjs";
3
3
 
4
4
  //#region src/types/idp.generated.d.ts
5
5
  /**
@@ -20,6 +20,13 @@ type IdPGqlOperations = {
20
20
  read?: boolean | undefined;
21
21
  sendPasswordResetEmail?: boolean | undefined;
22
22
  };
23
+ /**
24
+ * Namespace-level email configuration defaults
25
+ */
26
+ type IdPEmailConfig = {
27
+ /** Default sender display name for emails */fromName?: string | undefined; /** Default subject for password reset emails */
28
+ passwordResetSubject?: string | undefined;
29
+ };
23
30
  type IdPInput = {
24
31
  /** IdP service name */name: string; /** Authorization mode for IdP API access */
25
32
  authorization: "insecure" | "loggedIn" | {
@@ -48,6 +55,10 @@ type IdPInput = {
48
55
  delete?: boolean | undefined;
49
56
  read?: boolean | undefined;
50
57
  sendPasswordResetEmail?: boolean | undefined;
58
+ } | undefined; /** Namespace-level email configuration defaults */
59
+ emailConfig?: {
60
+ fromName?: string | undefined;
61
+ passwordResetSubject?: string | undefined;
51
62
  } | undefined;
52
63
  };
53
64
  //#endregion
@@ -191,5 +202,5 @@ type RetryPolicy = {
191
202
  backoffMultiplier: number;
192
203
  };
193
204
  //#endregion
194
- export { IdPGqlOperations as _, ResolverExternalConfig as a, WorkflowServiceConfig as c, defineStaticWebSite as d, SecretsConfig as f, IdpDefinitionBrand as g, IdPExternalConfig as h, ExecutorServiceInput as i, WorkflowServiceInput as l, IdPConfig as m, AppConfig as n, ResolverServiceConfig as o, defineSecretManager as p, ExecutorServiceConfig as r, ResolverServiceInput as s, RetryPolicy as t, StaticWebsiteConfig as u, IdPGqlOperationsInput as v, IdPInput as y };
195
- //# sourceMappingURL=workflow.generated-C2A5Ye0m.d.mts.map
205
+ export { IdPEmailConfig as _, ResolverExternalConfig as a, IdPInput as b, WorkflowServiceConfig as c, defineStaticWebSite as d, SecretsConfig as f, IdpDefinitionBrand as g, IdPExternalConfig as h, ExecutorServiceInput as i, WorkflowServiceInput as l, IdPConfig as m, AppConfig as n, ResolverServiceConfig as o, defineSecretManager as p, ExecutorServiceConfig as r, ResolverServiceInput as s, RetryPolicy as t, StaticWebsiteConfig as u, IdPGqlOperations as v, IdPGqlOperationsInput as y };
206
+ //# sourceMappingURL=workflow.generated-u9MgzqbM.d.mts.map
@@ -156,6 +156,23 @@ If remote schema drift is detected, the apply will fail with an error showing th
156
156
 
157
157
  Use `--no-schema-check` to skip both verifications (not recommended for production).
158
158
 
159
+ **Plan Output:**
160
+
161
+ Before applying changes, `apply` shows a preview of the planned resource changes.
162
+
163
+ - `+` means the resource will be created
164
+ - `~` means the resource will be updated
165
+ - `-` means the resource will be deleted
166
+ - `±` means the resource will be replaced
167
+
168
+ After the detailed list, a summary line is printed:
169
+
170
+ ```text
171
+ Plan: 5 to create, 3 to update, 1 to delete, 25 unchanged
172
+ ```
173
+
174
+ Use `--dry-run` to preview the plan without applying anything.
175
+
159
176
  <!-- politty:command:remove:heading:start -->
160
177
 
161
178
  ## remove
package/docs/cli/auth.md CHANGED
@@ -156,8 +156,8 @@ tailor-sdk oauth2client [command]
156
156
 
157
157
  | Command | Description |
158
158
  | ----------------------------------------- | -------------------------------------------------------- |
159
- | [`oauth2client get`](#oauth2client-get) | Get OAuth2 client credentials (including client secret). |
160
159
  | [`oauth2client list`](#oauth2client-list) | List all OAuth2 clients in the application. |
160
+ | [`oauth2client get`](#oauth2client-get) | Get OAuth2 client credentials (including client secret). |
161
161
 
162
162
  <!-- politty:command:oauth2client:subcommands:end -->
163
163
 
@@ -36,8 +36,8 @@ See [Global Options](../cli-reference.md#global-options) for options available t
36
36
 
37
37
  | Command | Description |
38
38
  | ----------------------------------------- | ---------------------------------------------- |
39
- | [`crash-report send`](#crash-report-send) | Submit a crash report to help improve the SDK. |
40
39
  | [`crash-report list`](#crash-report-list) | List local crash report files. |
40
+ | [`crash-report send`](#crash-report-send) | Submit a crash report to help improve the SDK. |
41
41
 
42
42
  <!-- politty:command:crash-report:subcommands:end -->
43
43
  <!-- politty:command:crash-report list:heading:start -->
@@ -30,10 +30,10 @@ tailor-sdk executor [command]
30
30
 
31
31
  | Command | Description |
32
32
  | --------------------------------------- | ----------------------------- |
33
+ | [`executor trigger`](#executor-trigger) | Trigger an executor manually. |
34
+ | [`executor jobs`](#executor-jobs) | List or get executor jobs. |
33
35
  | [`executor list`](#executor-list) | List all executors |
34
36
  | [`executor get`](#executor-get) | Get executor details |
35
- | [`executor jobs`](#executor-jobs) | List or get executor jobs. |
36
- | [`executor trigger`](#executor-trigger) | Trigger an executor manually. |
37
37
  | [`executor webhook`](#executor-webhook) | Manage executor webhooks |
38
38
 
39
39
  <!-- politty:command:executor:subcommands:end -->
@@ -30,11 +30,11 @@ tailor-sdk secret [command]
30
30
 
31
31
  | Command | Description |
32
32
  | --------------------------------- | ----------------------------- |
33
+ | [`secret vault`](#secret-vault) | Manage Secret Manager vaults. |
33
34
  | [`secret create`](#secret-create) | Create a secret in a vault. |
34
- | [`secret delete`](#secret-delete) | Delete a secret in a vault. |
35
- | [`secret list`](#secret-list) | List all secrets in a vault. |
36
35
  | [`secret update`](#secret-update) | Update a secret in a vault. |
37
- | [`secret vault`](#secret-vault) | Manage Secret Manager vaults. |
36
+ | [`secret list`](#secret-list) | List all secrets in a vault. |
37
+ | [`secret delete`](#secret-delete) | Delete a secret in a vault. |
38
38
 
39
39
  <!-- politty:command:secret:subcommands:end -->
40
40
 
@@ -31,8 +31,8 @@ tailor-sdk staticwebsite [command]
31
31
  | Command | Description |
32
32
  | ----------------------------------------------- | ----------------------------------------------------- |
33
33
  | [`staticwebsite deploy`](#staticwebsite-deploy) | Deploy a static website from a local build directory. |
34
- | [`staticwebsite get`](#staticwebsite-get) | Get details of a specific static website. |
35
34
  | [`staticwebsite list`](#staticwebsite-list) | List all static websites in a workspace. |
35
+ | [`staticwebsite get`](#staticwebsite-get) | Get details of a specific static website. |
36
36
 
37
37
  <!-- politty:command:staticwebsite:subcommands:end -->
38
38
 
@@ -30,9 +30,9 @@ tailor-sdk tailordb [command]
30
30
 
31
31
  | Command | Description |
32
32
  | ------------------------------------------- | --------------------------------------------------------------------- |
33
- | [`tailordb erd`](#tailordb-erd) | Generate ERD artifacts for TailorDB namespaces using Liam ERD. (beta) |
34
- | [`tailordb migration`](#tailordb-migration) | Manage TailorDB schema migrations. |
35
33
  | [`tailordb truncate`](#tailordb-truncate) | Truncate (delete all records from) TailorDB tables. |
34
+ | [`tailordb migration`](#tailordb-migration) | Manage TailorDB schema migrations. |
35
+ | [`tailordb erd`](#tailordb-erd) | Generate ERD artifacts for TailorDB namespaces using Liam ERD. (beta) |
36
36
 
37
37
  <!-- politty:command:tailordb:subcommands:end -->
38
38
 
@@ -105,6 +105,8 @@ Manage TailorDB schema migrations.
105
105
 
106
106
  <!-- politty:command:tailordb migration:description:end -->
107
107
 
108
+ Note: Migration scripts are automatically executed during `tailor-sdk apply`. See [Automatic Migration Execution](#automatic-migration-execution) for details.
109
+
108
110
  <!-- politty:command:tailordb migration:usage:start -->
109
111
 
110
112
  **Usage**
package/docs/cli/user.md CHANGED
@@ -108,8 +108,8 @@ tailor-sdk user [command]
108
108
  | ------------------------------- | ------------------------------ |
109
109
  | [`user current`](#user-current) | Show current user. |
110
110
  | [`user list`](#user-list) | List all users. |
111
- | [`user pat`](#user-pat) | Manage personal access tokens. |
112
111
  | [`user switch`](#user-switch) | Set current user. |
112
+ | [`user pat`](#user-pat) | Manage personal access tokens. |
113
113
 
114
114
  <!-- politty:command:user:subcommands:end -->
115
115
 
@@ -243,9 +243,9 @@ tailor-sdk user pat [command]
243
243
 
244
244
  | Command | Description |
245
245
  | ------------------------------------- | ----------------------------------------------------- |
246
+ | [`user pat list`](#user-pat-list) | List all personal access tokens. |
246
247
  | [`user pat create`](#user-pat-create) | Create a new personal access token. |
247
248
  | [`user pat delete`](#user-pat-delete) | Delete a personal access token. |
248
- | [`user pat list`](#user-pat-list) | List all personal access tokens. |
249
249
  | [`user pat update`](#user-pat-update) | Update a personal access token (delete and recreate). |
250
250
 
251
251
  <!-- politty:command:user pat:subcommands:end -->
@@ -87,160 +87,174 @@ Workspace ID resolution follows this priority order:
87
87
 
88
88
  ## Commands
89
89
 
90
+ <!-- politty:index:docs/cli-reference.md:start -->
91
+
90
92
  ### [Application Commands](./cli/application.md)
91
93
 
92
94
  Commands for managing Tailor Platform applications (work with `tailor.config.ts`).
93
95
 
94
- | Command | Description |
95
- | ----------------------------------------- | --------------------------------- |
96
- | [init](./cli/application.md#init) | Initialize a new project |
97
- | [generate](./cli/application.md#generate) | Generate files from configuration |
98
- | [apply](./cli/application.md#apply) | Deploy application to workspace |
99
- | [remove](./cli/application.md#remove) | Remove application from workspace |
100
- | [show](./cli/application.md#show) | Show deployed application info |
96
+ | Command | Description |
97
+ | ----------------------------------------- | ------------------------------------------------------------------- |
98
+ | [init](./cli/application.md#init) | Initialize a new project using create-sdk. |
99
+ | [generate](./cli/application.md#generate) | Generate files using Tailor configuration. |
100
+ | [apply](./cli/application.md#apply) | Apply Tailor configuration to deploy your application. |
101
+ | [remove](./cli/application.md#remove) | Remove all resources managed by the application from the workspace. |
102
+ | [show](./cli/application.md#show) | Show information about the deployed application. |
103
+ | [open](./cli/application.md#open) | Open Tailor Platform Console. |
104
+ | [api](./cli/application.md#api) | Call Tailor Platform API endpoints directly. |
101
105
 
102
106
  ### [TailorDB Commands](./cli/tailordb.md)
103
107
 
104
108
  Commands for managing TailorDB tables, data, and schema migrations.
105
109
 
106
- | Command | Description |
107
- | ---------------------------------------------------------------------------- | ------------------------------------------------ |
108
- | [tailordb truncate](./cli/tailordb.md#tailordb-truncate) | Truncate TailorDB tables |
109
- | [tailordb migration generate](./cli/tailordb.md#tailordb-migration-generate) | Generate migration files from schema snapshot |
110
- | [tailordb migration set](./cli/tailordb.md#tailordb-migration-set) | Set migration checkpoint manually |
111
- | [tailordb migration status](./cli/tailordb.md#tailordb-migration-status) | Show migration status |
112
- | [tailordb erd export](./cli/tailordb.md#tailordb-erd-export) | Export ERD artifacts from TailorDB schema (beta) |
113
- | [tailordb erd serve](./cli/tailordb.md#tailordb-erd-serve) | Serve ERD locally (beta) |
114
- | [tailordb erd deploy](./cli/tailordb.md#tailordb-erd-deploy) | Deploy ERD static website (beta) |
115
-
116
- Note: Migration scripts are automatically executed during `tailor-sdk apply`. See [Automatic Migration Execution](./cli/tailordb.md#automatic-migration-execution) for details.
110
+ | Command | Description |
111
+ | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
112
+ | [tailordb truncate](./cli/tailordb.md#tailordb-truncate) | Truncate (delete all records from) TailorDB tables. |
113
+ | [tailordb migration generate](./cli/tailordb.md#tailordb-migration-generate) | Generate migration files by detecting schema differences between current local types and the previous migration snapshot. |
114
+ | [tailordb migration set](./cli/tailordb.md#tailordb-migration-set) | Set migration checkpoint to a specific number. |
115
+ | [tailordb migration status](./cli/tailordb.md#tailordb-migration-status) | Show the current migration status for TailorDB namespaces, including applied and pending migrations. |
116
+ | [tailordb erd export](./cli/tailordb.md#tailordb-erd-export) | Export Liam ERD dist from applied TailorDB schema. |
117
+ | [tailordb erd serve](./cli/tailordb.md#tailordb-erd-serve) | Generate and serve ERD locally (liam build + serve dist). (beta) |
118
+ | [tailordb erd deploy](./cli/tailordb.md#tailordb-erd-deploy) | Deploy ERD static website for TailorDB namespace(s). |
117
119
 
118
120
  ### [User & Auth Commands](./cli/user.md)
119
121
 
120
122
  Commands for authentication and user management.
121
123
 
122
- | Command | Description |
123
- | ------------------------------------------------ | ------------------------------ |
124
- | [login](./cli/user.md#login) | Login to Tailor Platform |
125
- | [logout](./cli/user.md#logout) | Logout from Tailor Platform |
126
- | [user current](./cli/user.md#user-current) | Show current user |
127
- | [user list](./cli/user.md#user-list) | List all users |
128
- | [user switch](./cli/user.md#user-switch) | Set current user |
129
- | [user pat list](./cli/user.md#user-pat-list) | List personal access tokens |
130
- | [user pat create](./cli/user.md#user-pat-create) | Create a personal access token |
131
- | [user pat delete](./cli/user.md#user-pat-delete) | Delete a personal access token |
132
- | [user pat update](./cli/user.md#user-pat-update) | Update a personal access token |
133
-
134
- ### Workspace & Organization Commands
135
-
136
- Commands for managing workspaces, profiles, organizations, and folders.
137
-
138
- **[Organization Commands](./cli/organization.md)**
139
-
140
- | Command | Description |
141
- | ------------------------------------------------------------------------------ | ----------------------------------------------- |
142
- | [organization list](./cli/organization.md#organization-list) | List organizations you belong to |
143
- | [organization get](./cli/organization.md#organization-get) | Show detailed information about an organization |
144
- | [organization update](./cli/organization.md#organization-update) | Update an organization's name |
145
- | [organization tree](./cli/organization.md#organization-tree) | Display organization folder hierarchy as a tree |
146
- | [organization folder list](./cli/organization.md#organization-folder-list) | List folders in an organization |
147
- | [organization folder get](./cli/organization.md#organization-folder-get) | Show detailed information about a folder |
148
- | [organization folder create](./cli/organization.md#organization-folder-create) | Create a new folder in an organization |
149
- | [organization folder update](./cli/organization.md#organization-folder-update) | Update a folder's name |
150
- | [organization folder delete](./cli/organization.md#organization-folder-delete) | Delete a folder from an organization |
151
-
152
- **[Workspace Commands](./cli/workspace.md)**
153
-
154
- | Command | Description |
155
- | ------------------------------------------------------- | ---------------------- |
156
- | [workspace create](./cli/workspace.md#workspace-create) | Create a new workspace |
157
- | [workspace list](./cli/workspace.md#workspace-list) | List all workspaces |
158
- | [workspace delete](./cli/workspace.md#workspace-delete) | Delete a workspace |
159
- | [profile create](./cli/workspace.md#profile-create) | Create a new profile |
160
- | [profile list](./cli/workspace.md#profile-list) | List all profiles |
161
- | [profile update](./cli/workspace.md#profile-update) | Update a profile |
162
- | [profile delete](./cli/workspace.md#profile-delete) | Delete a profile |
124
+ | Command | Description |
125
+ | ------------------------------------------------ | ----------------------------------------------------- |
126
+ | [login](./cli/user.md#login) | Login to Tailor Platform. |
127
+ | [logout](./cli/user.md#logout) | Logout from Tailor Platform. |
128
+ | [user current](./cli/user.md#user-current) | Show current user. |
129
+ | [user list](./cli/user.md#user-list) | List all users. |
130
+ | [user switch](./cli/user.md#user-switch) | Set current user. |
131
+ | [user pat list](./cli/user.md#user-pat-list) | List all personal access tokens. |
132
+ | [user pat create](./cli/user.md#user-pat-create) | Create a new personal access token. |
133
+ | [user pat delete](./cli/user.md#user-pat-delete) | Delete a personal access token. |
134
+ | [user pat update](./cli/user.md#user-pat-update) | Update a personal access token (delete and recreate). |
135
+
136
+ ### [Organization Commands](./cli/organization.md)
137
+
138
+ Commands for managing organizations and folders.
139
+
140
+ | Command | Description |
141
+ | ------------------------------------------------------------------------------ | ------------------------------------------------ |
142
+ | [organization folder create](./cli/organization.md#organization-folder-create) | Create a new folder in an organization. |
143
+ | [organization folder delete](./cli/organization.md#organization-folder-delete) | Delete a folder from an organization. |
144
+ | [organization folder get](./cli/organization.md#organization-folder-get) | Show detailed information about a folder. |
145
+ | [organization folder list](./cli/organization.md#organization-folder-list) | List folders in an organization. |
146
+ | [organization folder update](./cli/organization.md#organization-folder-update) | Update a folder's name. |
147
+ | [organization get](./cli/organization.md#organization-get) | Show detailed information about an organization. |
148
+ | [organization list](./cli/organization.md#organization-list) | List organizations you belong to. |
149
+ | [organization tree](./cli/organization.md#organization-tree) | Display organization folder hierarchy as a tree. |
150
+ | [organization update](./cli/organization.md#organization-update) | Update an organization's name. |
151
+
152
+ ### [Workspace Commands](./cli/workspace.md)
153
+
154
+ Commands for managing workspaces and profiles.
155
+
156
+ | Command | Description |
157
+ | ----------------------------------------------------------------- | ------------------------------------------- |
158
+ | [workspace app health](./cli/workspace.md#workspace-app-health) | Check application schema health |
159
+ | [workspace app list](./cli/workspace.md#workspace-app-list) | List applications in a workspace |
160
+ | [workspace create](./cli/workspace.md#workspace-create) | Create a new Tailor Platform workspace. |
161
+ | [workspace delete](./cli/workspace.md#workspace-delete) | Delete a Tailor Platform workspace. |
162
+ | [workspace get](./cli/workspace.md#workspace-get) | Show detailed information about a workspace |
163
+ | [workspace list](./cli/workspace.md#workspace-list) | List all Tailor Platform workspaces. |
164
+ | [workspace restore](./cli/workspace.md#workspace-restore) | Restore a deleted workspace |
165
+ | [workspace user invite](./cli/workspace.md#workspace-user-invite) | Invite a user to a workspace |
166
+ | [workspace user list](./cli/workspace.md#workspace-user-list) | List users in a workspace |
167
+ | [workspace user remove](./cli/workspace.md#workspace-user-remove) | Remove a user from a workspace |
168
+ | [workspace user update](./cli/workspace.md#workspace-user-update) | Update a user's role in a workspace |
169
+ | [profile create](./cli/workspace.md#profile-create) | Create a new profile. |
170
+ | [profile delete](./cli/workspace.md#profile-delete) | Delete a profile. |
171
+ | [profile list](./cli/workspace.md#profile-list) | List all profiles. |
172
+ | [profile update](./cli/workspace.md#profile-update) | Update profile properties. |
163
173
 
164
174
  ### [Auth Resource Commands](./cli/auth.md)
165
175
 
166
176
  Commands for managing Auth service resources.
167
177
 
168
- | Command | Description |
169
- | ---------------------------------------------------- | ----------------------------- |
170
- | [machineuser list](./cli/auth.md#machineuser-list) | List machine users |
171
- | [machineuser token](./cli/auth.md#machineuser-token) | Get machine user access token |
172
- | [oauth2client list](./cli/auth.md#oauth2client-list) | List OAuth2 clients |
173
- | [oauth2client get](./cli/auth.md#oauth2client-get) | Get OAuth2 client credentials |
178
+ | Command | Description |
179
+ | ---------------------------------------------------- | -------------------------------------------------------- |
180
+ | [machineuser list](./cli/auth.md#machineuser-list) | List all machine users in the application. |
181
+ | [machineuser token](./cli/auth.md#machineuser-token) | Get an access token for a machine user. |
182
+ | [oauth2client list](./cli/auth.md#oauth2client-list) | List all OAuth2 clients in the application. |
183
+ | [oauth2client get](./cli/auth.md#oauth2client-get) | Get OAuth2 client credentials (including client secret). |
174
184
 
175
185
  ### [Workflow Commands](./cli/workflow.md)
176
186
 
177
187
  Commands for managing workflows and executions.
178
188
 
179
- | Command | Description |
180
- | ------------------------------------------------------------ | -------------------------- |
181
- | [workflow list](./cli/workflow.md#workflow-list) | List all workflows |
182
- | [workflow get](./cli/workflow.md#workflow-get) | Get workflow details |
183
- | [workflow start](./cli/workflow.md#workflow-start) | Start a workflow execution |
184
- | [workflow executions](./cli/workflow.md#workflow-executions) | List or get executions |
185
- | [workflow resume](./cli/workflow.md#workflow-resume) | Resume a failed execution |
189
+ | Command | Description |
190
+ | ------------------------------------------------------------ | ---------------------------------------------- |
191
+ | [workflow list](./cli/workflow.md#workflow-list) | List all workflows in the workspace. |
192
+ | [workflow get](./cli/workflow.md#workflow-get) | Get workflow details. |
193
+ | [workflow start](./cli/workflow.md#workflow-start) | Start a workflow execution. |
194
+ | [workflow executions](./cli/workflow.md#workflow-executions) | List or get workflow executions. |
195
+ | [workflow resume](./cli/workflow.md#workflow-resume) | Resume a failed or pending workflow execution. |
186
196
 
187
197
  ### [Function Commands](./cli/function.md)
188
198
 
189
199
  Commands for viewing function execution logs.
190
200
 
191
- | Command | Description |
192
- | ------------------------------------------------ | ----------------------------------- |
193
- | [function logs](./cli/function.md#function-logs) | List or get function execution logs |
201
+ | Command | Description |
202
+ | -------------------------------------------------------- | --------------------------------------------------------------- |
203
+ | [function logs](./cli/function.md#function-logs) | List or get function execution logs. |
204
+ | [function test-run](./cli/function.md#function-test-run) | Run a function on the Tailor Platform server without deploying. |
194
205
 
195
206
  ### [Executor Commands](./cli/executor.md)
196
207
 
197
208
  Commands for managing executors and executor jobs.
198
209
 
199
- | Command | Description |
200
- | ------------------------------------------------------ | ---------------------------- |
201
- | [executor trigger](./cli/executor.md#executor-trigger) | Trigger an executor manually |
202
- | [executor jobs](./cli/executor.md#executor-jobs) | List or get executor jobs |
210
+ | Command | Description |
211
+ | ---------------------------------------------------------------- | --------------------------------------------- |
212
+ | [executor trigger](./cli/executor.md#executor-trigger) | Trigger an executor manually. |
213
+ | [executor jobs](./cli/executor.md#executor-jobs) | List or get executor jobs. |
214
+ | [executor list](./cli/executor.md#executor-list) | List all executors |
215
+ | [executor get](./cli/executor.md#executor-get) | Get executor details |
216
+ | [executor webhook list](./cli/executor.md#executor-webhook-list) | List executors with incoming webhook triggers |
203
217
 
204
218
  ### [Secret Commands](./cli/secret.md)
205
219
 
206
220
  Commands for managing secrets and vaults.
207
221
 
208
- | Command | Description |
209
- | ---------------------------------------------------------- | ----------------------- |
210
- | [secret vault create](./cli/secret.md#secret-vault-create) | Create a vault |
211
- | [secret vault delete](./cli/secret.md#secret-vault-delete) | Delete a vault |
212
- | [secret vault list](./cli/secret.md#secret-vault-list) | List all vaults |
213
- | [secret create](./cli/secret.md#secret-create) | Create a secret |
214
- | [secret update](./cli/secret.md#secret-update) | Update a secret |
215
- | [secret list](./cli/secret.md#secret-list) | List secrets in a vault |
216
- | [secret delete](./cli/secret.md#secret-delete) | Delete a secret |
222
+ | Command | Description |
223
+ | ---------------------------------------------------------- | ------------------------------------------------ |
224
+ | [secret vault create](./cli/secret.md#secret-vault-create) | Create a new Secret Manager vault. |
225
+ | [secret vault delete](./cli/secret.md#secret-vault-delete) | Delete a Secret Manager vault. |
226
+ | [secret vault list](./cli/secret.md#secret-vault-list) | List all Secret Manager vaults in the workspace. |
227
+ | [secret create](./cli/secret.md#secret-create) | Create a secret in a vault. |
228
+ | [secret update](./cli/secret.md#secret-update) | Update a secret in a vault. |
229
+ | [secret list](./cli/secret.md#secret-list) | List all secrets in a vault. |
230
+ | [secret delete](./cli/secret.md#secret-delete) | Delete a secret in a vault. |
217
231
 
218
232
  ### [Static Website Commands](./cli/staticwebsite.md)
219
233
 
220
234
  Commands for managing and deploying static websites.
221
235
 
222
- | Command | Description |
223
- | ------------------------------------------------------------------- | ---------------------------------------------------- |
224
- | [staticwebsite deploy](./cli/staticwebsite.md#staticwebsite-deploy) | Deploy a static website from a local build directory |
225
- | [staticwebsite list](./cli/staticwebsite.md#staticwebsite-list) | List static websites in a workspace |
226
- | [staticwebsite get](./cli/staticwebsite.md#staticwebsite-get) | Get details of a static website |
236
+ | Command | Description |
237
+ | ------------------------------------------------------------------- | ----------------------------------------------------- |
238
+ | [staticwebsite deploy](./cli/staticwebsite.md#staticwebsite-deploy) | Deploy a static website from a local build directory. |
239
+ | [staticwebsite list](./cli/staticwebsite.md#staticwebsite-list) | List all static websites in a workspace. |
240
+ | [staticwebsite get](./cli/staticwebsite.md#staticwebsite-get) | Get details of a specific static website. |
227
241
 
228
242
  ### [Crash Report Commands](./cli/crash-report.md)
229
243
 
230
244
  Commands for managing crash reports.
231
245
 
232
- | Command | Description |
233
- | ------------------------------------------------------------ | --------------------------------------------- |
234
- | [crash-report list](./cli/crash-report.md#crash-report-list) | List local crash report files |
235
- | [crash-report send](./cli/crash-report.md#crash-report-send) | Submit a crash report to help improve the SDK |
246
+ | Command | Description |
247
+ | ------------------------------------------------------------ | ---------------------------------------------- |
248
+ | [crash-report list](./cli/crash-report.md#crash-report-list) | List local crash report files. |
249
+ | [crash-report send](./cli/crash-report.md#crash-report-send) | Submit a crash report to help improve the SDK. |
236
250
 
237
251
  ### [Setup Commands](./cli/setup.md)
238
252
 
239
253
  Commands for setting up project infrastructure.
240
254
 
241
- | Command | Description |
242
- | ------------------------------------------- | ----------------------------------------------- |
243
- | [setup github](./cli/setup.md#setup-github) | Generate GitHub Actions workflow for deployment |
255
+ | Command | Description |
256
+ | ------------------------------------------- | ------------------------------------------------------- |
257
+ | [setup github](./cli/setup.md#setup-github) | Generate GitHub Actions workflow for deployment. (beta) |
244
258
 
245
259
  ### [Completion](./cli/completion.md)
246
260
 
@@ -249,3 +263,5 @@ Generate shell completion scripts for bash, zsh, and fish.
249
263
  | Command | Description |
250
264
  | -------------------------------------------- | -------------------------------- |
251
265
  | [completion](./cli/completion.md#completion) | Generate shell completion script |
266
+
267
+ <!-- politty:index:docs/cli-reference.md:end -->
@@ -22,7 +22,7 @@ Generates a TypeScript file containing:
22
22
 
23
23
  - Type definitions for all TailorDB types
24
24
  - `getDB(namespace)` function to create Kysely instances
25
- - Utility types for Timestamp and Serial fields
25
+ - Utility types for `Timestamp`, `Serial`, and `ObjectColumnType` (wraps nested objects containing date/datetime fields to provide correct insert vs select types)
26
26
 
27
27
  ### Usage
28
28
 
@@ -123,6 +123,50 @@ Fire on auth access token lifecycle events:
123
123
  authAccessTokenIssuedTrigger();
124
124
  ```
125
125
 
126
+ ### Multi-Event Triggers
127
+
128
+ Handle multiple event types in a single executor using multi-event trigger factories. These accept an `events` array of short event names:
129
+
130
+ #### `recordTrigger()`
131
+
132
+ ```typescript
133
+ import { createExecutor, recordTrigger } from "@tailor-platform/sdk";
134
+ import { user } from "../tailordb/user";
135
+
136
+ export default createExecutor({
137
+ name: "user-changed",
138
+ trigger: recordTrigger({
139
+ type: user,
140
+ events: ["created", "updated"],
141
+ }),
142
+ operation: {
143
+ kind: "function",
144
+ body: async (args) => {
145
+ if (args.event === "created") {
146
+ console.log("User created:", args.newRecord.name);
147
+ }
148
+ if (args.event === "updated") {
149
+ console.log("User updated:", args.oldRecord.name, "->", args.newRecord.name);
150
+ }
151
+ },
152
+ },
153
+ });
154
+ ```
155
+
156
+ #### `idpUserTrigger()`
157
+
158
+ ```typescript
159
+ idpUserTrigger({ events: ["created", "deleted"] });
160
+ ```
161
+
162
+ #### `authAccessTokenTrigger()`
163
+
164
+ ```typescript
165
+ authAccessTokenTrigger({ events: ["issued", "revoked"] });
166
+ ```
167
+
168
+ The `event` field on args matches the short event name (e.g., `"created"`, `"updated"`, `"deleted"`, `"issued"`, `"refreshed"`, `"revoked"`), enabling type narrowing. The `rawEvent` field contains the full event type string (e.g., `"tailordb.type_record.created"`).
169
+
126
170
  ## Operation Types
127
171
 
128
172
  ### Function Operation
@@ -287,6 +331,8 @@ Record triggers receive context based on the operation type:
287
331
 
288
332
  ```typescript
289
333
  interface RecordCreatedContext<T> {
334
+ event: "created"; // Short event name for type narrowing
335
+ rawEvent: "tailordb.type_record.created"; // Full event type string
290
336
  workspaceId: string; // Workspace identifier
291
337
  appNamespace: string; // Application/namespace name
292
338
  typeName: string; // TailorDB type name
@@ -298,6 +344,8 @@ interface RecordCreatedContext<T> {
298
344
 
299
345
  ```typescript
300
346
  interface RecordUpdatedContext<T> {
347
+ event: "updated";
348
+ rawEvent: "tailordb.type_record.updated";
301
349
  workspaceId: string;
302
350
  appNamespace: string;
303
351
  typeName: string;
@@ -310,6 +358,8 @@ interface RecordUpdatedContext<T> {
310
358
 
311
359
  ```typescript
312
360
  interface RecordDeletedContext<T> {
361
+ event: "deleted";
362
+ rawEvent: "tailordb.type_record.deleted";
313
363
  workspaceId: string;
314
364
  appNamespace: string;
315
365
  typeName: string;
@@ -432,6 +482,8 @@ IdP user triggers receive user context:
432
482
 
433
483
  ```typescript
434
484
  interface IdpUserContext {
485
+ event: "created" | "updated" | "deleted"; // Short event name
486
+ rawEvent: string; // Full event type (e.g., "idp.user.created")
435
487
  namespaceName: string; // IdP namespace name
436
488
  userId: string; // The affected user ID
437
489
  }
@@ -443,6 +495,8 @@ Auth access token triggers receive token context:
443
495
 
444
496
  ```typescript
445
497
  interface AuthAccessTokenContext {
498
+ event: "issued" | "refreshed" | "revoked"; // Short event name
499
+ rawEvent: string; // Full event type (e.g., "auth.access_token.issued")
446
500
  namespaceName: string; // Auth namespace name
447
501
  userId: string; // The user associated with the token
448
502
  }
@@ -77,6 +77,28 @@ defineIdp("my-idp", {
77
77
  });
78
78
  ```
79
79
 
80
+ ### emailConfig
81
+
82
+ Namespace-level email configuration defaults. Per-request values take priority over these defaults.
83
+
84
+ ```typescript
85
+ defineIdp("my-idp", {
86
+ authorization: "loggedIn",
87
+ clients: ["my-client"],
88
+ emailConfig: {
89
+ fromName: "My App",
90
+ passwordResetSubject: "Reset your password",
91
+ },
92
+ });
93
+ ```
94
+
95
+ **Fields:**
96
+
97
+ - `fromName` - Default sender display name for emails. Empty means use mailer default.
98
+ - `passwordResetSubject` - Default subject for password reset emails. Empty means use localized default.
99
+
100
+ **Validation:** Each field must be 200 characters or less and must not contain newline characters.
101
+
80
102
  ## Using idp.provider()
81
103
 
82
104
  The `idp.provider()` method creates a type-safe reference to the IdP for use in Auth configuration. The client name is validated at compile time against the clients defined in the IdP.