Current

App Category, Entity Domain and Lifecycle Classification

Status: current derived implementation contract
Date: 2026-07-28
Source reconciled: IntegrateWise - App-Category Entity Domain Model
Authority: ARCHITECTURE_LOCK.md → CONSOLIDATED_PRODUCT_PLATFORM_CONTRACT_v1.2.md → TENANT_SPINE_FORTRESS_OPERATIONAL_FLOW_MODEL.md

1. The classification address

Every canonical entity has an address beyond its tenant scope:

tenant_id + tenant_account_id + spine_network_id
+ app_category       (where the entity originated)
+ business_domain    (what business capability it belongs to)
+ lifecycle_stage    (where it is in the operating lifecycle)

This is not a departmental database model. App category is a connector/source
classification; business domain is an entity/RBAC classification; lifecycle
stage is a signal, playbook and projection routing classification. Department
remains a people/team attribute that can influence a view but never physical
truth storage.

The canonical implementation is spine_entity_classifications, joined to the
universal spine_entity_scope_bindings record for each typed entity. It is
versioned, so a corrected classification never erases prior provenance.

2. Business domains and RBAC

DomainPrimary purposeTypical entity families
revenueAttract, qualify, win, retain and expand customerslead, account, contact, opportunity, campaign, attribution, forecast, territory, quota
peopleWorkforce, talent and organizational capacityperson, team, employee, position, candidate, interview, offer, leave, performance
productProduct discovery, delivery, reliability and adoptionfeature, bug, sprint, release, repository, deployment, incident, alert, product event
operationsCompany operating system, service delivery and internal systemsproject, process, workflow, ticket, SLA, system, asset, strategic goal, board item
financeRevenue collection, spend, planning and financial healthinvoice, payment, subscription, expense, budget, vendor, cashflow, company metric
legalAgreements, obligations, policy and compliancecontract, party, obligation, legal request, policy, compliance control
communicationsRecorded human interactions and evidenceemail thread, chat thread, message, meeting, call, calendar event, attachment
knowledgeGoverned organizational knowledge and narrative contextdocument, note, knowledge article, wiki page, template, brainstorm session, chunk
platformConnection, capability and runtime controlconnector, connection, schema, capability, automation, MCP tool, API client, webhook, deployment, audit event

business_domain is the first RBAC filter. Field rules and row rules are
applied afterwards and before the response enters an operational cache.

3. Lifecycle routing

The cross-domain stages are:

sense → frame → decide → build → verify → release → operate → learn → adjust

An entity retains its detailed type-specific state machine in status and
spine_lifecycle_definitions. lifecycle_stage is the shared routing key. A
lead, for example, might have status = qualified and lifecycle_stage = decide; a release might have status = deployed and lifecycle_stage = operate.

4. App category routes

Every installed connector receives exactly one app_category. The source
category selects registered routes; the entity route resolves its business
domain, typed canonical table, default lifecycle stage and emitted events.

App categoryEntity routesDefault domain
crmleads, persons/contacts, accounts, opportunities, activitiesrevenue
marketing_automationcampaigns, audience/attribution entities, leads, content assetsrevenue
revenue_operationsforecasts, routing rules, territories, quota plans, pipeline/call recordsrevenue
support_helpdesktickets, cases, SLA policies, escalations, CSAT, knowledge articlesoperations
finance_billinginvoices, payments, subscriptions, expenses, budgets, vendors, cashflowfinance
hris_peoplepersons/employees, positions, teams, onboarding, performance, leave, compensationpeople
recruiting_atsrequisitions, candidates, interviews, offers, hiring eventspeople
product_analyticsproduct events, feature adoption, user sessions, cohortsproduct
project_issue_trackingprojects, features, bugs, sprints, milestones, dependencies, roadmap itemsproduct
devops_cicdrepositories, commits, pull requests, builds, deployments, releases, incidentsproduct
observability_monitoringincidents, alerts, errors, SLOs, post-mortems, RCAsproduct
legal_contractcontracts, parties, obligations, requests, policies, compliance controlslegal
it_identitysystems, assets, licenses, certificates, vulnerabilities, access requestsoperations
communications_emailemail threads, messages, attachments, contact interactionscommunications
communications_chatchat threads, messages, channels, mentionscommunications
communications_videocalendar events, meetings, calls, recordings, transcripts, action candidatescommunications
knowledge_docsdocuments, notes, articles, wiki pages, templates, chunksknowledge
executive_boardstrategic goals, board items, investor updates, fundraising, company metricsoperations
marketplace_platformAPI clients, webhooks, connectors, capabilities, automations, MCP toolsplatform
integratewise_nativehuman-created Workbench record or governed platform outputresolved by entity route

The source document describes broad source categories. Final domain is resolved
per entity route: a Finance/Billing invoice is finance, a DevOps deployment
is product, and an IT access request is operations. This prevents a
connector's broad category from widening or narrowing RBAC incorrectly.

5. Projection and cache contract

The Projection Engine applies filters in this order:

1. tenant / tenant account / Spine Network scope
2. business-domain access
3. field-level policy
4. row-level policy (ownership, team, account, relationship and active context)
5. lifecycle-stage and view-specific filter
6. cache the already filtered projection with a TTL

Neither the Workbench nor the operational cache receives an unfiltered
canonical row. Canvas layouts are projection manifests, not entity storage.
System, tenant and personal canvas overrides are configuration records; they
cannot bypass the Projection Engine or become business truth.

6. Memory and promotion alignment

ScopeDurable locationCanonical effect
Personaluser-scoped continuity storagecan propose promotion; never direct truth
Organizationalgoverned memory/knowledge storagecan propose promotion through RBAC and approval
Agentsession-bounded agent runtimecan propose promotion; never direct truth
OperationalD1/KV short-lived cacheno promotion; rebuilt from canonical state

Every promotable candidate includes memory scope/type, origin, confidence,
subject entity references, target domain/type, evidence and the full tenant
account/Spine Network envelope. spine_promotion_queue is the only route into
Fortress. A successful promotion creates the canonical version and then an
outbox-driven operational cache rebuild.

7. Implementation

041_app_category_entity_domain_classification.sql adds app-category,
business-domain and entity-route registries; versioned entity classification;
and connector/promotion metadata. 0008_entity_classification_operational_cache.sql
carries only already-resolved classification values needed by D1 cache entries.
D1 remains neither a truth store nor a classification authority.