Platform

Data models

One firewall says client_ip, another source.ip. A data model gives them one name, src_ip, so a search, a detection or a dashboard works for every source at once.

Overview

A data model is a set of standard field names for one kind of event: logins, network traffic, web requests, DNS and so on. The built-in models follow Splunk CIM, Elastic ECS and OCSF, so the names are familiar if you come from another SIEM. You find them in the app under Data Models.

Built-in models

Every organization starts with 16 models.

ModelCategoryFor
AuthenticationSecurityLogins, logouts and MFA
EndpointSecurityProcess execution and file changes on hosts
FirewallSecurityAllowed and blocked connections
Identity & Access ManagementSecurityOkta, Entra ID, Google Workspace, Active Directory: accounts, groups, roles, MFA
Network TrafficNetworkConnections and flows
DNSNetworkQueries and responses
Web AccessApplicationHTTP requests and web server access logs
EmailApplicationMessages and delivery
ApplicationApplicationApplication logs, errors and performance
Cloud InfrastructureInfrastructureCloud resource changes and API activity
DatabaseInfrastructureQueries, connections and performance
Host ProcessInfrastructureProcess snapshots from the LogPulse agent and Linux audit
CI/CD PipelinePlatformGitHub Actions, GitLab CI, Tekton and others
GitOps DeploymentPlatformArgo CD and Flux CD sync and health
Security EventPlatformFalco, OPA Gatekeeper, Kyverno, Trivy, Vault, cert-manager
Observability EventPlatformAlertmanager, Grafana and Jaeger

Fields

Every field in a model has these properties:

PropertyMeaning
NameThe canonical name, such as src_ip
Typestring, number, boolean, timestamp, ip, geo or object
RequiredWhether an event of this kind must have it
Description and exampleWhat the field holds, with a sample value
AliasesOther names the same value arrives under
Allowed valuesA fixed list, where it applies (for example logon_type)

Aliases

Aliases do the normalizing. When a model is applied, a field that arrives under an alias is written under the canonical name. username, user.name and src_user all become user.

Example: Authentication

FieldTypeAliases
action (required)string: success, failure, lockoutresult, status
user (required)stringusername, user.name, src_user
src_ipipclient_ip, source.ip
auth_typestringauthentication_type, method
mfa_methodstringsecond_factor
logon_typeinteractive, network, remote_interactive, service, batch, unlockwinlog.logon.type
auth_protocolpassword, kerberos, ntlm, saml, oauth, certificateauthentication.protocol
is_privilegedboolean
src_countrystringsource.geo.country_iso_code, src_geo_country

Once your sources follow the model, one search covers all of them:

LPQL
action=failure | stats count by user, src_ip | where count > 10

Where models are used

WhereHow
ParsersThe parser builder names the fields it extracts after model fields. A value that fits no model lands in attributes.<name>
Agent configurationPick a data model per source in an agent template. The agent renames aliases to canonical names and converts numbers and booleans before it sends
PipelinesThe node Map Common Schema maps an event onto a model inside a pipeline
AgentsThe Windows Event Log and IIS inputs arrive already mapped to Authentication, Endpoint and Web Access
DetectionsDetection rules and KPIs are written against model fields, so they work on every source that follows the model
MCP serverAI assistants read a model with get_data_model before they propose a parser or detection

Custom models

Create your own model for a source no built-in model covers, with New Data Model. To change a built-in model, press Customize: LogPulse makes a copy for your organization that you can edit, and the original becomes inactive for your organization only. Delete the copy to go back to the original.

Tip: Add an alias rather than renaming a field. Existing searches and detections keep working, and the new source is normalized too.

API

CallWhat it does
GET /api/v1/data-modelsAll models: built-in, custom, and built-in models replaced by a custom copy
GET /api/v1/data-models/:idOne model with its fields
POST /api/v1/data-modelsCreate a custom model
PUT / DELETE /api/v1/data-models/:idChange or delete a custom model

Reading needs the permission dashboards:read, changing needs dashboards:update.