Skip to content

0.0.7-alpha ✔️

Build time: 2024-01-14T00:26:57+02:00
Commit Ref: 1251b75
Docker tag: sirveo/sirveo-alpha:0.0.7-alpha

Summary

This release introduces the event system, which includes event storage, an event browser, system-generated events, powerful event triggers, and an event node to generate custom events from within flows.

It further completes the schedule trigger system from the last release with a new schedule node, which allows flows to schedule the execution of other flows in the future.

Lastly, it adds some minor UI enhancements, and new server settings to manage the optional and automatic cleanup of schedule and event data.

Breaking Changes

None.

Features

⚡💠🔥 A new schedule node

  • Any flow type can now schedule the execution of other task & graph mode flows
  • Can optionally delay between 10 seconds and 90 days
  • Can optionally expiry of trigger schedules between 5 minutes to 90 days (if they have not run yet)
  • Can run other flows immediately and asynchronously (within a second, if no delay is given)
  • Can specify input data for target flow (dynamically via variable expressions)

⚡⚙️ Configurable data retention of once-off trigger schedules

  • The server automatically cleans up completed entries after a configured time
  • Added server setting SIRVEO_RETENTION_PERIOD_SCHEDULES (details)
  • Automatic cleanup can be disabled, to keep all history

⚡⚙️ Event system

  • Implemented the server’s event processing system
  • Persistent events are stored to database
  • Automatic cleanup of event data, based on new server setting SIRVEO_RETENTION_PERIOD_EVENTS (details)
  • Automatic cleanup can be disabled, to keep all history
  • The UI provides a basic event log browser
  • UI: the event browser can delete individual events

⚡🔥 Event Triggers

  • Event triggers routes specific event types into task and graph flows
  • Triggers support both system and user events
  • Priority-based support for multiple triggers per event type
  • Robust and automatic loop prevention for direct and indirect loop scenarios
  • Automatic event trigger deactivation on critical event trigger errors
  • UI to configure and manage event triggers
  • Event triggers uses event data (if any) as input to target flows
  • Event triggers populate event metadata in the target flow’s metadata store

Other features

  • ⚡ server prevents the deletion of flows that are referenced in other flows (by subflow and schedule nodes)

Fixes

🐞 fix that for schedule triggers, the scheduler must set trigger_schedule.ts_last_run before the target flow executes, not after

Enhancements

  • 🔼😀 The UI for managing schedule triggers now displays both cron and once-off schedules
  • 🔼⚙️ Improvements to efficiency, accuracy and robustness of the server’s scheduler internals
  • 🔼 improve error messages when attempting to delete flows referenced by schedule/event triggers
  • 🔼 UI: enhancements for navigation
  • 🔼 UI: has page/tab titles everywhere
  • 🔼 UI: enhancements for node configuration
  • 🔼 UI: enhancements for flow editor
  • 🔼 UI: system users show last login

Database changes

  • db: new table events for event data
  • db: new table trigger_event for event triggers

Server API

Event routes:

  • add GET /api/admin/events?kind=sys&type=auth.failed&page=1&limit=50 (limit <= 200)
  • add GET /api/admin/events/<event-id>
  • add DELETE /api/admin/events/<event-id>

Event trigger routes:

  • add GET /api/admin/events/trigger
  • add POST /api/admin/events/trigger
  • add GET /api/admin/events/trigger/<trigger-id>
  • add PATCH /api/admin/events/trigger/<trigger-id>
  • add DELETE /api/admin/events/trigger/<trigger-id>

Other

  • Show binary expiry time on server startup
  • Improved $ sirveo --help banner
  • Flows executed by event triggers have their $meta.run_source store property set to event

Generate persistent system events for:

  • successful and failed authentication
  • server startup & graceful shutdown
  • schedule trigger execution

See the event reference for a list of system events.

⚙️ Docker builds

  • Add environment variable SIRVEO_LOG_LEVEL=INFO (default value)
  • Add environment variable SIRVEO_RETENTION_PERIOD_SCHEDULES="24h (default value)
  • Add environment variable SIRVEO_RETENTION_PERIOD_EVENTS="720h (default value)