Overview
Data Rooms opened in preview this month. It’s where an organization shares documents with people outside it: folders, resumable uploads, in-browser preview, a permission matrix, Q&A and an activity log for every room. Underneath it is Better Files, an open-source TypeScript library we build alongside the platform.
This post covers what Better Files does and how Data Rooms uses it.
Data rooms as a library
Better Files embeds data rooms in your own application. You call a factory with your database and your storage, then mount it into Next.js, NestJS, Express, Hono, Fastify, Nuxt or SvelteKit. It’s a library, not a hosted service.
It covers rooms, folders, versions, a hierarchical permission matrix, guests, NDA gating, watermarking, share links, Q&A, search, e-signature, legal holds, exports, webhooks and a tamper-evident activity log. Identity and authorization come from Better IAM.
How Data Rooms uses it
LegionEdge runs Better Files on Postgres, in its own schema, built in the same module as the platform’s Better IAM instance. Each organization has its own Better Files service account, so the writes it makes on an organization’s behalf are scoped to that organization.
The features you see in a room map straight onto it. A room can require NDA acceptance before anything opens, stamp downloads with a watermark naming the person and the time, issue share links, limit access to an IP allow-list and place legal holds. Guests are Better IAM principals, so they sign in to a console that shows only the rooms shared with them.
A key per room
Every file is encrypted at rest with a key from Better IAM’s key management, and every room has its own key. Deleting a room destroys its keys, so its files can’t be read again.
The storage layer does double duty. The same storage adapters hold dataset and artifact blobs for Data Management, so the platform has one storage configuration instead of two.
Use it in your own app
Better Files is open source. The code, the design plan and runnable examples are on GitHub.