Skip to content

Entities (Joint record)

The record (entity-first) form resolves a JointEntity for one or more primary keys — structured columns, Lance evidence and derived attributes in a single governed call. It’s the shape behind the entity_get MCP tool.

SELECT name, segment, country, recent_meeting_topics, meeting_summary
FROM osl.entities.Customer
WHERE customer_id IN ('9c1e…f04a', 'e4f8…2a91')

SELECT * returns all declared exposed_attributes. Keys are required — an empty key set is refused (no full-scan). Results are ordered by the key list; a missing key comes back marked missing rather than fabricated.

{
"customer_id": "9c1e…f04a",
"name": "Anna Vidal",
"segment": "retail-premium",
"country": "ES",
"recent_meeting_topics": [
{ "text": "", "score": 0.91, "cite": { "source": "gong://…", "doc_id": "meet-…", "chunk_id": "chk-…" } }
],
"meeting_summary": "Anna has asked in recent meetings about […]"
}

Every attribute is subject to the caller’s grants: un-granted columns come back redacted (⟦redacted⟧), obligated columns masked, Lance legs served at the required redaction version. A full denial returns a non-revealing E2101 — the engine never discloses which policy denied.