Frappe
Cloud
Marketplace
Frappe
Products
Insights

About
DSC digital signing platform for Frappe & ERPNext — sign documents with a hardware Digital Signature Certificate (DSC) token, fully PAdES-compliant, with a rules engine, audit trail and built-in CCA India trust store.
e_sign lets users in a Frappe / ERPNext site digitally sign PDF documents using a
physical DSC USB token (PKCS#11 crypto token). The token's private key never
leaves the device — a small local bridge agent performs the cryptographic
signing, while the Frappe server builds a standards-compliant PAdES signature
around it.
Signing is a three-way handshake between the browser, the Frappe server and a local bridge agent:
prepare_pdf_for_signing) renders the PDF, builds the PAdES
SignedAttrs, and returns a hash to be signed.finalize) embeds it into the PDF,
saves the signed file, and verifies it against the trust store.The token PIN and private key never reach the server — only the final signature bytes do.
┌──────────┐ HTTPS ┌───────────────┐ localhost ┌──────────────┐
│ Browser │──────────▶│ Frappe server │ │ Bridge agent │
│ (Desk) │◀──────────│ (e_sign app) │ │ (DSC token) │
└────┬─────┘ └───────────────┘ └──────┬───────┘
│ │
└───────────── localhost HTTPS (127.0.0.1:<port>) ───────┘
e_sign/ — the Frappe app (Python + JS): doctypes, signing engine, rules
engine, APIs, reports.dsc_bridge/ — the desktop bridge agent (Go), talks PKCS#11 to the DSC token
and exposes a localhost HTTPS endpoint. Builds for Windows and macOS.pyhanko[image-support], asn1cryptoThe after_install hook adds an is_dsc_signed custom field to the File doctype
and ships the DSC Administrator, DSC Signer and DSC Auditor roles as fixtures.
Each signer additionally installs the bridge agent on their workstation — see
docs/bridge-agent.md.
Full walkthrough: docs/getting-started.md.
| Doctype | Purpose |
|---|---|
| DSC Settings | Single — global configuration |
| DSC Profile | A registered DSC token + certificate, with an allowed-users list |
| DSC Rule / DSC Rule Condition | Auto-create signing requests for a doctype |
| DSC Signature Template / DSC Signature Field | Stamp layout & visible content |
| DSC Signing Request | One signing operation and its lifecycle |
| DSC Document Sign | Ad-hoc: upload a PDF, place the signature, sign |
| DSC Agent Registration | Pairs a desktop bridge agent to a user |
| DSC Audit Event | Immutable audit-log entry |
Signature verification trusts two merged sources:
cca_india_trust_bundle.pem, shipped in the app, containing every
CCA India licensed CA. Always on, no setup.See docs/trust-store.md.
Full documentation lives in docs/ and is published as a site via
MkDocs:
pip install mkdocs-material
mkdocs serve # preview at http://127.0.0.1:8000
This app uses pre-commit for formatting and linting:
cd apps/e_sign
pre-commit install
Tools: ruff, eslint, prettier, pyupgrade.
See license.txt.
</content> </invoke>
User Reviews
No reviews yet, be the first to review.
0 rating
Explore more apps