feat(documenso): full v2 endpoint coverage + sequential signing + redirectUrl
Wire up the remaining version-aware paths so a port pointed at Documenso 2.x
takes the v2 endpoint on every CRUD operation, with two new v2-only settings
exposed in admin UI.
documenso-client.ts:
- createDocument: v2 multipart /envelope/create + getDocument follow-up to
return the full doc shape (v1 path unchanged)
- sendDocument: v2 /envelope/distribute (returns per-recipient signingUrl in
the same response — eliminates the v1 separate-GET round-trip)
- sendReminder: v2 /envelope/redistribute with recipientIds filter
- downloadSignedPdf: v2 /envelope/{id}/download
- CreateDocumentMeta type: { subject, message, redirectUrl, signingOrder }
threaded through v1 + v2 paths (v1 ignores signingOrder)
port-config.ts:
- New settings: documenso_signing_order (PARALLEL/SEQUENTIAL, v2-only),
documenso_redirect_url (both versions honour)
- PortDocumensoConfig gains signingOrder + redirectUrl
documenso-payload.ts:
- DocumensoTemplatePayload.meta gains signingOrder
- buildDocumensoPayload reads from options.signingOrder, omits when null
document-templates.ts (EOI template flow):
- Pass docCfg.signingOrder + docCfg.redirectUrl into buildDocumensoPayload
documents.service.ts (sendForSigning uploaded-doc flow):
- Pass portId to documensoCreate + documensoSend (was missing)
- Thread signingOrder + redirectUrl via the new meta param
Admin Documenso settings page:
- v2 benefits card updated: now lists envelope CRUD, one-call send,
sequential enforcement, post-sign redirect as wired (was roadmap)
- Roadmap callout pruned to the three remaining deferred items:
template/use migration, /envelope/update, non-SIGNER recipient roles
- New "v2 signing behaviour" SettingsFormCard with the two new settings
Template flow stays on /api/v1/templates/{id}/generate-document by design —
Documenso 2.x accepts v1 endpoints via backward compat; full migration to
v2 /template/use requires per-template field-ID capture (admin schema work,
deferred).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,13 @@ export interface DocumensoTemplatePayload {
|
||||
subject: string;
|
||||
redirectUrl: string;
|
||||
distributionMethod: 'NONE' | 'EMAIL';
|
||||
/**
|
||||
* PARALLEL = all signers can sign in any order (default, current behaviour).
|
||||
* SEQUENTIAL = signers must complete in the order their `signingOrder`
|
||||
* number dictates (client → developer → approver for EOI). v2 enforces
|
||||
* this server-side; v1 ignores the key and behaves as PARALLEL regardless.
|
||||
*/
|
||||
signingOrder?: 'PARALLEL' | 'SEQUENTIAL';
|
||||
};
|
||||
formValues: {
|
||||
Name: string;
|
||||
@@ -54,6 +61,11 @@ export interface DocumensoPayloadOptions {
|
||||
approverEmail?: string;
|
||||
/** Redirect URL after signing. Defaults to the app URL. */
|
||||
redirectUrl?: string;
|
||||
/**
|
||||
* PARALLEL (default) or SEQUENTIAL — v2-only enforcement (v1 ignores).
|
||||
* Set via per-port `documenso_signing_order` system_settings key.
|
||||
*/
|
||||
signingOrder?: 'PARALLEL' | 'SEQUENTIAL';
|
||||
}
|
||||
|
||||
const DEFAULT_DEVELOPER_NAME = 'David Mizrahi';
|
||||
@@ -129,6 +141,7 @@ export function buildDocumensoPayload(
|
||||
subject: 'Your LOI is ready to be signed',
|
||||
redirectUrl: options.redirectUrl ?? DEFAULT_REDIRECT_URL,
|
||||
distributionMethod: 'NONE',
|
||||
...(options.signingOrder ? { signingOrder: options.signingOrder } : {}),
|
||||
},
|
||||
formValues: {
|
||||
Name: context.client.fullName,
|
||||
|
||||
Reference in New Issue
Block a user