Sign
Elektronische Signaturen
Wofür sie gedacht ist
Manage templates and signature requests through draft, sent, signed, declined and expired, and record the document hash that was signed. The platform cannot yet lock a record, so a signed request is immutable by convention only.
Was das Paket leistet und was nicht
Document templates and signature requests with a draft, sent, signed, declined, expired flow. A request names the signer (personal data) and keeps the signature evidence as references. A signed request is immutable by convention only: the platform cannot yet lock a record, so nobody should edit a request once it is signed, and the document_hash records what was signed. Sending and recording a signature need a human approval; agents may only propose them.
Modelle
sign_template
A document that can be sent out for signature
Lesegruppe: sign.user. Schreibgruppe: sign.manager.
| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
name | text | none | nein | sign.user | im Klartext | Template name, for example Employment contract |
description | longtext | none | nein | sign.user | im Klartext | What the document is for and who signs it |
body | longtext | none | nein | sign.user | im Klartext | The document text, or a reference to where the file is kept |
signer_role | text | none | nein | sign.user | im Klartext | Role of the person who signs, for example Customer |
active | bool | none | nein | sign.user | im Klartext | Whether new requests can use the template |
sign_request
A request for one person to sign one document
Lesegruppe: sign.user. Schreibgruppe: sign.user.
| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
template_id | ref → sign_template | none | nein | sign.user | im Klartext | The document to sign |
title | text | none | nein | sign.user | im Klartext | Subject shown to the signer |
message | longtext | none | nein | sign.user | im Klartext | Message shown to the signer in the request |
signer_name | text | internal | ja | sign.user | maskiert | Name of the person who must sign |
signer_email | text | internal | ja | sign.user | maskiert | Email address the request is sent to |
sent_on | date | none | nein | sign.user | im Klartext | Day the request was sent (YYYY-MM-DD) |
expires_on | date | none | nein | sign.user | im Klartext | Last day the request can be signed (YYYY-MM-DD) |
signed_on | date | none | nein | sign.user | im Klartext | Day the document was signed (YYYY-MM-DD) |
signer_ip | text | internal | ja | sign.manager | maskiert | IP address the signature came from (evidence) |
signer_user_agent | text | internal | ja | sign.manager | maskiert | Browser the signature was made with (evidence) |
signature_reference | text | none | nein | sign.manager | im Klartext | Where the signature image or certificate is stored |
document_hash | text | none | nein | sign.manager | im Klartext | SHA-256 hash (hex) of the signed document, to prove it was not changed afterwards |
state | select (draft, sent, signed, declined, expired) | none | nein | sign.user | im Klartext | Request status: draft, sent, signed, declined, expired |
Workflows
sign_request
| Aktion | Bewegt | Wer sie ausführen darf | Freigabe |
|---|---|---|---|
sign_request.send | state: draft → sent | sign.user | ja |
sign_request.sign | state: sent → signed | sign.manager | ja |
sign_request.decline | state: sent → declined | sign.user | nein |
sign_request.expire | state: sent → expired | sign.user | nein |
Berechtigungsgruppen
Von dieser App verwendete Gruppen:
sign.managersign.user
Freigabeschritte
Schritte, die ein Agent nur vorschlagen kann:
sign_request.sendsign_request.sign
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: sign_request.send, sign_request.sign, sign_template.delete, sign_request.delete.
Personenbezogene Daten werden als Platzhalter maskiert: sign_request.signer_name, sign_request.signer_email, sign_request.signer_ip, sign_request.signer_user_agent.
Abhängigkeiten
Keine.
Installation
Installieren Sie sie in der App Customize (Marktplatz) oder über die Kommandozeile:
obop modules install-from signErfordert eine Datenbank und Administratorrechte.
Selbst bauen
Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden