diff --git a/packages/agent/src/routes/modification/action/action.ts b/packages/agent/src/routes/modification/action/action.ts index f9440b1e25..47a741fc34 100644 --- a/packages/agent/src/routes/modification/action/action.ts +++ b/packages/agent/src/routes/modification/action/action.ts @@ -68,6 +68,7 @@ export default class ActionRoute extends CollectionRoute { this.getRecordSelection(context, false), ]); const requestBody = context.request.body as SmartActionApprovalRequestBody; + const webAppURL: URL = new URL(context.request.url || context.request.originalUrl); const canPerformCustomActionParams = { caller, @@ -103,7 +104,9 @@ export default class ActionRoute extends CollectionRoute { // Now that we have the field list, we can parse the data again. const data = ForestValueConverter.makeFormData(dataSource, rawData, fields); - const result = await this.collection.execute(caller, this.actionName, data, filterForCaller); + const result = await this.collection.execute(caller, this.actionName, data, filterForCaller, { + webAppURL, + }); if (result?.type === 'Error') { context.response.status = HttpCode.BadRequest; diff --git a/packages/datasource-toolkit/src/interfaces/collection.ts b/packages/datasource-toolkit/src/interfaces/collection.ts index b4b00ee5fe..ac271dfe06 100644 --- a/packages/datasource-toolkit/src/interfaces/collection.ts +++ b/packages/datasource-toolkit/src/interfaces/collection.ts @@ -35,6 +35,9 @@ export interface Collection { name: string, formValues: RecordData, filter?: Filter, + additionalInformation?: { + webAppURL: URL; + }, ): Promise; getForm(