---
title: "Documents"
description: "Archivos y carpetas. Cada aplicación es un módulo sobre un único modelo de datos."
canonical: "https://obop.dev/es/apps/documents/"
lang: "es"
---

# Documents

## Para qué sirve

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

## Qué hace y qué no hace el paquete

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.

## Detalles del módulo

- **Versión:** `0.3.0`
- **Autor:** SpaceCorps
- **Licencia:** [AGPL-3.0-or-later](https://spdx.org/licenses/AGPL-3.0-or-later.html)
- **Requiere núcleo:** `^0.2` (el núcleo actual es 0.2.0)
- **Madurez:** Beta
- **Categorías:** Productividad

## Modelos

### `documents_folder`

A folder that groups documents

Grupo de lectura: `documents.user`. Grupo de escritura: `documents.manager`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `name` | text | `none` | no | `documents.user` | en claro | Folder name |
| `parent_id` | ref → documents_folder | `none` | no | `documents.user` | en claro | The folder this one sits in |
| `description` | longtext | `none` | no | `documents.user` | en claro | What belongs in the folder |

### `documents_document`

A contract, policy, certificate or other document on record

Grupo de lectura: `documents.user`. Grupo de escritura: `documents.user`.

| Campo | Tipo | Clase de datos | Datos personales | Grupo | Los agentes ven | Descripción |
|---|---|---|---|---|---|---|
| `title` | text | `none` | no | `documents.user` | en claro | Document title |
| `folder_id` | ref → documents_folder | `none` | no | `documents.user` | en claro | The folder the document is filed in |
| `kind` | select (contract, invoice, policy, report, certificate, other) | `none` | no | `documents.user` | en claro | Type of document: contract, invoice, policy, report, certificate, other |
| `confidentiality` | select (public, internal, confidential, restricted) | `none` | no | `documents.user` | en claro | Who may see it: public and internal documents everyone who may read documents, confidential and restricted ones only the owner and documents.manager |
| `open_to_all` | bool | `none` | no | `documents.user` | en claro | Whether everyone who may read documents can see this one: true for public and internal documents |
| `owner` | text | `internal` | sí | `documents.user` | enmascarado | User name of the person responsible for the document; the person who creates it unless set otherwise. Owners see their confidential documents |
| `reference` | text | `none` | no | `documents.user` | en claro | Reference number, for example a contract number |
| `location` | text | `none` | no | `documents.user` | en claro | Where the file is stored, such as a link or archive box |
| `attachment` | file | `internal` | no | `documents.user` | en claro | The 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_on` | date | `none` | no | `documents.user` | en claro | Date after which the document is no longer valid (YYYY-MM-DD) |
| `summary` | longtext | `none` | no | `documents.user` | en claro | What the document says, in a few lines |
| `state` | select (draft, published, archived) | `none` | no | `documents.user` | en claro | Document status: draft, published, archived |

## Flujos de trabajo

### `documents_document`

| Acción | Mueve | Quién puede ejecutarla | Aprobación |
|---|---|---|---|
| `documents_document.publish` | state: draft → published | `documents.user` | no |
| `documents_document.archive` | state: published → archived | `documents.manager` | no |

## Grupos de permisos

Grupos que usa esta aplicación:

- `documents.manager`
- `documents.user`

## Pasos con aprobación

Ningún paso de esta aplicación requiere aprobación, salvo eliminar registros.

## Qué pueden y qué no pueden hacer los agentes

Un agente puede leer, buscar, crear y actualizar registros de esta aplicación, y ejecutar las acciones que no requieren aprobación, dentro de los grupos de permisos de su token.

Solo puede proponer estos pasos, y una persona debe aprobarlos: `documents_folder.delete`, `documents_document.delete`.

Los datos personales se enmascaran como tokens marcadores: `documents_document.owner`.

## Dependencias

Ninguna.

## Instalación

Instálala desde la aplicación Customize (Marketplace) o desde la línea de comandos:

```bash
obop modules install-from documents
```

Requiere una base de datos y derechos de administrador.

## Crea la tuya

[La guía de módulos explica cómo se escriben aplicaciones como esta](/es/docs/reference/module-manifest/)
