mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-09-09 19:27:48 +02:00
- Update Next.js build IDs and chunk hashes in workflow upload static files - Replace deprecated 'input' field syntax with new exports-style variables in event triggers (e.g., 'Target: event_data.value' instead of type/field/name) - Simplify parameter override syntax in test workflows (remove nested 'default' structure)
88 lines
2.2 KiB
Markdown
88 lines
2.2 KiB
Markdown
# Event Workflow Examples
|
|
|
|
This folder contains sample workflows demonstrating the event trigger and generation system.
|
|
|
|
## Workflows
|
|
|
|
### Emitters (Event Generators)
|
|
|
|
| File | Description |
|
|
|------|-------------|
|
|
| `simple-emitter.yaml` | Basic event emission with `generate_event` and `generate_event_from_file` |
|
|
| `vuln-emitter.yaml` | Simulates a vulnerability scanner emitting structured finding events |
|
|
|
|
### Receivers (Event Triggers)
|
|
|
|
| File | Description |
|
|
|------|-------------|
|
|
| `simple-receiver.yaml` | Basic event trigger that listens for discovery events |
|
|
| `filtered-receiver.yaml` | Advanced filtering with severity checks and jq extraction |
|
|
| `dedupe-receiver.yaml` | Event deduplication to prevent duplicate processing |
|
|
|
|
## Event Functions
|
|
|
|
### generate_event(workspace, topic, source, data_type, data)
|
|
Emit a single event with optional structured data. The workspace parameter identifies the target space for the event.
|
|
|
|
```yaml
|
|
- type: function
|
|
function: |
|
|
generate_event("{{TargetSpace}}", "discovery.asset", "my-scanner", "subdomain", "api.example.com")
|
|
```
|
|
|
|
### generate_event_from_file(workspace, topic, source, data_type, file_path)
|
|
Emit one event per line from a file. Returns the count of events emitted.
|
|
|
|
```yaml
|
|
- type: function
|
|
functions:
|
|
- 'generate_event_from_file("{{TargetSpace}}", "discovery.asset", "my-scanner", "subdomain", "{{Output}}/subdomains.txt")'
|
|
```
|
|
|
|
## Trigger Configuration
|
|
|
|
### Basic Event Trigger
|
|
```yaml
|
|
triggers:
|
|
- name: on-new-asset
|
|
on: event
|
|
event:
|
|
topic: "discovery.asset"
|
|
enabled: true
|
|
```
|
|
|
|
### Filtered Event Trigger
|
|
```yaml
|
|
triggers:
|
|
- name: on-high-severity
|
|
on: event
|
|
event:
|
|
topic: "scan.finding"
|
|
filters:
|
|
- "event.data.severity == 'high'"
|
|
- "event.data.confirmed == true"
|
|
enabled: true
|
|
```
|
|
|
|
### Deduplicated Event Trigger
|
|
```yaml
|
|
triggers:
|
|
- name: on-url-dedupe
|
|
on: event
|
|
event:
|
|
topic: "crawler.url"
|
|
dedupe_key: "{{event.data.url}}"
|
|
dedupe_window: "5m"
|
|
enabled: true
|
|
```
|
|
|
|
## Running Examples
|
|
|
|
```bash
|
|
# Run the emitter to generate events
|
|
osmedeus run -m simple-emitter -t example.com
|
|
|
|
# The receiver will automatically process events if registered with the scheduler
|
|
osmedeus run -m simple-receiver -t example.com
|
|
```
|