Documents

Files and folders

MarketplaceContent and documentsVersion 0.3.0AGPL-3.0-or-latermanifest

What it is for ​

A register of business documents with folder, kind, owner, expiry and confidentiality. It stores references to documents, not the file contents.

What the package does and does not do ​

A register of business documents: folders, document records with kind, owner, expiry and confidentiality, and a draft, published and archived flow. It stores references and, when you upload one, the file itself. Confidentiality is enforced: confidential and restricted documents are visible only to their owner and to documents.manager; public and internal ones to everyone who may read documents.

Module details ​

  • Version: 0.3.0
  • Author: SpaceCorps
  • Licence: AGPL-3.0-or-later
  • Needs core: ^0.2 (core 0.2.0 is current)
  • Maturity: Beta
  • Categories: Productivity

Models ​

documents_folder ​

A folder that groups documents

Read group: documents.user. Write group: documents.manager.

FieldKindData classPersonal dataGroupAgents seeDescription
nametextnonenodocuments.userin clearFolder name
parent_idref → documents_foldernonenodocuments.userin clearThe folder this one sits in
descriptionlongtextnonenodocuments.userin clearWhat belongs in the folder

documents_document ​

A contract, policy, certificate or other document on record

Read group: documents.user. Write group: documents.user.

FieldKindData classPersonal dataGroupAgents seeDescription
titletextnonenodocuments.userin clearDocument title
folder_idref → documents_foldernonenodocuments.userin clearThe folder the document is filed in
kindselect (contract, invoice, policy, report, certificate, other)nonenodocuments.userin clearType of document: contract, invoice, policy, report, certificate, other
confidentialityselect (public, internal, confidential, restricted)nonenodocuments.userin clearWho may see it: public and internal documents everyone who may read documents, confidential and restricted ones only the owner and documents.manager
open_to_allboolnonenodocuments.userin clearWhether everyone who may read documents can see this one: true for public and internal documents
ownertextinternalyesdocuments.usermaskedUser name of the person responsible for the document; the person who creates it unless set otherwise. Owners see their confidential documents
referencetextnonenodocuments.userin clearReference number, for example a contract number
locationtextnonenodocuments.userin clearWhere the file is stored, such as a link or archive box
attachmentfileinternalnodocuments.userin clearThe document file itself (PDF, image, text, spreadsheet or office document, up to 25 MiB); served only as a download to people who may read the record
expires_ondatenonenodocuments.userin clearDate after which the document is no longer valid (YYYY-MM-DD)
summarylongtextnonenodocuments.userin clearWhat the document says, in a few lines
stateselect (draft, published, archived)nonenodocuments.userin clearDocument status: draft, published, archived

Workflows ​

documents_document ​

ActionMovesWho may run itApproval
documents_document.publishstate: draft → publisheddocuments.userno
documents_document.archivestate: published → archiveddocuments.managerno

Permission groups ​

Groups used by this app:

  • documents.manager
  • documents.user

Approval steps ​

No step in this app needs an approval, apart from deleting records.

What agents can and cannot do ​

An agent can read, search, create and update records of this app, and run the actions that need no approval, within the permission groups of its token.

It can only propose these steps, and a person must approve them: documents_folder.delete, documents_document.delete.

Personal data is masked as placeholder tokens: documents_document.owner.

Dependencies ​

None.

Install ​

Install it from the Customize app (Marketplace), or from the command line:

bash
obop modules install-from documents

Needs a database and administrator rights.

Build your own ​

The module guide shows how apps like this one are written