From e2ba8b15c8ee4a2a656de1b34d785fbd912b776f Mon Sep 17 00:00:00 2001 From: Daryl Lim <5508348+daryllimyt@users.noreply.github.com> Date: Fri, 28 Jun 2024 21:19:10 -0700 Subject: [PATCH] feat(engine): Implement schedules (#214) * feat(engine): Add create schedule endpoint * feat(engine): Add rest of the CRUD operations for schedules * chore: Lower log level for action result * feat(cli): Add cli utils * feat(cli): Add schedules cli * feat(engine): Use config for temporal cluster queue * feat(engine): Add better error visibility on http 422 * refactor(playbook): Use slack secret over slack_channel * docs: Update api docstrings * feat(engine): Add more metdata fields to Schedule * feat(engine): Make Schedule status online by default * feat(ui): Update schedules UI * feat(engine): Add update schedules * feat(cli): Add cli update schedules --- .../workspace/canvas/trigger-node.tsx | 30 ++- .../workspace/panel/trigger-panel.tsx | 38 ++- frontend/src/types/schemas.ts | 9 +- .../aws-guardduty-to-slack.yml | 4 +- tracecat/api/app.py | 225 ++++++++++++++---- tracecat/auth/credentials.py | 19 +- tracecat/cli/_utils.py | 43 ++++ tracecat/cli/dev.py | 5 +- tracecat/cli/main.py | 3 +- tracecat/cli/schedule.py | 142 +++++++++++ tracecat/cli/workflow.py | 35 +-- tracecat/config.py | 3 + tracecat/contexts.py | 6 +- tracecat/db/schemas.py | 15 +- tracecat/dsl/dispatcher.py | 5 +- tracecat/dsl/schedules.py | 167 +++++++++++++ tracecat/dsl/workflow.py | 2 +- tracecat/identifiers/__init__.py | 13 +- tracecat/identifiers/schedules.py | 15 ++ tracecat/identifiers/workflow.py | 5 + tracecat/types/api.py | 41 +++- 21 files changed, 702 insertions(+), 123 deletions(-) create mode 100644 tracecat/cli/schedule.py create mode 100644 tracecat/dsl/schedules.py create mode 100644 tracecat/identifiers/schedules.py diff --git a/frontend/src/components/workspace/canvas/trigger-node.tsx b/frontend/src/components/workspace/canvas/trigger-node.tsx index ecbb1ab8b..d906f83b2 100644 --- a/frontend/src/components/workspace/canvas/trigger-node.tsx +++ b/frontend/src/components/workspace/canvas/trigger-node.tsx @@ -127,7 +127,7 @@ export default React.memo(function TriggerNode({