Commit graph

254 commits

Author SHA1 Message Date
Catalin Pit
40aabdcb18
Merge branch 'main' into fix/template-use-error-messages 2026-04-21 09:37:08 +03:00
Lucas Smith
f54a8ed72f
feat: add turnstile captcha to auth flow (#2703) 2026-04-16 14:29:07 +10:00
David Nguyen
5082226e08
fix: brand logo caching (#2699) 2026-04-14 21:18:17 +10:00
Ephraim Duncan
4935f387bf
feat: signing reminders (#1749) 2026-04-14 21:01:53 +10:00
Catalin Pit
085dfe2c77 fix: surface detailed error messages when creating document from template
Previously, all errors during template use showed a generic message.
  Now, server-side error details (e.g. userMessage) are displayed in the
  toast, and AppError instances are re-thrown instead of being swallowed
  by a generic DOCUMENT_SEND_FAILED error.
2026-04-09 13:30:26 +03:00
David Nguyen
6d7bd212bf
fix: clean up duplicate dialogs (#2686) 2026-04-09 14:37:49 +10:00
David Nguyen
283334921b
fix: update team member invitation ux (#2687) 2026-04-09 14:32:29 +10:00
David Nguyen
14b0b4805d
feat: auto insert email and date fields (#2639) 2026-04-08 15:35:08 +10:00
Ephraim Duncan
9bfaa08d38
fix: documents table team email recipient lookup (#2578) 2026-04-07 20:10:38 +00:00
Swalih kolakkadan
6f650e1c2f
feat: add document rename feature (#2542) (#2595) 2026-04-02 19:07:52 +11:00
David Nguyen
b13ec8909c
fix: resolve incorrect recipient comparision check (#2646)
## Description

Resolve issues with comparison checks.

The `envelope-editor-provider.tsx` should be low impact since it's embed
only which will only cause the non relevant attributes (such as sent at)
to be incorrectly mapped

The `auth-provider.tsx` one should have no impact
2026-04-01 16:04:14 +11:00
David Nguyen
e3b7a9e7cb
feat: add ability to save documents as template (#2661) 2026-04-01 16:03:26 +11:00
Catalin Pit
a71c44570b
feat: admin panel org improvements (#2548)
## Description

- Add a new team page showing team details, global settings, members,
and pending invites
- Update the organisation page to display organisation usage and global
settings
- Show the role and ID of each organisation member, with navigation to
their teams

## Checklist

<!--- Please check the boxes that apply to this pull request. -->
<!--- You can add or remove items as needed. -->

- [ ] I have tested these changes locally and they work as expected.
- [ ] I have added/updated tests that prove the effectiveness of these
changes.
- [ ] I have updated the documentation to reflect these changes, if
applicable.
- [ ] I have followed the project's coding style guidelines.
- [ ] I have addressed the code review feedback from the previous
submission, if applicable.
2026-03-27 11:55:33 +02:00
Catalin Pit
f5b3babcbb
feat: display the field id in dev mode (#2658) 2026-03-27 00:40:29 +11:00
Lucas Smith
2346de83a6
fix: replace z.string().email() with RFC 5322 compliant zEmail() (#2656) 2026-03-26 16:31:21 +11:00
Lucas Smith
814f6e62de
fix: replace z.string().email() with RFC 5322 compliant ZEmail/zEmail (#2655) 2026-03-26 13:31:26 +11:00
David Nguyen
53b6078fa9
fix: missing embed direct template email validation (#2635) 2026-03-23 15:12:42 +11:00
Catalin Pit
5be71cca21
feat: add option to disable Document created from template (#2609) 2026-03-23 15:11:42 +11:00
David Nguyen
ace472c294
fix: prevent managers from deleting admin invitations (#2636) 2026-03-20 22:26:59 +11:00
David Nguyen
9cf8ed1d00
fix: resolve envelope editor settings ccer logic (#2628)
## Description

Fix issue where having a CCer for a draft document would prevent
changing the date/timezone and some other settings.
2026-03-19 14:21:28 +11:00
David Nguyen
48fb066b9a
feat: allow editing pending envelope titles (#2604) 2026-03-19 14:03:30 +11:00
David Nguyen
0b605d61c6
feat: add envelope pdf replacement (#2602) 2026-03-18 22:53:28 +11:00
Ted Liang
5dcdac7ecd
feat: support language in embedding (#2364) 2026-03-18 16:17:23 +11:00
Catalin Pit
455fef70bd
fix: folder view all page nested navigation and search filtering (#2450)
Add parentId query param support to documents/templates folder index
pages so View All correctly shows subfolders. Fix search not filtering
unpinned folders on documents page and broken mt- Tailwind class on
templates page.
2026-03-17 12:02:32 +02:00
Ephraim Duncan
36bbd97514
feat: add organisation template type (#2611) 2026-03-17 01:29:34 +11:00
Ephraim Duncan
66e357c9b3
feat: add email domain restriction for signups (#2266)
Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
2026-03-14 16:32:34 +11:00
Catalin Pit
32c54e1245
fix: hide name/email in embed signing when provided via prop (#2600)
## Description

When signing via embed, recipient name and email provided through the
embed context were ignored if the DB recipient record had empty values.

This fix adds:
- the signing context's fullName and email as fallbacks in the recipient
payload
- keeps the form in sync with values instead of defaultValues
- ensures the override payload is sent even when the form is hidden
2026-03-13 21:59:10 +11:00
Ted Liang
83fbc70a1c
refactor: avoid recipient color duplication (#2355) 2026-03-13 15:52:15 +11:00
Lucas Smith
6b1b1d0417
fix: improve webhook execution (#2608)
Webhook URLs were being fetched without validating whether they
resolved to private/loopback addresses, exposing the server to SSRF.

Current SSRF is best effort and fail open, you should never host
services that
you cant risk exposure of.

This extracts webhook execution into a shared module that validates
URLs against private IP ranges (including DNS resolution), enforces
timeouts, and disables redirect following. The resend route now
queues through the job system instead of calling fetch inline.
2026-03-13 15:02:09 +11:00
David Nguyen
8d97f1dcfa
fix: resolve error flash on page refresh (#2606) 2026-03-13 12:37:30 +11:00
David Nguyen
e67e19358a
fix: add hipaa flag (#2603) 2026-03-13 12:06:10 +11:00
Joshua Sharp
4751c9cecc
fix: template description overflow (#2605) 2026-03-12 18:15:21 +11:00
Lucas Smith
af346b179c
feat: add recipient role editing and audit log PDF download in admin (#2594)
- Allow admins to update recipient role from document detail page
- Add download button to export audit logs as PDF
- Display recipient status details in accordion
- Add LocalTime component with hover popover for timestamps
2026-03-10 21:41:46 +11:00
Lucas Smith
cc71c7d9ba
fix: add cmaps (#2588) 2026-03-09 14:07:13 +11:00
Lucas Smith
f82bf97480
fix: only use embed hash name/email as fallback when recipient values are blank (#2586)
For document signing embeds, the hash-provided name and email should
only
be used when the recipient doesn't already have values set. For template
signing, the hash values are always allowed.

Also makes the email input editable in V1 embeds when the recipient has
no email, matching V2 behavior.

Ref: documenso/embeds#53
2026-03-09 13:30:27 +11:00
David Nguyen
ef57c8448a
fix: dropdown fields (#2584) 2026-03-09 12:19:20 +11:00
Catalin Pit
da7b5d12f8
fix: make signing page left-hand sidebar collapsible (#2541) 2026-03-09 11:45:28 +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
6c8726b58c
fix: performance improvements (#2581) 2026-03-09 10:22:57 +11:00
David Nguyen
7ea664214a
feat: add embedded envelopes (#2564)
## Description

Add envelopes V2 embedded support

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-06 14:11:27 +11:00
Konrad
c63b4ca3cc
fix(i18n): mark dropdown and radio placeholder for translation (#2537) 2026-03-06 13:05:03 +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
Konrad
525dd92a56
fix(i18n): mark SUBSCRIPTION_STATUS_MAP for translation (#2515) 2026-03-05 14:42:40 +11:00
Konrad
dfbf68e4cd
fix(i18n): mark editor field number form placeholder for translation (#2536) 2026-03-05 14:31:24 +11:00
Lucas Smith
7d3a56a006
feat: add admin ability to move subscription between orgs (#2558)
## Summary

- Adds a new admin action to move a subscription (and Stripe customerId)
from one organisation to another owned by the same user
- The target organisation must be on the free plan (no active
subscription) — enforces paid → free only
- The source organisation's claim is reset to the free plan after the
move

## How it works

A "Move Subscription" option appears in the actions dropdown of the
organisations table (on the admin user detail page) for any org with an
active or past-due subscription. Clicking it opens a dialog where the
admin selects a target org from a filtered list of eligible (free-plan)
orgs owned by the same user.

The backend performs the swap atomically in a single Prisma transaction:
1. Deletes any stale inactive subscription on the target org
2. Moves the `customerId` from source to target org
3. Reassigns the `Subscription` record to the target org
4. Copies claim entitlements to the target org
5. Resets the source org's claim to FREE

No Stripe API calls are made — the Stripe subscription and customer
remain unchanged; only the DB-level org association is updated.

## Files changed

- **New:**
`packages/trpc/server/admin-router/swap-organisation-subscription.types.ts`
— Zod schemas
- **New:**
`packages/trpc/server/admin-router/swap-organisation-subscription.ts` —
Admin mutation
- **New:**
`apps/remix/app/components/dialogs/admin-swap-subscription-dialog.tsx` —
Dialog component
- **Modified:** `packages/trpc/server/admin-router/router.ts` — Register
route
- **Modified:**
`apps/remix/app/components/tables/admin-organisations-table.tsx` — Add
action menu item
2026-03-04 22:34:53 +11:00
Konrad
92d82c0423
fix(i18n): mark supported languages for translation (#2377) 2026-02-26 12:06:18 +11:00
Lucas Smith
006b1d0a57
feat: per-recipient envelope expiration (#2519) 2026-02-20 11:36:20 +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