Skip to content

Multi Tenancy Progress

Ed Mozley edited this page Jun 21, 2026 · 14 revisions

Multi-tenancy: progress tracker

Part of the Multi-tenancy section. Planned / in active development. Tracks the build against the plan. Last updated: 2026-06-21.

Legend: βœ… done Β Β·Β  🚧 in progress / next Β Β·Β  ⬜ not started

Where things stand: the foundation is complete and tickets are starting to scope by company β€” you can create companies, switch between them in the header, and the ticket list filters to the selected company. Email routing (per-company mailboxes) and the other modules are still ahead.


Phase 0 β€” Foundation βœ… complete

The invisible plumbing. None of this changes anything on a single-company install.

  • βœ… tenants table + a silent Default company that owns all existing data
  • βœ… tenant_domains table (for future email-domain routing)
  • βœ… Analyst β†’ company access model (which staff can see which companies, + an "all companies" flag)
  • βœ… tenant_id on tickets (every existing ticket assigned to the Default company)
  • βœ… Shared tenancy helper β€” the single choke-point all tenant logic routes through
  • βœ… Active-company session context
  • βœ… Company switcher in the header (appears only once a 2nd company exists)
  • βœ… System β†’ Companies admin page (list / create / rename companies)

Phase 1 β€” Tickets 🚧 in progress

Making the tickets module company-aware.

  • βœ… Ticket list scopes to the active company
  • βœ… New tickets are stamped with the active company
  • 🚧 Folder count badges scope to the active company (next up)
  • ⬜ Ticket detail / remaining ticket endpoints scoped (defence-in-depth)

Phase 2 β€” Per-company mailboxes & email routing ⬜ not started

So an MSP can receive each client's email and have it land under the right company.

  • ⬜ Link mailboxes to companies (pinned = one mailbox per company, shared intake = one inbox sorted by sender)
  • ⬜ Register each company's email domains
  • ⬜ Route incoming email to the right company by sender domain
  • ⬜ Triage queue for unmatched / unknown senders
  • ⬜ Replies sent from the company's own mailbox (outbound identity)

(Today, all incoming email lands under the Default company β€” a fine interim state.)

Phase 3+ β€” Roll scoping through the other modules ⬜ not started

  • ⬜ Assets, CMDB, Change Management, Calendar, Forms, Network Mapper
  • ⬜ Knowledge β€” per-company and global articles (two-axis visibility)
  • ⬜ Per-module Settings: split into global vs per-company

Self-service portal ⬜ not started (design done)

  • ⬜ Global requester identity β€” one login, tickets across companies, each badged
  • ⬜ Portal scoping + the "only your own tickets" guardrails
  • ⬜ Per-company branded portals / per-company SSO (optional, later)

Cross-cutting / housekeeping

  • ⬜ README documentation (deferred until the feature nears release)
  • ⬜ Companies: delete / archive management (today you can only deactivate)
  • ⬜ Automated isolation tests (guarding against one company seeing another's data)

This page is maintained by hand as work lands β€” see the GitHub roadmap issue (#24) for live discussion.

FreeITSM

Getting Started

Modules

Multi-tenancy (planned)

Blue sky thinking

Bugs resolved

Links

Clone this wiki locally