Organizations & Instance Management
One installation, many organizations, each fully isolated — and the one screen that manages all of them.
What Is an Organization?
An organization is the top-level tenant boundary. Every SmartTable, user, role, folder, and attribute belongs to exactly one organization, and normal application use has no cross-organization query path — a user in one org cannot see or reach another org's data, even by ID guessing, because every read/write is scoped by the org the requesting user belongs to.
A single PersivApps installation can host multiple organizations side by side. On this instance, for example: KP, SOLEX, Persivx, and Swastik each run as fully separate tenants on the same install.
Instance Management
Reached from the profile menu (top right) → Instance Management — visible only to the literal systemadmin account, not just anyone with a System Admin role. This is the one screen that sees across all organizations at once, rather than being scoped to a single org like everything else in the product.
| Section | What it shows / does |
|---|---|
| License | Expiry date and max RAM usage allowed for this installation — enforced server-side on every backend startup, not just displayed here for information |
| Organizations table | Every org on this install, with live counts: users, system admins, SmartTables created. The Activity → View link opens that org's user activity report. |
| + New Organization | Creates a new tenant — see below |
| Get DB Dump | Triggers the encrypted, install-wide database backup — see Security & Compliance for the encryption details (AES-256 with RSA-wrapped key) |
Creating a New Organization
| Field | Description |
|---|---|
| Organization Name | The tenant's display name |
| Total License Count | How many user seats this org is allowed |
| SmartTable Permissions | Org-wide default capability toggles — Create, Edit, View, Settings, Delete |
systemadmin-equivalent user for that org, via User Management).
User Activity Report
The report shows how long each user in an organization actually had PersivApps open. Open it from Instance Management: in the Organizations table, click View in that org's Activity column.
What counts as active
While PersivApps is open in a tab or app that's in front of the user, it checks in with the server every 30 seconds. Each minute with at least one check-in counts as one active minute. A tab in the background, a minimised window or a closed app doesn't check in, so it doesn't count. This covers the main app and the sub-apps (such as KP, Ostwal and the ledger apps).
Choosing what to show
| Control | Options |
|---|---|
| Period | Today, Yesterday, Last 7 days, Last 30 days (the default), This month, Last month, This year, All time, or a custom date range |
| Group by | Day, week, month or year, for the chart. Choosing This year or All time switches to monthly. |
| User | All users, or one user |
Refresh reloads the figures and Export CSV downloads them.
What the report shows
- Summary tiles: total active time, active users (and how many never opened the app in the period), average per active user, sessions, busiest hour and heartbeats (the raw count of check-ins)
- Active time per day/week/month/year: a chart of active time over the period
- When people work: active minutes by hour of the day
- Per-user table: each user's role, active time, days active, average per active day, sessions, heartbeats, and when they were first and last seen in the period. Users with no activity are listed too.
A session is a stretch of activity. A gap of more than 10 minutes starts a new one.
License Enforcement
The license itself is a signed file, not just a value in a database row — it's cryptographically verified (signature + product code + expiry) on backend startup and re-checked periodically while running, so a license can't be extended by editing a database row directly. Two limits are enforced: the expiry date and a maximum RAM ceiling for the whole installation, both visible (but not directly editable — that requires a new signed license file) from the Instance Management screen above.
SharePoint / Microsoft Graph Credentials, Per Organization
SmartTable schema (the SharePoint Excel sheets) is read via the Microsoft Graph API, which requires an Azure AD app registration — a Tenant ID, Client ID, and Client Secret. There's an installation-wide default set of credentials, but each organization can override all three with its own Azure AD app registration.
Contact your System Admin to have per-org Microsoft Graph credentials configured — this is a backend-level setting on the organization record, not something exposed in a self-service UI on this version.
Backups
Get DB Dump (Instance Management) triggers a full database backup for the installation: dumped with mydumper, compressed, then encrypted with AES-256 where the encryption key itself is RSA-wrapped — so the dump is only ever transmitted/stored in encrypted form, and decrypting it requires the corresponding private key, not just possession of the file. Delivered as a downloadable archive with no separate backup infrastructure to provision or maintain.