@webiny/background-tasks 0.0.0-unstable.5387e5f7c8 → 0.0.0-unstable.7c2def32a7
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.
|
@@ -223,12 +223,11 @@ class BackgroundTasksGraphQLSchemaImpl {
|
|
|
223
223
|
async loadInputs() {
|
|
224
224
|
const taskModel = await this.taskModelProvider.get();
|
|
225
225
|
const logModel = await this.logModelProvider.get();
|
|
226
|
-
const
|
|
227
|
-
const modelsResult = await this.listModelsUseCase.execute({
|
|
226
|
+
const modelsResult = await this.identityContext.withoutAuthorization(async ()=>await this.listModelsUseCase.execute({
|
|
228
227
|
includePrivate: false
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
|
|
228
|
+
}));
|
|
229
|
+
if (modelsResult.isFail()) throw modelsResult.error;
|
|
230
|
+
const models = modelsResult.value.filter((model)=>model.fields.length > 0);
|
|
232
231
|
return {
|
|
233
232
|
taskModel,
|
|
234
233
|
logModel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/graphql/BackgroundTasksGraphQLSchema.js","sources":["../../../src/api/graphql/BackgroundTasksGraphQLSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { createModelSchemaKey } from \"@webiny/api-headless-cms/utils/createModelSchemaKey.js\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/api/types.js\";\nimport { TaskLogModelProvider } from \"~/api/domain/task/abstractions.js\";\nimport { TaskModelProvider } from \"~/api/domain/task/abstractions.js\";\nimport { ListTaskLogsUseCase } from \"~/api/features/ListTaskLogs/index.js\";\nimport { GetTaskUseCase } from \"~/api/features/GetTask/index.js\";\nimport { ListTasksUseCase } from \"~/api/features/ListTasks/index.js\";\nimport { DeleteTaskUseCase } from \"~/api/features/DeleteTask/index.js\";\nimport { TaskNotFoundError } from \"~/api/domain/errors.js\";\nimport { ListTaskDefinitionsUseCase } from \"~/api/features/ListTaskDefinitions/abstractions.js\";\nimport { TriggerTaskUseCase } from \"~/api/features/TriggerTask/abstractions.js\";\nimport { AbortTaskUseCase } from \"~/api/features/AbortTask/abstractions.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport type { IUpdateBackgroundTaskSettingsInput } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\n\n// The API answers `null` for a task that doesn't exist; any other failure is an error.\nconst findTask = async (getTask: GetTaskUseCase.Interface, id: string) => {\n const result = await getTask.execute(id);\n if (result.isOk()) {\n return result.value;\n } else if (result.error instanceof TaskNotFoundError) {\n return null;\n }\n throw result.error;\n};\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\ninterface IUpdateSettingsArgs {\n input: IUpdateBackgroundTaskSettingsInput;\n}\n\ninterface IResolverParams<TArgs = unknown, TParent = unknown> {\n parent: TParent;\n args: TArgs;\n context: Context;\n}\n\nfunction addQueryResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"Query.backgroundTasks\",\n resolver: () => emptyResolver\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.getTask\",\n dependencies: [GetTaskUseCase],\n resolver: (getTask: GetTaskUseCase.Interface) => {\n return ({ args, context }: IResolverParams<IGetTaskQueryParams>) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n return await findTask(getTask, args.id);\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.listTasks\",\n dependencies: [ListTasksUseCase],\n resolver: (listTasks: ListTasksUseCase.Interface) => {\n return ({ args, context }: IResolverParams<IListTaskParams>) => {\n return resolveList(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const result = await listTasks.execute(args);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.listDefinitions\",\n dependencies: [ListTaskDefinitionsUseCase],\n resolver: (listTaskDefinitions: ListTaskDefinitionsUseCase.Interface) => {\n return ({ context }: IResolverParams) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n // Do not output private tasks.\n return listTaskDefinitions.execute().filter(item => {\n return !item.isPrivate;\n });\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.listLogs\",\n dependencies: [ListTaskLogsUseCase],\n resolver: (listTaskLogs: ListTaskLogsUseCase.Interface) => {\n return ({ args, context }: IResolverParams<IListTaskLogParams>) => {\n return resolveList(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const result = await listTaskLogs.execute(args);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.getSettings\",\n dependencies: [GetBackgroundTaskSettingsRepository],\n resolver: (repository: GetBackgroundTaskSettingsRepository.Interface) => {\n return ({ context }: IResolverParams) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const result = await repository.execute();\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n}\n\nfunction addMutationResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"Mutation.backgroundTasks\",\n resolver: () => emptyResolver\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.abortTask\",\n dependencies: [AbortTaskUseCase],\n resolver: (abortTask: AbortTaskUseCase.Interface) => {\n return async ({ args, context }: IResolverParams<IAbortTaskMutationParams>) => {\n await checkPermissions(context, { rwd: \"w\" });\n return resolve<ITask>(async () => {\n const result = await abortTask.execute(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.triggerTask\",\n dependencies: [TriggerTaskUseCase],\n resolver: (triggerTask: TriggerTaskUseCase.Interface) => {\n return async ({ args, context }: IResolverParams<ITriggerTaskMutationParams>) => {\n await checkPermissions(context, { rwd: \"w\" });\n return resolve<ITask>(async () => {\n const result = await triggerTask.execute(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.deleteTask\",\n dependencies: [DeleteTaskUseCase],\n resolver: (deleteTask: DeleteTaskUseCase.Interface) => {\n return async ({ args, context }: IResolverParams<IDeleteTaskMutationParams>) => {\n await checkPermissions(context, { rwd: \"d\" });\n return resolve(async () => {\n const result = await deleteTask.execute(args.id);\n if (result.isFail()) {\n throw result.error;\n }\n return true;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.updateSettings\",\n dependencies: [UpdateBackgroundTaskSettingsUseCase],\n resolver: (updateSettings: UpdateBackgroundTaskSettingsUseCase.Interface) => {\n return ({ args }: IResolverParams<IUpdateSettingsArgs>) => {\n return resolve(async () => {\n const result = await updateSettings.execute(args.input);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n}\n\nfunction addFieldResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"WebinyBackgroundTask.logs\",\n dependencies: [ListTaskLogsUseCase],\n resolver: (listTaskLogs: ListTaskLogsUseCase.Interface) => {\n return async ({ parent, args }: IResolverParams<IListTaskLogParams, ITask>) => {\n const result = await listTaskLogs.execute({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n if (result.isFail()) {\n throw result.error;\n }\n return result.value.items;\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskLog.task\",\n dependencies: [GetTaskUseCase],\n resolver: (getTask: GetTaskUseCase.Interface) => {\n return async ({ parent }: IResolverParams<unknown, ITaskLog>) => {\n return await findTask(getTask, parent.task);\n };\n }\n });\n}\n\n/**\n * The background-tasks GraphQL schema. Its shape depends on the CMS task/log content models, which\n * are loaded when the schema is composed. The settings schema lives here too, because it extends\n * the task schema's `WebinyBackgroundTaskQuery`/`Mutation` types.\n */\nclass BackgroundTasksGraphQLSchemaImpl implements GraphQLSchemaFactory.Interface {\n public constructor(\n private readonly tenantContext: TenantContext.Interface,\n private readonly identityContext: IdentityContext.Interface,\n private readonly taskModelProvider: TaskModelProvider.Interface,\n private readonly logModelProvider: TaskLogModelProvider.Interface,\n private readonly listModelsUseCase: ListModelsUseCase.Interface,\n private readonly fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface\n ) {}\n\n public async getSchemaKey(): Promise<string> {\n if (!this.tenantContext.getTenant()) {\n return \"BackgroundTasks:no-tenant\";\n }\n\n const { taskModel, logModel, models } = await this.loadInputs();\n const modelKey = createModelSchemaKey([taskModel, logModel], models);\n return `BackgroundTasks:${modelKey}`;\n }\n\n public async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n if (!this.tenantContext.getTenant()) {\n return builder;\n }\n\n const typeDefs = await this.createTypeDefs();\n\n builder.addTypeDefs(typeDefs);\n addQueryResolvers(builder);\n addMutationResolvers(builder);\n addFieldResolvers(builder);\n\n return builder;\n }\n\n private async loadInputs() {\n const taskModel = await this.taskModelProvider.get();\n const logModel = await this.logModelProvider.get();\n\n const models = await this.identityContext.withoutAuthorization(async () => {\n const modelsResult = await this.listModelsUseCase.execute({ includePrivate: false });\n return modelsResult.value.filter(model => model.fields.length > 0);\n });\n\n return { taskModel, logModel, models };\n }\n\n private async createTypeDefs(): Promise<string> {\n const { taskModel, logModel, models } = await this.loadInputs();\n const fieldRegistry = this.fieldRegistry;\n\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldRegistry\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n return /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n\n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n\n type WebinyBackgroundTaskSettings {\n retentionDays: Int\n }\n\n type WebinyBackgroundTaskSettingsResponse {\n data: WebinyBackgroundTaskSettings\n error: WebinyBackgroundTaskError\n }\n\n input UpdateBackgroundTaskSettingsInput {\n retentionDays: Int\n }\n\n extend type WebinyBackgroundTaskQuery {\n getSettings: WebinyBackgroundTaskSettingsResponse\n }\n\n extend type WebinyBackgroundTaskMutation {\n updateSettings(\n input: UpdateBackgroundTaskSettingsInput!\n ): WebinyBackgroundTaskSettingsResponse\n }\n `;\n }\n}\n\nexport const BackgroundTasksGraphQLSchema = GraphQLSchemaFactory.createImplementation({\n implementation: BackgroundTasksGraphQLSchemaImpl,\n dependencies: [\n TenantContext,\n IdentityContext,\n TaskModelProvider,\n TaskLogModelProvider,\n ListModelsUseCase,\n CmsModelFieldToGraphQLRegistry\n ]\n});\n"],"names":["findTask","getTask","id","result","TaskNotFoundError","addQueryResolvers","builder","emptyResolver","GetTaskUseCase","args","context","resolve","checkPermissions","ListTasksUseCase","listTasks","resolveList","ListTaskDefinitionsUseCase","listTaskDefinitions","item","ListTaskLogsUseCase","listTaskLogs","GetBackgroundTaskSettingsRepository","repository","addMutationResolvers","AbortTaskUseCase","abortTask","TriggerTaskUseCase","triggerTask","DeleteTaskUseCase","deleteTask","UpdateBackgroundTaskSettingsUseCase","updateSettings","addFieldResolvers","parent","BackgroundTasksGraphQLSchemaImpl","tenantContext","identityContext","taskModelProvider","logModelProvider","listModelsUseCase","fieldRegistry","taskModel","logModel","models","modelKey","createModelSchemaKey","typeDefs","modelsResult","model","taskFields","renderFields","logFields","field","listTasksFilterFieldsRender","renderListFilterFields","listLogsFilterFieldsRender","sortTasksEnumRender","renderSortEnum","sortLogsEnumRender","f","BackgroundTasksGraphQLSchema","GraphQLSchemaFactory","TenantContext","IdentityContext","TaskModelProvider","TaskLogModelProvider","ListModelsUseCase","CmsModelFieldToGraphQLRegistry"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api/graphql/BackgroundTasksGraphQLSchema.js","sources":["../../../src/api/graphql/BackgroundTasksGraphQLSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.js\";\nimport { createModelSchemaKey } from \"@webiny/api-headless-cms/utils/createModelSchemaKey.js\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/api/types.js\";\nimport { TaskLogModelProvider } from \"~/api/domain/task/abstractions.js\";\nimport { TaskModelProvider } from \"~/api/domain/task/abstractions.js\";\nimport { ListTaskLogsUseCase } from \"~/api/features/ListTaskLogs/index.js\";\nimport { GetTaskUseCase } from \"~/api/features/GetTask/index.js\";\nimport { ListTasksUseCase } from \"~/api/features/ListTasks/index.js\";\nimport { DeleteTaskUseCase } from \"~/api/features/DeleteTask/index.js\";\nimport { TaskNotFoundError } from \"~/api/domain/errors.js\";\nimport { ListTaskDefinitionsUseCase } from \"~/api/features/ListTaskDefinitions/abstractions.js\";\nimport { TriggerTaskUseCase } from \"~/api/features/TriggerTask/abstractions.js\";\nimport { AbortTaskUseCase } from \"~/api/features/AbortTask/abstractions.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport type { IUpdateBackgroundTaskSettingsInput } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\n\n// The API answers `null` for a task that doesn't exist; any other failure is an error.\nconst findTask = async (getTask: GetTaskUseCase.Interface, id: string) => {\n const result = await getTask.execute(id);\n if (result.isOk()) {\n return result.value;\n } else if (result.error instanceof TaskNotFoundError) {\n return null;\n }\n throw result.error;\n};\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\ninterface IUpdateSettingsArgs {\n input: IUpdateBackgroundTaskSettingsInput;\n}\n\ninterface IResolverParams<TArgs = unknown, TParent = unknown> {\n parent: TParent;\n args: TArgs;\n context: Context;\n}\n\nfunction addQueryResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"Query.backgroundTasks\",\n resolver: () => emptyResolver\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.getTask\",\n dependencies: [GetTaskUseCase],\n resolver: (getTask: GetTaskUseCase.Interface) => {\n return ({ args, context }: IResolverParams<IGetTaskQueryParams>) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n return await findTask(getTask, args.id);\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.listTasks\",\n dependencies: [ListTasksUseCase],\n resolver: (listTasks: ListTasksUseCase.Interface) => {\n return ({ args, context }: IResolverParams<IListTaskParams>) => {\n return resolveList(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const result = await listTasks.execute(args);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.listDefinitions\",\n dependencies: [ListTaskDefinitionsUseCase],\n resolver: (listTaskDefinitions: ListTaskDefinitionsUseCase.Interface) => {\n return ({ context }: IResolverParams) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n // Do not output private tasks.\n return listTaskDefinitions.execute().filter(item => {\n return !item.isPrivate;\n });\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.listLogs\",\n dependencies: [ListTaskLogsUseCase],\n resolver: (listTaskLogs: ListTaskLogsUseCase.Interface) => {\n return ({ args, context }: IResolverParams<IListTaskLogParams>) => {\n return resolveList(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const result = await listTaskLogs.execute(args);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskQuery.getSettings\",\n dependencies: [GetBackgroundTaskSettingsRepository],\n resolver: (repository: GetBackgroundTaskSettingsRepository.Interface) => {\n return ({ context }: IResolverParams) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const result = await repository.execute();\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n}\n\nfunction addMutationResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"Mutation.backgroundTasks\",\n resolver: () => emptyResolver\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.abortTask\",\n dependencies: [AbortTaskUseCase],\n resolver: (abortTask: AbortTaskUseCase.Interface) => {\n return async ({ args, context }: IResolverParams<IAbortTaskMutationParams>) => {\n await checkPermissions(context, { rwd: \"w\" });\n return resolve<ITask>(async () => {\n const result = await abortTask.execute(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.triggerTask\",\n dependencies: [TriggerTaskUseCase],\n resolver: (triggerTask: TriggerTaskUseCase.Interface) => {\n return async ({ args, context }: IResolverParams<ITriggerTaskMutationParams>) => {\n await checkPermissions(context, { rwd: \"w\" });\n return resolve<ITask>(async () => {\n const result = await triggerTask.execute(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.deleteTask\",\n dependencies: [DeleteTaskUseCase],\n resolver: (deleteTask: DeleteTaskUseCase.Interface) => {\n return async ({ args, context }: IResolverParams<IDeleteTaskMutationParams>) => {\n await checkPermissions(context, { rwd: \"d\" });\n return resolve(async () => {\n const result = await deleteTask.execute(args.id);\n if (result.isFail()) {\n throw result.error;\n }\n return true;\n });\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskMutation.updateSettings\",\n dependencies: [UpdateBackgroundTaskSettingsUseCase],\n resolver: (updateSettings: UpdateBackgroundTaskSettingsUseCase.Interface) => {\n return ({ args }: IResolverParams<IUpdateSettingsArgs>) => {\n return resolve(async () => {\n const result = await updateSettings.execute(args.input);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n };\n }\n });\n}\n\nfunction addFieldResolvers(builder: GraphQLSchemaFactory.SchemaBuilder): void {\n builder.addResolver({\n path: \"WebinyBackgroundTask.logs\",\n dependencies: [ListTaskLogsUseCase],\n resolver: (listTaskLogs: ListTaskLogsUseCase.Interface) => {\n return async ({ parent, args }: IResolverParams<IListTaskLogParams, ITask>) => {\n const result = await listTaskLogs.execute({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n if (result.isFail()) {\n throw result.error;\n }\n return result.value.items;\n };\n }\n });\n\n builder.addResolver({\n path: \"WebinyBackgroundTaskLog.task\",\n dependencies: [GetTaskUseCase],\n resolver: (getTask: GetTaskUseCase.Interface) => {\n return async ({ parent }: IResolverParams<unknown, ITaskLog>) => {\n return await findTask(getTask, parent.task);\n };\n }\n });\n}\n\n/**\n * The background-tasks GraphQL schema. Its shape depends on the CMS task/log content models, which\n * are loaded when the schema is composed. The settings schema lives here too, because it extends\n * the task schema's `WebinyBackgroundTaskQuery`/`Mutation` types.\n */\nclass BackgroundTasksGraphQLSchemaImpl implements GraphQLSchemaFactory.Interface {\n public constructor(\n private readonly tenantContext: TenantContext.Interface,\n private readonly identityContext: IdentityContext.Interface,\n private readonly taskModelProvider: TaskModelProvider.Interface,\n private readonly logModelProvider: TaskLogModelProvider.Interface,\n private readonly listModelsUseCase: ListModelsUseCase.Interface,\n private readonly fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface\n ) {}\n\n public async getSchemaKey(): Promise<string> {\n if (!this.tenantContext.getTenant()) {\n return \"BackgroundTasks:no-tenant\";\n }\n\n const { taskModel, logModel, models } = await this.loadInputs();\n const modelKey = createModelSchemaKey([taskModel, logModel], models);\n return `BackgroundTasks:${modelKey}`;\n }\n\n public async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n if (!this.tenantContext.getTenant()) {\n return builder;\n }\n\n const typeDefs = await this.createTypeDefs();\n\n builder.addTypeDefs(typeDefs);\n addQueryResolvers(builder);\n addMutationResolvers(builder);\n addFieldResolvers(builder);\n\n return builder;\n }\n\n private async loadInputs() {\n const taskModel = await this.taskModelProvider.get();\n const logModel = await this.logModelProvider.get();\n\n const modelsResult = await this.identityContext.withoutAuthorization(async () => {\n return await this.listModelsUseCase.execute({ includePrivate: false });\n });\n if (modelsResult.isFail()) {\n throw modelsResult.error;\n }\n const models = modelsResult.value.filter(model => model.fields.length > 0);\n\n return { taskModel, logModel, models };\n }\n\n private async createTypeDefs(): Promise<string> {\n const { taskModel, logModel, models } = await this.loadInputs();\n const fieldRegistry = this.fieldRegistry;\n\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldRegistry\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n return /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n\n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n\n type WebinyBackgroundTaskSettings {\n retentionDays: Int\n }\n\n type WebinyBackgroundTaskSettingsResponse {\n data: WebinyBackgroundTaskSettings\n error: WebinyBackgroundTaskError\n }\n\n input UpdateBackgroundTaskSettingsInput {\n retentionDays: Int\n }\n\n extend type WebinyBackgroundTaskQuery {\n getSettings: WebinyBackgroundTaskSettingsResponse\n }\n\n extend type WebinyBackgroundTaskMutation {\n updateSettings(\n input: UpdateBackgroundTaskSettingsInput!\n ): WebinyBackgroundTaskSettingsResponse\n }\n `;\n }\n}\n\nexport const BackgroundTasksGraphQLSchema = GraphQLSchemaFactory.createImplementation({\n implementation: BackgroundTasksGraphQLSchemaImpl,\n dependencies: [\n TenantContext,\n IdentityContext,\n TaskModelProvider,\n TaskLogModelProvider,\n ListModelsUseCase,\n CmsModelFieldToGraphQLRegistry\n ]\n});\n"],"names":["findTask","getTask","id","result","TaskNotFoundError","addQueryResolvers","builder","emptyResolver","GetTaskUseCase","args","context","resolve","checkPermissions","ListTasksUseCase","listTasks","resolveList","ListTaskDefinitionsUseCase","listTaskDefinitions","item","ListTaskLogsUseCase","listTaskLogs","GetBackgroundTaskSettingsRepository","repository","addMutationResolvers","AbortTaskUseCase","abortTask","TriggerTaskUseCase","triggerTask","DeleteTaskUseCase","deleteTask","UpdateBackgroundTaskSettingsUseCase","updateSettings","addFieldResolvers","parent","BackgroundTasksGraphQLSchemaImpl","tenantContext","identityContext","taskModelProvider","logModelProvider","listModelsUseCase","fieldRegistry","taskModel","logModel","models","modelKey","createModelSchemaKey","typeDefs","modelsResult","model","taskFields","renderFields","logFields","field","listTasksFilterFieldsRender","renderListFilterFields","listLogsFilterFieldsRender","sortTasksEnumRender","renderSortEnum","sortLogsEnumRender","f","BackgroundTasksGraphQLSchema","GraphQLSchemaFactory","TenantContext","IdentityContext","TaskModelProvider","TaskLogModelProvider","ListModelsUseCase","CmsModelFieldToGraphQLRegistry"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/background-tasks",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.7c2def32a7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -19,20 +19,20 @@
|
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@webiny/admin-ui": "0.0.0-unstable.
|
|
23
|
-
"@webiny/api": "0.0.0-unstable.
|
|
24
|
-
"@webiny/api-core": "0.0.0-unstable.
|
|
25
|
-
"@webiny/api-graphql": "0.0.0-unstable.
|
|
26
|
-
"@webiny/api-headless-cms": "0.0.0-unstable.
|
|
27
|
-
"@webiny/app": "0.0.0-unstable.
|
|
28
|
-
"@webiny/app-admin": "0.0.0-unstable.
|
|
29
|
-
"@webiny/error": "0.0.0-unstable.
|
|
30
|
-
"@webiny/feature": "0.0.0-unstable.
|
|
31
|
-
"@webiny/handler": "0.0.0-unstable.
|
|
32
|
-
"@webiny/icons": "0.0.0-unstable.
|
|
33
|
-
"@webiny/plugins": "0.0.0-unstable.
|
|
34
|
-
"@webiny/sdk": "0.0.0-unstable.
|
|
35
|
-
"@webiny/utils": "0.0.0-unstable.
|
|
22
|
+
"@webiny/admin-ui": "0.0.0-unstable.7c2def32a7",
|
|
23
|
+
"@webiny/api": "0.0.0-unstable.7c2def32a7",
|
|
24
|
+
"@webiny/api-core": "0.0.0-unstable.7c2def32a7",
|
|
25
|
+
"@webiny/api-graphql": "0.0.0-unstable.7c2def32a7",
|
|
26
|
+
"@webiny/api-headless-cms": "0.0.0-unstable.7c2def32a7",
|
|
27
|
+
"@webiny/app": "0.0.0-unstable.7c2def32a7",
|
|
28
|
+
"@webiny/app-admin": "0.0.0-unstable.7c2def32a7",
|
|
29
|
+
"@webiny/error": "0.0.0-unstable.7c2def32a7",
|
|
30
|
+
"@webiny/feature": "0.0.0-unstable.7c2def32a7",
|
|
31
|
+
"@webiny/handler": "0.0.0-unstable.7c2def32a7",
|
|
32
|
+
"@webiny/icons": "0.0.0-unstable.7c2def32a7",
|
|
33
|
+
"@webiny/plugins": "0.0.0-unstable.7c2def32a7",
|
|
34
|
+
"@webiny/sdk": "0.0.0-unstable.7c2def32a7",
|
|
35
|
+
"@webiny/utils": "0.0.0-unstable.7c2def32a7",
|
|
36
36
|
"deep-equal": "2.2.3",
|
|
37
37
|
"graphql": "16.14.2",
|
|
38
38
|
"lodash": "4.18.1",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"zod": "4.4.3"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@webiny/api-core-testing": "0.0.0-unstable.
|
|
49
|
-
"@webiny/build-tools": "0.0.0-unstable.
|
|
48
|
+
"@webiny/api-core-testing": "0.0.0-unstable.7c2def32a7",
|
|
49
|
+
"@webiny/build-tools": "0.0.0-unstable.7c2def32a7",
|
|
50
50
|
"@webiny/di": "2.0.0",
|
|
51
|
-
"@webiny/event-handler-core": "0.0.0-unstable.
|
|
52
|
-
"@webiny/wcp": "0.0.0-unstable.
|
|
51
|
+
"@webiny/event-handler-core": "0.0.0-unstable.7c2def32a7",
|
|
52
|
+
"@webiny/wcp": "0.0.0-unstable.7c2def32a7",
|
|
53
53
|
"rimraf": "6.1.3",
|
|
54
54
|
"type-fest": "5.8.0",
|
|
55
55
|
"typescript": "7.0.2",
|