Frontend Logging
Utility API for frontend logging
The ObjectsGrid Frontend Logging API allows websites, SPAs, and mobile applications to stream structured client-side logs and telemetry to a secure, multi-tenant backend, without operating their own logging stack. Capture JavaScript errors, failed API calls, performance signals, device context, user journeys, and security anomalies, and make them immediately searchable and analytics-ready. ObjectsGrid provides schema validation, tenant isolation, durability, and indexing out of the box, enabling observability, incident response, release validation, and product intelligence from real user activity through a single REST integration.
Currently, Frontend Logging supports REST API operations only.
For ingestion, the API introduces a specialized object: LogRecord. A LogRecord contains client-environment attributes that remain constant across multiple log events (e.g., device, session, app version). The client instantiates a LogRecord once, stores it in memory, and appends individual LogEntries to its entries collection. Each LogEntry represents a discrete event such as an error, performance metric, or user action.
A LogRecord may contain up to 100 LogEntries. Clients must submit the LogRecord when it reaches capacity or when crossing logical application boundaries (e.g., session end, Single Page Application transition).
Upon ingestion, ObjectsGrid denormalizes each LogEntry together with its parent LogRecord into a LogEvent. Each LogEvent contains the full client context plus the specific log entry attributes, ensuring every record is independently searchable and analytics-optimized.
LogEvents can be searched using the List operation with ElasticSearch Query DSL for advanced filtering, aggregation, and investigation workflows.
LogRecord Object
schemaVersion
String
The Object ID
environment
String
The environment
platform
String
The platform
baseUrl
String
The base URL
sentAt
String
Time format ISO 8601/RFC 3339 Format
extensions
Map[String]Map[String]Any
JSON
LogEntry Object
timestamp
String
Time format ISO 8601/RFC 3339 Format
severity
String
The severity: debug, info, warn, error,
message
String
The log message
eventType
String
The event type
title
String
The log entry title
stackTrace
String
The stack trace string sanitized for XSS and SQL Injection attempts.
context
Map[String]Any
Map as JSON object of key string and value any type
performance
Map[String]Any
Map as JSON object of key string and value any type
infoObject
String
Informational object as string
extensions
Map[String]Map[String]Any
JSON
LogEvent Object
id
String
Log Event ID (guid)
schemaVersion
String
The Object ID
environment
String
The environment
platform
String
The platform
baseUrl
String
The base URL
sentAt
String
Time format ISO 8601/RFC 3339 Format
extensions
Map[String]Map[String]Any
JSON
timestamp
String
Timestamp when this measurement was taken
severity
String
Severity: debug, info, warn, error,
message
String
The log message
eventType
String
The event type
title
String
The log entry title
stackTrace
String
The stack trace
context
Map[String]Any
JSON
performance
Map[String]Any
JSON
infoObject
String
Informational object as string
entryExtensions
Map[String]Map[String]Any
JSON
AppInfo Object
name
String
The Application Name
version
String
The Application Version
build
String
The build number
releaseId
String
The release id
SessionInfo Object
sessionId
String
The Session ID
installId
String
The Install ID
correlationId
String
The Correlation ID
requestId
String
The Request ID
traceId
String
The Trace ID
SpanId
String
The Span ID
AuthInfo Object
method
String
Authentication method: oidc, api_key, none, attestation
state
String
Authentication State: authenticated, anonymous, expired, unknown
userId
String
The User ID
ClientInfo Object
locale
String
The locale
timezone
String
The timezone
userAgent
String
The User Agent
SDKInfo Object
name
String
The client SDK used
version
String
The SDK version
DeviceInfo Object
type
String
The Device Type: phone, tablet, desktop, unknown
manufacturer
String
The device manufacturer
model
String
The device model
osName
String
Operating System Name
osVersion
String
Operating System Version
NetworkInfo Object
type
String
The Network Type: wifi, cellular, ethernet, unknown
effectiveType
String
The effective type: slow-2g, 2g, 3g, 4g
carrier
String
The carrier
roaming
Boolean
Is roaming
metered
Boolean
Is it metered
Geo Object
latitude
Float
The Latitude
longitude
Float
The Longitude
accuracyMeters
Float
The Accuracy Meters
source
String
Source
capturedAt
String
Time captured at in ISO 8601
WebInfo Object
browsername
String
The Web Browser Name
browserVersion
String
The Web Browser version
pageUrl
String
The webpage URL
referrer
String
The referrer URL
userAgent
String
Browser User Agent
HTTPInfo Object
method
String
The HTTP method: Get, Put, Post, Delete,Patch
status
Integer
The HTTP status
urlTemplate
String
The URL Template
durationMs
Integer
The duration in milliseconds
retryCount
Integer
The retry count
ViewportInfo Object
width
String
The viewport width
height
String
The viewport height
UIInfo Object
screenName
String
The screen name
component
String
The component
route
String
The route
DisplayInfo Object
width
Int
The display width
height
Int
The display height
pixelRatio
Float
The pixel ratio
orientation
String
The display orientation
MobileInfo Object
appState
String
foreground, background, inactive, unknown
screenName
String
The screen name
permissions
Map[String]String
granted, denied, not_determined
ErrorObject
type
String
The error type
code
String
The error code
message
String
The error message
unhandled
Boolean
Was unhandled
fatal
Boolean
Was fatal
stack
String
Stack Trace
Last updated
Was this helpful?