@tailor-platform/sdk 2.0.0-next.8 → 2.0.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 +631 -0
- package/dist/{application-GzW98_Xr.mjs → application-CM6hKnSK.mjs} +489 -118
- package/dist/application-CM6hKnSK.mjs.map +1 -0
- package/dist/application-CXNaUNhv.mjs +3 -0
- package/dist/cli/commands/deploy/aigateway.d.mts +2 -2
- package/dist/cli/commands/deploy/application.d.mts +2 -2
- package/dist/cli/commands/deploy/auth.d.mts +2 -2
- package/dist/cli/commands/deploy/deploy.d.mts +1 -0
- package/dist/cli/commands/deploy/executor.d.mts +2 -2
- package/dist/cli/commands/deploy/function-registry.d.mts +1 -2
- package/dist/cli/commands/deploy/idp.d.mts +2 -2
- package/dist/cli/commands/deploy/label.d.mts +2 -0
- package/dist/cli/commands/deploy/resolver.d.mts +2 -2
- package/dist/cli/commands/deploy/secret-manager.d.mts +1 -1
- package/dist/cli/commands/deploy/staticwebsite.d.mts +2 -2
- package/dist/cli/commands/deploy/tailordb/index.d.mts +4 -2
- package/dist/cli/commands/deploy/types.d.mts +2 -1
- package/dist/cli/commands/deploy/workflow-execution-policy.d.mts +1 -2
- package/dist/cli/commands/deploy/workflow.d.mts +2 -2
- package/dist/cli/commands/executor/get.d.mts +1 -10
- package/dist/cli/commands/executor/jobs.d.mts +1 -38
- package/dist/cli/commands/executor/trigger.d.mts +1 -11
- package/dist/cli/commands/generate/seed/bundler.d.mts +2 -1
- package/dist/cli/commands/tailordb/migrate/bundler.d.mts +3 -2
- package/dist/cli/commands/tailordb/migrate/diff-calculator.d.mts +11 -1
- package/dist/cli/commands/tailordb/migrate/schema-checks.d.mts +5 -0
- package/dist/cli/commands/tailordb/migrate/snapshot.d.mts +1 -1
- package/dist/cli/commands/workflow/executions.d.mts +1 -13
- package/dist/cli/commands/workflow/get.d.mts +1 -10
- package/dist/cli/commands/workflow/start.d.mts +2 -14
- package/dist/cli/index.mjs +12 -6552
- package/dist/cli/lib.d.mts +14 -15
- package/dist/cli/lib.mjs +203 -46
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/cli/{index.d.mts → main.d.mts} +1 -1
- package/dist/cli/main.mjs +6777 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cli/services/http-adapter/bundler.d.mts +1 -0
- package/dist/cli/services/workflow/bundler.d.mts +2 -1
- package/dist/cli/shared/client.d.mts +28 -3
- package/dist/cli/shared/config-loader.d.mts +11 -4
- package/dist/cli/shared/error-json.d.mts +23 -0
- package/dist/cli/shared/script-executor.d.mts +6 -3
- package/dist/cli/shared/seed-chunker.d.mts +2 -7
- package/dist/cli/shared/seed-context.d.mts +49 -0
- package/dist/cli/shared/tailordb-namespaces.d.mts +7 -4
- package/dist/cli/shared/tsconfig-paths-plugin.d.mts +2 -0
- package/dist/cli/shared/type-generator.d.mts +4 -3
- package/dist/completion/zsh-worker.zsh +85 -22
- package/dist/configure/config/types.d.mts +29 -4
- package/dist/configure/index.d.mts +4 -3
- package/dist/configure/index.mjs +183 -6
- package/dist/configure/index.mjs.map +1 -1
- package/dist/configure/services/executor/index.d.mts +2 -2
- package/dist/configure/services/executor/trigger/event.d.mts +245 -2
- package/dist/configure/services/executor/trigger/index.d.mts +3 -3
- package/dist/configure/services/idp/index.d.mts +2 -2
- package/dist/configure/services/idp/permission.d.mts +1 -16
- package/dist/configure/services/idp/types.d.mts +5 -1
- package/dist/configure/services/index.d.mts +4 -3
- package/dist/configure/services/resolver/index.d.mts +2 -1
- package/dist/configure/services/resolver/permission.d.mts +64 -0
- package/dist/configure/services/resolver/resolver.d.mts +14 -2
- package/dist/configure/services/tailordb/index.d.mts +0 -1
- package/dist/configure/services/tailordb/permission.d.mts +1 -16
- package/dist/configure/services/workflow/execution-policy.d.mts +3 -3
- package/dist/configure/services/workflow/execution-policy.types.d.mts +1 -1
- package/dist/configure/services/workflow/job.d.mts +11 -2
- package/dist/configure/services/workflow/workflow.d.mts +10 -0
- package/dist/configure/types/permission-operand.types.d.mts +20 -0
- package/dist/{crashreport-CxHne11E.mjs → crashreport-B5LqCTfF.mjs} +2 -2
- package/dist/{crashreport-CxHne11E.mjs.map → crashreport-B5LqCTfF.mjs.map} +1 -1
- package/dist/{crashreport-0ioNRZ4K.mjs → crashreport-eI7ty7ok.mjs} +1 -1
- package/dist/{errors-DfnF4ibq.mjs → errors-D7583Zz7.mjs} +2 -44
- package/dist/errors-D7583Zz7.mjs.map +1 -0
- package/dist/{globals-CBZ0egXT.mjs → globals-TfAVItuK.mjs} +21 -5
- package/dist/globals-TfAVItuK.mjs.map +1 -0
- package/dist/logger-BtX0suGY.mjs +48 -0
- package/dist/logger-BtX0suGY.mjs.map +1 -0
- package/dist/{logger-BwS4ppwO.mjs → logger-CXQq9YIp.mjs} +110 -13
- package/dist/logger-CXQq9YIp.mjs.map +1 -0
- package/dist/node-builtins-CmaL2Cbq.mjs +36 -0
- package/dist/node-builtins-CmaL2Cbq.mjs.map +1 -0
- package/dist/plugin/builtin/enum-constants/index.mjs +115 -2
- package/dist/plugin/builtin/enum-constants/index.mjs.map +1 -0
- package/dist/plugin/builtin/file-utils/index.mjs +149 -2
- package/dist/plugin/builtin/file-utils/index.mjs.map +1 -0
- package/dist/plugin/builtin/kysely-type/index.mjs +274 -2
- package/dist/plugin/builtin/kysely-type/index.mjs.map +1 -0
- package/dist/plugin/builtin/seed/index.d.mts +3 -2
- package/dist/plugin/builtin/seed/index.mjs +1 -1
- package/dist/plugin/builtin/seed/seed-type-processor.d.mts +21 -0
- package/dist/plugin/builtin/seed/types.d.mts +2 -0
- package/dist/{register-ts-hook-DvEs6YsL.mjs → register-ts-hook-LYV7zH-e.mjs} +2953 -996
- package/dist/register-ts-hook-LYV7zH-e.mjs.map +1 -0
- package/dist/{registry-i7EdJ-D5.mjs → registry-BIGVUrMB.mjs} +3 -3
- package/dist/registry-BIGVUrMB.mjs.map +1 -0
- package/dist/runtime/globals.d.mts +7 -0
- package/dist/runtime/index.d.mts +3 -1
- package/dist/runtime/index.mjs +3 -2
- package/dist/runtime/logger.d.mts +98 -0
- package/dist/runtime/logger.mjs +3 -0
- package/dist/runtime/workflow.d.mts +15 -7
- package/dist/runtime/workflow.mjs +1 -1
- package/dist/seed-B-yckgQY.mjs +483 -0
- package/dist/seed-B-yckgQY.mjs.map +1 -0
- package/dist/{service-DaeJlBoH.mjs → service-B5WynBHQ.mjs} +3 -3
- package/dist/{service-DaeJlBoH.mjs.map → service-B5WynBHQ.mjs.map} +1 -1
- package/dist/service-M7OYziQP.mjs +3 -0
- package/dist/{service-Dmxa2I4i.mjs → service-k1xy_A5G.mjs} +30 -4
- package/dist/service-k1xy_A5G.mjs.map +1 -0
- package/dist/{service_pb-BoLM0X4K.mjs → service_pb-D5--My_M.mjs} +5 -5
- package/dist/service_pb-D5--My_M.mjs.map +1 -0
- package/dist/{service_pb-r1T7kpJc.mjs → service_pb-i8CmnQP4.mjs} +1 -1
- package/dist/tailor-proto/src/tailor/v1/application_pb.d.mts +106 -1
- package/dist/tailor-proto/src/tailor/v1/auth_resource_pb.d.mts +6 -1
- package/dist/tailor-proto/src/tailor/v1/executor_resource_pb.d.mts +24 -1
- package/dist/tailor-proto/src/tailor/v1/function_pb.d.mts +49 -1
- package/dist/tailor-proto/src/tailor/v1/service_pb.d.mts +89 -6
- package/dist/tailor-proto/src/tailor/v1/telemetryrouter_resource_pb.d.mts +26 -1
- package/dist/tailor-proto/src/tailor/v1/workflow_pb.d.mts +101 -1
- package/dist/tailor-proto/src/tailor/v1/workflow_resource_pb.d.mts +22 -1
- package/dist/types/auth.generated.d.mts +14 -2
- package/dist/types/executor.generated.d.mts +45 -3
- package/dist/types/http-adapter.generated.d.mts +5 -0
- package/dist/types/idp.generated.d.mts +31 -1
- package/dist/types/resolver.generated.d.mts +30 -2
- package/dist/types/tailordb.generated.d.mts +15 -3
- package/dist/utils/test/index.d.mts +1 -2
- package/dist/utils/test/index.mjs +1 -169
- package/dist/utils/test/index.mjs.map +1 -1
- package/dist/vitest/environment.mjs +1 -1
- package/dist/vitest/index.d.mts +6 -4
- package/dist/vitest/index.mjs +112 -62
- package/dist/vitest/index.mjs.map +1 -1
- package/dist/vitest/mock.d.mts +2 -1
- package/dist/vitest/mocks/logger.d.mts +45 -0
- package/dist/vitest/mocks/workflow.d.mts +8 -8
- package/dist/vitest/setup.mjs +1 -1
- package/dist/{workflow-CsBvRE3g.mjs → workflow-Bamae_Yc.mjs} +5 -5
- package/dist/workflow-Bamae_Yc.mjs.map +1 -0
- package/dist/{workspace_resource_pb-Db3fv68L.mjs → workspace_resource_pb-DXnO2AT-.mjs} +13 -8
- package/dist/workspace_resource_pb-DXnO2AT-.mjs.map +1 -0
- package/docs/cli/application.md +5 -1
- package/docs/cli/tailordb.md +47 -13
- package/docs/cli-reference.md +38 -30
- package/docs/configuration.md +54 -2
- package/docs/github-actions.md +2 -2
- package/docs/migration/v2.md +408 -5
- package/docs/runtime.md +5 -1
- package/docs/services/executor.md +83 -3
- package/docs/services/idp.md +8 -6
- package/docs/services/resolver.md +60 -4
- package/docs/services/tailordb-migration.md +31 -7
- package/docs/services/tailordb.md +7 -5
- package/docs/services/workflow.md +33 -3
- package/docs/testing.md +34 -7
- package/package.json +31 -24
- package/dist/application-GzW98_Xr.mjs.map +0 -1
- package/dist/application-OM0taSPn.mjs +0 -3
- package/dist/cli/index.mjs.map +0 -1
- package/dist/enum-constants-j9QBF0cB.mjs +0 -116
- package/dist/enum-constants-j9QBF0cB.mjs.map +0 -1
- package/dist/errors-DfnF4ibq.mjs.map +0 -1
- package/dist/file-utils-yEiIS4nJ.mjs +0 -150
- package/dist/file-utils-yEiIS4nJ.mjs.map +0 -1
- package/dist/globals-CBZ0egXT.mjs.map +0 -1
- package/dist/kysely-type-DqIRgDYR.mjs +0 -275
- package/dist/kysely-type-DqIRgDYR.mjs.map +0 -1
- package/dist/logger-BwS4ppwO.mjs.map +0 -1
- package/dist/register-ts-hook-DvEs6YsL.mjs.map +0 -1
- package/dist/registry-i7EdJ-D5.mjs.map +0 -1
- package/dist/seed-CRSQJI_z.mjs +0 -1170
- package/dist/seed-CRSQJI_z.mjs.map +0 -1
- package/dist/service-BJAQ70e5.mjs +0 -3
- package/dist/service-Dmxa2I4i.mjs.map +0 -1
- package/dist/service_pb-BoLM0X4K.mjs.map +0 -1
- package/dist/utils/test/mock.d.mts +0 -86
- package/dist/workflow-CsBvRE3g.mjs.map +0 -1
- package/dist/workspace_resource_pb-Db3fv68L.mjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ExecutorServiceConfig, ExecutorServiceInput } from "../../config/types.mjs";
|
|
2
2
|
import { FunctionOperation, GqlOperation, Operation, WebhookOperation, WorkflowOperation } from "./operation.mjs";
|
|
3
|
-
import { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger } from "./trigger/event.mjs";
|
|
3
|
+
import { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, WorkflowExecutionArgs, WorkflowExecutionCompletedArgs, WorkflowExecutionResumedArgs, WorkflowExecutionRetriedArgs, WorkflowExecutionStartedArgs, WorkflowExecutionTrigger, WorkflowExecutionWaitResolvedArgs, WorkflowExecutionWaitStartedArgs, WorkflowJobExecutionArgs, WorkflowJobExecutionCompletedArgs, WorkflowJobExecutionStartedArgs, WorkflowJobExecutionTrigger, WorkflowJobExecutionWaitResolvedArgs, WorkflowJobExecutionWaitStartedArgs, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger } from "./trigger/event.mjs";
|
|
4
4
|
import { ScheduleArgs, ScheduleTrigger, scheduleTrigger } from "./trigger/schedule.mjs";
|
|
5
5
|
import { IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, incomingWebhookTrigger } from "./trigger/webhook.mjs";
|
|
6
6
|
import { Trigger } from "./trigger/index.mjs";
|
|
7
7
|
import { createExecutor } from "./executor.mjs";
|
|
8
8
|
import "./types.mjs";
|
|
9
|
-
export { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, type ExecutorServiceConfig, type ExecutorServiceInput, FunctionOperation, GqlOperation, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, Operation, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, ScheduleArgs, ScheduleTrigger, TailorDBTrigger, Trigger, WebhookOperation, WorkflowOperation, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, createExecutor, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger };
|
|
9
|
+
export { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, type ExecutorServiceConfig, type ExecutorServiceInput, FunctionOperation, GqlOperation, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, Operation, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, ScheduleArgs, ScheduleTrigger, TailorDBTrigger, Trigger, WebhookOperation, WorkflowExecutionArgs, WorkflowExecutionCompletedArgs, WorkflowExecutionResumedArgs, WorkflowExecutionRetriedArgs, WorkflowExecutionStartedArgs, WorkflowExecutionTrigger, WorkflowExecutionWaitResolvedArgs, WorkflowExecutionWaitStartedArgs, WorkflowJobExecutionArgs, WorkflowJobExecutionCompletedArgs, WorkflowJobExecutionStartedArgs, WorkflowJobExecutionTrigger, WorkflowJobExecutionWaitResolvedArgs, WorkflowJobExecutionWaitStartedArgs, WorkflowOperation, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, createExecutor, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { TailorEnv, TailorPrincipal } from "../../../../runtime/types.mjs";
|
|
2
2
|
import { output } from "../../../../types/helpers.mjs";
|
|
3
|
-
import { AuthAccessTokenTrigger as AuthAccessTokenTrigger$1, IdpUserTrigger as IdpUserTrigger$1, ResolverExecutedTrigger as ResolverExecutedTrigger$1, TailorDBTrigger as TailorDBTrigger$1 } from "../../../../types/executor.generated.mjs";
|
|
3
|
+
import { AuthAccessTokenTrigger as AuthAccessTokenTrigger$1, IdpUserTrigger as IdpUserTrigger$1, ResolverExecutedTrigger as ResolverExecutedTrigger$1, TailorDBTrigger as TailorDBTrigger$1, WorkflowExecutionTrigger as WorkflowExecutionTrigger$1, WorkflowJobExecutionTrigger as WorkflowJobExecutionTrigger$1 } from "../../../../types/executor.generated.mjs";
|
|
4
4
|
import { TailorDBType } from "../../tailordb/schema.mjs";
|
|
5
5
|
import { IdpName } from "../../../types/idp-name.mjs";
|
|
6
6
|
import { ResolverConfig } from "../../resolver/resolver.mjs";
|
|
7
|
+
import { Workflow } from "../../workflow/workflow.mjs";
|
|
7
8
|
//#region src/configure/services/executor/trigger/event.d.ts
|
|
8
9
|
interface EventArgs {
|
|
9
10
|
workspaceId: string;
|
|
@@ -95,6 +96,85 @@ interface AuthAccessTokenRevokedArgs extends EventArgs {
|
|
|
95
96
|
userId: string;
|
|
96
97
|
}
|
|
97
98
|
type AuthAccessTokenArgs = AuthAccessTokenIssuedArgs | AuthAccessTokenRefreshedArgs | AuthAccessTokenRevokedArgs;
|
|
99
|
+
interface WorkflowExecutionEventArgs {
|
|
100
|
+
workspaceId: string;
|
|
101
|
+
env: TailorEnv;
|
|
102
|
+
actor: TailorPrincipal | null;
|
|
103
|
+
workflowId: string;
|
|
104
|
+
workflowName: string;
|
|
105
|
+
workflowExecutionId: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Discriminated union on `success` shared by the `completed` events of both
|
|
109
|
+
* granularity levels.
|
|
110
|
+
*
|
|
111
|
+
* When `success` is false, `error` carries the failure message; narrow on
|
|
112
|
+
* `success` before accessing it.
|
|
113
|
+
*/
|
|
114
|
+
type CompletedResult = {
|
|
115
|
+
success: true;
|
|
116
|
+
error?: never;
|
|
117
|
+
} | {
|
|
118
|
+
success: false;
|
|
119
|
+
error: string;
|
|
120
|
+
};
|
|
121
|
+
interface WorkflowExecutionStartedArgs extends WorkflowExecutionEventArgs {
|
|
122
|
+
event: "started";
|
|
123
|
+
rawEvent: "workflow.workflow_execution.started";
|
|
124
|
+
}
|
|
125
|
+
type WorkflowExecutionCompletedArgs = WorkflowExecutionEventArgs & {
|
|
126
|
+
event: "completed";
|
|
127
|
+
rawEvent: "workflow.workflow_execution.completed";
|
|
128
|
+
} & CompletedResult;
|
|
129
|
+
interface WorkflowExecutionRetriedArgs extends WorkflowExecutionEventArgs {
|
|
130
|
+
event: "retried";
|
|
131
|
+
rawEvent: "workflow.workflow_execution.retried";
|
|
132
|
+
/** Number of retries already attempted for this execution. */
|
|
133
|
+
retryCount: number;
|
|
134
|
+
/** RFC 3339 timestamp the retry is scheduled for. */
|
|
135
|
+
retryAfter: string;
|
|
136
|
+
}
|
|
137
|
+
interface WorkflowExecutionResumedArgs extends WorkflowExecutionEventArgs {
|
|
138
|
+
event: "resumed";
|
|
139
|
+
rawEvent: "workflow.workflow_execution.resumed";
|
|
140
|
+
}
|
|
141
|
+
interface WorkflowExecutionWaitStartedArgs extends WorkflowExecutionEventArgs {
|
|
142
|
+
event: "wait_started";
|
|
143
|
+
rawEvent: "workflow.workflow_execution.wait_started";
|
|
144
|
+
}
|
|
145
|
+
interface WorkflowExecutionWaitResolvedArgs extends WorkflowExecutionEventArgs {
|
|
146
|
+
event: "wait_resolved";
|
|
147
|
+
rawEvent: "workflow.workflow_execution.wait_resolved";
|
|
148
|
+
}
|
|
149
|
+
type WorkflowExecutionArgs = WorkflowExecutionStartedArgs | WorkflowExecutionCompletedArgs | WorkflowExecutionRetriedArgs | WorkflowExecutionResumedArgs | WorkflowExecutionWaitStartedArgs | WorkflowExecutionWaitResolvedArgs;
|
|
150
|
+
interface WorkflowJobExecutionEventArgs extends WorkflowExecutionEventArgs {
|
|
151
|
+
workflowJobExecutionId: string;
|
|
152
|
+
/** Name of the job, as passed to `createWorkflowJob({ name })`. */
|
|
153
|
+
jobFunctionName: string;
|
|
154
|
+
}
|
|
155
|
+
interface WorkflowJobExecutionStartedArgs extends WorkflowJobExecutionEventArgs {
|
|
156
|
+
event: "started";
|
|
157
|
+
rawEvent: "workflow.workflow_execution.job_execution.started";
|
|
158
|
+
}
|
|
159
|
+
type WorkflowJobExecutionCompletedArgs = WorkflowJobExecutionEventArgs & {
|
|
160
|
+
event: "completed";
|
|
161
|
+
rawEvent: "workflow.workflow_execution.job_execution.completed";
|
|
162
|
+
} & CompletedResult;
|
|
163
|
+
interface WorkflowJobExecutionWaitStartedArgs extends WorkflowJobExecutionEventArgs {
|
|
164
|
+
event: "wait_started";
|
|
165
|
+
rawEvent: "workflow.workflow_execution.job_execution.wait_started";
|
|
166
|
+
/** Wait point key the job is suspended on. */
|
|
167
|
+
waitKey: string;
|
|
168
|
+
/** JSON-serialized payload recorded with the wait point, absent when none was recorded. */
|
|
169
|
+
waitPayload?: string;
|
|
170
|
+
}
|
|
171
|
+
interface WorkflowJobExecutionWaitResolvedArgs extends WorkflowJobExecutionEventArgs {
|
|
172
|
+
event: "wait_resolved";
|
|
173
|
+
rawEvent: "workflow.workflow_execution.job_execution.wait_resolved";
|
|
174
|
+
/** Wait point key that was resolved. */
|
|
175
|
+
waitKey: string;
|
|
176
|
+
}
|
|
177
|
+
type WorkflowJobExecutionArgs = WorkflowJobExecutionStartedArgs | WorkflowJobExecutionCompletedArgs | WorkflowJobExecutionWaitStartedArgs | WorkflowJobExecutionWaitResolvedArgs;
|
|
98
178
|
declare const recordEventMap: {
|
|
99
179
|
readonly created: "tailordb.type_record.created";
|
|
100
180
|
readonly updated: "tailordb.type_record.updated";
|
|
@@ -267,5 +347,168 @@ type AuthAccessTokenTriggerOptions<K extends AuthAccessTokenEventKind[]> = {
|
|
|
267
347
|
* @returns Auth access token trigger
|
|
268
348
|
*/
|
|
269
349
|
declare function authAccessTokenTrigger<const K extends [AuthAccessTokenEventKind, ...AuthAccessTokenEventKind[]]>(options: AuthAccessTokenTriggerOptions<K>): AuthAccessTokenTrigger<AuthAccessTokenMultiArgs<K>>;
|
|
350
|
+
declare const workflowExecutionEventMap: {
|
|
351
|
+
readonly started: "workflow.workflow_execution.started";
|
|
352
|
+
readonly completed: "workflow.workflow_execution.completed";
|
|
353
|
+
readonly retried: "workflow.workflow_execution.retried";
|
|
354
|
+
readonly resumed: "workflow.workflow_execution.resumed";
|
|
355
|
+
readonly wait_started: "workflow.workflow_execution.wait_started";
|
|
356
|
+
readonly wait_resolved: "workflow.workflow_execution.wait_resolved";
|
|
357
|
+
};
|
|
358
|
+
type WorkflowExecutionEventKind = keyof typeof workflowExecutionEventMap;
|
|
359
|
+
type WorkflowExecutionArgsMap = {
|
|
360
|
+
started: WorkflowExecutionStartedArgs;
|
|
361
|
+
completed: WorkflowExecutionCompletedArgs;
|
|
362
|
+
retried: WorkflowExecutionRetriedArgs;
|
|
363
|
+
resumed: WorkflowExecutionResumedArgs;
|
|
364
|
+
wait_started: WorkflowExecutionWaitStartedArgs;
|
|
365
|
+
wait_resolved: WorkflowExecutionWaitResolvedArgs;
|
|
366
|
+
};
|
|
367
|
+
type WorkflowExecutionMultiArgs<K extends WorkflowExecutionEventKind[]> = WorkflowExecutionArgsMap[K[number]];
|
|
368
|
+
type WorkflowExecutionTrigger<Args> = WorkflowExecutionTrigger$1 & {
|
|
369
|
+
__args: Args;
|
|
370
|
+
};
|
|
371
|
+
type WorkflowExecutionSingleTriggerOptions<Args> = {
|
|
372
|
+
/** Workflow to subscribe to. */
|
|
373
|
+
workflow: Workflow;
|
|
374
|
+
condition?: (args: Args) => boolean;
|
|
375
|
+
};
|
|
376
|
+
/**
|
|
377
|
+
* Create a trigger that fires when a workflow execution starts running.
|
|
378
|
+
* @param options - Trigger options
|
|
379
|
+
* @param options.workflow - Workflow to subscribe to
|
|
380
|
+
* @param options.condition - Condition function to filter events
|
|
381
|
+
* @returns Workflow execution started trigger
|
|
382
|
+
*/
|
|
383
|
+
declare function workflowExecutionStartedTrigger(options: WorkflowExecutionSingleTriggerOptions<WorkflowExecutionStartedArgs>): WorkflowExecutionTrigger<WorkflowExecutionStartedArgs>;
|
|
384
|
+
/**
|
|
385
|
+
* Create a trigger that fires when a workflow execution succeeds or fails.
|
|
386
|
+
* @param options - Trigger options
|
|
387
|
+
* @param options.workflow - Workflow to subscribe to
|
|
388
|
+
* @param options.condition - Condition function to filter events
|
|
389
|
+
* @returns Workflow execution completed trigger
|
|
390
|
+
*/
|
|
391
|
+
declare function workflowExecutionCompletedTrigger(options: WorkflowExecutionSingleTriggerOptions<WorkflowExecutionCompletedArgs>): WorkflowExecutionTrigger<WorkflowExecutionCompletedArgs>;
|
|
392
|
+
/**
|
|
393
|
+
* Create a trigger that fires when a workflow execution is retried by its retry policy.
|
|
394
|
+
* @param options - Trigger options
|
|
395
|
+
* @param options.workflow - Workflow to subscribe to
|
|
396
|
+
* @param options.condition - Condition function to filter events
|
|
397
|
+
* @returns Workflow execution retried trigger
|
|
398
|
+
*/
|
|
399
|
+
declare function workflowExecutionRetriedTrigger(options: WorkflowExecutionSingleTriggerOptions<WorkflowExecutionRetriedArgs>): WorkflowExecutionTrigger<WorkflowExecutionRetriedArgs>;
|
|
400
|
+
/**
|
|
401
|
+
* Create a trigger that fires when a failed workflow execution is manually resumed.
|
|
402
|
+
* @param options - Trigger options
|
|
403
|
+
* @param options.workflow - Workflow to subscribe to
|
|
404
|
+
* @param options.condition - Condition function to filter events
|
|
405
|
+
* @returns Workflow execution resumed trigger
|
|
406
|
+
*/
|
|
407
|
+
declare function workflowExecutionResumedTrigger(options: WorkflowExecutionSingleTriggerOptions<WorkflowExecutionResumedArgs>): WorkflowExecutionTrigger<WorkflowExecutionResumedArgs>;
|
|
408
|
+
/**
|
|
409
|
+
* Create a trigger that fires when a workflow execution starts waiting on a wait point.
|
|
410
|
+
* @param options - Trigger options
|
|
411
|
+
* @param options.workflow - Workflow to subscribe to
|
|
412
|
+
* @param options.condition - Condition function to filter events
|
|
413
|
+
* @returns Workflow execution wait started trigger
|
|
414
|
+
*/
|
|
415
|
+
declare function workflowExecutionWaitStartedTrigger(options: WorkflowExecutionSingleTriggerOptions<WorkflowExecutionWaitStartedArgs>): WorkflowExecutionTrigger<WorkflowExecutionWaitStartedArgs>;
|
|
416
|
+
/**
|
|
417
|
+
* Create a trigger that fires when a waiting workflow execution is released.
|
|
418
|
+
* @param options - Trigger options
|
|
419
|
+
* @param options.workflow - Workflow to subscribe to
|
|
420
|
+
* @param options.condition - Condition function to filter events
|
|
421
|
+
* @returns Workflow execution wait resolved trigger
|
|
422
|
+
*/
|
|
423
|
+
declare function workflowExecutionWaitResolvedTrigger(options: WorkflowExecutionSingleTriggerOptions<WorkflowExecutionWaitResolvedArgs>): WorkflowExecutionTrigger<WorkflowExecutionWaitResolvedArgs>;
|
|
424
|
+
type WorkflowExecutionTriggerOptions<K extends WorkflowExecutionEventKind[]> = {
|
|
425
|
+
events: K;
|
|
426
|
+
/** Workflow to subscribe to. */
|
|
427
|
+
workflow: Workflow;
|
|
428
|
+
condition?: (args: WorkflowExecutionMultiArgs<K>) => boolean;
|
|
429
|
+
};
|
|
430
|
+
/**
|
|
431
|
+
* Create a trigger that fires on multiple workflow execution event types.
|
|
432
|
+
* @template K
|
|
433
|
+
* @param options - Trigger options with events array
|
|
434
|
+
* @param options.events - Workflow execution event kinds to subscribe to
|
|
435
|
+
* @param options.workflow - Workflow to subscribe to
|
|
436
|
+
* @param options.condition - Condition function to filter events
|
|
437
|
+
* @returns Workflow execution trigger
|
|
438
|
+
*/
|
|
439
|
+
declare function workflowExecutionTrigger<const K extends [WorkflowExecutionEventKind, ...WorkflowExecutionEventKind[]]>(options: WorkflowExecutionTriggerOptions<K>): WorkflowExecutionTrigger<WorkflowExecutionMultiArgs<K>>;
|
|
440
|
+
declare const workflowJobExecutionEventMap: {
|
|
441
|
+
readonly started: "workflow.workflow_execution.job_execution.started";
|
|
442
|
+
readonly completed: "workflow.workflow_execution.job_execution.completed";
|
|
443
|
+
readonly wait_started: "workflow.workflow_execution.job_execution.wait_started";
|
|
444
|
+
readonly wait_resolved: "workflow.workflow_execution.job_execution.wait_resolved";
|
|
445
|
+
};
|
|
446
|
+
type WorkflowJobExecutionEventKind = keyof typeof workflowJobExecutionEventMap;
|
|
447
|
+
type WorkflowJobExecutionArgsMap = {
|
|
448
|
+
started: WorkflowJobExecutionStartedArgs;
|
|
449
|
+
completed: WorkflowJobExecutionCompletedArgs;
|
|
450
|
+
wait_started: WorkflowJobExecutionWaitStartedArgs;
|
|
451
|
+
wait_resolved: WorkflowJobExecutionWaitResolvedArgs;
|
|
452
|
+
};
|
|
453
|
+
type WorkflowJobExecutionMultiArgs<K extends WorkflowJobExecutionEventKind[]> = WorkflowJobExecutionArgsMap[K[number]];
|
|
454
|
+
type WorkflowJobExecutionTrigger<Args> = WorkflowJobExecutionTrigger$1 & {
|
|
455
|
+
__args: Args;
|
|
456
|
+
};
|
|
457
|
+
type WorkflowJobExecutionSingleTriggerOptions<Args> = {
|
|
458
|
+
/** Workflow whose job executions to subscribe to. */
|
|
459
|
+
workflow: Workflow;
|
|
460
|
+
condition?: (args: Args) => boolean;
|
|
461
|
+
};
|
|
462
|
+
/**
|
|
463
|
+
* Create a trigger that fires when a job inside a workflow starts running.
|
|
464
|
+
* @param options - Trigger options
|
|
465
|
+
* @param options.workflow - Workflow whose job executions to subscribe to
|
|
466
|
+
* @param options.condition - Condition function to filter events
|
|
467
|
+
* @returns Workflow job execution started trigger
|
|
468
|
+
*/
|
|
469
|
+
declare function workflowJobExecutionStartedTrigger(options: WorkflowJobExecutionSingleTriggerOptions<WorkflowJobExecutionStartedArgs>): WorkflowJobExecutionTrigger<WorkflowJobExecutionStartedArgs>;
|
|
470
|
+
/**
|
|
471
|
+
* Create a trigger that fires when a job inside a workflow succeeds or fails.
|
|
472
|
+
*
|
|
473
|
+
* A job released from a wait point reports `wait_resolved` instead of
|
|
474
|
+
* `completed`; subscribe to both to observe every way a job can end.
|
|
475
|
+
* @param options - Trigger options
|
|
476
|
+
* @param options.workflow - Workflow whose job executions to subscribe to
|
|
477
|
+
* @param options.condition - Condition function to filter events
|
|
478
|
+
* @returns Workflow job execution completed trigger
|
|
479
|
+
*/
|
|
480
|
+
declare function workflowJobExecutionCompletedTrigger(options: WorkflowJobExecutionSingleTriggerOptions<WorkflowJobExecutionCompletedArgs>): WorkflowJobExecutionTrigger<WorkflowJobExecutionCompletedArgs>;
|
|
481
|
+
/**
|
|
482
|
+
* Create a trigger that fires when a job inside a workflow starts waiting on a wait point.
|
|
483
|
+
* @param options - Trigger options
|
|
484
|
+
* @param options.workflow - Workflow whose job executions to subscribe to
|
|
485
|
+
* @param options.condition - Condition function to filter events
|
|
486
|
+
* @returns Workflow job execution wait started trigger
|
|
487
|
+
*/
|
|
488
|
+
declare function workflowJobExecutionWaitStartedTrigger(options: WorkflowJobExecutionSingleTriggerOptions<WorkflowJobExecutionWaitStartedArgs>): WorkflowJobExecutionTrigger<WorkflowJobExecutionWaitStartedArgs>;
|
|
489
|
+
/**
|
|
490
|
+
* Create a trigger that fires when a waiting job inside a workflow is released.
|
|
491
|
+
* @param options - Trigger options
|
|
492
|
+
* @param options.workflow - Workflow whose job executions to subscribe to
|
|
493
|
+
* @param options.condition - Condition function to filter events
|
|
494
|
+
* @returns Workflow job execution wait resolved trigger
|
|
495
|
+
*/
|
|
496
|
+
declare function workflowJobExecutionWaitResolvedTrigger(options: WorkflowJobExecutionSingleTriggerOptions<WorkflowJobExecutionWaitResolvedArgs>): WorkflowJobExecutionTrigger<WorkflowJobExecutionWaitResolvedArgs>;
|
|
497
|
+
type WorkflowJobExecutionTriggerOptions<K extends WorkflowJobExecutionEventKind[]> = {
|
|
498
|
+
events: K;
|
|
499
|
+
/** Workflow whose job executions to subscribe to. */
|
|
500
|
+
workflow: Workflow;
|
|
501
|
+
condition?: (args: WorkflowJobExecutionMultiArgs<K>) => boolean;
|
|
502
|
+
};
|
|
503
|
+
/**
|
|
504
|
+
* Create a trigger that fires on multiple workflow job execution event types.
|
|
505
|
+
* @template K
|
|
506
|
+
* @param options - Trigger options with events array
|
|
507
|
+
* @param options.events - Workflow job execution event kinds to subscribe to
|
|
508
|
+
* @param options.workflow - Workflow whose job executions to subscribe to
|
|
509
|
+
* @param options.condition - Condition function to filter events
|
|
510
|
+
* @returns Workflow job execution trigger
|
|
511
|
+
*/
|
|
512
|
+
declare function workflowJobExecutionTrigger<const K extends [WorkflowJobExecutionEventKind, ...WorkflowJobExecutionEventKind[]]>(options: WorkflowJobExecutionTriggerOptions<K>): WorkflowJobExecutionTrigger<WorkflowJobExecutionMultiArgs<K>>;
|
|
270
513
|
//#endregion
|
|
271
|
-
export { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger };
|
|
514
|
+
export { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, WorkflowExecutionArgs, WorkflowExecutionCompletedArgs, WorkflowExecutionResumedArgs, WorkflowExecutionRetriedArgs, WorkflowExecutionStartedArgs, WorkflowExecutionTrigger, WorkflowExecutionWaitResolvedArgs, WorkflowExecutionWaitStartedArgs, WorkflowJobExecutionArgs, WorkflowJobExecutionCompletedArgs, WorkflowJobExecutionStartedArgs, WorkflowJobExecutionTrigger, WorkflowJobExecutionWaitResolvedArgs, WorkflowJobExecutionWaitStartedArgs, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger } from "./event.mjs";
|
|
1
|
+
import { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, WorkflowExecutionArgs, WorkflowExecutionCompletedArgs, WorkflowExecutionResumedArgs, WorkflowExecutionRetriedArgs, WorkflowExecutionStartedArgs, WorkflowExecutionTrigger, WorkflowExecutionWaitResolvedArgs, WorkflowExecutionWaitStartedArgs, WorkflowJobExecutionArgs, WorkflowJobExecutionCompletedArgs, WorkflowJobExecutionStartedArgs, WorkflowJobExecutionTrigger, WorkflowJobExecutionWaitResolvedArgs, WorkflowJobExecutionWaitStartedArgs, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger } from "./event.mjs";
|
|
2
2
|
import { ScheduleArgs, ScheduleTrigger, scheduleTrigger } from "./schedule.mjs";
|
|
3
3
|
import { IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, incomingWebhookTrigger } from "./webhook.mjs";
|
|
4
4
|
//#region src/configure/services/executor/trigger/index.d.ts
|
|
5
|
-
type Trigger<Args> = TailorDBTrigger<Args> | ResolverExecutedTrigger<Args> | ScheduleTrigger<Args> | IncomingWebhookTrigger<Args> | IdpUserTrigger<Args> | AuthAccessTokenTrigger<Args>;
|
|
5
|
+
type Trigger<Args> = TailorDBTrigger<Args> | ResolverExecutedTrigger<Args> | ScheduleTrigger<Args> | IncomingWebhookTrigger<Args> | IdpUserTrigger<Args> | AuthAccessTokenTrigger<Args> | WorkflowExecutionTrigger<Args> | WorkflowJobExecutionTrigger<Args>;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, ScheduleArgs, ScheduleTrigger, TailorDBTrigger, Trigger, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger };
|
|
7
|
+
export { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, ScheduleArgs, ScheduleTrigger, TailorDBTrigger, Trigger, WorkflowExecutionArgs, WorkflowExecutionCompletedArgs, WorkflowExecutionResumedArgs, WorkflowExecutionRetriedArgs, WorkflowExecutionStartedArgs, WorkflowExecutionTrigger, WorkflowExecutionWaitResolvedArgs, WorkflowExecutionWaitStartedArgs, WorkflowJobExecutionArgs, WorkflowJobExecutionCompletedArgs, WorkflowJobExecutionStartedArgs, WorkflowJobExecutionTrigger, WorkflowJobExecutionWaitResolvedArgs, WorkflowJobExecutionWaitStartedArgs, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { IdPPermission, IdPPermissionCondition, unsafeAllowAllIdPPermission } from "./permission.mjs";
|
|
1
2
|
import { IdPEmailConfig, IdPGqlOperations, IdPGqlOperationsInput, IdPInput } from "../../../types/idp.generated.mjs";
|
|
2
3
|
import { IdPConfig, IdPExternalConfig, IdpDefinitionBrand } from "./types.mjs";
|
|
3
|
-
import { IdPPermission, IdPPermissionCondition, unsafeAllowAllIdPPermission } from "./permission.mjs";
|
|
4
4
|
//#region src/configure/services/idp/index.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Define an IdP service configuration for the Tailor SDK.
|
|
@@ -20,6 +20,7 @@ declare function defineIdp<const TClients extends string[]>(name: string, config
|
|
|
20
20
|
readonly namespace: string;
|
|
21
21
|
readonly clientName: TClients[number];
|
|
22
22
|
};
|
|
23
|
+
readonly publishEvents?: boolean | undefined;
|
|
23
24
|
readonly authorization?: "insecure" | "loggedIn" | {
|
|
24
25
|
cel: string;
|
|
25
26
|
} | undefined;
|
|
@@ -42,7 +43,6 @@ declare function defineIdp<const TClients extends string[]>(name: string, config
|
|
|
42
43
|
allowedReturnOrigins?: string[] | undefined;
|
|
43
44
|
mfaIssuer?: string | undefined;
|
|
44
45
|
} | undefined;
|
|
45
|
-
readonly publishUserEvents?: boolean | undefined;
|
|
46
46
|
readonly gqlOperations?: "query" | {
|
|
47
47
|
create?: boolean | undefined;
|
|
48
48
|
update?: boolean | undefined;
|
|
@@ -1,24 +1,9 @@
|
|
|
1
1
|
import { InferredAttributes } from "../../../runtime/types.mjs";
|
|
2
|
+
import { UserBooleanArrayOperand, UserBooleanOperand, UserStringArrayOperand, UserStringOperand } from "../../types/permission-operand.types.mjs";
|
|
2
3
|
import { IdPUserField } from "../../../parser/service/idp/types.mjs";
|
|
3
4
|
//#region src/configure/services/idp/permission.d.ts
|
|
4
5
|
type EqualityOperator = "=" | "!=";
|
|
5
6
|
type ContainsOperator = "in" | "not in";
|
|
6
|
-
type StringFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends string ? K : never; }[keyof User];
|
|
7
|
-
type StringArrayFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends string[] ? K : never; }[keyof User];
|
|
8
|
-
type BooleanFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends boolean ? K : never; }[keyof User];
|
|
9
|
-
type BooleanArrayFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends boolean[] ? K : never; }[keyof User];
|
|
10
|
-
type UserStringOperand<User extends object = InferredAttributes> = {
|
|
11
|
-
user: StringFieldKeys<User> | "id";
|
|
12
|
-
};
|
|
13
|
-
type UserStringArrayOperand<User extends object = InferredAttributes> = {
|
|
14
|
-
user: StringArrayFieldKeys<User>;
|
|
15
|
-
};
|
|
16
|
-
type UserBooleanOperand<User extends object = InferredAttributes> = {
|
|
17
|
-
user: BooleanFieldKeys<User> | "_loggedIn";
|
|
18
|
-
};
|
|
19
|
-
type UserBooleanArrayOperand<User extends object = InferredAttributes> = {
|
|
20
|
-
user: BooleanArrayFieldKeys<User>;
|
|
21
|
-
};
|
|
22
7
|
type IdPUserOperand<Update extends boolean = false> = Update extends true ? {
|
|
23
8
|
oldIdpUser: IdPUserField;
|
|
24
9
|
} | {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BuiltinIdP } from "../../../types/auth.generated.mjs";
|
|
2
|
+
import { IdPPermission } from "./permission.mjs";
|
|
2
3
|
import { IdPInput } from "../../../types/idp.generated.mjs";
|
|
3
4
|
//#region src/configure/services/idp/types.d.ts
|
|
4
5
|
declare const idpDefinitionBrand: unique symbol;
|
|
@@ -13,7 +14,10 @@ type IdPExternalConfig = {
|
|
|
13
14
|
name: string;
|
|
14
15
|
external: true;
|
|
15
16
|
};
|
|
16
|
-
type
|
|
17
|
+
type IdPOwnConfigInput = Omit<IdPInput, "permission"> & {
|
|
18
|
+
permission?: IdPPermission;
|
|
19
|
+
};
|
|
20
|
+
type IdPOwnConfig = Omit<DefinedIdp<string, IdPOwnConfigInput, string>, "provider">;
|
|
17
21
|
type IdPConfig = IdPOwnConfig | IdPExternalConfig;
|
|
18
22
|
//#endregion
|
|
19
23
|
export { DefinedIdp, IdPConfig, IdPExternalConfig, IdPOwnConfig, IdpDefinitionBrand };
|
|
@@ -6,6 +6,7 @@ import { PermissionCondition, TailorTypeGqlPermission, TailorTypePermission, uns
|
|
|
6
6
|
import { TailorAnyDBField, TailorAnyDBType, TailorDBField, TailorDBInstance, TailorDBType, db } from "./tailordb/schema.mjs";
|
|
7
7
|
import "./tailordb/index.mjs";
|
|
8
8
|
import { AIGatewayConfig } from "./aigateway/types.mjs";
|
|
9
|
+
import { IdPPermission, IdPPermissionCondition, unsafeAllowAllIdPPermission } from "./idp/permission.mjs";
|
|
9
10
|
import { IdPEmailConfig, IdPGqlOperations, IdPGqlOperationsInput } from "../../types/idp.generated.mjs";
|
|
10
11
|
import { IdPConfig, IdPExternalConfig } from "./idp/types.mjs";
|
|
11
12
|
import { SecretsConfig } from "./secrets/types.mjs";
|
|
@@ -14,13 +15,14 @@ import { ExecutionPolicyConcurrency, ExecutionPolicyDefInput, ExecutionPolicyExa
|
|
|
14
15
|
import { ExecutorServiceConfig, ExecutorServiceInput, ResolverExternalConfig, ResolverServiceConfig, ResolverServiceInput, WorkflowServiceConfig, WorkflowServiceInput } from "../config/types.mjs";
|
|
15
16
|
import { ConcurrencyPolicy, RetryPolicy } from "../../types/workflow.generated.mjs";
|
|
16
17
|
import { defineAuth } from "./auth/index.mjs";
|
|
18
|
+
import { ResolverPermission, ResolverPermissionCondition, ResolverPermissionPolicy } from "./resolver/permission.mjs";
|
|
17
19
|
import { createResolver } from "./resolver/resolver.mjs";
|
|
18
20
|
import { QueryType } from "./resolver/types.mjs";
|
|
19
21
|
import "./resolver/index.mjs";
|
|
20
22
|
import { WorkflowJob, WorkflowJobContext, createWorkflowJob } from "./workflow/job.mjs";
|
|
21
23
|
import { Workflow, WorkflowConfig, createWorkflow } from "./workflow/workflow.mjs";
|
|
22
24
|
import { FunctionOperation, GqlOperation, Operation, WebhookOperation, WorkflowOperation } from "./executor/operation.mjs";
|
|
23
|
-
import { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger } from "./executor/trigger/event.mjs";
|
|
25
|
+
import { AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, ResolverExecutedArgs, ResolverExecutedTrigger, TailorDBTrigger, WorkflowExecutionArgs, WorkflowExecutionCompletedArgs, WorkflowExecutionResumedArgs, WorkflowExecutionRetriedArgs, WorkflowExecutionStartedArgs, WorkflowExecutionTrigger, WorkflowExecutionWaitResolvedArgs, WorkflowExecutionWaitStartedArgs, WorkflowJobExecutionArgs, WorkflowJobExecutionCompletedArgs, WorkflowJobExecutionStartedArgs, WorkflowJobExecutionTrigger, WorkflowJobExecutionWaitResolvedArgs, WorkflowJobExecutionWaitStartedArgs, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger } from "./executor/trigger/event.mjs";
|
|
24
26
|
import { ScheduleArgs, ScheduleTrigger, scheduleTrigger } from "./executor/trigger/schedule.mjs";
|
|
25
27
|
import { IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, incomingWebhookTrigger } from "./executor/trigger/webhook.mjs";
|
|
26
28
|
import { Trigger } from "./executor/trigger/index.mjs";
|
|
@@ -31,9 +33,8 @@ import { WaitPointInstance, createWaitPoint, createWaitPoints } from "./workflow
|
|
|
31
33
|
import "./workflow/index.mjs";
|
|
32
34
|
import { defineStaticWebSite } from "./staticwebsite/index.mjs";
|
|
33
35
|
import { defineAIGateway } from "./aigateway/index.mjs";
|
|
34
|
-
import { IdPPermission, IdPPermissionCondition, unsafeAllowAllIdPPermission } from "./idp/permission.mjs";
|
|
35
36
|
import { defineIdp } from "./idp/index.mjs";
|
|
36
37
|
import { defineSecretManager } from "./secrets/index.mjs";
|
|
37
38
|
import { HttpAdapter, HttpAdapterGraphQLQuery, HttpAdapterGraphQLRequest, HttpAdapterGraphQLResponse, HttpAdapterInput, HttpAdapterInputFn, HttpAdapterOutputFn, HttpAdapterRequest, HttpAdapterResponse, HttpAdapterTypedDocumentNode, createHttpAdapter } from "./http-adapter/http-adapter.mjs";
|
|
38
39
|
import "./http-adapter/index.mjs";
|
|
39
|
-
export { type AIGatewayConfig, AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, type AuthConfig, type AuthConnectionConfig, type AuthConnectionOAuth2Config, type AuthConnectionTokenResult, type AuthExternalConfig, type AuthOwnConfig, type AuthServiceInput, type BeforeLoginClaims, type BeforeLoginHookArgs, type BuiltinIdP, type ConcurrencyPolicy, type DefinedAuth, type ExecutionPolicyConcurrency, type ExecutionPolicyDefInput, type ExecutionPolicyExactInstance, type ExecutionPolicyGroupOptions, type ExecutionPolicyInstance, type ExecutionPolicyWildcardInstance, type ExecutorServiceConfig, type ExecutorServiceInput, type FederatedIdentity, type FederatedIdentityClaims, type FederatedIdentityProvider, FunctionOperation, GqlOperation, HttpAdapter, HttpAdapterGraphQLQuery, HttpAdapterGraphQLRequest, HttpAdapterGraphQLResponse, HttpAdapterInput, HttpAdapterInputFn, HttpAdapterOutputFn, HttpAdapterRequest, HttpAdapterResponse, HttpAdapterTypedDocumentNode, type IDToken, type IdPConfig, type IdPEmailConfig, type IdPExternalConfig, type IdPGqlOperations, type IdPGqlOperationsInput as IdPGqlOperationsConfig, type IdPPermission, type IdPPermissionCondition, type IdProvider as IdProviderConfig, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, type OAuth2ClientInput as OAuth2Client, type OAuth2ClientGrantType, type OIDC, Operation, type PermissionCondition, type QueryType, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, type ResolvedExecutionPolicyInstance, type Resolver, ResolverExecutedArgs, ResolverExecutedTrigger, type ResolverExternalConfig, type ResolverServiceConfig, type ResolverServiceInput, type RetryPolicy, type SAML, type SCIMAttribute, type SCIMAttributeMapping, type SCIMAttributeType, type SCIMAuthorization, type SCIMConfig, type SCIMResource, ScheduleArgs, ScheduleTrigger, type SecretsConfig, type StaticWebsiteConfig, type TailorAnyDBField, type TailorAnyDBType, type TailorDBField, type TailorDBInstance, TailorDBTrigger, type TailorDBType, type TailorTypeGqlPermission, type TailorTypePermission, type TenantProvider as TenantProviderConfig, Trigger, type UserAttributeKey, type UserAttributeListKey, type UserAttributes, type UsernameFieldKey, type ValueOperand, WaitPointInstance, WebhookOperation, Workflow, WorkflowConfig, WorkflowJob, WorkflowJobContext, WorkflowOperation, type WorkflowServiceConfig, type WorkflowServiceInput, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, createExecutor, createHttpAdapter, createResolver, createWaitPoint, createWaitPoints, createWorkflow, createWorkflowJob, db, defineAIGateway, defineAuth, defineIdp, defineSecretManager, defineStaticWebSite, defineWorkflowExecutionPolicies, defineWorkflowExecutionPolicy, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger, unsafeAllowAllGqlPermission, unsafeAllowAllIdPPermission, unsafeAllowAllTypePermission };
|
|
40
|
+
export { type AIGatewayConfig, AuthAccessTokenArgs, AuthAccessTokenIssuedArgs, AuthAccessTokenRefreshedArgs, AuthAccessTokenRevokedArgs, AuthAccessTokenTrigger, type AuthConfig, type AuthConnectionConfig, type AuthConnectionOAuth2Config, type AuthConnectionTokenResult, type AuthExternalConfig, type AuthOwnConfig, type AuthServiceInput, type BeforeLoginClaims, type BeforeLoginHookArgs, type BuiltinIdP, type ConcurrencyPolicy, type DefinedAuth, type ExecutionPolicyConcurrency, type ExecutionPolicyDefInput, type ExecutionPolicyExactInstance, type ExecutionPolicyGroupOptions, type ExecutionPolicyInstance, type ExecutionPolicyWildcardInstance, type ExecutorServiceConfig, type ExecutorServiceInput, type FederatedIdentity, type FederatedIdentityClaims, type FederatedIdentityProvider, FunctionOperation, GqlOperation, HttpAdapter, HttpAdapterGraphQLQuery, HttpAdapterGraphQLRequest, HttpAdapterGraphQLResponse, HttpAdapterInput, HttpAdapterInputFn, HttpAdapterOutputFn, HttpAdapterRequest, HttpAdapterResponse, HttpAdapterTypedDocumentNode, type IDToken, type IdPConfig, type IdPEmailConfig, type IdPExternalConfig, type IdPGqlOperations, type IdPGqlOperationsInput as IdPGqlOperationsConfig, type IdPPermission, type IdPPermissionCondition, type IdProvider as IdProviderConfig, IdpUserArgs, IdpUserCreatedArgs, IdpUserDeletedArgs, IdpUserTrigger, IdpUserUpdatedArgs, IncomingWebhookArgs, IncomingWebhookRequest, IncomingWebhookResponse, IncomingWebhookResponseConfig, IncomingWebhookTrigger, IncomingWebhookTriggerOptions, type OAuth2ClientInput as OAuth2Client, type OAuth2ClientGrantType, type OIDC, Operation, type PermissionCondition, type QueryType, RecordCreatedArgs, RecordDeletedArgs, RecordUpdatedArgs, type ResolvedExecutionPolicyInstance, type Resolver, ResolverExecutedArgs, ResolverExecutedTrigger, type ResolverExternalConfig, type ResolverPermission, type ResolverPermissionCondition, type ResolverPermissionPolicy, type ResolverServiceConfig, type ResolverServiceInput, type RetryPolicy, type SAML, type SCIMAttribute, type SCIMAttributeMapping, type SCIMAttributeType, type SCIMAuthorization, type SCIMConfig, type SCIMResource, ScheduleArgs, ScheduleTrigger, type SecretsConfig, type StaticWebsiteConfig, type TailorAnyDBField, type TailorAnyDBType, type TailorDBField, type TailorDBInstance, TailorDBTrigger, type TailorDBType, type TailorTypeGqlPermission, type TailorTypePermission, type TenantProvider as TenantProviderConfig, Trigger, type UserAttributeKey, type UserAttributeListKey, type UserAttributes, type UsernameFieldKey, type ValueOperand, WaitPointInstance, WebhookOperation, Workflow, WorkflowConfig, WorkflowExecutionArgs, WorkflowExecutionCompletedArgs, WorkflowExecutionResumedArgs, WorkflowExecutionRetriedArgs, WorkflowExecutionStartedArgs, WorkflowExecutionTrigger, WorkflowExecutionWaitResolvedArgs, WorkflowExecutionWaitStartedArgs, WorkflowJob, WorkflowJobContext, WorkflowJobExecutionArgs, WorkflowJobExecutionCompletedArgs, WorkflowJobExecutionStartedArgs, WorkflowJobExecutionTrigger, WorkflowJobExecutionWaitResolvedArgs, WorkflowJobExecutionWaitStartedArgs, WorkflowOperation, type WorkflowServiceConfig, type WorkflowServiceInput, authAccessTokenIssuedTrigger, authAccessTokenRefreshedTrigger, authAccessTokenRevokedTrigger, authAccessTokenTrigger, createExecutor, createHttpAdapter, createResolver, createWaitPoint, createWaitPoints, createWorkflow, createWorkflowJob, db, defineAIGateway, defineAuth, defineIdp, defineSecretManager, defineStaticWebSite, defineWorkflowExecutionPolicies, defineWorkflowExecutionPolicy, idpUserCreatedTrigger, idpUserDeletedTrigger, idpUserTrigger, idpUserUpdatedTrigger, incomingWebhookTrigger, recordCreatedTrigger, recordDeletedTrigger, recordTrigger, recordUpdatedTrigger, resolverExecutedTrigger, scheduleTrigger, unsafeAllowAllGqlPermission, unsafeAllowAllIdPPermission, unsafeAllowAllTypePermission, workflowExecutionCompletedTrigger, workflowExecutionResumedTrigger, workflowExecutionRetriedTrigger, workflowExecutionStartedTrigger, workflowExecutionTrigger, workflowExecutionWaitResolvedTrigger, workflowExecutionWaitStartedTrigger, workflowJobExecutionCompletedTrigger, workflowJobExecutionStartedTrigger, workflowJobExecutionTrigger, workflowJobExecutionWaitResolvedTrigger, workflowJobExecutionWaitStartedTrigger };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Resolver } from "../../../types/resolver.generated.mjs";
|
|
2
2
|
import { ResolverExternalConfig, ResolverServiceConfig, ResolverServiceInput } from "../../config/types.mjs";
|
|
3
|
+
import { ResolverPermission, ResolverPermissionCondition, ResolverPermissionPolicy } from "./permission.mjs";
|
|
3
4
|
import { createResolver } from "./resolver.mjs";
|
|
4
5
|
import { QueryType } from "./types.mjs";
|
|
5
|
-
export { type QueryType, type Resolver, type ResolverExternalConfig, type ResolverServiceConfig, type ResolverServiceInput, createResolver };
|
|
6
|
+
export { type QueryType, type Resolver, type ResolverExternalConfig, type ResolverPermission, type ResolverPermissionCondition, type ResolverPermissionPolicy, type ResolverServiceConfig, type ResolverServiceInput, createResolver };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { InferredAttributes } from "../../../runtime/types.mjs";
|
|
2
|
+
import { UserBooleanOperand, UserStringOperand } from "../../types/permission-operand.types.mjs";
|
|
3
|
+
//#region src/configure/services/resolver/permission.d.ts
|
|
4
|
+
type EqualityOperator = "=" | "!=";
|
|
5
|
+
type StringEqualityCondition<User extends object> = readonly [UserStringOperand<User>, EqualityOperator, string] | readonly [string, EqualityOperator, UserStringOperand<User>];
|
|
6
|
+
type BooleanEqualityCondition<User extends object> = readonly [UserBooleanOperand<User>, EqualityOperator, boolean] | readonly [boolean, EqualityOperator, UserBooleanOperand<User>];
|
|
7
|
+
/**
|
|
8
|
+
* A single condition for {@link ResolverPermission}.
|
|
9
|
+
*
|
|
10
|
+
* Only `user` operands are supported (unlike TailorDB's `record`/`newRecord`/
|
|
11
|
+
* `oldRecord` operands) — a resolver has no associated record to compare
|
|
12
|
+
* against. Only equality (`=`/`!=`) is supported for now.
|
|
13
|
+
*
|
|
14
|
+
* The User type is extended by `tailor.d.ts`, which is automatically generated
|
|
15
|
+
* when running `tailor generate`. Attributes enabled in the config file's
|
|
16
|
+
* `auth.userProfile.attributes` (or `auth.machineUserAttributes` when
|
|
17
|
+
* `userProfile` is omitted) become available as types.
|
|
18
|
+
*/
|
|
19
|
+
type ResolverPermissionCondition<User extends object = InferredAttributes> = StringEqualityCondition<User> | BooleanEqualityCondition<User>;
|
|
20
|
+
/**
|
|
21
|
+
* A single access policy, in the same style as TailorDB's `.permission()`
|
|
22
|
+
* policies.
|
|
23
|
+
*/
|
|
24
|
+
type ResolverPermissionPolicy<User extends object = InferredAttributes> = {
|
|
25
|
+
conditions: ResolverPermissionCondition<User> | readonly ResolverPermissionCondition<User>[];
|
|
26
|
+
/** Whether matching callers are granted (`true`) or denied (`false`) access. */
|
|
27
|
+
permit: boolean;
|
|
28
|
+
description?: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Access requirement for a resolver, evaluated against the original caller
|
|
32
|
+
* (`context.user`) before `body` runs — unaffected by `authInvoker`.
|
|
33
|
+
*
|
|
34
|
+
* At least one `permit: true` policy is required: a caller is granted only by
|
|
35
|
+
* a matching `permit: true` policy (deny by default), and a matching
|
|
36
|
+
* `permit: false` policy always overrides that grant, even when another
|
|
37
|
+
* policy would otherwise allow the same caller — use it to carve out an
|
|
38
|
+
* explicit exception from a broader grant. A policy array with only
|
|
39
|
+
* `permit: false` policies is rejected, since none of its conditions apply to
|
|
40
|
+
* a caller presenting no user attributes at all (e.g. one who simply doesn't
|
|
41
|
+
* authenticate), so it wouldn't actually keep anyone out. `"allowAnonymous"`
|
|
42
|
+
* explicitly documents that anonymous callers are allowed.
|
|
43
|
+
* @example
|
|
44
|
+
* const permission: ResolverPermission = [
|
|
45
|
+
* { conditions: [[{ user: "_loggedIn" }, "=", true]], permit: true },
|
|
46
|
+
* ];
|
|
47
|
+
* @example
|
|
48
|
+
* // Allow machine-user callers unconditionally, gate regular users behind a role
|
|
49
|
+
* const permission: ResolverPermission = [
|
|
50
|
+
* { conditions: [[{ user: "isServiceAccount" }, "=", true]], permit: true },
|
|
51
|
+
* { conditions: [[{ user: "role" }, "=", "ADMIN"]], permit: true },
|
|
52
|
+
* ];
|
|
53
|
+
* @example
|
|
54
|
+
* // Exception: allow logged-in users broadly, but reject a banned role
|
|
55
|
+
* const permission: ResolverPermission = [
|
|
56
|
+
* { conditions: [[{ user: "_loggedIn" }, "=", true]], permit: true },
|
|
57
|
+
* { conditions: [[{ user: "role" }, "=", "BANNED"]], permit: false },
|
|
58
|
+
* ];
|
|
59
|
+
* @example
|
|
60
|
+
* const permission: ResolverPermission = "allowAnonymous";
|
|
61
|
+
*/
|
|
62
|
+
type ResolverPermission<User extends object = InferredAttributes> = readonly ResolverPermissionPolicy<User>[] | "allowAnonymous";
|
|
63
|
+
//#endregion
|
|
64
|
+
export { ResolverPermission, ResolverPermissionCondition, ResolverPermissionPolicy };
|
|
@@ -4,6 +4,7 @@ import { MachineUserName } from "../auth/types.mjs";
|
|
|
4
4
|
import { ResolverInput } from "../../../types/resolver.generated.mjs";
|
|
5
5
|
import { TailorAnyField, TailorField } from "../../types/type.mjs";
|
|
6
6
|
import "../../types/machine-user.mjs";
|
|
7
|
+
import { ResolverPermission } from "./permission.mjs";
|
|
7
8
|
//#region src/configure/services/resolver/resolver.d.ts
|
|
8
9
|
type Context<Input extends Record<string, TailorAnyField> | undefined> = {
|
|
9
10
|
input: Input extends Record<string, TailorAnyField> ? InferFieldsOutput<Input> : never;
|
|
@@ -21,11 +22,12 @@ type NormalizedOutput<Output extends TailorAnyField | Record<string, TailorAnyFi
|
|
|
21
22
|
type: "nested";
|
|
22
23
|
array: false;
|
|
23
24
|
}, InferFieldsOutput<Extract<Output, Record<string, TailorAnyField>>>>;
|
|
24
|
-
type ResolverReturn<Input extends Record<string, TailorAnyField> | undefined, Output extends TailorAnyField | Record<string, TailorAnyField>> = Omit<ResolverInput, "input" | "output" | "body" | "invoker"> & Readonly<{
|
|
25
|
+
type ResolverReturn<Input extends Record<string, TailorAnyField> | undefined, Output extends TailorAnyField | Record<string, TailorAnyField>> = Omit<ResolverInput, "input" | "output" | "body" | "invoker" | "permission"> & Readonly<{
|
|
25
26
|
input?: Input;
|
|
26
27
|
output: NormalizedOutput<Output>;
|
|
27
28
|
body: (context: Context<Input>) => OutputType<Output> | Promise<OutputType<Output>>;
|
|
28
29
|
invoker?: MachineUserName;
|
|
30
|
+
permission?: ResolverPermission;
|
|
29
31
|
}>;
|
|
30
32
|
/**
|
|
31
33
|
* Create a resolver definition for the Tailor SDK.
|
|
@@ -41,6 +43,14 @@ type ResolverReturn<Input extends Record<string, TailorAnyField> | undefined, Ou
|
|
|
41
43
|
* If not specified, this is automatically set to true when an executor uses this resolver
|
|
42
44
|
* with `resolverExecutedTrigger`. If explicitly set to false while an executor uses this
|
|
43
45
|
* resolver, an error will be thrown during apply.
|
|
46
|
+
*
|
|
47
|
+
* `permission` declares the resolver's access requirement, checked against `context.user` (the
|
|
48
|
+
* original caller, unaffected by `authInvoker`) before `body` runs. Omitted (default):
|
|
49
|
+
* unchanged, anonymous callers can reach the resolver. `"allowAnonymous"`: explicitly documents
|
|
50
|
+
* that anonymous callers are allowed. An array of `{ conditions, permit }` policies (in the same
|
|
51
|
+
* style as TailorDB's `.permission()`) rejects non-matching callers: at least one `permit: true`
|
|
52
|
+
* policy is required (denied unless it matches), and a matching `permit: false` policy always
|
|
53
|
+
* overrides that grant.
|
|
44
54
|
* @template Input
|
|
45
55
|
* @template Output
|
|
46
56
|
* @param config - Resolver configuration
|
|
@@ -51,6 +61,7 @@ type ResolverReturn<Input extends Record<string, TailorAnyField> | undefined, Ou
|
|
|
51
61
|
* export default createResolver({
|
|
52
62
|
* name: "getUser",
|
|
53
63
|
* operation: "query",
|
|
64
|
+
* permission: [{ conditions: [[{ user: "_loggedIn" }, "=", true]], permit: true }],
|
|
54
65
|
* input: {
|
|
55
66
|
* id: t.string(),
|
|
56
67
|
* },
|
|
@@ -65,11 +76,12 @@ type ResolverReturn<Input extends Record<string, TailorAnyField> | undefined, Ou
|
|
|
65
76
|
* }),
|
|
66
77
|
* });
|
|
67
78
|
*/
|
|
68
|
-
declare function createResolver<Input extends Record<string, TailorAnyField> | undefined = undefined, Output extends TailorAnyField | Record<string, TailorAnyField> = TailorAnyField>(config: Omit<ResolverInput, "input" | "output" | "body" | "invoker"> & Readonly<{
|
|
79
|
+
declare function createResolver<Input extends Record<string, TailorAnyField> | undefined = undefined, Output extends TailorAnyField | Record<string, TailorAnyField> = TailorAnyField>(config: Omit<ResolverInput, "input" | "output" | "body" | "invoker" | "permission"> & Readonly<{
|
|
69
80
|
input?: Input;
|
|
70
81
|
output: Output;
|
|
71
82
|
body: (context: Context<Input>) => OutputType<Output> | Promise<OutputType<Output>>;
|
|
72
83
|
invoker?: MachineUserName;
|
|
84
|
+
permission?: ResolverPermission;
|
|
73
85
|
}>): ResolverReturn<Input, Output>;
|
|
74
86
|
type ResolverConfig = ReturnType<typeof createResolver<any, any>>;
|
|
75
87
|
//#endregion
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DBFieldMetadata, GqlOperationsConfig, Hook, TailorDBServiceInput, TypeFeatures } from "./types.mjs";
|
|
2
1
|
import { PermissionCondition, TailorTypeGqlPermission, TailorTypePermission, unsafeAllowAllGqlPermission, unsafeAllowAllTypePermission } from "./permission.mjs";
|
|
3
2
|
import { TailorAnyDBField, TailorAnyDBType, TailorDBField, TailorDBInstance, TailorDBType, db } from "./schema.mjs";
|
|
4
3
|
export { type PermissionCondition, type TailorAnyDBField, type TailorAnyDBType, type TailorDBField, type TailorDBInstance, type TailorDBType, type TailorTypeGqlPermission, type TailorTypePermission, db, unsafeAllowAllGqlPermission, unsafeAllowAllTypePermission };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { InferredAttributes } from "../../../runtime/types.mjs";
|
|
2
|
+
import { UserBooleanArrayOperand, UserBooleanOperand, UserStringArrayOperand, UserStringOperand } from "../../types/permission-operand.types.mjs";
|
|
2
3
|
//#region src/configure/services/tailordb/permission.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Record-level permission configuration for a TailorDB type.
|
|
@@ -47,22 +48,6 @@ type GqlPermissionAction = "read" | "create" | "update" | "delete" | "aggregate"
|
|
|
47
48
|
type EqualityOperator = "=" | "!=";
|
|
48
49
|
type ContainsOperator = "in" | "not in";
|
|
49
50
|
type HasAnyOperator = "hasAny" | "not hasAny";
|
|
50
|
-
type StringFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends string ? K : never; }[keyof User];
|
|
51
|
-
type StringArrayFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends string[] ? K : never; }[keyof User];
|
|
52
|
-
type BooleanFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends boolean ? K : never; }[keyof User];
|
|
53
|
-
type BooleanArrayFieldKeys<User extends object> = { [K in keyof User]-?: Exclude<User[K], undefined> extends boolean[] ? K : never; }[keyof User];
|
|
54
|
-
type UserStringOperand<User extends object = InferredAttributes> = {
|
|
55
|
-
user: StringFieldKeys<User> | "id";
|
|
56
|
-
};
|
|
57
|
-
type UserStringArrayOperand<User extends object = InferredAttributes> = {
|
|
58
|
-
user: StringArrayFieldKeys<User>;
|
|
59
|
-
};
|
|
60
|
-
type UserBooleanOperand<User extends object = InferredAttributes> = {
|
|
61
|
-
user: BooleanFieldKeys<User> | "_loggedIn";
|
|
62
|
-
};
|
|
63
|
-
type UserBooleanArrayOperand<User extends object = InferredAttributes> = {
|
|
64
|
-
user: BooleanArrayFieldKeys<User>;
|
|
65
|
-
};
|
|
66
51
|
type RecordOperand<Type extends object, Update extends boolean = false> = Update extends true ? {
|
|
67
52
|
oldRecord: (keyof Type & string) | "id";
|
|
68
53
|
} | {
|
|
@@ -33,7 +33,7 @@ declare function defineWorkflowExecutionPolicy<const N extends string, const D e
|
|
|
33
33
|
/**
|
|
34
34
|
* Define a group of workflow job function execution policies. Property names
|
|
35
35
|
* become the workspace-unique `name` and default `key` verbatim, matching the
|
|
36
|
-
* mental model of {@link
|
|
36
|
+
* mental model of {@link createWaitPoints}. Provide `name` / `key` explicitly
|
|
37
37
|
* to override the property-name default (for example, when the property name
|
|
38
38
|
* is not valid for the execution policy grammar or when the runtime key
|
|
39
39
|
* prefix needs to differ).
|
|
@@ -58,10 +58,10 @@ declare function defineWorkflowExecutionPolicy<const N extends string, const D e
|
|
|
58
58
|
* }));
|
|
59
59
|
*
|
|
60
60
|
* // In a workflow job function:
|
|
61
|
-
* await tailor.workflow.
|
|
61
|
+
* await tailor.workflow.execJobFunction("worker", args, {
|
|
62
62
|
* executionPolicyKey: executionPolicies.premium.key,
|
|
63
63
|
* });
|
|
64
|
-
* await tailor.workflow.
|
|
64
|
+
* await tailor.workflow.execJobFunction("worker", args, {
|
|
65
65
|
* executionPolicyKey: executionPolicies["tenant-api"].keyFor(input.tenantId),
|
|
66
66
|
* });
|
|
67
67
|
*/
|