Tenant Lifecycle Schema Register
Status: current derived implementation register
Date: 2026-07-28
Authority chain: ARCHITECTURE_LOCK.md → CONSOLIDATED_PRODUCT_PLATFORM_CONTRACT_v1.2.md → SPINE_ENTITY_TABLE_SCHEMA.md → TENANT_SPINE_FORTRESS_OPERATIONAL_FLOW_MODEL.md → APP_CATEGORY_ENTITY_DOMAIN_CLASSIFICATION.md → migrations/037_pure_entity_spine_tables.sql + migrations/038_tenant_lifecycle_entity_tables.sql + migrations/039_tenant_network_scope_and_promotion_flow.sql + migrations/040_scope_global_events_provenance_and_evidence.sql + migrations/041_app_category_entity_domain_classification.sql
Purpose
This document corrects the modeling direction explicitly:
tenant-level schema
→ entity-based tables
→ lifecycle/event-driven truth
→ RBAC projections
→ no department-based physical schema
Department, industry, and role can affect what a user sees, but they do not
get their own storage schema families. The physical truth model is tenant
scoped.
Non-negotiable storage rule
- The platform uses one shared public schema.
tenant_idis the storage isolation boundary for tenant-owned truth.workspace_idcan narrow context, but it never replacestenant_id.- Department is a projection/filter attribute only. It is not a partition key.
- Every durable entity family belongs to its own table.
- Views such as
home,inbox,accounts,renewals,roadmap,finance,
andgovernanceare projections over entity, work, event, memory, and
policy tables. - Human approval remains the promotion gate from operational memory and agent
memory into governed Fortress truth.
Canonical grouping keys
For tenant-owned durable rows, use the following grouping logic:
| Concern | Canonical key |
|---|---|
| Tenant boundary | tenant_id |
| Tenant operating account | tenant_account_id |
| Tenant Spine Network | spine_network_id |
| Workspace context | workspace_id |
| Durable identity | canonical_id |
| Version lineage | version |
| External connector binding | connector_binding_id |
| Provider connection lineage | spine_connection_id |
| User/actor responsibility | owner_user_id, assigned_user_id, submitted_by_user_id, or equivalent role field |
Important clarification:
Use spine_network_id as the canonical tenant network grouping key.
Use spine_connection_id only as the lineage of one connector/provider connection.
Do not create a separate department schema.
Do not create per-department copies of the same business entity.
Common entity envelope
Every tenant-scoped durable entity table should follow this shape:
| Column class | Required | Meaning |
|---|---|---|
tenant_id | yes | storage and policy boundary |
tenant_account_id | yes for new writes | the tenant root account; distinct from a customer/business account_id |
spine_network_id | yes for new writes | the tenant's Spine Network grouping key |
app_category | yes through entity classification | connector/source category that originated the entity |
business_domain | yes through entity classification | RBAC classification; never a department table family |
lifecycle_stage | yes through entity classification | cross-domain signal, playbook and projection routing key |
workspace_id | recommended | active workspace scope |
<entity>_id | yes | opaque stable row identity |
canonical_id | yes | dedupe/merge/projection identity |
version | yes | mutable truth lineage |
status | yes | current operating state |
lifecycle_stage | recommended | the current lifecycle step for that entity family |
| ownership fields | recommended | user/person responsible for the record |
| connector lineage | optional but preferred for imported rows | connector_binding_id, spine_connection_id |
| provenance | yes | source_class, confidence, provenance_jsonb |
| metadata | yes | metadata_jsonb for additive attributes |
| timestamps | yes | created_at, updated_at and entity-specific dates |
Tenant lifecycle stages
1. Identity and membership
This stage establishes who the tenant is, which users belong to it, and what
authority they have.
Primary tables:
spine_organizationsspine_usersspine_membershipsspine_user_rolesspine_role_permissionsspine_policies
Primary surfaces:
- onboarding
- organizations
- users
- roles
- permissions
- security
- profile
Lifecycle events:
tenant.createdworkspace.createdmembership.grantedmembership.revokedrole.assignedpermission.changed
2. Activation and connector consent
This stage binds the tenant to approved external systems.
Primary tables:
spine_connector_catalogspine_connectorsspine_activation_runsspine_mcp_routesspine_model_registry- approved connector-binding runtime records (
connector_binding_id,spine_connection_id)
Primary surfaces:
- connector-marketplace
- integration-manager
- activation-hub
- data-sources
- integrations
- capabilities
- platform-health
Lifecycle events:
connector.selectedconnector.authorizedconnector.binding.validatedschema.discoveredactivation.startedactivation.completed
3. External intake and communication
This stage captures inbound activity before it becomes work, knowledge, or
memory.
Primary tables:
spine_eventsspine_messagesspine_calendar_eventsspine_meetingsspine_callsspine_documentsspine_document_chunksspine_source_linksspine_evidence
Primary surfaces:
- activity-feed
- calendar
- meetings
- calls
- documents-shared
Lifecycle events:
message.ingestedmeeting.recordedcall.completeddocument.ingestedartifact.linked
4. Triage, continuity, and organizational memory
This stage turns raw activity into governed context.
Primary tables:
spine_timeline_eventsspine_signalsspine_memory_itemsspine_memory_promotionsspine_agent_context_windowsspine_agent_memoryspine_continuity_runsspine_continuity_checksbrainstorm_sessionsbrainstorm_messagesbrainstorm_ideasbrainstorm_canvas_statesbrainstorm_decisionsbrainstorm_insightsspine_knowledge_itemsspine_canvas_documents
Primary surfaces:
- triage / chat hub
- brainstorming
- notes
- knowledge
- knowledge-base
- memory-continuity
- organizational memory / company wiki projection
Lifecycle events:
signal.detectedmemory.candidate.createdmemory.promotion.requestedmemory.promotedbrainstorm.session.startedknowledge.promoted
5. Operational work and execution
This is the main user-facing SSOT of day-to-day work.
Primary tables:
spine_work_itemsspine_commitmentsspine_work_queuesspine_tasksspine_projectsspine_objectivesspine_outcomesspine_approvalsspine_decisionsspine_favoritesspine_projection_views
Primary surfaces:
- home
- inbox
- tasks
- my-queue
- approvals
- notifications
- recent-work
- favorites
- projects
- task-manager
Lifecycle events:
work.createdwork.assignedwork.blockedapproval.requestedapproval.grantedoutcome.verified
6. Commercial and customer lifecycle
This stage holds customer, pipeline, revenue, billing, and renewal truth.
Primary tables:
spine_accountsspine_leadsspine_opportunitiesspine_subscriptionsspine_invoicesspine_renewalsspine_contractsspine_budgetsspine_expensesspine_billing_ledger
Primary surfaces:
- accounts
- account-master
- account-health
- at-risk
- contacts
- renewals
- pipeline
- deals
- forecast
- quota
- revenue
- invoices
- invoice-approvals
- reports
- forecasting
- budget
- finance-manager
Lifecycle events:
lead.capturedopportunity.openedopportunity.woninvoice.issuedinvoice.paidrenewal.risk.detectedrenewal.completed
7. Product, delivery, and operating systems lifecycle
This stage covers product engineering, service delivery, operations, and
systems.
Primary tables:
spine_processesspine_workflowsspine_ticketsspine_incidentsspine_productsspine_featuresspine_releasesspine_sprintsspine_assetsspine_meetings
Primary surfaces:
- roadmap
- features
- bugs
- sprints
- releases
- incidents
- feedback
- architecture
- data-flow
- systems
- vulnerabilities
- certificates
- licenses
- tickets
- sla
- sessions
Lifecycle events:
workflow.startedticket.openedincident.detectedfeature.prioritizedrelease.shippedsprint.closed
8. Vendor, procurement, and partner lifecycle
This stage models external spend and supply-side relationships.
Primary tables:
spine_vendorsspine_ordersspine_contractsspine_expensesspine_accounts(for partners/clients where needed)
Primary surfaces:
- vendors
- orders
- contracts
- spend
- savings
- spend-insights
- partnerships
Lifecycle events:
vendor.addedorder.placedcontract.renewal_dueexpense.submittedexpense.approved
9. Governance, security, billing, and observability
This stage is the tenant’s hard control plane.
Primary tables:
spine_policiesspine_audit_logspine_security_eventsspine_capabilitiesspine_capability_executionsspine_pipeline_runsspine_observability_signalsspine_deploymentsspine_api_keys
Primary surfaces:
- governance
- observability
- audit
- billing
- deployments
- api-keys
- security
- pipelines
- automation
- ai-models
- mcp-pool
Lifecycle events:
policy.evaluatedexecution.authorizedexecution.failedpipeline.completedsecurity.signal.raiseddeployment.promoted
Entity families required by the current view inventory
The current UI inventory implies the following tenant-level entity families.
Already present in the typed Spine
| Entity family | Table |
|---|---|
| Person / stakeholder / employee / contact identity | spine_persons |
| Team | spine_teams |
| Process | spine_processes |
| Project / initiative | spine_projects |
| Objective / OKR | spine_objectives |
| Outcome | spine_outcomes |
| Asset / system / file | spine_assets |
| Signal / insight / risk | spine_signals |
| Conversation | spine_conversations |
| Activity | spine_activities |
| Timeline container | spine_timelines |
| Task | spine_tasks |
| Meeting | spine_meetings |
Added for tenant lifecycle completeness
| Entity family | Table |
|---|---|
| Account / client / customer / company record | spine_accounts |
| Lead | spine_leads |
| Opportunity / deal | spine_opportunities |
| Campaign | spine_campaigns |
| Workflow / automation definition | spine_workflows |
| Ticket / case | spine_tickets |
| Incident | spine_incidents |
| Subscription | spine_subscriptions |
| Invoice | spine_invoices |
| Renewal | spine_renewals |
| Vendor | spine_vendors |
| Contract | spine_contracts |
| Order / purchase | spine_orders |
| Product / SKU / offering | spine_products |
| Feature | spine_features |
| Release | spine_releases |
| Sprint | spine_sprints |
| Budget | spine_budgets |
| Expense | spine_expenses |
Projection rule
The frontend does not own truth tables for each sidebar item. It renders RBAC
and context scoped projections over these families.
Projection inputs:
- tenant identity and membership
- allowed entity families
- current work items and approvals
- related messages, meetings, docs, and evidence
- continuity and memory
- allowed capabilities
- current governance posture
Projection outputs:
- tables
- record pages
- editable canvases
- timelines
- Twin-ready contextual payloads
The product runtime contract is still projection-first:
Gateway event / query
→ tenant + RBAC resolution
→ projection composition
→ frontend workbench state
→ user action
→ governed command
→ backend write / execution
→ projection invalidation and rehydrate
Promotion boundary
Draft operational-memory and agent-memory records can originate in the Product
surface, but persistent truth promotion still follows:
Workbench draft / agent output
→ Triage classification
→ human review / approval
→ governed Spine write
→ projection rehydrate
This preserves the rule that AI proposes and humans approve.
Source reconciliation notes
While reviewing the imported view inventory, two inconsistencies matter:
domain-route-manifest.tsincludescs-accounts-hub, while
domain-view-registry.tsxcurrently exposescsm-accounts-hub.- global navigation uses
triage, while the backend surface map still uses
chatfor the brainstorming/triage surface family.
These are naming inconsistencies, not reasons to create new tables. The schema
should stay semantic and tenant-level.
Appendix A — current view inventory grouped into tenant lifecycle meaning
Global tenant surfaces
- Identity / control:
home,organizations,users,roles,permissions,security,
audit,billing,deployments,api-keys - Work:
inbox,tasks,my-queue,approvals,notifications,
recent-work,favorites - Communications:
activity-feed,email,calendar,meetings,triage,calls,
documents-shared - Personal / memory:
notes,drafts,brainstorming,my-files - Platform:
integration-manager,connector-marketplace,activation-hub,
capability-manager,mcp-pool,ai-models,knowledge,
memory-continuity,automation,pipelines,governance,
observability
Account-success views
Commercial + customer success lifecycle:
dashboardcs-todaycs-accounts-hub/csm-accounts-hubcs-account-detailcs-contactscs-meetingsintelligence-centeraccountsaccount-masteraccount-healthat-riskcontactsaccount-teampeople-teamrenewalssuccess-plansrisk-matrixrisk-registerengagement-logmeetingsinitiativesstrategic-objectivesstakeholder-outcomesbusiness-contextprojectstaskstask-managerdocumentscapabilitiesplatform-healthvalue-streamsinsightscompany-growthstrategic-account-successcalendar
BizOps views
Cross-tenant command, planning, operations, and integration lifecycle:
dashboardbizops-todaycommand-centeroperations-centerstrategic-hubstrategy-leadershipsales-hubfounder-opsceocoocio-ctobusiness-intelligencehuman-resourceslegal-complianceknowledge-managementpartnershipscrmaccountsclientstaskscalendardocumentsworkflowsintegrationsmetricsanalyticsgovernancecockpitdata-sourcesiq-hub
Finance views
dashboardrevenueexpensesinvoicesinvoice-approvalsreportsforecastingbudget
IT admin views
dashboardsystemsincidentsvulnerabilitiescertificateslicensesadminsettingsdata-flow
Marketing views
dashboardcampaignsleadsemailsocialblogwebsiteformsattributionanalyticscontent
Personal views
dashboardhometodayfounder-todayfounder-projectsfounder-decisionsknowledgebookmarksfocuswealthwellnesslearningrelationshipswhats-newbrainstormingprofileinsights
Procurement views
dashboardvendorsorderscontractsrenewalsspendsavingsspend-insights
Product-engineering views
dashboardroadmapfeaturesbugssprintstasksreleasesincidentsfeedbackanalyticsarchitecturedata-flowprojects
RevOps views
dashboardpipelineforecastquotacohortsteammetricsanalyticspending-reviewdecision-log
SalesOps views
dashboardpipelinedealscontactsactivitiessequencesanalyticssales-hubclientsclient-detail
Service views
dashboardticketscustomersknowledgecsatslaanalyticssessions
Student-teacher views
dashboardstudentscoursesassignmentsgradebookat-risk
Bottom line
The schema root is not department.
The schema root is:
tenant
→ entity family
→ lifecycle state
→ event history
→ governed projection