Unclassified

Spine Entity Table Schema

Status: additive implementation guide for the pure entity-table Spine
Date: 2026-07-28
Authority chain: ARCHITECTURE_LOCK.md → CONSOLIDATED_PRODUCT_PLATFORM_CONTRACT_v1.2.md → CANONICAL_SPINE_SCHEMA_FOUNDATION.md → TENANT_SPINE_FORTRESS_OPERATIONAL_FLOW_MODEL.md

Purpose

This document closes the gap between:

  • the canonical spine_entities identity kernel;
  • the strongly typed entity-domain rule requested for IntegrateWise; and
  • the Workbench requirement that RBAC projections read from durable entity
    tables rather than inventing sidebar-shaped truth tables.

The rule is now explicit:

one shared public schema
→ tenant-scoped rows
→ one durable entity family per table
→ RBAC projections compose those tables

The tenant-level lifecycle extension register is:

Canonical storage rule

  • Every durable entity family belongs to its own table.
  • tenant_id is mandatory on tenant-owned rows.
  • tenant_account_id and spine_network_id are mandatory on new
    tenant-owned writes. They identify the tenant operating account and its
    IW-Spine-Network.
  • every entity scope binding carries a versioned app_category,
    business_domain and lifecycle_stage classification; domain is RBAC, not
    a department-specific schema boundary.
  • workspace_id may narrow context, but never replaces tenant_id.
  • department is a projection attribute, not a physical schema boundary.
  • spine_entities.id / the domain entity identifier is the stable continuity
    anchor. canonical_id remains the provider-neutral dedupe, merge, lineage
    and projection identity where a typed entity family uses it.
  • connector_binding_id and spine_connection_id preserve the lineage of a
    particular provider connection. spine_network_id groups the whole tenant
    network; a connection ID cannot replace it.
  • Projections are read contracts. They never become truth tables.

User SSOT

The user does not come to IntegrateWise to inspect raw storage categories like
teams, projects, assets, and signals as isolated nouns.

The user comes to:

  • manage work;
  • move business objectives through state;
  • understand what needs attention now;
  • approve, delegate, complete, or unblock actions; and
  • see the business context required to do that work well.

So the user-facing source of truth is split deliberately:

ConcernSSOTWhy it exists
Identity of the userspine_users + spine_membershipswho the user is, which tenant/workspace they belong to, and what authority they have
Operational work of the userspine_work_items + work dependencies + approvals + notifications + decisionsthe primary action ledger for what the user is here to do
Business context behind that worktyped entity tables + relationships + knowledge + promoted memory + evidencethe facts, records, and continuity that explain the work

Product rule:

user opens Workbench
→ sees work, priorities, approvals, blockers, conversations, and outcomes
→ opens supporting entity context only when it helps complete the work

That means spine_persons, spine_projects, spine_assets, spine_teams,
and similar tables are supporting truth families. They are not the primary
reason the user opens the product.

Typed entity tables

The live additive migration is:

It introduces these typed entity tables:

Entity familyTablePurpose
Personspine_personsDurable person/contact/employee/customer identity
Teamspine_teamsOrganizational and working groups
Processspine_processesRepeatable operational flows
Projectspine_projectsTime-bounded initiatives and workstreams
Objectivespine_objectivesGoals and measurable targets
Outcomespine_outcomesVerified results and completions
Assetspine_assetsDurable resources, files, systems, artifacts
Signalspine_signalsScored or detected meaningful deltas
Conversationspine_conversationsDurable communication threads
Activityspine_activitiesAtomic work/activity records
Timelinespine_timelinesSubject-centric event history containers
Taskspine_tasksDay-to-day actionable work
Meetingspine_meetingsScheduled or completed meeting records
Accountspine_accountsCustomer, client, partner, or commercial account truth
Leadspine_leadsEarly-stage commercial interest and qualification state
Opportunityspine_opportunitiesDeals, pipeline, and forecastable commercial motion
Campaignspine_campaignsGTM campaigns and attributed spend/revenue context
Workflowspine_workflowsDurable operational and automation definitions
Ticketspine_ticketsService/support issue records
Incidentspine_incidentsOperational or system incident records
Subscriptionspine_subscriptionsRecurring commercial contract instances
Invoicespine_invoicesBilling documents and revenue recognition state
Renewalspine_renewalsRenewal-specific risk, stage, and forecast records
Vendorspine_vendorsProcurement and external supplier records
Contractspine_contractsCommercial and procurement agreement truth
Orderspine_ordersPurchase and fulfillment records
Productspine_productsProduct or SKU catalog truth
Featurespine_featuresRoadmap / delivery feature records
Releasespine_releasesRelease train and shipment truth
Sprintspine_sprintsTime-boxed engineering delivery windows
Budgetspine_budgetsFinance planning and variance records
Expensespine_expensesSpend and reimbursement records

Existing platform tables that remain part of the canonical model

These already existed in the consolidated Fortress migration and remain valid:

ConcernExisting table(s)
Tenant / organization identityspine_organizations, spine_workspaces, spine_users, spine_memberships
Relationshipsspine_relationships, spine_relationship_versions
Provenance / evidencespine_provenance, spine_evidence_links
Governance / decisionsspine_decisions, governance_policies, approvals/tokens/audit tables
Knowledge / memoryknowledge_documents, knowledge_chunks, memory_items, memory_versions, memory_promotion_queue
Connector networkconnector catalog, installations, connections, schemas, sync, MCP binding tables

Kernel and typed-domain boundary

spine_entities is not an untyped replacement for all domain data and is not
legacy infrastructure. It is the canonical identity, classification, version
and continuity kernel. A typed entity table owns the strongly typed current
state for a stable business entity family and links back to that kernel.

Use this rule going forward:

  • a durable entity has a kernel identity plus a typed-domain home when its
    lifecycle merits strongly typed fields and constraints;
  • provider-specific identifiers remain in source/provenance mapping, not in a
    provider-named business table;
  • projections join the kernel, typed entities, relationships, work and
    governance state, then apply RBAC. They never bypass the kernel with a raw
    table read.

Workbench rule

The Workbench stays projection-based:

typed entity tables
+ relationships
+ knowledge / memory
+ governance state
+ connector/network availability
→ Projection Engine
→ RBAC-scoped Workbench views, pages, tables, and canvases

There is no canonical home, inbox, view-1, or finance-manager truth
table. Those surfaces stay projections over typed entities.