Access model
For an authenticated object request, Suchi first loads the actual object and requires its system to match any explicit request system and the token’s bound system. The account must be active and may enter the system only through direct membership or implicit instance-administrator access. Then:- Instance administrators bypass document ACLs.
- The object owner is allowed.
- User and group grants are combined; the effective bits must include the requested permission.
- Otherwise access is denied.
System membership and trust
First prefixed taxonomy import introduces systems atomically. Before it, the original archive is hidden and ordinary new users/admin demotions are admitted there automatically. Naming it retains those memberships. Afterwards new systems admit only instance admins until granted direct members; new users and demoted admins receive no automatic memberships. Codes are permanent, names editable. Admins manage memberships after introduction. Removing membership atomically revokes that user’s system shares and API tokens and removes pending mobile pairings. Pending Microsoft sign-ins for that system are discarded only after the membership change commits; failed changes preserve them. Re-adding membership never resurrects those credentials or sign-ins. Document ACL rows remain ineffective while membership is absent; re-admission can make those retained grants useful again, subject to the other authorization checks. Writes and idempotent receipt replay recheck current account, membership and local token authority in the writer transaction. Read authorization is a snapshot: removal cannot retract bytes already delivered. Shared server admins, host and backup operators remain trusted; these are not separate databases, encryption keys or a regulatory/professional-independence guarantee.object_acls supports document, tag, correspondent, document_type, and
storage_path. Principals are users or groups. Reapplying a grant replaces its
permission bits.
Enforcement
Document detail, download, preview, versions, correspondents, custom fields, mutation, trash, and restore endpoints enforce object permissions. Document lists, FTS search, saved views, statistics, and similar-document retrieval put visibility restrictions inside their database queries so hidden rows do not leak through counts, snippets, or pagination. Taxonomy mutation endpoints enforce grants on existing taxonomy objects. Taxonomy names are shared vocabulary only within an enterable selected system. Lists and autocomplete do not hide those same-system labels by object ACL, but never reveal another system’s vocabulary. API tokens are bound to one system as both default and ceiling. Scopes and object permissions are additional gates, not substitutes for membership. Change a device’s system by creating a new pairing/token, not by switching an old token. Mobile Reader calls requiredocuments:read on document lists, search,
document detail, version lists, thumbnails, and task reads. The scope check
runs before object ACL and sensitivity checks; it never broadens row visibility.
Mobile pairing should require both documents:read and documents:write.
Upload idempotency keys are user-global and their fingerprints bind the target
system: reusing a key in another system conflicts. Every replay rechecks authority;
a version replay also requires change permission on its predecessor.
Account safeguards
Under Settings > Archive configuration > People and metadata > Users, you cannot disable the account you are signed in with. Its Active switch is read-only. To disable that account, sign in as another active administrator. User updates must leave at least one active administrator. Disabled administrators do not count; promote or enable another administrator before demoting the last active one. The API enforces this inside the write transaction, including when administrators make concurrent changes. Rejected updates leave all fields unchanged.Capabilities
Administrators grant optional capabilities to individual members under Settings > Archive configuration > People and metadata > Users > Additional access. Administrators have every capability implicitly. User creation and updates store administrators with an empty member-capability list. Promotion preserves their implicit access and does not revoke dependent resources. When demoting an administrator, explicitly grant the member capabilities they should retain; omitted capabilities do not restore legacy hidden grants. Normal revocation cascades apply to the access they lose.
The web app labels these capabilities Ask the archive, Manage document
dates, Manage mailboxes, Create share links, and Share saved views.
Removing
archive_chat removes the Ask action; its conversations are already
transient browser memory and create no server-side records.
Removing a capability also closes the access it granted:
- Removing
archive_intelligencehides extraction, extracted-fact review, and Calendar. Existing pending facts and dates already in Calendar remain stored and auditable. Dates already available to Calendar remain readable document metadata: callers withdocuments:readmay still usedate:anddate-role:predicates. - Removing
mailboxesdisables the member’s mailbox rows without deleting them. Granting it again does not re-enable those rows automatically. - Removing
share_linksrevokes the member’s live share links. Granting it again permits new links but does not restore revoked links. - Removing
share_viewsmakes the member’s shared views private. The saved views remain available to their owner.
Groups
Administrators manage users and groups under Settings > Archive configuration > People and metadata. Group membership makes one grant apply to several users. The equivalent API surface is:ACL API
ACL management is currently exposed through the JSON API:principal_kind: "group" and a group ID for a group grant. The API is
idempotent: an identical PUT is a no-op and deleting a missing grant succeeds.
Share links
Share links are time-bounded anonymous bearer access, not ACL entries. They are useful for sending selected documents to someone who has no Suchi account. Revoking a share link does not change user or group grants. A share contains documents from exactly one system and remains subject to the creator being active and able to enter it. Public requests return only still- shareable live documents. Revocation, removal of membership, or loss of the creator’s authority cannot be bypassed using the bearer link. Automations can change ownership but v0.1 does not include a general ACL-grant automation action. Approval definitions are governed by their own task and assignee rules rather than object ACLs.Multi-user setup
- Create users under Settings > Archive configuration > People and
metadata > Users or through
/api/admin/users. - After systems are introduced, grant direct membership in each required system. Administrators’ entry is implicit; no per-system administrator roles exist.
- Create groups for recurring document-sharing needs, then grant document ACLs. Users, groups, roles and capabilities are instance-wide, not new tenant directories.
- Verify system entry as well as list, search, preview, edit and delete as a member.