Administration¶
The Administration page is for Administrators, whom the deployment names (see Administrators). Open it with Administration at the top right. Anyone else has no such link, and plintz says "Page not found" at its address, /administration.
The page has tabs: Users, Groups, Analyses, Folders, Datasources, Configuration, Trash and Audit Trail.
Users¶
The Users tab lists every user who has signed in to plintz, by name, with their Name, Username, Email, Last Login and Status: Enabled or Disabled. plintz creates a user record at their first login, so someone who has never signed in isn't listed. The username is the sub claim of your organization's login, the one the deployment lists Administrators by.
Disabling and enabling a user¶
Click Disable on a user's row to stop them from using plintz, such as when they leave. It takes effect at once:
- Their sessions end. Their next request sends them to the login.
- plintz refuses their login with "login failed: the user is disabled" and starts no session.
- They don't appear in the user search of Sharing, so no one can give them a new Grant.
Their Analyses remain, and their Grantees can still open them. Their Grants also remain. Last Login shows their most recent login before they were disabled.
Click Enable to let them sign in again. Search finds them, and their Analyses and Grants remain as before.
The page has no Remove button. plintz creates a user record at their first login, so a removed user would return the next time they signed in. Disable the user instead.
Groups¶
A Group is a named set of users and other Groups. The Groups tab lists them by name, each with how many members it has. Only Administrators create, rename and delete Groups and change their members.
- Create Group adds a Group with the name you typed in New Group name. It starts with no members.
- A Group's name is trimmed, from 1 to 1,024 characters, and unique regardless of capitalization: "Operators" and "operators" are the same name.
Everyoneis reserved, as it names all users, so no Group has it, whatever its capitalization. For a name that is taken or reserved, plintz says only "this name is unavailable". - Rename edits the name in place: press Enter or Save, or Escape or Cancel. The Group keeps its members.
- Delete asks you to confirm, saying how many Grants are given to the Group, then removes the Group, its memberships, its place in any Group it was in and the Grants given to it. The users and Groups that were its members are not deleted, nor are the Analyses. Those Grants count whether or not their Analysis is in the Trash.
- Members opens the Group's members, each with Remove. To add one, type in Search users or Groups: users are found by name or email address, and only once they have signed in to plintz at least once, and Groups by name. Click a result to add it. A user an Administrator disabled isn't found, but stays a member of the Groups they are in.
Groups nest to any depth: a Group can be in several Groups. A Group can't be in itself, nor in a Group it contains, however deep, as that would make a cycle. plintz refuses it and names the cycle, such as adding "Plant" to "Shift" would make a cycle: "Plant" contains "Unit" contains "Shift".
Being in a Group never makes anyone an Administrator: the deployment names those (see Administrators). An Owner or a user with Manage gives a Group a Grant from the Share dialog, and every member has it (see Sharing).
Analyses¶
The Analyses tab lists every Analysis that isn't in the Trash, whoever owns it and whether or not it is shared with you, with its Name, Folder path, Owner and when it was Last Updated. The Folder path is the names of the Folders the Analysis is in, from the topmost, joined by >>, such as Site >> Unit 1; it is empty for an Analysis at the top level. It starts with the most recently updated first. Click a column's heading to sort by it, ascending, and again to reverse it; the heading shows the direction. Sorting by name or Owner ignores capitalization, and sorting by Folder path compares the Folder names from the topmost, an Analysis at the top level first. Equal rows are ordered by name, then Owner. Your own Analyses are listed here too, but as everywhere else an Analysis you don't own and have no Grant on stays out of your own Analyses screen.
Click an Analysis's name to open it. You have Manage on every Analysis, so you can share it from the Workbench as its Owner can (see Sharing).
Each row has two actions:
- Move to the Trash asks you to confirm, naming the Analysis, as the Analyses screen does, and then moves it to the Trash as described in Moving an Analysis to the Trash. It leaves the list. Restore it from the Trash tab.
- Transfer opens a dialog in which you choose the New Owner among the active users: users you have disabled and the Analysis's current Owner aren't offered. Click Transfer and confirm, as in
Transfer the Analysis "Reactor study" from Bob to Carol? Bob keeps no access to it unless they are granted it.
A transfer makes the new Owner the Analysis's Owner, with full access that no Grant can remove. The previous Owner keeps no access, unless they are granted it afterwards or already have it through a Grant to Everyone or to a Group they are in. The Analysis's Grants stay as they were, apart from a Grant the new Owner held to themselves: it is removed, as their ownership makes it redundant. The Analysis's Last Updated changes to the time of the transfer. Use it, for example, when someone has left and you disabled them, so that their Analyses aren't stranded. An Analysis in the Trash, or in a Folder that is, isn't listed and can't be transferred; restore it first.
Folders¶
The Folders tab lists every Folder that isn't in the Trash, whoever owns it and whether or not it is shared with you, with its Name, Path, Owner and when it was Last Updated. The Path is the names of the Folders it is in, from the topmost, joined by >>, such as Site >> Unit 1; the Folder's own name is not in it, and it is empty for a Folder at the top level. A Folder inside a Folder that is in the Trash isn't listed either, because everything inside a trashed Folder is suspended until the Folder is restored. The tab sorts as the Analyses tab does: it starts with the most recently updated first, and a click on a column's heading sorts by it, ascending, and again reverses it. Sorting by Path compares the Folder names from the topmost, the top level first.
Click a Folder's name to open it. You have Manage on every Folder you open, as on every Analysis.
Each row has two actions:
- Move to the Trash asks you to confirm, naming the Folder and saying how many Analyses and Folders are inside it, as the Analyses screen does, and then moves only that Folder to the Trash, as described in Trashing a Folder. It and everything in it leave the list. Restore it from the Trash tab.
- Transfer opens a dialog in which you choose the New Owner among the active users: users you have disabled and the Folder's current Owner aren't offered. Click Transfer and confirm, as in
Transfer the Folder "Plant" from Bob to Carol? Bob keeps no access to it unless they are granted it.
A transfer makes the new Owner the Folder's Owner, with full access that no Grant can remove, and Manage on everything inside it, as the Owner of a Folder has. The previous Owner keeps no access, unless they are granted it afterwards or already have it through a Grant to Everyone or to a Group they are in. The Folder's Grants stay as they were, apart from a Grant the new Owner held to themselves: it is removed, as their ownership makes it redundant. The Folder's Last Updated changes to the time of the transfer. Top-level Folder names are unique per Owner, so plintz refuses to transfer a top-level Folder to a user who has a top-level Folder of that name, and says only "this name is unavailable".
Datasources¶
The Datasources tab lists each Datasource the deployment configures, with its Datasource id, Connector, default Uncertainty Lag and Last Indexing: when its last successful Indexing finished, or Never. You can't add, change or remove a Datasource here, nor any setting. The deployment config declares them, and an operator changes them (see Configuring plintz).
Each row has two actions:
- Index now runs Indexing for that Datasource at once, and says how many Stored Signals it stored when it is done, or why it failed. Only Administrators may run Indexing. See Indexing.
- Clear cache discards everything plintz cached from that Datasource, after you confirm it, as an Invalidation of the whole Datasource does, and says when it is done. plintz reads the data from the Datasource again when someone next asks for it, so the first reads afterwards can be slow. Cached Calculated Items that depend on it are computed again too. Uncertain Data is never cached, so it is unaffected.
Configuration¶
The Configuration tab shows the effective settings, read-only:
- the Cache directory, and the Cache disk use: how much of the cache disk budget the block cache's files use, in binary units (KiB, MiB, GiB);
- the Indexing interval, Max points (the most points an XY Plot draws), the OIDC issuer and OIDC client ID, and the Administrators;
- for each Datasource, its Options, how many Stored Signals it has, and what changed since the previous Indexing: how many Stored Signals the last Indexing added and how many it left out because the Datasource no longer has them. A dash means the Datasource hasn't been indexed since plintz started recording this.
Secrets never reach your browser. plintz doesn't send the database URL, the OIDC client secret or the Invalidation service token at all. In a Datasource's options it shows [redacted] for any value the config writes as a ${NAME} reference to the environment, because that is how a deployment passes it a secret, and for any option named like a secret: one with secret, token, password, passwd, credential, key or auth in its name.
Trash¶
The Trash tab lists everything in the Trash, by name: each trashed Folder, Analysis, Calculated Item and Stored Signal. Each row shows its Type, Name, what it Belongs To, Trashed By and when it was Trashed:
- A Folder's row says how many Analyses and Folders are inside it. An Analysis belongs to nothing, so the column is empty.
- An Analysis or Folder trashed on its own is listed right under the row of its nearest trashed Folder, indented, if it has one, and the column names that Folder followed by "(in the Trash)".
- A Calculated Item belongs to its Analysis. If that Analysis is in the Trash too, the row says "(in the Trash)" after its name.
- A Stored Signal belongs to its Datasource. If Indexing moved it to the Trash, Trashed By says Indexing and the time is the Indexing's. An Administrator who moved it is named, as is a user who moved an Analysis or a Calculated Item.
For something moved to the Trash before plintz recorded who and when, they show Unknown.
Click Restore on a row to restore it, as elsewhere. The row goes.
- An Analysis returns to the Analyses lists, as when its Owner, a user with Manage or an Administrator restores it from the Trash page.
- A Calculated Item is found by search again. While its Analysis is in the Trash, its Restore is off: restore the Analysis first.
- A Stored Signal is found by search again, as when an Administrator restores it from its properties. If its Datasource no longer has it, the next Indexing moves it back to the Trash (see Trash).
To restore several rows at once, tick their checkboxes, or the header's to tick all of them, and click Restore selected. Each row is restored as its own Restore does, all or nothing: if any can't be, nothing is restored and the message names each failure and why. A Calculated Item whose Analysis is in the Trash can't be ticked. See Restoring several rows at once.
Deleting permanently¶
Click Delete permanently on a row to delete it for good, so that its storage and name can be reclaimed. Only Administrators can; nobody else, not even an Owner or a user with Manage, can delete anything permanently, and plintz never deletes anything by itself. plintz asks you to confirm, naming what goes with the row, and the row then leaves the list. It can't be undone.
- An Analysis goes with its Worksheets, its Calculated Items (those in the Trash too), its Grants and its cached blocks. Its name is free for another Analysis.
- A Calculated Item goes with its cached blocks. plintz refuses while another Calculated Item uses it, trashed or not, or a saved Details Pane holds it, and names them: remove the user, or the Item from the Details Pane, first.
- A Stored Signal goes with its overrides and its cached blocks. plintz refuses while a Calculated Item uses it, and names it. It also refuses while a saved Details Pane holds it, and names the Worksheet. If its Datasource still has it, the next Indexing adds it back as a new Stored Signal, without the overrides.
Something that is not in the Trash is refused too.
Audit Trail¶
The Audit Trail tab is the record of changes: who made each, when, and what it was before and after. Only Administrators see it. plintz keeps it forever, in an append-only table: nothing in plintz changes or deletes an entry, and nothing purges the table.
Each entry shows its Timestamp, Actor, Change Type, the Item (its type, name and ID), a Change Summary and the Before and After states as JSON. CREATE marks a new item and has no Before state. UPDATE marks a change. DELETE marks a permanent deletion and has no After state. plintz records each entry in the same transaction as its change. A request that changes nothing, such as disabling a user who is already disabled, records no entry.
For now plintz records disabling and enabling a user, as UPDATE: the item is the user, and the state before and after is {"enabled": true} and {"enabled": false}, or the reverse. Logins, Worksheet content and reads are not recorded.
plintz also records, each as its own entry:
- Groups: a Group created (CREATE), renamed, or given or losing a member, a user or a Group (UPDATE), and deleted (DELETE). The state is the Group's name and members; a deleted Group's state before also lists the Grants its deletion removed, on Analyses and on Folders.
- Grants: a Grant added (CREATE), its Permission changed (UPDATE) and a Grant removed (DELETE), on an Analysis or a Folder. The item is the Grant, named by its Grantee and the Analysis or Folder, and its state names the Analysis or Folder, the Grantee and the Permission. A Group's deletion, which removes the Grants given to it, is recorded as that Group's deletion, not as removed Grants. An Owner transfer that removes a Grant the new Owner held records its removal.
- Analyses: an Analysis created (CREATE); renamed, moved to another Folder, moved to the Trash, restored, transferred to another Owner, or given a change of its Inherit permissions from parent switch (UPDATE); and permanently deleted (DELETE). The state is the Analysis's name, its Owner, the Folder it is in (null at the top level), the switch and whether it is in the Trash, so the entry for a permanent delete keeps the name and Owner it had.
- Folders: a Folder created (CREATE); and renamed, moved to another Folder, moved to the Trash, restored, transferred to another Owner, or given a change of its Inherit permissions from parent switch (UPDATE). The state is the Folder's name, its Owner, its parent (null at the top level), the switch and whether it is in the Trash. Moving a Folder to the Trash is one entry for that Folder, and none for what is inside it, which isn't trashed itself. Restoring an Analysis or Folder that was trashed on its own also restores the trashed Folders above it, and each of those has its own entry. Several rows moved, trashed or restored at once, as a bulk operation, have one entry per item. A request that changes nothing, such as moving a Folder to the Folder it is already in, records nothing.
plintz also records these changes to Items and Datasources:
- Stored Signals: changing or clearing an override, as UPDATE with the four overrides before and after; moving one to the Trash and restoring it, as UPDATE with
{"trashed": false}and{"trashed": true}, or the reverse; and deleting it for good from the Trash tab, as DELETE, whose state before, its overrides and{"trashed": true}, is kept. The item's ID is its Datasource and Data ID, asplant/ramp. - Stored Signals that Indexing trashes or restores: the same UPDATE as an Administrator's, with the actor Indexing, which is no user. Only a change that lasts is recorded: a Stored Signal that is still in its Datasource, and not in the Trash, records nothing. One Indexing records its changes for as many entries as there are Stored Signals changed, with no further cost.
- Calculated Items: creating one, as CREATE; editing its Formula, as UPDATE with the old and new Formula (and what its
$variablesare bound to) in the state before and after; moving it to the Trash and restoring it, as UPDATE; and deleting it for good from the Trash tab, as DELETE, whose state before is kept. A state holds the Analysis's ID, the Formula, the bindings and whether the item is in the Trash. - Datasources: Index now, one entry for each Datasource indexed, as UPDATE with when it last succeeded and what it found before and after, and Clear cache, as UPDATE, both with the Administrator as the actor. Each call of the Invalidation API, one entry for the call, as UPDATE with the actor service token, even when it has no entries; the state after lists each Datasource, Data ID and range in it, and the item is the Datasources it names.
The Worksheets of an Analysis, their content and their ranges are not recorded.
The tab lists the entries newest first, 50 to a page, with Previous page and Next page. Fill in the filters and click Search:
- Start and End limit entries to those made within the selected time range, including both endpoints, in your time zone. The tab opens with the last hour selected. Clear both filters to search the last hour from the time you search, or enter another range.
- User limits them to the changes one user made.
- Item ID limits them to the changes of one item, by the ID the entries show, such as a user's.
- Change type limits them to CREATE, UPDATE or DELETE.
The filters combine: an entry must match all of those set.