Guardway is an AI gateway, so its log model is compact and domain-specific — LLM requests, guardrail decisions, admin audit, behavioral anomalies, and gateway health — rather than the hundreds of networking/UTM log types a firewall emits. “Complete” here means every one of these event types is fully enumerated and richly mapped, and every individual guardrail / audit / system signature is catalogued.
1. Event types
Guardway emits five event types. Theevent_type field carries the type; several carry a finer sub-type.
2. Severity
Every event carriesseverity on a 0–10 integer scale (0 = lowest), mapped deterministically onto each schema:
CEF/LEEF carry the raw 0–10 integer in the header
Severity/sev slot; OCSF carries the severity_id enum and echoes the raw value in severity.
3. Output schemas
4. request_log — API Activity (6003)
A completed LLM request.
request_log has no HTTP method field (that is emitted only for audit_log / MCP). † actor.user.name takes the first of user_email, username, user, user_id. ‡ ai_model / message_context / ai_agent are emitted only under the ai_operation profile; prompt/response text additionally requires include_payloads.claude-sonnet-5-5, shown in every format (verbatim formatter output):
5. guardrail_event — Detection Finding (2004)
A guardrail decision. The specific guardrail kinds — the signatures — are catalogued in §9.
§
finding_info = { title: "Guardrail event", uid: <related request_id> }. finding_info.types carries the wire event_type (e.g. ["pii_detected"]); evidences[] is one {data:{detection}} per token in detected_items.detections. In CEF/LEEF the SignatureID / cat is the top-level guardrail_event — the kind is carried in the detections extension. Redacted content (content_preview) only; raw sensitive text is never emitted.6. audit_log, anomaly_event, system
audit_log → Authentication (3002) when the action is auth-related, else Account Change (3001, activity_id 99, type_uid 300199). Fields: action, outcome, actor_type/actor_id/actor_email/actor_role, resource_type, resource_id, method, path, status_code, ip_address, error_message, severity.
anomaly_event → Detection Finding (2004) with finding_info.types=["behavioral_anomaly"]. Carries no request id, so finding_info.uid is the literal "anomaly_event" and message/title are the fixed string "Behavioral anomaly" — the specifics are in finding_info.desc (the summary) and evidences[], where each entry is {data:<the raw dimension or novelty object>}.
system → Base Event (0). The concrete tokens are gateway_boot, config_reload, provider_health_change, mcp_health_change, with detail in unmapped.
7. CEF & LEEF reference
CEF header:CEF:0|{vendor}|{product}|{version}|{signatureId}|{name}|{severity}|. Extension keys: rt, externalId, src, suser, suid, request, requestMethod, act, outcome, cs1=model, cs2=provider, cs3=gateway, cs4=apiKeyName, cs5=traceId, cs6=channel, cn1=totalTokens, cn2=latencyMs, cn3=statusCode, cfp1=costUsd, flexString1=policyId, flexString2=detections, msg.
LEEF header: LEEF:2.0|{vendor}|{product}|{version}|{eventId}| + tab-delimited attributes: devTime+devTimeFormat=MILLISECONDS, sev, cat, src, usrName, usrId, action, outcome, requestId, gateway, model, provider, endpoint, method, resourceType, apiKeyName, applicationId, clientKind, traceId, policyId, promptTokens, completionTokens, totalTokens, latencyMs, statusCode, costUsd, detections, msg.
Escaping (UTF-8 throughout): CEF header escapes \→\\ and |→\|; CEF extension values escape \→\\ and =→\=; newlines → space; msg truncated to 1023 chars. LEEF header escapes \ and |; attribute values have tabs (the delimiter) and newlines replaced with space.
8. OCSF class map
The
ai_operation profile (OCSF 1.9, format_options.profiles=["ai_operation"]) applies to API Activity only: it stamps metadata.version="1.9.0" and adds ai_model, message_context (and ai_agent for agent calls). unmapped carries the Guardway identifiers; high-value fields with no OCSF home (cost, request_outcome, policy_id, action_taken, …) appear inside unmapped.raw only when ocsf_include_raw=true.
9. Signature catalogue
Each guardrail kind carries a stable catalogue ID; sub-detectors are addressed by their detection token (e.g.GW-GRD-PII / ssn, GW-GRD-SEC / aws_access_key).
Moderation uses the Llama Guard S1–S14 taxonomy (default set enables S1–S5, S7, S9–S13). PII entities and secret/credential families are enumerated in full in the downloadable PDF reference.
10. Destinations
Content & privacy:
include_payloads (request/response bodies, off by default), include_audit (opt-in to audit events), ocsf_include_raw (full native payload under unmapped.raw). Guardrail findings carry only redacted placeholders regardless.
Delivery: a durable write-ahead outbox; at-least-once, ordered, per-destination delivery; the cursor advances only on acknowledgement, so no event is silently lost and a slow SIEM never blocks the request path or another destination. Dedupe on request_id / finding_info.uid.
A full 61-page branded PDF of this reference — with exhaustive per-field dictionaries, per-detector enumerations, worked records in every format, and per-destination parser guidance (Splunk, QRadar, Sentinel, Chronicle) — is available from your Guardway contact.