diff --git a/backend/src/controllers/v1/integrationController.ts b/backend/src/controllers/v1/integrationController.ts index eebf5672a..e5f6e7393 100644 --- a/backend/src/controllers/v1/integrationController.ts +++ b/backend/src/controllers/v1/integrationController.ts @@ -8,6 +8,7 @@ import { getFolderByPath } from "../../services/FolderService"; import { BadRequestError } from "../../utils/errors"; import { EEAuditLogService } from "../../ee/services"; import { EventType } from "../../ee/models"; +import { syncSecretsToActiveIntegrationsQueue } from "../../queues/integrations/syncSecretsToThirdPartyServices"; /** * Create/initialize an (empty) integration for integration authorization @@ -76,7 +77,7 @@ export const createIntegration = async (req: Request, res: Response) => { }) }); } - + await EEAuditLogService.createAuditLog( req.authData, { @@ -218,3 +219,15 @@ export const deleteIntegration = async (req: Request, res: Response) => { integration }); }; + +// Will trigger sync for all integrations within the given env and workspace id +export const manualSync = async (req: Request, res: Response) => { + const { workspaceId, environment } = req.body; + syncSecretsToActiveIntegrationsQueue({ + workspaceId, + environment + }) + + res.status(200).send() +}; + diff --git a/backend/src/routes/v1/integration.ts b/backend/src/routes/v1/integration.ts index 95ec4ec2d..c3de5c3b0 100644 --- a/backend/src/routes/v1/integration.ts +++ b/backend/src/routes/v1/integration.ts @@ -4,6 +4,7 @@ import { requireAuth, requireIntegrationAuth, requireIntegrationAuthorizationAuth, + requireWorkspaceAuth, validateRequest, } from "../../middleware"; import { @@ -73,4 +74,19 @@ router.delete( integrationController.deleteIntegration ); +router.post( + "/manual-sync", + requireAuth({ + acceptedAuthModes: [AuthMode.JWT] + }), + requireWorkspaceAuth({ + acceptedRoles: [ADMIN, MEMBER], + locationWorkspaceId: "body", + }), + body("environment").isString().exists().trim(), + body("workspaceId").exists().trim(), + validateRequest, + integrationController.manualSync +); + export default router;