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 toevent
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)