Commit graph

77 commits

Author SHA1 Message Date
Lucas Smith
f54a8ed72f
feat: add turnstile captcha to auth flow (#2703) 2026-04-16 14:29:07 +10:00
jpsimonsen
1c82595c12
feat: webhook allow private hosts (#2654) 2026-04-01 15:22:07 +11:00
Lucas Smith
ad559f72dd
feat: add BullMQ background job provider with Bull Board dashboard (#2657)
Add a new BullMQ/Redis-backed job provider as an alternative to the
existing Inngest and Local providers. Includes Bull Board UI for job
monitoring at /api/jobs/board (admin-only in production, open in dev).
2026-04-01 13:07:47 +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
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
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
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
Lucas Smith
7a94ee3b83
feat: add ai detection for recipients and fields (#2271)
Use Gemini to handle detection of recipients and fields within
documents.

Opt in using organisation or team settings.

Replaces #2128 since the branch was cursed and would include
dependencies that weren't even in the lock file.



https://github.com/user-attachments/assets/e6cbb58f-62b9-4079-a9ae-7af5c4f2e4ec
2025-12-03 23:39:41 +11:00
Lucas Smith
11a56f3228
chore: telemetry (#2240) 2025-11-25 16:01:31 +11:00
Matteo Sillitti
921c3d1ff3
fix: give the possibility to use internal webapp url in browserless requests (get-certificate-pdf and get-audit-logs-pdf) (#2127) 2025-11-22 20:36:24 +11:00
Karlo
f5d63fb76c
feat: add option to change or disable OIDC login prompt parameter (#2037) 2025-11-20 13:08:36 +11:00
Ephraim Duncan
35250fa308
feat: server port configurable via PORT env (#2097) 2025-10-27 17:24:24 +11:00
Ephraim Duncan
4a3859ec60
feat: signin with microsoft (#1998) 2025-10-22 12:05:11 +11:00
Catalin Pit
231ef9c27e
chore: add support option (#1853) 2025-08-19 20:59:03 +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
David Nguyen
7487399123
feat: add more api logs (#1870)
Adds more detailed API logging using Pino
2025-06-30 19:46:32 +10:00
David Nguyen
24f3ecd94f fix: remove marketing url 2025-02-19 16:45:54 +11:00
David Nguyen
df8ea09021 fix: add oidc env variables 2025-02-14 18:11:54 +11:00
David Nguyen
92db4d68db fix: cleanup env variables 2025-02-13 20:56:44 +11:00
David Nguyen
98d85b086d
feat: add initial api logging (#1494)
Improve API logging and error handling between client and server side.
2024-11-28 16:05:37 +07:00
Jordan Labrosse
dcc2ac8a71
feat(email): support configurable SMTP service (#1447) 2024-11-06 19:00:59 +09:00
david-loe
6c3acb1c2d
feat: add and use NEXT_PRIVATE_INTERNAL_WEBAPP_URL (#1298)
Introduces `NEXT_PRIVATE_INTERNAL_WEBAPP_URL` used for requesting the
app by itself (backend) [e.g. for background jobs]
2024-09-06 20:37:10 +10:00
Jacob Flaherty
f74265850b
chore: Update .env.example commenting (#1257)
Adds documentation on how to setup Google for OAuth when self hosting Documenso.
2024-08-08 09:58:27 +10:00
Rene Steen
5582f29bda
feat: make oidc sign in button text configurable (#1209)
Adds a configurable label for the OIDC connection's button.
2024-07-31 22:22:52 +10:00
Rene Steen
7ed0a909eb
feat: allow oidc only signup and trust mail addresses (#1208)
This change will allow for user registration when users are federated
through oidc provider even if the general signup is disabled
additionally the users email address can now be automatically set as
trusted. This will force corporate users to signin using SSO instead of
creating manual accounts.
2024-07-31 15:38:12 +10:00
Rene Steen
b0c081683f
feat: allow anonymous smtp authentication (#1204)
Introduces the ability to use anonymous SMTP authentication where no username or password is provided.

Also introduces a new flag to disable TLS avoiding cases also where STARTTLS is used despite `secure` being
set to `false`
2024-07-09 10:39:59 +10:00
Mythie
8bb936aa51
chore: add env vars to example .env 2024-06-17 17:02:00 +10:00
Lucas Smith
d8d0734680
Merge branch 'main' into mk/oidc-auth 2024-05-30 15:41:36 +10:00
Timur Ercan
babdbccbd3
chore: change default sender name to match prod (#1161)
change the default sender to sth. nicer
2024-05-22 19:19:29 +07:00
Matt Kilgore
bd4a1c4c09 fix: update .env.example 2024-04-13 21:06:24 -04:00
Adithya Krishna
2ef619226e
chore: remove duplicate env vars (#1075)
**Description:**

The `.env.example` had duplicate keys so removed them in this PR

Signed-off-by: Adithya Krishna <aadithya794@gmail.com>
2024-04-04 19:05:24 +07:00
David Nguyen
a54eb54ef7
feat: add document auth (#1029) 2024-03-28 13:13:29 +08:00
Valentin Lestoille
994368156f
Additional comment 2024-03-25 08:23:28 +01:00
Valentin Lestoille
c71347aeb9
S3Client: Add forcePathStyle 2024-03-22 15:46:22 +01:00
Lucas Smith
3c6cc7fd46
Merge branch 'main' into chore/add-rust-signer 2024-03-18 12:24:59 +11:00
Mythie
8859b2779f chore: use rust based cms signing 2024-03-15 22:29:15 +11:00
Mythie
415f79f821
fix: update docker docs and compose files 2024-03-10 11:13:05 +11:00
Sumit Bisht
f5930dc934
perf: mentioned type and size of the doc to be uploaded (#867)
explicitly mentioned "PDF" to upload, and added a toast if pdf size is
greater than 50mb

fixes: #621
2024-02-05 12:50:35 +11:00
Adithya Krishna
620ae41fcc feat: added password validation (#469)
This PR Fixes #464
2024-01-30 14:26:47 +11:00
Lucas Smith
f3df0d9c13
fix: add env example crypto defaults back 2024-01-29 16:24:13 +11:00
David Nguyen
d766b58f42
feat: add server crypto (#863)
## Description

Currently we are required to ensure PII data is not passed around in
search parameters and in the open for GDPR reasons.

Allowing us to encrypt and decrypt values with expiry dates will allow
us to ensure this doesn't happen.

## Changes Made

- Added TPRC router for encryption method

## Testing Performed

- Tested encrypting and decrypting data with and without `expiredAt`
- Tested via directly accessing API and also via trpc in react
components
- Tested parsing en email search param in a page and decrypting it
successfully

## Checklist

- [X] I have tested these changes locally and they work as expected.
- [X] I have followed the project's coding style guidelines.
2024-01-25 16:07:57 +11:00
Lucas Smith
6e10947d00
Merge branch 'main' into feat/732-toggle-signup-form 2023-12-15 21:05:21 +11:00
David Nguyen
88534fa1c6
feat: add multi subscription support (#734)
## Description

Previously we assumed that there can only be 1 subscription per user.
However, that will soon no longer the case with the introduction of the
Teams subscription.

This PR will apply the required migrations to support multiple
subscriptions.

## Changes Made

- Updated the Prisma schema to allow for multiple `Subscriptions` per
`User`
- Added a Stripe `customerId` field to the `User` model
- Updated relevant billing sections to support multiple subscriptions

## Testing Performed

- Tested running the Prisma migration on a demo database created on the
main branch

Will require a lot of additional testing.

## Checklist

- [ ] I have tested these changes locally and they work as expected.
- [ ] I have added/updated tests that prove the effectiveness of these
changes.
- [X] I have followed the project's coding style guidelines.

## Additional Notes

Added the following custom SQL statement to the migration:

> DELETE FROM "Subscription" WHERE "planId" IS NULL OR "priceId" IS
NULL;

Prior to deployment this will require changes to Stripe products:
- Adding `type` meta attribute

---------

Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
2023-12-14 15:22:54 +11:00
Navindu Amarakoon
49736d2587
Merge branch 'documenso:main' into feat/732-toggle-signup-form 2023-12-09 11:55:55 +05:30
Navindu Amarakoon
3b3987dcf8 chore: add env to env.example 2023-12-09 11:43:30 +05:30
Lucas Smith
38e5b1d3ce chore: use minio as s3 storage for document during development (#588) 2023-12-08 21:08:30 +11:00
Nafees Nazik
792158c2cb feat: add two factor auth (#643)
Add two factor authentication for users who wish to enhance the security of their accounts.
2023-12-01 20:06:32 +11:00
David Nguyen
2856cd9c15 feat: add free tier Stripe subscription 2023-11-06 13:02:19 +11:00
pit
3cbd4a2680 chore: use env vars for tests 2023-11-06 13:02:19 +11:00
Mythie
187485678a feat: add resend mail transport 2023-11-06 13:01:45 +11:00