Sign
Signatures électroniques
À quoi elle sert
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.
Ce que fait et ne fait pas le paquet
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.
Modèles
sign_template
A document that can be sent out for signature
Groupe de lecture: sign.user. Groupe d'écriture: sign.manager.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
name | text | none | non | sign.user | en clair | Template name, for example Employment contract |
description | longtext | none | non | sign.user | en clair | What the document is for and who signs it |
body | longtext | none | non | sign.user | en clair | The document text, or a reference to where the file is kept |
signer_role | text | none | non | sign.user | en clair | Role of the person who signs, for example Customer |
active | bool | none | non | sign.user | en clair | Whether new requests can use the template |
sign_request
A request for one person to sign one document
Groupe de lecture: sign.user. Groupe d'écriture: sign.user.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
template_id | ref → sign_template | none | non | sign.user | en clair | The document to sign |
title | text | none | non | sign.user | en clair | Subject shown to the signer |
message | longtext | none | non | sign.user | en clair | Message shown to the signer in the request |
signer_name | text | internal | oui | sign.user | masqué | Name of the person who must sign |
signer_email | text | internal | oui | sign.user | masqué | Email address the request is sent to |
sent_on | date | none | non | sign.user | en clair | Day the request was sent (YYYY-MM-DD) |
expires_on | date | none | non | sign.user | en clair | Last day the request can be signed (YYYY-MM-DD) |
signed_on | date | none | non | sign.user | en clair | Day the document was signed (YYYY-MM-DD) |
signer_ip | text | internal | oui | sign.manager | masqué | IP address the signature came from (evidence) |
signer_user_agent | text | internal | oui | sign.manager | masqué | Browser the signature was made with (evidence) |
signature_reference | text | none | non | sign.manager | en clair | Where the signature image or certificate is stored |
document_hash | text | none | non | sign.manager | en clair | SHA-256 hash (hex) of the signed document, to prove it was not changed afterwards |
state | select (draft, sent, signed, declined, expired) | none | non | sign.user | en clair | Request status: draft, sent, signed, declined, expired |
Flux de travail
sign_request
| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
sign_request.send | state: draft → sent | sign.user | oui |
sign_request.sign | state: sent → signed | sign.manager | oui |
sign_request.decline | state: sent → declined | sign.user | non |
sign_request.expire | state: sent → expired | sign.user | non |
Groupes de permissions
Groupes utilisés par cette application :
sign.managersign.user
Étapes d'approbation
Étapes qu'un agent ne peut que proposer :
sign_request.sendsign_request.sign
Ce que les agents peuvent et ne peuvent pas faire
Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.
Il ne peut que proposer ces étapes, qu'une personne doit approuver : sign_request.send, sign_request.sign, sign_template.delete, sign_request.delete.
Les données personnelles sont masquées sous forme de jetons de substitution : sign_request.signer_name, sign_request.signer_email, sign_request.signer_ip, sign_request.signer_user_agent.
Dépendances
Aucune.
Installation
Installez-la depuis l'application Customize (Place de marché), ou en ligne de commande :
obop modules install-from signNécessite une base de données et des droits d'administrateur.
Créer la vôtre
Le guide des modules montre comment sont écrites les applications de ce type