* ✨ Implement security audit * ⚡ Use logger * 🧪 Fix test * ⚡ Switch logger with stdout * 🎨 Set new logo * ⚡ Fill out Public API schema * ✏️ Fix typo * ⚡ Break dependency cycle * ⚡ Add security settings values * 🧪 Test security settings * ⚡ Add publicly accessible instance warning * ⚡ Add metric to CLI command * ✏️ Fix typo * 🔥 Remove unneeded path alias * 📘 Add type import * 🔥 Remove inferrable output type * ⚡ Set description at correct level * ⚡ Rename constant for consistency * ⚡ Sort URLs * ⚡ Rename local var * ⚡ Shorten name * ✏️ Improve phrasing * ⚡ Improve naming * ⚡ Fix casing * ✏️ Add docline * ✏️ Relocate comment * ⚡ Add singular/plurals * 🔥 Remove unneeded await * ✏️ Improve test description * ⚡ Optimize with sets * ⚡ Adjust post master merge * ✏️ Improve naming * ⚡ Adjust in spy * 🧪 Fix outdated instance test * 🧪 Make diagnostics check consistent * ⚡ Refactor `getAllExistingCreds` * ⚡ Create helper `getNodeTypes` * 🐛 Fix `InternalHooksManager` call * 🚚 Rename `execution` to `nodes` risk * ⚡ Add options to CLI command * ⚡ Make days configurable * :revert: Undo changes to `BaseCommand` * ⚡ Improve CLI command UX * ⚡ Change no-report return value Empty array to trigger empty state on FE. * ⚡ Add empty check to `reportInstanceRisk` * 🧪 Extend Jest `expect` * 📘 Augment `jest.Matchers` * 🧪 Set extend as setup file * 🔧 Override lint rule for `.d.ts` * ⚡ Use new matcher * ⚡ Update check * 📘 Improve typings * ⚡ Adjust instance risk check * ✏️ Rename `execution` → `nodes` in Public API schema * ✏️ Add clarifying comment * ✏️ Fix typo * ⚡ Validate categories in CLI command * ✏️ Improve naming * ✏️ Make audit reference consistent * 📘 Fix typing * ⚡ Use `finally` in CLI command
27 lines
841 B
TypeScript
27 lines
841 B
TypeScript
import type { WorkflowEntity as Workflow } from '@/databases/entities/WorkflowEntity';
|
|
import type { Risk } from '@/audit/types';
|
|
|
|
type Node = Workflow['nodes'][number];
|
|
|
|
export const toFlaggedNode = ({ node, workflow }: { node: Node; workflow: Workflow }) => ({
|
|
kind: 'node' as const,
|
|
workflowId: workflow.id,
|
|
workflowName: workflow.name,
|
|
nodeId: node.id,
|
|
nodeName: node.name,
|
|
nodeType: node.type,
|
|
});
|
|
|
|
export const toReportTitle = (riskCategory: Risk.Category) =>
|
|
riskCategory.charAt(0).toUpperCase() + riskCategory.slice(1) + ' Risk Report';
|
|
|
|
export function getNodeTypes(workflows: Workflow[], test: (element: Node) => boolean) {
|
|
return workflows.reduce<Risk.NodeLocation[]>((acc, workflow) => {
|
|
workflow.nodes.forEach((node) => {
|
|
if (test(node)) acc.push(toFlaggedNode({ node, workflow }));
|
|
});
|
|
|
|
return acc;
|
|
}, []);
|
|
}
|