Konrad
92d82c0423
fix(i18n): mark supported languages for translation ( #2377 )
2026-02-26 12:06:18 +11:00
Lucas Smith
c112392da9
feat: add admin email domain management and sync job ( #2538 )
2026-02-25 15:14:18 +11:00
Karlo
3ad3216c4c
fix: update button width to fit content in public profile page ( #2506 )
...
Co-authored-by: Catalin Pit <catalinpit@gmail.com >
2026-02-23 12:46:58 +02:00
Lucas Smith
653ab3678a
feat: better ratelimiting ( #2520 )
...
Replace hono-rate-limiter with a Prisma/PostgreSQL bucketed counter
approach that works correctly across multiple instances without sticky
sessions.
- Add RateLimit model with composite PK (key, action, bucket) and atomic
upsert
- Create rate limit factory with window parsing, bucket computation, and
fail-open
- Define auth-tier and API-tier rate limit instances
- Add Hono middleware, rateLimitResponse helper, and tRPC
assertRateLimit helper
- Wire rate limit headers through AppError constructor (was declared but
never assigned)
- Apply rate limits to auth routes (email-password, passkey), tRPC
routes
(2FA email, link org account), API routes, and file upload endpoints
- Add cleanup cron job for expired rate limit rows (batched delete every
15 min)
- Remove hono-rate-limiter dependency
2026-02-20 12:23:02 +11:00
Lucas Smith
006b1d0a57
feat: per-recipient envelope expiration ( #2519 )
2026-02-20 11:36:20 +11:00
Lucas Smith
f3ec8ddc57
v2.6.1
2026-02-18 21:57:10 +11:00
Konrad
29622d3151
fix(i18n): mark strings inside div for translation ( #2514 )
2026-02-18 13:50:42 +11:00
Lucas Smith
5de2527e54
fix: v2 embed direct templates not reading email/lockEmail from hash params ( #2509 )
2026-02-18 13:35:04 +11:00
McMek590
cf8e21bf35
fix: create full sentences for document-signing-auth files ( #2451 )
2026-02-16 13:30:36 +11:00
Jahangir Babar
3f7c4df1b1
fix: strip diacritics from team URL slug generation ( #2489 )
2026-02-16 12:36:14 +11:00
Konrad
ca199e7885
fix(i18n): mark span strings for translation ( #2494 )
2026-02-16 12:07:53 +11:00
Konrad
435d61ea57
fix(i18n): mark badge string for translation ( #2495 )
2026-02-16 11:58:03 +11:00
Konrad
34f14ba69a
fix(i18n): mark tabs trigger strings for translation ( #2496 )
2026-02-16 11:57:44 +11:00
Konrad
51916cd3f0
fix(i18n): mark DialogTitle string for translation ( #2497 )
2026-02-16 11:57:23 +11:00
Konrad
f158305499
fix(i18n): mark paragraph strings for translation ( #2498 )
2026-02-16 11:57:03 +11:00
Lucas Smith
2e3d22c856
fix: use instance-specific emails for service accounts ( #2502 )
2026-02-16 11:52:19 +11:00
David Nguyen
066e6bc847
fix: envelope editor flush race condition ( #2482 )
...
## Description
Fixes a race condition in the envelope editor when opening "Send
Document" immediately after moving/resizing a selected field
Replication
1. Move or resize a field (do not blur the selector/quickbar that
appears when a field is selected)
2. Directly click the "Send Document" dialog
3. Error appears
Note: Step 2 needs to happen relatively fast after step 1 since this is
a race against the flush debouncer
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-12 16:32:26 +11:00
Catalin Pit
f1c91c4951
fix: bulk actions improvements ( #2440 )
2026-02-10 20:13:03 +11:00
Lucas Smith
a5ef1d23e6
feat: add team memberships section to admin user detail page ( #2457 )
2026-02-09 17:35:22 +11:00
Konrad
da89ce7c9a
fix(i18n): add localization context to dialog messages ( #2452 )
2026-02-09 10:52:50 +11:00
Konrad
b762561f11
chore(i18n): add context to ambiguous message ( #2454 )
2026-02-09 10:52:00 +11:00
Catalin Pit
9b190ef582
docs: add info callout for enterprise-only embedded authoring ( #2443 )
2026-02-04 12:41:46 +11:00
Konrad
39ebc8184a
fix(i18n): add pluralization to envelopes-bulk-delete-dialog.tsx ( #2428 )
2026-01-30 12:43:27 +11:00
Konrad
2df41b9f01
feat(ui): rename sign up button for better clarity ( #2427 )
2026-01-30 12:30:33 +11:00
Lucas Smith
eaee0d4bc6
v2.6.0
2026-01-29 18:44:58 +11:00
Lucas Smith
0f8b7670f4
fix: correct path prefix check for static assets caching ( #2433 )
2026-01-29 16:05:08 +11:00
Catalin Pit
25e148d459
feat: update team member creation dialog with invite functionality ( #2366 )
2026-01-29 15:15:06 +11:00
David Nguyen
97ceb317a8
fix: license banner not correctly showing ( #2432 )
2026-01-29 15:09:23 +11:00
David Nguyen
a4d0e3e873
fix: resolve safari cert download issues ( #2430 )
2026-01-29 14:08:07 +11:00
Catalin Pit
59a514c238
feat: allow non-team members as default recipients ( #2404 )
2026-01-29 13:32:18 +11:00
David Nguyen
1b0df2d082
feat: add license integration ( #2346 )
...
Changes:
- Adds integration for the license server.
- Prevent adding flags that the instance is not allowed to add
2026-01-29 13:30:48 +11:00
Catalin Pit
d18dcb4d60
feat: autoplace fields from placeholders ( #2111 )
...
This PR introduces automatic detection and placement of fields and
recipients based on PDF placeholders.
The placeholders have the following structure:
- `{{fieldType,recipientPosition,fieldMeta}}`
- `{{text,r1,required=true,textAlign=right,fontSize=50}}`
When the user uploads a PDF document containing such placeholders, they
get converted automatically to Documenso fields and assigned to
recipients.
2026-01-29 13:13:45 +11:00
Konrad
d77f81163b
fix(i18n): mark missing strings for translation in card components ( #2308 )
2026-01-29 12:22:07 +11:00
Lahiru Dahampath
62fb9e5248
fix: correct webhook event name in documentation ( #2424 )
2026-01-29 11:52:36 +11:00
Catalin Pit
155310b028
feat: add bulk document selection and move functionality ( #2387 )
...
This PR introduces bulk actions for documents, allowing users to select
multiple envelopes and perform actions such as moving or deleting 1 or
more documents simultaneously.
2026-01-28 18:27:32 +11:00
David Nguyen
eb3b3b18ce
chore: add v1 deprecated docs ( #2423 )
2026-01-28 14:09:13 +11:00
Timur Ercan
d3c898e317
chore: update fair policy with support ( #2422 )
...
updated fair policy and added fair self-host support
2026-01-27 17:34:07 +01:00
Lucas Smith
d08049ed3b
v2.5.1
2026-01-27 20:25:31 +11:00
Lucas Smith
7d38e18f93
v2.5.0
2026-01-26 15:59:30 +11:00
Lucas Smith
0a3e0b8727
feat: validate signers have signature fields before distribution ( #2411 )
...
API users were inadvertently sending documents without signature fields,
causing confusion for recipients and breaking their signing flows.
- Add getRecipientsWithMissingFields helper in recipients.ts
- Add server-side validation in sendDocument to block distribution
- Fix v1 API to return 400 instead of 500 for validation errors
- Consolidate UI signature field checks to use isSignatureFieldType
- Add E2E tests for both v1 and v2 APIs
2026-01-26 15:22:12 +11:00
Lucas Smith
67da488f63
chore: upgrade libpdf ( #2408 )
2026-01-23 21:38:48 +11:00
Catalin Pit
a7963b385a
docs: add default recipients section ( #2400 )
2026-01-21 09:45:34 +02:00
Lucas Smith
9035240b4d
refactor: replace pdf-sign with libpdf/core for PDF operations ( #2403 )
...
Migrate from @documenso/pdf-sign and @cantoo/pdf-lib to @libpdf/core
for all PDF manipulation and signing operations. This includes:
- New signing transports for Google Cloud KMS and local certificates
- Consolidated PDF operations using libpdf API
- Added TSA (timestamp authority) helper for digital signatures
- Removed deprecated flatten and insert utilities
- Updated tests to use new PDF library
2026-01-21 15:16:23 +11:00
Ephraim Duncan
ed7a0011c7
fix: sync envelope state after direct link changes ( #2257 )
2026-01-21 14:43:24 +11:00
Ted Liang
158b36a9b7
fix: security CVE-2026-22817 CVE-2026-22818 ( #2390 )
2026-01-15 18:27:04 +11:00
Lucas Smith
fabd69bd62
build: upgrade simplewebauthn packages from v9 to v13 ( #2389 )
...
The v9 packages are deprecated. This updates to v13 which includes
breaking API changes: optionsJSON wrapper for auth functions,
renamed properties (authenticator→credential), and base64 encoding
for credential IDs via isoBase64URL helper.
2026-01-15 14:22:37 +11:00
Catalin Pit
bb3e9583e4
feat: add default recipients for teams and orgs ( #2248 )
2026-01-13 20:32:00 +11:00
Lucas Smith
5bc73a7471
chore: npm audit fix ( #2367 )
2026-01-13 16:39:10 +11:00
Lucas Smith
cef7987a72
feat: add audit logs to document details page ( #2379 )
...
- Add collapsible audit logs section with paginated table
- Add View JSON button to inspect raw audit log entries
- Display legacy document ID and recipient roles
- Add admin TRPC endpoint for fetching audit logs
- Add database index on envelopeId for DocumentAuditLog table
<img width="887" height="724" alt="image"
src="https://github.com/user-attachments/assets/aeb904c9-515f-49e1-9f8f-513aef455678 "
/>
2026-01-13 14:18:10 +11:00
Catalin Pit
2f27304750
refactor: simplify field dialog component ( #2369 )
2026-01-13 12:38:10 +11:00