* fix: Prevent workflows with only manual trigger from being activated * fix: Fix workflow id when sharing from workflows list * fix: Update sharing modal translations * fix: Allow sharees to disable workflows and fix issue with unique key when removing a user * refactor: Improve error messages and change logging level to be less verbose * fix: Broken user removal transfer issue * feat: Implement workflow sharing BE telemetry * chore: temporarily add sharing env vars * feat: Implement BE telemetry for workflow sharing * fix: Prevent issues with possibly missing workflow id * feat: Replace WorkflowSharing flag references (no-changelog) (#4918) * ci: Block all external network calls in tests (no-changelog) (#4930) * setup nock to prevent tests from making any external requests * mock all calls to posthog sdk * feat: Replace WorkflowSharing flag references (no-changelog) Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com> * refactor: Remove temporary feature flag for workflow sharing * refactor: add sharing_role to both manual and node executions * refactor: Allow changing name, position and disabled of read only nodes * feat: Overhaul dynamic translations for local and cloud (#4943) * feat: Overhaul dynamic translations for local and cloud * fix: remove type casting * chore: remove unused translations * fix: fix workflow sharing translation * test: Fix broken test * refactor: remove unnecessary import * refactor: Minor code improvements * refactor: rename dynamicTranslations to contextBasedTranslationKeys * fix: fix type imports * refactor: Consolidate sharing feature check * feat: update cred sharing unavailable translations * feat: update upgrade message when user management not available * fix: rename plan names to Pro and Power * feat: update translations to no longer contain plan names * wip: subworkflow permissions * feat: add workflowsFromSameOwner caller policy * feat: Fix subworkflow permissions * shared entites should check for role when deleting users * refactor: remove circular dependency * role filter shouldn't be an array * fixed role issue * fix: Corrected behavior when removing users * feat: show instance owner credential sharing message only if isnt sharee * feat: update workflow caller policy caller ids labels * feat: update upgrade plan links to contain instance ids * fix: show check errors below creds message only to owner * fix(editor): Hide usage page on cloud * fix: update credential validation error message for sharee * fix(core): Remove duplicate import * fix(editor): Extending deployment types * feat: Overhaul contextual translations (#4992) feat: update how contextual translations work * refactor: improve messageing for subworkflow permissions * test: Fix issue with user deletion and transfer * fix: Explicitly throw error message so it can be displayed in UI Co-authored-by: Alex Grozav <alex@grozav.com> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com> Co-authored-by: freyamade <freya@n8n.io> Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
import express from 'express';
|
|
import {
|
|
IExecutionFlattedResponse,
|
|
IExecutionResponse,
|
|
IExecutionsListResponse,
|
|
} from '@/Interfaces';
|
|
import type { ExecutionRequest } from '@/requests';
|
|
import * as ResponseHelper from '@/ResponseHelper';
|
|
import { isSharingEnabled } from '@/UserManagement/UserManagementHelper';
|
|
import { EEExecutionsService } from './executions.service.ee';
|
|
|
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
export const EEExecutionsController = express.Router();
|
|
|
|
EEExecutionsController.use((req, res, next) => {
|
|
if (!isSharingEnabled()) {
|
|
// skip ee router and use free one
|
|
next('router');
|
|
return;
|
|
}
|
|
// use ee router
|
|
next();
|
|
});
|
|
|
|
/**
|
|
* GET /executions
|
|
*/
|
|
EEExecutionsController.get(
|
|
'/',
|
|
ResponseHelper.send(async (req: ExecutionRequest.GetAll): Promise<IExecutionsListResponse> => {
|
|
return EEExecutionsService.getExecutionsList(req);
|
|
}),
|
|
);
|
|
|
|
/**
|
|
* GET /executions/:id
|
|
*/
|
|
EEExecutionsController.get(
|
|
'/:id',
|
|
ResponseHelper.send(
|
|
async (
|
|
req: ExecutionRequest.Get,
|
|
): Promise<IExecutionResponse | IExecutionFlattedResponse | undefined> => {
|
|
return EEExecutionsService.getExecution(req);
|
|
},
|
|
),
|
|
);
|
|
|
|
/**
|
|
* POST /executions/:id/retry
|
|
*/
|
|
EEExecutionsController.post(
|
|
'/:id/retry',
|
|
ResponseHelper.send(async (req: ExecutionRequest.Retry): Promise<boolean> => {
|
|
return EEExecutionsService.retryExecution(req);
|
|
}),
|
|
);
|
|
|
|
/**
|
|
* POST /executions/delete
|
|
* INFORMATION: We use POST instead of DELETE to not run into any issues with the query data
|
|
* getting too long
|
|
*/
|
|
EEExecutionsController.post(
|
|
'/delete',
|
|
ResponseHelper.send(async (req: ExecutionRequest.Delete): Promise<void> => {
|
|
await EEExecutionsService.deleteExecutions(req);
|
|
}),
|
|
);
|