Blyp Docs

Schema Contract

Database mode depends on a fixed storage contract. The schema is not optional.

If your database shape drifts away from the Blyp contract, inserts can fail, config resolution can disable database logging, and tooling such as Studio can lose the query shape it expects.

Do not improvise the schema: In database mode, Blyp expects the generated schema contract. Missing columns, renamed fields, missing JSON columns, or missing indexes can make the feature effectively unusable.

Canonical names

Required columns

App fieldDB column or model fieldType shapeRequiredWhy Blyp stores it
ididUUID or 36-char stringyesStable row identity for each log record
timestamptimestampdatetime with microsecond precisionyesOriginal log event time
levellevelshort stringyesSeverity filtering and query grouping
messagemessagetextyesHuman-readable event message
callercallertextnoSource location when available
typetypeshort stringnoEvent category such as request or error types
groupIdgroup_idshort stringnoStructured/grouped log correlation
methodmethodshort stringnoHTTP method when the log is request-related
pathpathtextnoHTTP path when the log is request-related
statusstatusintegernoHTTP status or similar numeric outcome
durationdurationfloating-point numbernoTiming information for the event
hasErrorhas_errorbooleanyesFast error presence check without opening JSON payloads
datadataJSONnoStructured event payload fields
bindingsbindingsJSON objectnoChild logger bindings and contextual fields
errorerrorJSON objectnoNormalized error payload
eventseventsJSON arraynoStructured log event trail
recordrecordJSONyesFull normalized Blyp record
createdAtcreated_atdatetime with default nowyesInsert time in the database

Why record is required

record is the full normalized Blyp log payload. It is not a convenience field. It is part of the required contract and should be treated as mandatory even when some individual fields are also projected into first-class columns.

JSON columns

The JSON-backed fields are:

The first four can be null for some rows. That does not make them optional in the schema contract. They still need to exist with the expected JSON-capable type.

record is required and must not be removed.

Required indexes

Why the indexes exist

traceId

traceId is part of the persisted database row contract in current Blyp releases. Keep it in the supported schema when you want request correlation to survive beyond runtime memory and connector forwarding.

Adapter-specific implementations

Use these pages for the exact generated schema by adapter and dialect: