Record
A single instance of an Object — one actual thing in a tenant's world.
type: data-model · status: published · abstraction: entity
What it is
A Record is one concrete instance of an Object: this work order, that supplier, this specific machine. It holds a Value for each Property defined on its Object, belongs to exactly one tenant, and carries its own lifecycle and history. Access to a Record is governed by the platform's Permissions rules — decided per Record on every read and write, and derived from the data rather than from anything stored on the Record: Records never carry access lists. Records are what users actually see, edit, link together and automate against.
Why it exists
Records exist so that the flexible schema defined by Objects becomes real, queryable operational data. They are the substrate every Module, workflow and AI agent reads from and writes to, which is why they need a uniform shape regardless of which Object they instantiate.
Relationships
Outgoing
- is an instance of → Object (many-to-one) — Every Record is an instance of exactly one Object.
Incoming
- is acted on by ← Capability — Capabilities read and mutate Records under permission.
Neighbourhood
Stakeholder summaries
- Product — The primary UI surface. Record pages, list views, filters and relationships all resolve to Records.
- Investor — Records are the operational data asset — the volume of them is the depth of a customer's dependency on IMOS.
- Marketing — Every part, order, supplier and machine lives as a record you can find, link and automate in seconds.
- Engineering — Instance rows keyed by object_id + tenant_id, with property values stored against Value Types. Uniform CRUD, history and permission model across all Objects.