Dropbox Sign (HelloSign)¶
Send agreements for e-signature via Dropbox Sign (formerly HelloSign) API. The extension plugs into the registration module, which owns agreement templates (agreement_templates) and captured signatures (signature_records) during B2B/B2C account onboarding — this extension registers a Dropbox Sign-backed implementation of the module's ESignatureStrategy interface for routing those agreements to an external signing provider.
Placeholder implementation
The strategy in this version is a scaffold, not a working Dropbox Sign integration. create_signing_request logs the request and returns a fixed placeholder request id with no signing URL, check_status always reports pending, and get_signed_document returns nothing. No calls are made to the Dropbox Sign API.
At a glance
| Extension id | hellosign |
| Category | registration |
| Version | 0.1.0 |
| Provides | ESignatureStrategy implementation (registered as hellosign) |
| External account | Dropbox Sign — API Key, Client ID |
What It Provides¶
- E-signature strategy —
HelloSignStrategy, registered with the strategy resolver as anESignatureStrategyimplementation namedhellosignwhen the extension activates. - The
ESignatureStrategyinterface it implements covers three operations: create a signing request for an agreement (signer email, signer name, optional callback URL) returning a request id, signing URL, and status; check a request's status (pending,signed,declined,expired); and download the signed document. - Nothing else — the package contributes no webhook endpoints, Temporal workflows, schedules, admin pages, GraphQL fields, or event subscriptions.
Setup¶
- Once installed (or dev-linked in development), the extension is discovered at startup. Enable it for a channel from Settings > Extensions (per-channel activation via
ChannelExtension). - Enter the Dropbox Sign credentials in the extension's configuration form (fields below). The manifest's install hint reads: "pip install dropbox-sign, then configure API key in extension settings" — note that the current code does not import that SDK (see the placeholder warning above).
Configuration Reference¶
| Key | Type | Required | Secret | Description |
|---|---|---|---|---|
api_key |
string | No | No | API Key |
client_id |
string | No | No | Client ID |
test_mode |
boolean | No | No | Test Mode — defaults to true |
Note
The config schema marks no field as required and no field as secret, so values are stored and rendered unmasked in the admin configuration form.
Operational Notes¶
- The strategy is registered but not yet consumed. No core code path currently resolves
ESignatureStrategy; the registration flow records signatures directly through the registration module'sSignatureServiceintosignature_records(method, signer IP, user agent, agreement version, SHA-256 content hash). Enabling this extension therefore has no runtime effect on the signing flow yet. - The registration module's built-in default captures signatures client-side (canvas/typed) with no external service (
BuiltInSignatureStrategy). - Whether an agreement needs a signature at all is controlled per agreement template (
requires_signature, on by default), not by this extension.