output-streams
Understanding LimaCharlie output stream structures — the four data streams (event, detect, audit, deployment) have different schemas, fields, and use cases. Covers stream structures, detection fields, audit log format, deployment events, filtering, and configuration. Use when configuring outputs, parsing LimaCharlie data in external systems, or understanding detection/audit/deployment stream formats.
What this skill does
# Output Streams
LimaCharlie routes data through four distinct output streams. Each has a **different schema** — they are NOT interchangeable. Understanding these structures is essential for configuring outputs, building parsers in external systems, and filtering data.
## Stream Overview
| Stream | Purpose | Volume | Common Destinations |
|--------|---------|--------|---------------------|
| `event` | Real-time telemetry from sensors/adapters | High | SIEM, data lake, long-term storage |
| `detect` | Alerts from D&R rules | Low-Medium | SIEM, SOAR, incident response |
| `audit` | Platform management actions | Low | Compliance logging, audit trails |
| `deployment` | Sensor lifecycle events | Very Low | Asset management, deployment tracking |
## Event Stream
Canonical two-level structure. Every event has `routing` (metadata) and `event` (payload):
```json
{
"routing": {
"oid": "8cbe27f4-...",
"sid": "bb4b30af-...",
"event_type": "NEW_PROCESS",
"event_time": 1656959942437,
"event_id": "8cec565d-...",
"hostname": "workstation-01",
"iid": "7d23bee6-...",
"did": "b97e9d00-...",
"ext_ip": "203.0.113.45",
"int_ip": "10.0.1.25",
"plat": 268435456,
"arch": 2,
"this": "a443f9c48bef700740ef27e062c333c6",
"parent": "42217cb0326ca254999554a862c3298e",
"tags": ["production"]
},
"event": {
"FILE_PATH": "C:\\Windows\\System32\\cmd.exe",
"COMMAND_LINE": "cmd.exe /c whoami",
"PROCESS_ID": 4812,
"USER_NAME": "Administrator",
"PARENT": {
"FILE_PATH": "C:\\Windows\\explorer.exe",
"PROCESS_ID": 2156
}
}
}
```
Key event types: `NEW_PROCESS`, `DNS_REQUEST`, `NETWORK_CONNECTIONS`, `FILE_MODIFIED`, `WEL` (Windows Event Logs), `MODULE_LOAD`, `REGISTRY_WRITE`, `SENSITIVE_PROCESS_ACCESS`.
## Detection Stream
Alerts from D&R rules. **Different structure from events** — flat object with detection-specific fields:
```json
{
"cat": "Suspicious PowerShell Execution",
"source": "dr-general",
"routing": { "..." },
"detect": {
"FILE_PATH": "C:\\...\\powershell.exe",
"COMMAND_LINE": "powershell.exe -enc SGVsbG8="
},
"detect_id": "f1e2d3c4-...",
"priority": 7,
"detect_mtd": { "rule_name": "detect-encoded-powershell" },
"detect_data": {
"suspicious_process": "powershell.exe",
"encoded_command": "SGVsbG8="
},
"source_rule": "detect-encoded-powershell",
"rule_tags": ["windows", "powershell"],
"gen_time": 1656959942500
}
```
### Detection Fields
| Field | Type | Description |
|-------|------|-------------|
| `cat` | string | Detection name/category (from `report` action's `name`) |
| `source` | string | Rule source: `dr-general`, `dr-managed`, `dr-service` |
| `routing` | object | Inherited from triggering event |
| `detect` | object | Copy of event data that triggered detection |
| `detect_id` | UUID | Unique detection identifier |
| `priority` | integer | Detection priority (0-10, from `report` action) |
| `detect_mtd` | object | Rule metadata (from `report` action's `metadata`) |
| `detect_data` | object | **Structured IOCs** (from `report` action's `detect_data`) |
| `source_rule` | string | Rule name that generated this |
| `rule_tags` | list | Tags from the D&R rule |
| `gen_time` | integer | Detection creation timestamp (ms) |
### `detect_data` — Structured IOCs
The `detect_data` field contains pre-parsed IOCs extracted by the rule. This is the primary integration point for:
- Automated enrichment (lookup IPs, domains, hashes)
- SOAR playbook inputs
- Case management systems
- Threat intelligence platforms
## Audit Stream
Platform management events. **Completely different structure** — flat object, does NOT use the routing/event split:
```json
{
"oid": "8cbe27f4-...",
"ts": "2024-06-05T14:23:18Z",
"etype": "config_change",
"msg": "D&R rule created",
"origin": "api",
"time": 1656959942,
"ident": "[email protected]",
"entity": {
"type": "dr_rule",
"name": "detect-encoded-powershell",
"hive": "dr-general"
},
"mtd": {
"action": "create",
"source_ip": "203.0.113.10"
}
}
```
### Audit Fields
| Field | Type | Description |
|-------|------|-------------|
| `oid` | UUID | Organization ID |
| `ts` | string | ISO 8601 timestamp |
| `etype` | string | Event type (config_change, api_call, user_action, error) |
| `msg` | string | Human-readable message |
| `origin` | string | Origin: `api`, `ui`, `cli`, `system` |
| `ident` | string | Identity (email, API key name) |
| `entity` | object | Object acted upon (type, name, hive) |
| `mtd` | object | Metadata (action, source_ip, user_agent) |
| `error` | string | Error message (if applicable) |
## Deployment Stream
Sensor lifecycle events. Uses routing/event structure like events but with deployment-specific event types:
| Event Type | Description |
|------------|-------------|
| `sensor_installed` | New sensor deployment |
| `sensor_uninstalled` | Sensor removal |
| `sensor_upgraded` | Version update |
| `sensor_clone` | Duplicate sensor ID detected |
| `sensor_over_quota` | Sensor exceeds org quota |
| `deleted_sensor` | Sensor deletion |
| `sensor_checkin` | Periodic heartbeat |
Use deployment events to detect unexpected sensor removals (potential evasion), track sensor versions, and monitor fleet coverage.
## Output Configuration
### CLI Commands
```bash
# List outputs
limacharlie output list --oid <oid> --output yaml
# Create output
cat > /tmp/output.yaml << 'EOF'
name: my-syslog
module: syslog
for: detect
dest_host: siem.example.com:514
EOF
limacharlie output create --input-file /tmp/output.yaml --oid <oid> --output yaml
# Delete output
limacharlie output delete --name <name> --confirm --oid <oid>
```
### Stream Filtering
**Filter parameters use newline-separated string format, NOT YAML arrays.**
```yaml
# Event type filtering (whitelist)
event_white_list: |
NEW_PROCESS
DNS_REQUEST
# Event type filtering (blacklist)
event_black_list: |
CONNECTED
DNS_REQUEST
# Detection category filtering
cat_white_list: |
high-priority
critical
# Tag-based filtering (single tag)
tag: production
# Tag blacklist
tag_black_list: |
dev
test
# Rule tag filtering (detection stream only)
rule_tag_white_list: |
compliance
ransomware
```
### Tailored Output Stream
The `output` D&R response action forwards a matched event to a specific output in the `tailored` stream. This enables highly granular routing — e.g., send only specific detection types to a specific webhook:
```yaml
- action: output
name: my-webhook-output
```
## Gotchas Summary
| Gotcha | Detail |
|--------|--------|
| Streams have different schemas | Event (routing+event), detect (flat+detect), audit (flat, no routing/event), deployment (routing+event) |
| Filter format is newline-separated | NOT YAML arrays — use pipe `\|` multiline strings |
| Audit stream is flat | No routing/event split — uses `oid`, `ts`, `etype`, `ident` |
| `detect_data` is the integration point | Pre-parsed IOCs for SOAR/SIEM integration |
| Detection timestamps in milliseconds | `event_time` and `gen_time` are ms (13 digits) |
| Batch outputs have latency | S3, SFTP, GCS batch by size/time. Syslog is live. |
Related in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.