Files
osmedeus/test/testdata/workflows/test-event-emitter.yaml
T
j3ssie f5840272c5 feat: add run cancellation, event enhancements, and performance optimizations
Major features:
- Add run registry for tracking active runs with PID management
- Add API-based run cancellation with process termination
- Add event trigger input vars syntax for multi-variable extraction
- Add filter_functions with utility function support in triggers
- Add event envelope injection for full event context in workflows
- Add write coordinator for batched database operations

API improvements:
- Add logout endpoint and diffs endpoints for assets/vulnerabilities
- Add step-results listing endpoint
- Update schedule model with target, workspace, params fields
- Change run_id to run_uuid across API responses

Performance:
- Add compiled JS program caching for 60-80% faster loop conditions
- Add parallel shard rendering for 20-40% faster workflow startup
- Add memory-mapped I/O for large file line counting
- Add efficient output buffer combining in runners
- Add mtime-based cache invalidation for workflow loader

Other changes:
- Rename trigger field from trigger to triggers in workflow YAML
- Disable pongo2 HTML autoescape for shell command templates
- Update JWT expiration default to 1440 minutes (1 day)
- Change CORS default to reflect-origin for credentials support
- Add source_type field to events (run, eval, api)
- Skip copying core Unix tools to external-binaries
2026-01-24 01:11:33 +08:00

44 lines
1.2 KiB
YAML

name: test-event-emitter
kind: module
description: Test workflow that emits events
tags: test,event,emitter
params:
- name: target
required: true
steps:
- name: generate-subdomains
type: bash
command: |
echo "api.{{target}}" > {{Output}}/subdomains.txt
echo "www.{{target}}" >> {{Output}}/subdomains.txt
echo "admin.{{target}}" >> {{Output}}/subdomains.txt
- name: emit-single-event
type: function
function: |
generate_event("{{TargetSpace}}", "assets.new", "test-emitter", "subdomain", "single.{{target}}")
- name: emit-events-from-file
type: function
function: |
generate_event_from_file("{{TargetSpace}}", "assets.new", "test-emitter", "subdomain", "{{Output}}/subdomains.txt")
exports:
emitted_count: "{{result}}"
- name: emit-complex-event
type: function
function: |
generate_event("{{TargetSpace}}", "vulnerabilities.new", "test-scanner", "finding", {
url: "https://{{target}}/admin",
severity: "high",
template: "exposed-admin-panel",
matched: "/admin"
})
- name: log-result
type: function
function: |
log_info("Emitted events for {{target}}, file event count: " + "{{emitted_count}}")