---
title: "Documents"
description: "Dateien und Ordner. Jede App ist ein Modul auf einem gemeinsamen Datenmodell."
canonical: "https://obop-platform.sliplane.app/de/apps/documents/"
lang: "de"
---

# Documents

## Wofür sie gedacht ist

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

## Was das Paket leistet und was nicht

A register of business documents: folders, document records with kind, owner, expiry and confidentiality, and a draft, published and archived flow. It stores references, not file contents.

## Modelle

### `documents_folder`

A folder that groups documents

Lesegruppe: `documents.user`. Schreibgruppe: `documents.manager`.

| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
| `name` | text | `none` | nein | `documents.user` | im Klartext | Folder name |
| `parent_id` | ref → documents_folder | `none` | nein | `documents.user` | im Klartext | The folder this one sits in |
| `description` | longtext | `none` | nein | `documents.user` | im Klartext | What belongs in the folder |

### `documents_document`

A contract, policy, certificate or other document on record

Lesegruppe: `documents.user`. Schreibgruppe: `documents.user`.

| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
| `title` | text | `none` | nein | `documents.user` | im Klartext | Document title |
| `folder_id` | ref → documents_folder | `none` | nein | `documents.user` | im Klartext | The folder the document is filed in |
| `kind` | select (contract, invoice, policy, report, certificate, other) | `none` | nein | `documents.user` | im Klartext | Type of document: contract, invoice, policy, report, certificate, other |
| `confidentiality` | select (public, internal, confidential, restricted) | `none` | nein | `documents.user` | im Klartext | Who should see it, as a label for readers: public, internal, confidential, restricted |
| `owner` | text | `internal` | ja | `documents.user` | maskiert | Name of the person responsible for the document |
| `reference` | text | `none` | nein | `documents.user` | im Klartext | Reference number, for example a contract number |
| `location` | text | `none` | nein | `documents.user` | im Klartext | Where the file is stored, such as a link or archive box |
| `expires_on` | date | `none` | nein | `documents.user` | im Klartext | Date after which the document is no longer valid (YYYY-MM-DD) |
| `summary` | longtext | `none` | nein | `documents.user` | im Klartext | What the document says, in a few lines |
| `state` | select (draft, published, archived) | `none` | nein | `documents.user` | im Klartext | Document status: draft, published, archived |

## Workflows

### `documents_document`

| Aktion | Bewegt | Wer sie ausführen darf | Freigabe |
|---|---|---|---|
| `documents_document.publish` | state: draft → published | `documents.user` | nein |
| `documents_document.archive` | state: published → archived | `documents.manager` | nein |

## Berechtigungsgruppen

Von dieser App verwendete Gruppen:

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

## Freigabeschritte

Kein Schritt dieser App braucht eine Freigabe, abgesehen vom Löschen von Datensätzen.

## Was Agenten tun können und was nicht

Ein Agent kann Datensätze dieser App lesen, durchsuchen, anlegen und aktualisieren sowie Aktionen ausführen, die keine Freigabe brauchen, und zwar innerhalb der Berechtigungsgruppen seines Tokens.

Diese Schritte kann er nur vorschlagen, und eine Person muss sie freigeben: `documents_folder.delete`, `documents_document.delete`.

Personenbezogene Daten werden als Platzhalter maskiert: `documents_document.owner`.

## Abhängigkeiten

Keine.

## Installation

Installieren Sie sie in der App Customize (Marktplatz) oder über die Kommandozeile:

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

Erfordert eine Datenbank und Administratorrechte.

## Selbst bauen

[Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden](/de/docs/reference/module-manifest/)
