Skip to content

Architecture Overview

Cadenora is a secure, multi-tenant document management platform purpose-built for regulated industries. This page provides a high-level overview of the platform's architecture.

Multi-Industry Template System

Cadenora supports five industry templates, each providing pre-configured terminology, document categories, and visual themes:

TemplateContainerClientDefault Theme
Financial ServicesProjectInvestorExecutive
Real Estate DevelopmentDevelopmentInvestorEmber
Property ManagementPropertyResidentHorizon
Legal ServicesMatterClientCorporate
GeneralProjectClientMinimal

Each template includes industry-specific default document categories. The template is selected during onboarding and determines the workspace's terminology, category structure, and visual theme.

Terminology and themes can be customized after onboarding. The underlying template is permanent.

Multi-Tenant Architecture

Every tenant operates in complete isolation:

  • Database isolation -- Composite primary keys with tenantId on all tenant-scoped models enforce data boundaries at the database level. Row-level security policies provide an additional layer of protection.
  • Storage isolation -- Documents are stored with tenant-prefixed paths, preventing cross-tenant file access.
  • Search isolation -- The search index includes a mandatory tenant filter on every query.
  • Session isolation -- Each authenticated session is scoped to a single tenant.

Technology Stack

LayerDescription
FrontendModern web application with TypeScript
BackendAPI-first architecture with server-side rendering
DatabaseRelational database with row-level tenant isolation
Cache & SessionsIn-memory session store with automatic expiry
AuthenticationIn-house credential and MFA authentication
StorageS3-compatible distributed object storage
SearchFull-text search engine with tenant-scoped indexing
WorkflowsDurable workflow orchestration for async processing
Reverse ProxyTLS termination, routing, and security headers

URL-Scoped Routing

Cadenora uses URL-based scope detection to separate platform administration, tenant workspaces, and client portals:

ScopeURL PatternPurpose
Platform/platform/*Platform administration
Tenant Workspace/t/{slug}/*Firm workspace operations
Client Portal/i/{slug}/*Client/investor/resident portal
Authentication/auth/*Login, signup, password reset

Document Processing Pipeline

When a document is uploaded:

  1. The file is uploaded directly to secure storage via a presigned URL
  2. A background workflow begins processing
  3. Text is extracted from the document (PDF, DOCX, XLSX)
  4. The extracted text is indexed in the search engine
  5. Optional AI classification suggests or assigns a document category

Document Visibility Model

Documents have four visibility levels that control access:

LevelAudience
Internal OnlyFirm staff only
All ClientsEvery client across all projects
Project ClientsClients with access to the containing project
Principal OnlySpecific designated individuals or organizations

Client Portal

Each tenant has a branded client portal where external users (investors, clients, or residents depending on the industry template) can:

  • Browse documents shared with them
  • Download files with secure, time-limited links
  • Manage their profile and organization memberships
  • Search across accessible documents

Portal access is controlled through an invitation system with automated reminders and expiration enforcement.

Workflow Orchestration

Cadenora uses durable workflow orchestration for reliable background processing:

  • Document processing -- Text extraction and search indexing
  • Tenant provisioning -- Automated workspace setup
  • Invitation lifecycle -- Send, remind, expire client invitations
  • Retention enforcement -- TTL-based document cleanup per policy

Security

The platform implements defense-in-depth across multiple layers:

  • URL and session scope separation
  • Tenant ID validation on every data access
  • Row-level security at the database level
  • Per-tenant storage prefixes
  • Mandatory tenant filters on search queries
  • Cryptographic token hashing for invitations
  • Authenticated encryption for share tokens
  • Full audit trail of all mutations

Cadenora Documentation