@tailor-platform/sdk 1.40.1 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/README.md +23 -0
- package/dist/{actor-B2oEmlTc.d.mts → actor-DzCuoMlP.d.mts} +2 -2
- package/dist/application-BZRbA1pL.mjs +4 -0
- package/dist/{application-EvhIIVg0.mjs → application-DkVNbIuh.mjs} +95 -16
- package/dist/application-DkVNbIuh.mjs.map +1 -0
- package/dist/brand-Ll48SMXe.mjs.map +1 -1
- package/dist/cli/index.mjs +56 -43
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/lib.d.mts +75 -18
- package/dist/cli/lib.mjs +9 -9
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/cli/skills.mjs.map +1 -1
- package/dist/{client-CcV6Jjds.mjs → client-DQl5NPG9.mjs} +103 -43
- package/dist/{client-CcV6Jjds.mjs.map → client-DQl5NPG9.mjs.map} +1 -1
- package/dist/{client-Cn9SqhZT.mjs → client-EI4pMzvm.mjs} +1 -1
- package/dist/configure/index.d.mts +5 -5
- package/dist/configure/index.mjs +84 -4
- package/dist/configure/index.mjs.map +1 -1
- package/dist/{crash-report-CUbm1ErM.mjs → crash-report-CSSrblUv.mjs} +4 -4
- package/dist/{crash-report-CUbm1ErM.mjs.map → crash-report-CSSrblUv.mjs.map} +1 -1
- package/dist/{crash-report-CSYupJ0T.mjs → crash-report-DtkFq9JF.mjs} +1 -1
- package/dist/{enum-constants-Dx82rSjf.mjs → enum-constants-C3KSpsYj.mjs} +1 -1
- package/dist/{enum-constants-Dx82rSjf.mjs.map → enum-constants-C3KSpsYj.mjs.map} +1 -1
- package/dist/{errors-ChWX5ZG8.mjs → errors-_M2TVoWh.mjs} +1 -1
- package/dist/{errors-ChWX5ZG8.mjs.map → errors-_M2TVoWh.mjs.map} +1 -1
- package/dist/{file-utils-DeWpvq3T.mjs → file-utils-775qWKoo.mjs} +1 -1
- package/dist/{file-utils-DeWpvq3T.mjs.map → file-utils-775qWKoo.mjs.map} +1 -1
- package/dist/{index-Chvw1Eod.d.mts → index-0Dk-fDWi.d.mts} +2 -2
- package/dist/{index-CiNNNpuH.d.mts → index-BEEL1-6Z.d.mts} +2 -2
- package/dist/{index-D_ezppY7.d.mts → index-Br4XCvX1.d.mts} +103 -86
- package/dist/{index-BtXZdz-F.d.mts → index-DdsUV-aA.d.mts} +2 -2
- package/dist/{index-reFAYSX7.d.mts → index-ZZYEd_0R.d.mts} +2 -2
- package/dist/interceptor-4UC-KTno.mjs.map +1 -1
- package/dist/{job-p6zf8Qpg.mjs → job-BOvKyNdT.mjs} +15 -9
- package/dist/job-BOvKyNdT.mjs.map +1 -0
- package/dist/kysely/index.mjs.map +1 -1
- package/dist/{kysely-type-CwtvQuxh.mjs → kysely-type-BQsYEZoY.mjs} +1 -1
- package/dist/kysely-type-BQsYEZoY.mjs.map +1 -0
- package/dist/logger-DTNAMYGy.mjs.map +1 -1
- package/dist/{package-json-CWp8s9dE.mjs → package-json-CRzw5eUf.mjs} +1 -1
- package/dist/{package-json-CWp8s9dE.mjs.map → package-json-CRzw5eUf.mjs.map} +1 -1
- package/dist/package-json-DR_mqrCW.mjs +4 -0
- package/dist/plugin/builtin/enum-constants/index.d.mts +1 -1
- package/dist/plugin/builtin/enum-constants/index.mjs +1 -1
- package/dist/plugin/builtin/file-utils/index.d.mts +1 -1
- package/dist/plugin/builtin/file-utils/index.mjs +1 -1
- package/dist/plugin/builtin/kysely-type/index.d.mts +1 -1
- package/dist/plugin/builtin/kysely-type/index.mjs +1 -1
- package/dist/plugin/builtin/seed/index.d.mts +1 -1
- package/dist/plugin/builtin/seed/index.mjs +1 -1
- package/dist/plugin/index.d.mts +2 -2
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/repl-editor-DjycioU-.mjs.map +1 -1
- package/dist/{runtime-B9R1TzLD.mjs → runtime-l7GFD3Xg.mjs} +503 -196
- package/dist/runtime-l7GFD3Xg.mjs.map +1 -0
- package/dist/{schema-CEcfEyPN.mjs → schema-DBq6hr6h.mjs} +13 -2
- package/dist/{schema-CEcfEyPN.mjs.map → schema-DBq6hr6h.mjs.map} +1 -1
- package/dist/{seed-CyYPhvNL.mjs → seed-BkVKgsxf.mjs} +1 -1
- package/dist/{seed-CyYPhvNL.mjs.map → seed-BkVKgsxf.mjs.map} +1 -1
- package/dist/{service-SrG26B9T.mjs → service-CCnx_IFw.mjs} +2 -2
- package/dist/{service-SrG26B9T.mjs.map → service-CCnx_IFw.mjs.map} +1 -1
- package/dist/{tailor-db-field-CoFKRCYW.d.mts → tailor-db-field-D_z185oq.d.mts} +36 -6
- package/dist/{telemetry-BuDto_2q.mjs → telemetry-B6Le9XT-.mjs} +2 -2
- package/dist/{telemetry-BuDto_2q.mjs.map → telemetry-B6Le9XT-.mjs.map} +1 -1
- package/dist/telemetry-C_WXxIo0.mjs +4 -0
- package/dist/types-Duhhsx3R.mjs.map +1 -1
- package/dist/utils/test/index.d.mts +36 -3
- package/dist/utils/test/index.mjs +78 -9
- package/dist/utils/test/index.mjs.map +1 -1
- package/dist/{workflow.generated-Btz6srLR.d.mts → workflow.generated-CDCnZNkH.d.mts} +2 -2
- package/docs/cli/application.md +130 -5
- package/docs/cli/crash-report.md +12 -1
- package/docs/cli/executor.md +6 -4
- package/docs/cli/function.md +83 -1
- package/docs/cli/organization.md +6 -5
- package/docs/cli/workspace.md +16 -13
- package/docs/cli-reference.md +13 -10
- package/docs/services/executor.md +4 -0
- package/docs/services/idp.md +16 -0
- package/docs/services/resolver.md +4 -2
- package/docs/services/workflow.md +117 -3
- package/docs/testing.md +95 -7
- package/package.json +24 -24
- package/dist/application-CE2s_a6w.mjs +0 -4
- package/dist/application-EvhIIVg0.mjs.map +0 -1
- package/dist/job-p6zf8Qpg.mjs.map +0 -1
- package/dist/kysely-type-CwtvQuxh.mjs.map +0 -1
- package/dist/package-json-CPR7s5hf.mjs +0 -4
- package/dist/runtime-B9R1TzLD.mjs.map +0 -1
- package/dist/telemetry-C1hzFaiV.mjs +0 -4
package/docs/cli/application.md
CHANGED
|
@@ -311,7 +311,7 @@ Call Tailor Platform API endpoints directly.
|
|
|
311
311
|
**Usage**
|
|
312
312
|
|
|
313
313
|
```
|
|
314
|
-
tailor-sdk api [options] <endpoint>
|
|
314
|
+
tailor-sdk api [options] [command] <endpoint>
|
|
315
315
|
```
|
|
316
316
|
|
|
317
317
|
<!-- politty:command:api:usage:end -->
|
|
@@ -320,9 +320,9 @@ tailor-sdk api [options] <endpoint>
|
|
|
320
320
|
|
|
321
321
|
**Arguments**
|
|
322
322
|
|
|
323
|
-
| Argument | Description
|
|
324
|
-
| ---------- |
|
|
325
|
-
| `endpoint` | API endpoint to call (e.g., 'GetApplication' or 'tailor.v1.OperatorService/GetApplication') | Yes |
|
|
323
|
+
| Argument | Description | Required |
|
|
324
|
+
| ---------- | -------------------------------------------------------------------------------------------- | -------- |
|
|
325
|
+
| `endpoint` | API endpoint to call (e.g., 'GetApplication' or 'tailor.v1.OperatorService/GetApplication'). | Yes |
|
|
326
326
|
|
|
327
327
|
<!-- politty:command:api:arguments:end -->
|
|
328
328
|
|
|
@@ -335,7 +335,7 @@ tailor-sdk api [options] <endpoint>
|
|
|
335
335
|
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
|
|
336
336
|
| `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
|
|
337
337
|
| `--config <CONFIG>` | `-c` | Path to SDK config file | No | `"tailor.config.ts"` | `TAILOR_PLATFORM_SDK_CONFIG_PATH` |
|
|
338
|
-
| `--body <BODY>` | `-b` | Request body as JSON
|
|
338
|
+
| `--body <BODY>` | `-b` | Request body as JSON. | No | `"{}"` | - |
|
|
339
339
|
|
|
340
340
|
<!-- politty:command:api:options:end -->
|
|
341
341
|
|
|
@@ -345,10 +345,36 @@ See [Global Options](../cli-reference.md#global-options) for options available t
|
|
|
345
345
|
|
|
346
346
|
<!-- politty:command:api:global-options-link:end -->
|
|
347
347
|
|
|
348
|
+
<!-- politty:command:api:examples:start -->
|
|
349
|
+
|
|
350
|
+
**Examples**
|
|
351
|
+
|
|
352
|
+
**Call an endpoint; workspaceId is auto-injected.**
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
$ tailor-sdk api GetApplication -b '{"applicationName":"app-1"}'
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**List all invocable OperatorService methods.**
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
$ tailor-sdk api list
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
**Show the input message tree for an endpoint.**
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
$ tailor-sdk api inspect GetApplication
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
<!-- politty:command:api:examples:end -->
|
|
371
|
+
|
|
348
372
|
<!-- politty:command:api:notes:start -->
|
|
349
373
|
|
|
350
374
|
**Notes**
|
|
351
375
|
|
|
376
|
+
Use `tailor-sdk api list` to enumerate invocable methods and `tailor-sdk api inspect <endpoint>` to print an endpoint's input message tree (combine with `--json` for machine-readable output).
|
|
377
|
+
|
|
352
378
|
The request body is inferred from the proto definition of the target endpoint, and commonly required fields are auto-injected so they can be omitted from `--body`:
|
|
353
379
|
|
|
354
380
|
- `workspaceId` — resolved from `-w` / `TAILOR_PLATFORM_WORKSPACE_ID` / the selected profile.
|
|
@@ -359,3 +385,102 @@ The request body is inferred from the proto definition of the target endpoint, a
|
|
|
359
385
|
Values already present in `--body` are never overridden. If a value cannot be resolved (e.g. no config found), injection is silently skipped and the server-side validation error takes precedence.
|
|
360
386
|
|
|
361
387
|
<!-- politty:command:api:notes:end -->
|
|
388
|
+
<!-- politty:command:api inspect:heading:start -->
|
|
389
|
+
|
|
390
|
+
### api inspect
|
|
391
|
+
|
|
392
|
+
<!-- politty:command:api inspect:heading:end -->
|
|
393
|
+
|
|
394
|
+
<!-- politty:command:api inspect:description:start -->
|
|
395
|
+
|
|
396
|
+
Print the input message tree of an OperatorService endpoint.
|
|
397
|
+
|
|
398
|
+
<!-- politty:command:api inspect:description:end -->
|
|
399
|
+
|
|
400
|
+
<!-- politty:command:api inspect:usage:start -->
|
|
401
|
+
|
|
402
|
+
**Usage**
|
|
403
|
+
|
|
404
|
+
```
|
|
405
|
+
tailor-sdk api inspect <endpoint>
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
<!-- politty:command:api inspect:usage:end -->
|
|
409
|
+
|
|
410
|
+
<!-- politty:command:api inspect:arguments:start -->
|
|
411
|
+
|
|
412
|
+
**Arguments**
|
|
413
|
+
|
|
414
|
+
| Argument | Description | Required |
|
|
415
|
+
| ---------- | ----------------------------------------------------------------------------------------------- | -------- |
|
|
416
|
+
| `endpoint` | API endpoint to inspect (e.g., 'GetApplication' or 'tailor.v1.OperatorService/GetApplication'). | Yes |
|
|
417
|
+
|
|
418
|
+
<!-- politty:command:api inspect:arguments:end -->
|
|
419
|
+
|
|
420
|
+
<!-- politty:command:api inspect:global-options-link:start -->
|
|
421
|
+
|
|
422
|
+
See [Global Options](../cli-reference.md#global-options) for options available to all commands.
|
|
423
|
+
|
|
424
|
+
<!-- politty:command:api inspect:global-options-link:end -->
|
|
425
|
+
|
|
426
|
+
<!-- politty:command:api inspect:examples:start -->
|
|
427
|
+
|
|
428
|
+
**Examples**
|
|
429
|
+
|
|
430
|
+
**Show fields of GetApplicationRequest.**
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
$ tailor-sdk api inspect GetApplication
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
**Inspect a deeply nested input with `(oneof config)` annotations.**
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
$ tailor-sdk api inspect CreateExecutorExecutor
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
<!-- politty:command:api inspect:examples:end -->
|
|
443
|
+
|
|
444
|
+
<!-- politty:command:api inspect:notes:start -->
|
|
445
|
+
|
|
446
|
+
**Notes**
|
|
447
|
+
|
|
448
|
+
Combine with the global `--json` flag for a machine-readable descriptor. Recursive type references and `oneof` membership are annotated. Use `tailor-sdk api list` to discover endpoint names.
|
|
449
|
+
|
|
450
|
+
<!-- politty:command:api inspect:notes:end -->
|
|
451
|
+
|
|
452
|
+
<!-- politty:command:api list:heading:start -->
|
|
453
|
+
|
|
454
|
+
### api list
|
|
455
|
+
|
|
456
|
+
<!-- politty:command:api list:heading:end -->
|
|
457
|
+
|
|
458
|
+
<!-- politty:command:api list:description:start -->
|
|
459
|
+
|
|
460
|
+
List all invocable OperatorService methods.
|
|
461
|
+
|
|
462
|
+
<!-- politty:command:api list:description:end -->
|
|
463
|
+
|
|
464
|
+
<!-- politty:command:api list:usage:start -->
|
|
465
|
+
|
|
466
|
+
**Usage**
|
|
467
|
+
|
|
468
|
+
```
|
|
469
|
+
tailor-sdk api list
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
<!-- politty:command:api list:usage:end -->
|
|
473
|
+
|
|
474
|
+
<!-- politty:command:api list:global-options-link:start -->
|
|
475
|
+
|
|
476
|
+
See [Global Options](../cli-reference.md#global-options) for options available to all commands.
|
|
477
|
+
|
|
478
|
+
<!-- politty:command:api list:global-options-link:end -->
|
|
479
|
+
|
|
480
|
+
<!-- politty:command:api list:notes:start -->
|
|
481
|
+
|
|
482
|
+
**Notes**
|
|
483
|
+
|
|
484
|
+
Only unary RPCs are listed; streaming methods are excluded because `tailor-sdk api run` issues a single JSON POST and reads one JSON response.
|
|
485
|
+
|
|
486
|
+
<!-- politty:command:api list:notes:end -->
|
package/docs/cli/crash-report.md
CHANGED
|
@@ -57,11 +57,22 @@ List local crash report files.
|
|
|
57
57
|
**Usage**
|
|
58
58
|
|
|
59
59
|
```
|
|
60
|
-
tailor-sdk crash-report list
|
|
60
|
+
tailor-sdk crash-report list [options]
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
<!-- politty:command:crash-report list:usage:end -->
|
|
64
64
|
|
|
65
|
+
<!-- politty:command:crash-report list:options:start -->
|
|
66
|
+
|
|
67
|
+
**Options**
|
|
68
|
+
|
|
69
|
+
| Option | Alias | Description | Required | Default |
|
|
70
|
+
| ----------------- | ----- | -------------------------------------------------------- | -------- | -------- |
|
|
71
|
+
| `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` |
|
|
72
|
+
| `--limit <LIMIT>` | `-l` | Maximum number of items to return (0 or omit: unlimited) | No | - |
|
|
73
|
+
|
|
74
|
+
<!-- politty:command:crash-report list:options:end -->
|
|
75
|
+
|
|
65
76
|
<!-- politty:command:crash-report list:global-options-link:start -->
|
|
66
77
|
|
|
67
78
|
See [Global Options](../cli-reference.md#global-options) for options available to all commands.
|
package/docs/cli/executor.md
CHANGED
|
@@ -414,10 +414,12 @@ tailor-sdk executor webhook list [options]
|
|
|
414
414
|
|
|
415
415
|
**Options**
|
|
416
416
|
|
|
417
|
-
| Option | Alias | Description
|
|
418
|
-
| ------------------------------- | ----- |
|
|
419
|
-
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID
|
|
420
|
-
| `--profile <PROFILE>` | `-p` | Workspace profile
|
|
417
|
+
| Option | Alias | Description | Required | Default | Env |
|
|
418
|
+
| ------------------------------- | ----- | -------------------------------------------------------- | -------- | -------- | ------------------------------ |
|
|
419
|
+
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
|
|
420
|
+
| `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
|
|
421
|
+
| `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
|
|
422
|
+
| `--limit <LIMIT>` | `-l` | Maximum number of items to return (0 or omit: unlimited) | No | - | - |
|
|
421
423
|
|
|
422
424
|
<!-- politty:command:executor webhook list:options:end -->
|
|
423
425
|
|
package/docs/cli/function.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Function Commands
|
|
2
2
|
|
|
3
|
-
Commands for viewing function execution logs.
|
|
3
|
+
Commands for managing function registries and viewing function execution logs.
|
|
4
4
|
|
|
5
5
|
<!-- politty:command:function:heading:start -->
|
|
6
6
|
|
|
@@ -30,6 +30,8 @@ tailor-sdk function [command]
|
|
|
30
30
|
|
|
31
31
|
| Command | Description |
|
|
32
32
|
| ----------------------------------------- | --------------------------------------------------------------- |
|
|
33
|
+
| [`function get`](#function-get) | Get a function registry by name |
|
|
34
|
+
| [`function list`](#function-list) | List function registries in a workspace |
|
|
33
35
|
| [`function logs`](#function-logs) | List or get function execution logs. |
|
|
34
36
|
| [`function test-run`](#function-test-run) | Run a function on the Tailor Platform server without deploying. |
|
|
35
37
|
|
|
@@ -40,6 +42,86 @@ tailor-sdk function [command]
|
|
|
40
42
|
See [Global Options](../cli-reference.md#global-options) for options available to all commands.
|
|
41
43
|
|
|
42
44
|
<!-- politty:command:function:global-options-link:end -->
|
|
45
|
+
<!-- politty:command:function get:heading:start -->
|
|
46
|
+
|
|
47
|
+
### function get
|
|
48
|
+
|
|
49
|
+
<!-- politty:command:function get:heading:end -->
|
|
50
|
+
|
|
51
|
+
<!-- politty:command:function get:description:start -->
|
|
52
|
+
|
|
53
|
+
Get a function registry by name
|
|
54
|
+
|
|
55
|
+
<!-- politty:command:function get:description:end -->
|
|
56
|
+
|
|
57
|
+
<!-- politty:command:function get:usage:start -->
|
|
58
|
+
|
|
59
|
+
**Usage**
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
tailor-sdk function get [options]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
<!-- politty:command:function get:usage:end -->
|
|
66
|
+
|
|
67
|
+
<!-- politty:command:function get:options:start -->
|
|
68
|
+
|
|
69
|
+
**Options**
|
|
70
|
+
|
|
71
|
+
| Option | Alias | Description | Required | Default | Env |
|
|
72
|
+
| ------------------------------- | ----- | ----------------- | -------- | ------- | ------------------------------ |
|
|
73
|
+
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
|
|
74
|
+
| `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
|
|
75
|
+
| `--name <NAME>` | `-n` | Function name | Yes | - | - |
|
|
76
|
+
|
|
77
|
+
<!-- politty:command:function get:options:end -->
|
|
78
|
+
|
|
79
|
+
<!-- politty:command:function get:global-options-link:start -->
|
|
80
|
+
|
|
81
|
+
See [Global Options](../cli-reference.md#global-options) for options available to all commands.
|
|
82
|
+
|
|
83
|
+
<!-- politty:command:function get:global-options-link:end -->
|
|
84
|
+
<!-- politty:command:function list:heading:start -->
|
|
85
|
+
|
|
86
|
+
### function list
|
|
87
|
+
|
|
88
|
+
<!-- politty:command:function list:heading:end -->
|
|
89
|
+
|
|
90
|
+
<!-- politty:command:function list:description:start -->
|
|
91
|
+
|
|
92
|
+
List function registries in a workspace
|
|
93
|
+
|
|
94
|
+
<!-- politty:command:function list:description:end -->
|
|
95
|
+
|
|
96
|
+
<!-- politty:command:function list:usage:start -->
|
|
97
|
+
|
|
98
|
+
**Usage**
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
tailor-sdk function list [options]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
<!-- politty:command:function list:usage:end -->
|
|
105
|
+
|
|
106
|
+
<!-- politty:command:function list:options:start -->
|
|
107
|
+
|
|
108
|
+
**Options**
|
|
109
|
+
|
|
110
|
+
| Option | Alias | Description | Required | Default | Env |
|
|
111
|
+
| ------------------------------- | ----- | -------------------------------------------------------- | -------- | -------- | ------------------------------ |
|
|
112
|
+
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
|
|
113
|
+
| `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
|
|
114
|
+
| `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
|
|
115
|
+
| `--limit <LIMIT>` | `-l` | Maximum number of items to return (0 or omit: unlimited) | No | - | - |
|
|
116
|
+
|
|
117
|
+
<!-- politty:command:function list:options:end -->
|
|
118
|
+
|
|
119
|
+
<!-- politty:command:function list:global-options-link:start -->
|
|
120
|
+
|
|
121
|
+
See [Global Options](../cli-reference.md#global-options) for options available to all commands.
|
|
122
|
+
|
|
123
|
+
<!-- politty:command:function list:global-options-link:end -->
|
|
124
|
+
|
|
43
125
|
<!-- politty:command:function logs:heading:start -->
|
|
44
126
|
|
|
45
127
|
### function logs
|
package/docs/cli/organization.md
CHANGED
|
@@ -222,11 +222,12 @@ tailor-sdk organization folder list [options]
|
|
|
222
222
|
|
|
223
223
|
**Options**
|
|
224
224
|
|
|
225
|
-
| Option | Alias | Description
|
|
226
|
-
| --------------------------------------- | ----- |
|
|
227
|
-
| `--organization-id <ORGANIZATION_ID>` | `-o` | Organization ID
|
|
228
|
-
| `--parent-folder-id <PARENT_FOLDER_ID>` | - | Parent folder ID to list children of
|
|
229
|
-
| `--
|
|
225
|
+
| Option | Alias | Description | Required | Default | Env |
|
|
226
|
+
| --------------------------------------- | ----- | -------------------------------------------------------- | -------- | -------- | --------------------------------- |
|
|
227
|
+
| `--organization-id <ORGANIZATION_ID>` | `-o` | Organization ID | Yes | - | `TAILOR_PLATFORM_ORGANIZATION_ID` |
|
|
228
|
+
| `--parent-folder-id <PARENT_FOLDER_ID>` | - | Parent folder ID to list children of | No | - | - |
|
|
229
|
+
| `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
|
|
230
|
+
| `--limit <LIMIT>` | `-l` | Maximum number of items to return (0 or omit: unlimited) | No | - | - |
|
|
230
231
|
|
|
231
232
|
<!-- politty:command:organization folder list:options:end -->
|
|
232
233
|
|
package/docs/cli/workspace.md
CHANGED
|
@@ -114,9 +114,10 @@ tailor-sdk workspace list [options]
|
|
|
114
114
|
|
|
115
115
|
**Options**
|
|
116
116
|
|
|
117
|
-
| Option | Alias | Description
|
|
118
|
-
| ----------------- | ----- |
|
|
119
|
-
| `--
|
|
117
|
+
| Option | Alias | Description | Required | Default |
|
|
118
|
+
| ----------------- | ----- | -------------------------------------------------------- | -------- | -------- |
|
|
119
|
+
| `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` |
|
|
120
|
+
| `--limit <LIMIT>` | `-l` | Maximum number of items to return (0 or omit: unlimited) | No | - |
|
|
120
121
|
|
|
121
122
|
<!-- politty:command:workspace list:options:end -->
|
|
122
123
|
|
|
@@ -472,11 +473,12 @@ tailor-sdk workspace app list [options]
|
|
|
472
473
|
|
|
473
474
|
**Options**
|
|
474
475
|
|
|
475
|
-
| Option | Alias | Description
|
|
476
|
-
| ------------------------------- | ----- |
|
|
477
|
-
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID
|
|
478
|
-
| `--profile <PROFILE>` | `-p` | Workspace profile
|
|
479
|
-
| `--
|
|
476
|
+
| Option | Alias | Description | Required | Default | Env |
|
|
477
|
+
| ------------------------------- | ----- | -------------------------------------------------------- | -------- | -------- | ------------------------------ |
|
|
478
|
+
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
|
|
479
|
+
| `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
|
|
480
|
+
| `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
|
|
481
|
+
| `--limit <LIMIT>` | `-l` | Maximum number of items to return (0 or omit: unlimited) | No | - | - |
|
|
480
482
|
|
|
481
483
|
<!-- politty:command:workspace app list:options:end -->
|
|
482
484
|
|
|
@@ -672,11 +674,12 @@ tailor-sdk workspace user list [options]
|
|
|
672
674
|
|
|
673
675
|
**Options**
|
|
674
676
|
|
|
675
|
-
| Option | Alias | Description
|
|
676
|
-
| ------------------------------- | ----- |
|
|
677
|
-
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID
|
|
678
|
-
| `--profile <PROFILE>` | `-p` | Workspace profile
|
|
679
|
-
| `--
|
|
677
|
+
| Option | Alias | Description | Required | Default | Env |
|
|
678
|
+
| ------------------------------- | ----- | -------------------------------------------------------- | -------- | -------- | ------------------------------ |
|
|
679
|
+
| `--workspace-id <WORKSPACE_ID>` | `-w` | Workspace ID | No | - | `TAILOR_PLATFORM_WORKSPACE_ID` |
|
|
680
|
+
| `--profile <PROFILE>` | `-p` | Workspace profile | No | - | `TAILOR_PLATFORM_PROFILE` |
|
|
681
|
+
| `--order <ORDER>` | - | Sort order (asc or desc) | No | `"desc"` | - |
|
|
682
|
+
| `--limit <LIMIT>` | `-l` | Maximum number of items to return (0 or omit: unlimited) | No | - | - |
|
|
680
683
|
|
|
681
684
|
<!-- politty:command:workspace user list:options:end -->
|
|
682
685
|
|
package/docs/cli-reference.md
CHANGED
|
@@ -95,15 +95,16 @@ Workspace ID resolution follows this priority order:
|
|
|
95
95
|
|
|
96
96
|
Commands for managing Tailor Platform applications (work with `tailor.config.ts`).
|
|
97
97
|
|
|
98
|
-
| Command
|
|
99
|
-
|
|
|
100
|
-
| [init](./cli/application.md#init)
|
|
101
|
-
| [generate](./cli/application.md#generate)
|
|
102
|
-
| [apply](./cli/application.md#apply)
|
|
103
|
-
| [remove](./cli/application.md#remove)
|
|
104
|
-
| [show](./cli/application.md#show)
|
|
105
|
-
| [open](./cli/application.md#open)
|
|
106
|
-
| [api](./cli/application.md#api)
|
|
98
|
+
| Command | Description |
|
|
99
|
+
| ----------------------------------------------- | ------------------------------------------------------------------- |
|
|
100
|
+
| [init](./cli/application.md#init) | Initialize a new project using create-sdk. |
|
|
101
|
+
| [generate](./cli/application.md#generate) | Generate files using Tailor configuration. |
|
|
102
|
+
| [apply](./cli/application.md#apply) | Apply Tailor configuration to deploy your application. |
|
|
103
|
+
| [remove](./cli/application.md#remove) | Remove all resources managed by the application from the workspace. |
|
|
104
|
+
| [show](./cli/application.md#show) | Show information about the deployed application. |
|
|
105
|
+
| [open](./cli/application.md#open) | Open Tailor Platform Console. |
|
|
106
|
+
| [api list](./cli/application.md#api-list) | List all invocable OperatorService methods. |
|
|
107
|
+
| [api inspect](./cli/application.md#api-inspect) | Print the input message tree of an OperatorService endpoint. |
|
|
107
108
|
|
|
108
109
|
### [TailorDB Commands](./cli/tailordb.md)
|
|
109
110
|
|
|
@@ -209,10 +210,12 @@ Commands for managing workflows and executions.
|
|
|
209
210
|
|
|
210
211
|
### [Function Commands](./cli/function.md)
|
|
211
212
|
|
|
212
|
-
Commands for viewing function execution logs.
|
|
213
|
+
Commands for managing function registries and viewing function execution logs.
|
|
213
214
|
|
|
214
215
|
| Command | Description |
|
|
215
216
|
| -------------------------------------------------------- | --------------------------------------------------------------- |
|
|
217
|
+
| [function get](./cli/function.md#function-get) | Get a function registry by name |
|
|
218
|
+
| [function list](./cli/function.md#function-list) | List function registries in a workspace |
|
|
216
219
|
| [function logs](./cli/function.md#function-logs) | List or get function execution logs. |
|
|
217
220
|
| [function test-run](./cli/function.md#function-test-run) | Run a function on the Tailor Platform server without deploying. |
|
|
218
221
|
|
|
@@ -130,6 +130,8 @@ Fire when IdP users are created, updated, or deleted:
|
|
|
130
130
|
idpUserCreatedTrigger();
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
+
These triggers require the IdP to publish user lifecycle events. The SDK enables `publishUserEvents` on the IdP automatically during `apply` when any executor uses an `idpUser` trigger; set the value explicitly on `defineIdp()` to override. See [IdP service - publishUserEvents](./idp.md#publishuserevents).
|
|
134
|
+
|
|
133
135
|
### Auth Access Token Triggers
|
|
134
136
|
|
|
135
137
|
Fire on auth access token lifecycle events:
|
|
@@ -203,6 +205,8 @@ createExecutor({
|
|
|
203
205
|
});
|
|
204
206
|
```
|
|
205
207
|
|
|
208
|
+
`function` and `jobFunction` `body` args include an `invoker` field: the principal running this function, overridden by `authInvoker` when set; `null` for anonymous calls. Other operation kinds (`graphql`, `webhook`, `workflow`) do not pass `invoker` into their callbacks.
|
|
209
|
+
|
|
206
210
|
### Job Function Operation
|
|
207
211
|
|
|
208
212
|
For long-running operations, use `jobFunction` which runs asynchronously and supports extended execution times. See [Job Function Operation](https://docs.tailor.tech/guides/executor/job-function-operation) for details.
|
package/docs/services/idp.md
CHANGED
|
@@ -164,6 +164,22 @@ defineIdp("my-idp", {
|
|
|
164
164
|
|
|
165
165
|
**Validation:** Each field must be 200 characters or less and must not contain newline characters.
|
|
166
166
|
|
|
167
|
+
### publishUserEvents
|
|
168
|
+
|
|
169
|
+
Publish IdP user lifecycle events (`idp.user.created`, `idp.user.updated`, `idp.user.deleted`). These events are consumed by executors that use `idpUserCreatedTrigger`, `idpUserUpdatedTrigger`, `idpUserDeletedTrigger`, or `idpUserTrigger`.
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
defineIdp("my-idp", {
|
|
173
|
+
clients: ["my-client"],
|
|
174
|
+
publishUserEvents: true,
|
|
175
|
+
});
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Auto-configuration:** When `publishUserEvents` is omitted, the SDK enables it automatically during `apply` if the project defines any executor with an `idpUser` trigger. Set the value explicitly to override:
|
|
179
|
+
|
|
180
|
+
- `publishUserEvents: true`: always publish events.
|
|
181
|
+
- `publishUserEvents: false`: never publish events. The SDK warns when executors with `idpUser` triggers are present, since those executors will not fire for this IdP.
|
|
182
|
+
|
|
167
183
|
## Using idp.provider()
|
|
168
184
|
|
|
169
185
|
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.
|
|
@@ -234,7 +234,9 @@ Validation runs automatically before the `body` function executes. When validati
|
|
|
234
234
|
Define actual resolver logic in the `body` function. Function arguments include:
|
|
235
235
|
|
|
236
236
|
- `input` - Input data from GraphQL request
|
|
237
|
-
- `user` -
|
|
237
|
+
- `user` - The user who called this resolver; unaffected by `authInvoker`
|
|
238
|
+
- `invoker` - The principal running this function; equals `user` by default, or the machine user set by `authInvoker`. `null` for anonymous calls.
|
|
239
|
+
- `env` - Environment variables declared in `tailor.config.ts`
|
|
238
240
|
|
|
239
241
|
### Using Kysely for Database Access
|
|
240
242
|
|
|
@@ -371,4 +373,4 @@ The machine user name is looked up in the auth service configured on your app (`
|
|
|
371
373
|
|
|
372
374
|
> **Deprecated:** `auth.invoker("batch-processor")` still works, but is deprecated. Importing `auth` into runtime files pulls config-layer (Node-only) dependencies into the bundle.
|
|
373
375
|
|
|
374
|
-
**Note:** `authInvoker` controls the permissions for database operations and other platform actions
|
|
376
|
+
**Note:** `authInvoker` controls the permissions for database operations and other platform actions. The `user` object passed to `body` still reflects the original caller, while `invoker` reflects the principal actually running the body.
|
|
@@ -60,7 +60,7 @@ export const fetchCustomer = createWorkflowJob({
|
|
|
60
60
|
|
|
61
61
|
Workflow job inputs and outputs are serialized as JSON when passed between jobs. This imposes type constraints:
|
|
62
62
|
|
|
63
|
-
**Input types** must be JSON-compatible —
|
|
63
|
+
**Input types** must be JSON-compatible — primitives (`string`, `number`, `boolean`), arrays, and plain objects are allowed. `Date`, `Map`, `Set`, functions, and other non-serializable types cannot be used. Top-level `null` is also rejected because the platform normalizes top-level `null`/`undefined` args to `{}` (nested `null` inside objects or arrays is preserved).
|
|
64
64
|
|
|
65
65
|
```typescript
|
|
66
66
|
// OK
|
|
@@ -78,9 +78,17 @@ export const badJob = createWorkflowJob({
|
|
|
78
78
|
// ...
|
|
79
79
|
},
|
|
80
80
|
});
|
|
81
|
+
|
|
82
|
+
// Compile error — top-level null would be normalized to {} by the platform
|
|
83
|
+
export const nullJob = createWorkflowJob({
|
|
84
|
+
name: "null-job",
|
|
85
|
+
body: async (input: { id: string } | null) => {
|
|
86
|
+
// ...
|
|
87
|
+
},
|
|
88
|
+
});
|
|
81
89
|
```
|
|
82
90
|
|
|
83
|
-
**Output types**
|
|
91
|
+
**Output types** have the same restriction as inputs: must be JsonValue-compatible (plain objects/arrays; no class instances or functions). Values with methods (function-typed properties) are rejected at compile time — this covers class instances like `Date` or `RegExp` as well as any plain object that exposes a method such as `toJSON()`.
|
|
84
92
|
|
|
85
93
|
These constraints are enforced at compile time — you will get a type error if you use an unsupported type.
|
|
86
94
|
|
|
@@ -175,8 +183,10 @@ import { sendNotification } from "./jobs/send-notification";
|
|
|
175
183
|
// Jobs must be named exports
|
|
176
184
|
export const processOrder = createWorkflowJob({
|
|
177
185
|
name: "process-order",
|
|
178
|
-
body: async (input: { customerId: string }, { env }) => {
|
|
186
|
+
body: async (input: { customerId: string }, { env, invoker }) => {
|
|
179
187
|
// `env` contains values from `tailor.config.ts` -> `env`.
|
|
188
|
+
// `invoker` is the principal running this job, overridden by `authInvoker`
|
|
189
|
+
// when set; `null` for anonymous calls.
|
|
180
190
|
// Trigger other jobs by calling .trigger() on the job object.
|
|
181
191
|
const customer = await fetchCustomer.trigger({
|
|
182
192
|
customerId: input.customerId,
|
|
@@ -196,6 +206,110 @@ export default createWorkflow({
|
|
|
196
206
|
});
|
|
197
207
|
```
|
|
198
208
|
|
|
209
|
+
## Wait Points
|
|
210
|
+
|
|
211
|
+
Wait points allow a workflow job to suspend execution and wait for an external signal before resuming. This enables human-in-the-loop patterns such as approvals, reviews, and manual confirmations.
|
|
212
|
+
|
|
213
|
+
### Defining Wait Points
|
|
214
|
+
|
|
215
|
+
Use `defineWaitPoint` to declare a single typed wait point:
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
import { defineWaitPoint } from "@tailor-platform/sdk";
|
|
219
|
+
|
|
220
|
+
export const approval = defineWaitPoint<
|
|
221
|
+
{ message: string; requestId: string },
|
|
222
|
+
{ approved: boolean }
|
|
223
|
+
>("approval");
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
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:
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
import { defineWaitPoints } from "@tailor-platform/sdk";
|
|
230
|
+
|
|
231
|
+
export const waitPoints = defineWaitPoints((define) => ({
|
|
232
|
+
/** Manager approval step */
|
|
233
|
+
managerApproval: define<{ amount: number }, { approved: boolean }>(),
|
|
234
|
+
/** Finance review step */
|
|
235
|
+
financeReview: define<{ invoiceId: string }, { validated: boolean }>(),
|
|
236
|
+
}));
|
|
237
|
+
|
|
238
|
+
await waitPoints.managerApproval.wait({ amount: 50000 });
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Both accept two type parameters:
|
|
242
|
+
|
|
243
|
+
- **`Payload`** — Data sent when the job suspends (passed to `.wait()`). Must be a pure JSON value (`string`, `number`, `boolean`, `null`, arrays, plain objects). Use `undefined` if no payload is needed.
|
|
244
|
+
- **`Result`** — Data returned when the wait point is resolved (returned from `.wait()`, produced by the `.resolve()` callback). Must be a pure JSON value.
|
|
245
|
+
|
|
246
|
+
Both must be JsonValue-compatible (plain objects/arrays; no class instances or functions). Values with methods (function-typed properties) are rejected at compile time — this covers class instances like `Date` or `RegExp` as well as any plain object that exposes a method such as `toJSON()`. Convert such values to `string` (e.g. ISO strings) or `number` (epoch millis) before passing them through a wait point.
|
|
247
|
+
|
|
248
|
+
### Waiting in a Job
|
|
249
|
+
|
|
250
|
+
Call `.wait()` inside a workflow job body to suspend execution:
|
|
251
|
+
|
|
252
|
+
```typescript
|
|
253
|
+
import { createWorkflow, createWorkflowJob, defineWaitPoint } from "@tailor-platform/sdk";
|
|
254
|
+
|
|
255
|
+
export const approval = defineWaitPoint<
|
|
256
|
+
{ message: string; requestId: string },
|
|
257
|
+
{ approved: boolean }
|
|
258
|
+
>("approval");
|
|
259
|
+
|
|
260
|
+
export const processWithApproval = createWorkflowJob({
|
|
261
|
+
name: "process-with-approval",
|
|
262
|
+
body: async (input: { orderId: string }) => {
|
|
263
|
+
// Suspends here until resolved externally
|
|
264
|
+
const result = await approval.wait({
|
|
265
|
+
message: `Please approve order ${input.orderId}`,
|
|
266
|
+
requestId: input.orderId,
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
if (!result.approved) {
|
|
270
|
+
return { orderId: input.orderId, status: "rejected" as const };
|
|
271
|
+
}
|
|
272
|
+
return { orderId: input.orderId, status: "approved" as const };
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
export default createWorkflow({
|
|
277
|
+
name: "approval-workflow",
|
|
278
|
+
mainJob: processWithApproval,
|
|
279
|
+
});
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Resolving from a Resolver
|
|
283
|
+
|
|
284
|
+
Call `.resolve()` from a resolver (or executor) to resume a suspended job. The callback receives the payload that was passed to `.wait()` and returns the result:
|
|
285
|
+
|
|
286
|
+
```typescript
|
|
287
|
+
import { createResolver, t } from "@tailor-platform/sdk";
|
|
288
|
+
import { approval } from "../workflows/approval";
|
|
289
|
+
|
|
290
|
+
export default createResolver({
|
|
291
|
+
name: "resolveApproval",
|
|
292
|
+
description: "Resolve a waiting approval",
|
|
293
|
+
operation: "mutation",
|
|
294
|
+
input: {
|
|
295
|
+
executionId: t.string(),
|
|
296
|
+
approved: t.bool(),
|
|
297
|
+
},
|
|
298
|
+
body: async ({ input }) => {
|
|
299
|
+
await approval.resolve(input.executionId, (payload) => {
|
|
300
|
+
console.log("Resolving:", payload.message);
|
|
301
|
+
return { approved: input.approved };
|
|
302
|
+
});
|
|
303
|
+
return { resolved: true };
|
|
304
|
+
},
|
|
305
|
+
output: t.object({
|
|
306
|
+
resolved: t.bool(),
|
|
307
|
+
}),
|
|
308
|
+
});
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Wait points can be imported and used in any file (workflow jobs, resolvers, executors). For local testing, see [Testing Wait Points](../testing.md#testing-wait-points).
|
|
312
|
+
|
|
199
313
|
## Retry Policy
|
|
200
314
|
|
|
201
315
|
You can configure automatic retry behavior with exponential backoff by setting `retryPolicy` on a workflow. All fields are required when `retryPolicy` is set:
|