PUBLIC ALPHA

Open-source signing
orchestration for
India-first document
workflows.

SignKit is a self-hostable platform for creating, tracking, and reconciling document signing flows across providers. It integrates with DigiO today and is designed for provider adapters like eMudhra, DocuSign, and others.

live orchestration trace
input Document PDF / template
core SignKit state + audit
provider DigiO requested
callback Verified webhook HMAC checked
recover Reconciler poll stale docs
notify Webhook delivery retry + audit
00:01document.created → queued for provider upload
00:04webhook policy: retry/backoff/circuit-breaker

Why this exists

Most signing products stop at the signature. Production systems need the orchestration around it.

Real document workflows are not just “send PDF, collect signature”. They involve provider credentials, templates, multi-party state, retries, missed callbacks, auditability, and operational recovery when something fails.

SignKit treats reliability as part of the product: inbound provider webhooks are verified, outbound webhooks are delivered through a durable dispatcher, and stale documents can be reconciled by polling the provider again.

Document lifecycle

A signing system should explain where every document is, why it is there, and what happens next.

agreement status draft Document created locally.
Create
Upload
Callback
Recover
Deliver
event document.created
{
  "document_id": "doc_01",
  "status": "draft"
}
01

Create document

SignKit stores the document, signers, audit log, and provider intent before anything leaves the system.

02

Upload to provider

The active organization provider profile decides where the document goes — DigiO sandbox or production today.

03

Provider callback

Provider webhooks are HMAC verified and applied atomically to document and signer state.

04

Reconcile missed events

If a callback is delayed or lost, the reconciler polls stale documents and repairs local state.

05

Deliver downstream

SignKit delivers outbound webhooks with retries, backoff, circuit breaking, and a delivery audit trail.

Alpha Release Features

A focused alpha release with the core signing path in place.

DigiO provider adapter

Document upload, status fetch, signed document download, template preview, and template-based creation.

digio.Client

Encrypted provider profiles

Per-organization sandbox/production credentials stored with AES-256-GCM encryption.

crypto.Credentials

Inbound webhooks

Provider callbacks are HMAC verified and applied with atomic document/signer status updates.

digio.VerifyWebhook

Outbound webhooks

Built-in webhook delivery with queueing, retries, backoff, circuit breaker, and delivery attempt history.

Dispatcher.Enqueue

Polling reconciler

Stale documents are checked against the provider so missed webhooks do not leave state permanently stuck.

Reconciler

Admin UI

Vue interface for documents, provider profiles, templates, webhook endpoints, and API keys.

Dashboard.vue

Architecture

Provider-agnostic core, India-first defaults.

Admin UI / API clients
SignKit core
Provider adapters
DigiO today
Inbound reconciliation
webhook + polling
Outbound delivery
retry + audit queue
PostgreSQL is the source of truth. The current alpha stays deliberately boring: durable rows, explicit state transitions, and logs that operators can inspect without reverse engineering a distributed system.

Run it locally

Start with Docker, then configure a provider profile from the UI.

SignKit is alpha software. The Docker setup is intended for local evaluation and contributor onboarding.

git clone https://github.com/moolekkari/signkit.git
cd signkit
docker compose up --build

Roadmap

From signing API to workflow orchestration layer.

01

Stabilize public alpha

Contributor-ready docs, reliable Docker setup, OpenAPI coverage, and clear validation notes.

02

Workflow engine

Definitions, executions, logs, pauses, webhook resumes, and operator-visible execution state.

03

Provider expansion

DSC/eMudhra and international provider adapters behind one normalized signing interface.