Lucas Smith
d5ce222482
feat: add CSC AES/QES signing (v1 instance-wide config) ( #2874 )
...
Adds Cloud Signature Consortium (CSC) integration for AES/QES signing
against a configured TSP. v1 ships as instance-wide configuration via
environment variables, with per-envelope signature level selection,
license gating, and an OAuth-driven signing flow (capture + FIFO
signers, SAD session, blocking/in-progress recipient pages).
Includes signature level compatibility checks (role, signing order,
dictate next signer), envelope mutability assertions, Prisma migration
for signature level and CSC tables, and docs for the new signing
certificate options.
2026-06-16 23:37:34 +10:00
David Nguyen
61138cdd81
fix: add dynamic rate limits ( #2892 )
2026-05-31 00:34:28 +10:00
ザヘド
807d094cf2
fix: email dictated direct template signer ( #2810 )
2026-05-27 12:30:31 +10:00
David Nguyen
8671f269e8
fix: lint project ( #2693 )
2026-05-08 16:04:22 +10:00
Ephraim Duncan
4935f387bf
feat: signing reminders ( #1749 )
2026-04-14 21:01:53 +10:00
Catalin Pit
5be71cca21
feat: add option to disable Document created from template ( #2609 )
2026-03-23 15:11:42 +11:00
David Nguyen
0b605d61c6
feat: add envelope pdf replacement ( #2602 )
2026-03-18 22:53:28 +11:00
Ephraim Duncan
36bbd97514
feat: add organisation template type ( #2611 )
2026-03-17 01:29:34 +11:00
Ephraim Duncan
70fb834a6a
feat: add more webhook events ( #2125 )
2026-03-15 19:47:52 +11:00
Lucas Smith
9f680c7a61
perf: set global prisma transaction timeouts and reduce transaction scope ( #2607 )
...
Configure default transaction options (5s maxWait, 10s timeout) on the
PrismaClient instead of per-transaction overrides. Move side effects
like email sending, webhook triggers, and job dispatches out of
$transaction blocks to avoid holding database connections open during
network I/O.
Also extracts the direct template email into a background job and fixes
a bug where prisma was used instead of tx inside a transaction.
2026-03-13 14:51:53 +11:00
Catalin Pit
c4754553c9
feat: implement template search functionality ( #2376 )
...
- Added function to handle template searches based on user input
- Introduced in the TRPC router to facilitate authenticated template
searches
- Updated to include template search results alongside document search
results
- Enhanced query handling by enabling searches only when the input is
valid
- Created corresponding Zod schemas for request and response validation
in
2026-03-09 10:44:51 +11:00
David Nguyen
6faa01d384
feat: add pdf image renderer ( #2554 )
...
## Description
Replace the PDF renderer with an custom image renderer.
This allows us to remove the "react-pdf" dependency and allows us to use
a virtual list to improve performance.
2026-03-06 12:39:03 +11:00
Lucas Smith
006b1d0a57
feat: per-recipient envelope expiration ( #2519 )
2026-02-20 11:36:20 +11:00
Lucas Smith
594a0f0c3f
fix: store formValues in database when creating document from template ( #2437 )
2026-02-02 11:36:06 +11:00
Jorge Ramirez
17b261df1f
fix(api): add take parameter to template search query for pagination ( #2396 )
...
This PR fixes a bug in the `/api/v2/template` endpoint where the
pagination parameter `perPage` was being ignored. Previously, the
endpoint would return all matching templates regardless of the requested
limit, which could lead to performance issues and incorrect API
behavior.
2026-01-27 15:00:37 +11:00
Lucas Smith
c976e747e3
fix: dont flatten forms for templates ( #2386 )
...
Templates shouldn't have their form flattened until they're
converted to a document.
2026-01-14 12:06:28 +11:00
Catalin Pit
bb3e9583e4
feat: add default recipients for teams and orgs ( #2248 )
2026-01-13 20:32:00 +11:00
Catalin Pit
8462cd13fd
fix: assignment operator for directRecipientName ( #2323 )
2025-12-16 12:04:19 +11:00
David Nguyen
e2f5e570cf
fix: envelope direct template ( #2156 )
2025-11-09 22:23:13 +11:00
David Nguyen
d05bfa9fed
feat: add envelopes api ( #2105 )
2025-11-07 14:17:52 +11:00
David Nguyen
d2a009d52e
fix: allow direct template recipient dictation ( #2108 )
2025-11-01 12:44:34 +11:00
David Nguyen
03eb6af69a
feat: polish envelopes ( #2090 )
...
## Description
The rest of the owl
2025-10-24 16:22:06 +11:00
Lucas Smith
2eebc0e439
feat: add attachments ( #2091 )
2025-10-23 23:07:10 +11:00
David Nguyen
7f09ba72f4
feat: add envelopes ( #2025 )
...
This PR is handles the changes required to support envelopes. The new
envelope editor/signing page will be hidden during release.
The core changes here is to migrate the documents and templates model to
a centralized envelopes model.
Even though Documents and Templates are removed, from the user
perspective they will still exist as we remap envelopes to documents and
templates.
2025-10-14 21:56:36 +11:00
Lucas Smith
995bc9c362
feat: support 2fa for document completion ( #2063 )
...
Adds support for 2FA when completing a document, also adds support for
using email for 2FA when no authenticator has been associated with the
account.
2025-10-06 16:17:54 +11:00
Lucas Smith
3c646d9475
feat: remove email requirement for recipients ( #2040 )
2025-09-23 17:13:52 +10:00
David Nguyen
d7e5a9eec7
fix: refactor document router ( #1990 )
2025-08-25 08:23:12 +10:00
Catalin Pit
67501b45cf
feat: create document in a specific folder ( #1965 )
2025-08-23 00:12:17 +10:00
David Nguyen
3409aae411
feat: add email domains ( #1895 )
...
Implemented Email Domains which allows Platform/Enterprise customers to
send emails to recipients using their custom emails.
2025-07-24 16:05:00 +10:00
Catalin Pit
7a5a9eefe8
feat: upload template via API ( #1842 )
...
Allow users to upload templates via both v1 and v2 APIs. Similar to
uploading documents.
2025-07-23 14:41:12 +10:00
Lucas Smith
512e3555b4
feat: horizontal checkboxes ( #1911 )
...
Adds the ability to have checkboxes align horizontally, wrapping when
they would go off the PDF
2025-07-19 22:06:50 +10:00
Ephraim Duncan
bb9ba80edb
fix: duplicate fields and recipients when you duplicate a document ( #1852 )
2025-06-23 16:43:07 +10:00
David Nguyen
e6dc237ad2
feat: add organisations ( #1820 )
2025-06-10 11:49:52 +10:00
Lucas Smith
55c8632620
feat: password reauthentication for documents and recipients ( #1827 )
...
Adds password reauthentication to our existing reauth providers,
additionally swaps from an exclusive provider to an inclusive type where
multiple methods can be selected to offer a this or that experience.
2025-06-07 00:27:19 +10:00
Lucas Smith
5e3a2b8f76
fix: allow prefilling date field ( #1794 )
...
Allows the prefilling of date fields when creating a document from a
template.
Current implementation is super dirty and should be replaced asap.
2025-05-14 20:06:53 +10:00
Mythie
ab323f149f
fix: resolve issue with uploading templates
2025-05-03 09:23:17 +10:00
Mythie
516e237966
fix: resolve issue with uploading templates
2025-05-03 08:09:44 +10:00
Mythie
0931c472a7
fix: resolve issue with uploading templates
2025-05-03 07:38:48 +10:00
Catalin Pit
17370749b4
feat: add folders ( #1711 )
2025-05-02 02:46:59 +10:00
Ephraim Duncan
bdb0b0ea88
feat: certificate qrcode ( #1755 )
...
Adds document access tokens and QR code functionality to enable secure
document sharing via URLs. It includes a new document access page that
allows viewing and downloading documents through tokenized links.
2025-04-28 11:30:09 +10:00
David Nguyen
193325717d
fix: rework fields ( #1697 )
...
Rework:
- Field styling to improve visibility
- Field insertions, better alignment, centering and overflows
## Changes
General changes:
- Set default text alignment to left if no meta found
- Reduce borders and rings around fields to allow smaller fields
- Removed lots of redundant duplicated code surrounding field rendering
- Make fields more consistent across viewing, editing and signing
- Add more transparency to fields to allow users to see under fields
- No more optional/required/etc colors when signing, required fields
will be highlighted as orange when form is "validating"
Highlighted internal changes:
- Utilize native PDF fields to insert text, instead of drawing text
- Change font auto scaling to only apply to when the height overflows
AND no custom font is set
⚠️ Multiline changes:
Multi line is enabled for a field under these conditions
1. Field content exceeds field width
2. Field includes a new line
3. Field type is TEXT
## [BEFORE] Field UI Signing

## [AFTER] Field UI Signing

## [BEFORE] Signing a checkbox


## [AFTER] Signing a checkbox


## [BEFORE] What a 2nd recipient sees once someone else signed a
document

## [AFTER] What a 2nd recipient sees once someone else signed a document

## **[BEFORE]** Inserting fields

## **[AFTER]** Inserting fields

## Overflows, multilines and field alignments testing
Debugging borders:
- Red border = The original field placement without any modifications
- Blue border = The available space to overflow
### Single line overflows and field alignments
This is left aligned fields, overflow will always go to the end of the
page and will not wrap

This is center aligned fields, the max width is the closest edge to the
page * 2

This is right aligned text, the width will extend all the way to the
left hand side of the page

### Multiline line overflows and field alignments
These are text fields that can be overflowed

Another example of left aligned text overflows with more text

2025-04-23 21:40:42 +10:00
David Nguyen
063fd32f18
feat: add signature configurations ( #1710 )
...
Add ability to enable or disable allowed signature types:
- Drawn
- Typed
- Uploaded
**Tabbed style signature dialog**

**Document settings**

**Team preferences**

- Add multiselect to select allowed signatures in document and templates
settings tab
- Add multiselect to select allowed signatures in teams preferences
- Removed "Enable typed signatures" from document/template edit page
- Refactored signature pad to use tabs instead of an all in one
signature pad
Added E2E tests to check settings are applied correctly for documents
and templates
2025-03-24 17:13:11 +11:00
Lucas Smith
f1525991dc
feat: dictate next signer ( #1719 )
...
Adds next recipient dictation functionality to document signing flow,
allowing assistants and signers to update the next recipient's
information during the signing process.
## Related Issue
N/A
## Changes Made
- Added form handling for next recipient dictation in signing dialogs
- Implemented UI for updating next recipient information
- Added e2e tests covering dictation scenarios:
- Regular signing with dictation enabled
- Assistant role with dictation
- Parallel signing flow
- Disabled dictation state
## Testing Performed
- Added comprehensive e2e tests covering:
- Sequential signing with dictation
- Assistant role dictation
- Parallel signing without dictation
- Form validation and state management
- Tested on Chrome and Firefox
- Verified recipient state updates in database
2025-03-21 13:27:04 +11:00
Catalin Pit
63d990ce8d
fix: optional fields in embeds ( #1691 )
2025-03-09 14:41:17 +11:00
Catalin Pit
65be37514f
fix: prefill fields ( #1689 )
...
Users can now selectively choose which properties to pre-fill for each
field - from just a label to all available properties.
2025-03-07 09:09:15 +11:00
Catalin Pit
422770a8c7
feat: allow fields prefill when generating a document from a template ( #1615 )
...
This change allows API users to pre-fill fields with values by
passing the data in the request body. Example body for V2 API endpoint
`/api/v2-beta/template/use`:
```json
{
"templateId": 1,
"recipients": [
{
"id": 1,
"email": "signer1@mail.com ",
"name": "Signer 1"
},
{
"id": 2,
"email": "signer2@mail.com ",
"name": "Signer 2"
}
],
"prefillValues": [
{
"id": 14,
"fieldMeta": {
"type": "text",
"label": "my label",
"placeholder": "text placeholder test",
"text": "auto-sign value",
"characterLimit": 25,
"textAlign": "right",
"fontSize": 94,
"required": true
}
},
{
"id": 15,
"fieldMeta": {
"type": "radio",
"label": "radio label",
"placeholder": "new radio placeholder",
"required": false,
"readOnly": true,
"values": [
{
"id": 2,
"checked": true,
"value": "radio val 1"
},
{
"id": 3,
"checked": false,
"value": "radio val 2"
}
]
}
},
{
"id": 16,
"fieldMeta": {
"type": "dropdown",
"label": "dropdown label",
"placeholder": "DD placeholder",
"required": false,
"readOnly": false,
"values": [
{
"value": "option 1"
},
{
"value": "option 2"
},
{
"value": "option 3"
}
],
"defaultValue": "option 2"
}
}
],
"distributeDocument": false,
"customDocumentDataId": ""
}
```
2025-03-06 19:45:33 +11:00
David Nguyen
383b5f78f0
feat: migrate nextjs to rr7
2025-02-13 14:10:38 +11:00
David Nguyen
9e03747e43
feat: add create document beta endpoint ( #1584 )
2025-01-16 13:36:00 +11:00
David Nguyen
901be70f97
feat: add consistent response schemas ( #1582 )
2025-01-14 00:43:35 +11:00
David Nguyen
7d0a9c6439
fix: refactor prisma relations ( #1581 )
2025-01-13 13:41:53 +11:00