Extensible metadata for orders, products, users, and sessions — across admin, account, and cart contexts with field-level control.
The MetaRegistry provides a unified interface for attaching structured metadata to any entity in the platform. Each meta field is defined with a data type, context scope, and read/write permission — ensuring that metadata stays consistent, validated, and access-controlled across every surface.
1# Module meta field definition2# Each module declares its own fields at boot time.3
4entity: order5fields:6 - key: loyalty_points_earned7 type: number8 label: "Loyalty Points Earned"9 contexts:10 admin: { read: true, write: true }11 account: { read: true, write: false }12 cart: { read: false, write: false }13 show_in_list: true14 show_in_detail: true15 secret: false16
17 - key: loyalty_tier_snapshot18 type: json19 label: "Tier at Purchase"20 contexts:21 admin: { read: true, write: false }22 account: { read: true, write: false }23 cart: { read: false, write: false }24 show_in_list: false25 show_in_detail: true26 secret: falseFrom module-level field definitions to validated, context-scoped queries — every step is enforced by the platform.
Module Defines Fields
Meta fields registered at boot
Entity Created
Order, product, user, or session
Meta Attached
Fields written with context scope
Query by Context
Admin, account, or cart surface
Validate Type
Enforced: string, number, json...
Return
Scoped, validated metadata
Module Defines Fields
Meta fields registered at boot
Entity Created
Order, product, user, or session
Meta Attached
Fields written with context scope
Query by Context
Admin, account, or cart surface
Validate Type
Enforced: string, number, json...
Return
Scoped, validated metadata
Every aspect of metadata — from definition to display — is controlled through declarative configuration.
Attach metadata to orders, products, users, sessions, or any registered entity type without schema changes.
Define which contexts — admin, account, or cart — can read or write each meta field independently.
Enforce string, number, boolean, json, email, and date types at the field level. Invalid values are rejected before persistence.
Modules register their own meta fields during boot. Disabling a module cleanly removes its metadata definitions.
Control whether a meta field appears on list views, detail views, or both — keeping interfaces clean and relevant.
Mark sensitive metadata as secret. Secret fields are encrypted at rest and excluded from public API responses.