Your data: its shape, how it leaves, and the API
Organizations own projects; projects own sites, assets, checks and documents; everything you own leaves as CSV and files whenever you ask.
The model in one breath
An organization (a workspace; a 'tenant' in the code) has people through relationships (employee, client, vendor, subcontractor, partner, agent) and roles through org_memberships. It owns projects; a project has sites, buildings, floors and rooms; assets sit in rooms and carry an equipment type, which carries the document requirements the closeout package is built from. Checks run against assets; steps carry evidence; deficiencies, NCRs, punch lists, RFIs, tests, warranties and maintenance schedules hang off the same asset. Events record all of it.
Leaving
The everything-export streams one ZIP: a CSV per table for every row the organization owns, read as the administrator who asked for it, so the same row-level security decides each row; optionally every file the records reference; a manifest and a README that states the hash-chain formula. Specific exports exist for the audit trail, COBie asset handoff, payroll hours, billable lines and the schedule.
The import side takes CSV for locations, people and assets with a preview and a re-checked write, so a workspace can be rebuilt from its own archive or from another system's spreadsheet.
- Public API
- A way for your own systems to read and write, at /api/v1, with a key per organization (lt_live_…, stored only as hashes). Projects, assets and deficiencies to read — in batches of up to 1,000, with a cursor for the next batch — and deficiencies to create, scoped to the key's organization. Exports and the API switch on for customers, not trials.
- No lock-in by design
- Ninety days of full export after a plan ends. The pricing page states it; the database enforces the window.
- What never leaves
- API keys and QuickBooks tokens. They are credentials, not records.
- · src/app/api/portability/export/route.ts, src/lib/zip.ts
- · src/app/api/v1/*, db/039
- · test/plan-doors.test.mjs, test/assets-import.test.mjs
These are files in our codebase. If you’re a customer under agreement, we’ll walk you through any of them.
