Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
9b59f1a
v2.12.0
Mythie Jun 16, 2026
d5ce222
feat: add CSC AES/QES signing (v1 instance-wide config) (#2874)
Mythie Jun 16, 2026
4f346d3
feat: add cancellable document status (#2992)
Mythie Jun 18, 2026
a99bdf5
fix: include envelopeId in webhook payload (#2998)
Mythie Jun 18, 2026
40d20ad
v2.13.0
Mythie Jun 18, 2026
948d1bb
fix: improve team member removal ux (#3001)
dguyen Jun 22, 2026
219db32
fix: only send S3 checksums when required to support S3-compatible st…
yashs33244 Jun 22, 2026
306e7fe
fix: render unicode characters in typed signatures (#2728)
AbdelrhmanAbdelhamed Jun 22, 2026
6ad1a2d
fix: signing request email renders blank when organisation/team brand…
NandiniDhanrale Jun 22, 2026
dee3259
fix: remove old dialogs (#3006)
dguyen Jun 22, 2026
0bf58ca
feat: add custom brand colours to emails (#3005)
Mythie Jun 22, 2026
c23d739
feat: allow additional envelope duplicate settings (#3008)
dguyen Jun 22, 2026
e8ed1c3
fix: respect branding enabled for recipient routes (#3009)
Mythie Jun 22, 2026
783123f
chore: extract translations (#2987)
github-actions[bot] Jun 22, 2026
d9b7722
fix: correctly use default distribute envelope tab (#3010)
dguyen Jun 22, 2026
2f24a8e
fix: set send status on resend (#3011)
dguyen Jun 22, 2026
f2525ae
feat: add API endpoint to reject documents on behalf of recipients (#…
Mythie Jun 22, 2026
04f6e76
feat: cap automated reminders before resend (#3016)
Mythie Jun 23, 2026
b37529a
fix: show warning on overlapping fields (#3017)
Mythie Jun 23, 2026
187b612
chore: add translations (#3012)
Mythie Jun 23, 2026
e0ef11e
chore(i18n): update Polish translation (#3020)
mKoonrad Jun 25, 2026
9c5eb43
fix: migrate emails to jobs (#3024)
dguyen Jun 25, 2026
94adea1
chore: general repo maintenance and docs cleanup (#3030)
Mythie Jun 25, 2026
241929b
feat: add API endpoints for downloading certificate and audit log PDF…
Mythie Jun 25, 2026
96ab78c
fix: resolve permission issues (#3029)
dguyen Jun 26, 2026
c219305
chore: add tests for cert and audit log download via api (#3043)
Mythie Jun 27, 2026
037170f
v2.14.0
Mythie Jun 28, 2026
977d073
fix: auto select field on drop (#3028)
dguyen Jun 28, 2026
97835b8
feat: add field multiselect (#3031)
dguyen Jun 28, 2026
381293a
fix: invite email placeholder (#3045)
Mythie Jun 28, 2026
8f68393
fix: tighten permission and validation checks (#3046)
Mythie Jun 29, 2026
1f170ef
fix: scope organisation group deletion (#3047)
dguyen Jun 29, 2026
a70b070
fix: add missing teams branding guard (#3049)
dguyen Jun 29, 2026
9cdd2e7
fix(email): render Preview inside Body across all email templates (#3…
martindglaser Jun 29, 2026
7062fad
fix: add additional team group permission checks (#3052)
dguyen Jun 30, 2026
3b110cf
fix: french translation for confirmation message (#3050)
GregCnpp Jun 30, 2026
562d78e
feat: add granular signin disable flags and OIDC auto-redirect (#2857)
kengru-digito Jun 30, 2026
5a8335e
fix: webhook payload contains stale deletedAt on document cancellatio…
Arunkoo Jul 1, 2026
393b51d
fix: add sticky form update button (#3056)
dguyen Jul 2, 2026
2332b03
chore: extract translations (#3013)
github-actions[bot] Jul 2, 2026
337f85f
chore: upgrade libpdf (#3058)
Mythie Jul 2, 2026
d35d13d
fix: remove presigned branding upload (#3053)
dguyen Jul 2, 2026
a55e6d9
fix: block invisible & control characters and URLs in names (#2978)
catalinpit Jul 2, 2026
50f272b
fix: admin organisation limits and usage UI (#3014)
catalinpit Jul 2, 2026
a276e18
chore: upgrade deps (#3065)
Mythie Jul 8, 2026
1b1e3d1
Add "Apply Your License Key" self-hosting guide (#3077)
roshboi Jul 8, 2026
400b6a2
feat: enable real-time validation for email and password fields (#2204)
tanushree-coder-girl Jul 10, 2026
21cff7a
docs: update rate limit doc for organisation limit for self hosters (…
roshboi Jul 12, 2026
c5efd34
v2.15.0
Mythie Jul 13, 2026
4e0038f
chore: extract translations (#3060)
github-actions[bot] Jul 14, 2026
db031e2
fix: replace tailwind class typos
ephraimduncan Jul 14, 2026
b16f979
fix: improve editor autosave (#3057)
dguyen Jul 14, 2026
12223c7
fix(ui): improve destructive button contrast in dark mode (#3071)
ephraimduncan Jul 14, 2026
d6268b1
fix: missing noreply email for resend (#3094)
dguyen Jul 14, 2026
5c41740
chore: deps upgrade 2026-07-14 (#3095)
Mythie Jul 14, 2026
3ff7f70
feat: redesign api tokens settings page (#3076)
ephraimduncan Jul 15, 2026
40472bc
fix: react hydration errors (#3099)
Mythie Jul 16, 2026
ba0dead
fix: render error messages for invalid templates (#3088)
dguyen Jul 20, 2026
4b72e7d
feat: add document preferences reset dialog (#3039)
catalinpit Jul 20, 2026
cc5ef3d
feat: add branding preferences reset dialog (#3032)
catalinpit Jul 20, 2026
3cf2963
v2.16.0
Mythie Jul 21, 2026
7f85388
fix: increase global API rate limits to 1000/min (#3081)
Mythie Jul 21, 2026
2efa6cb
Merge remote-tracking branch 'upstream/main' into chore/sync-upstream…
Jul 21, 2026
640bac3
chore: refactor code structure
Jul 21, 2026
a74f926
chore: update translations to reflect the rebranding from Documenso t…
Jul 21, 2026
4787c67
chore: update legacy service account emails
Jul 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 24 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ NEXT_PRIVATE_DATABASE_URL="postgres://keepcontracts:password@127.0.0.1:54320/kee
NEXT_PRIVATE_DIRECT_DATABASE_URL="postgres://keepcontracts:password@127.0.0.1:54320/keepcontracts"

# [[SIGNING]]
# The transport to use for document signing. Available options: local (default) | gcloud-hsm
# The transport to use for document signing. Available options: local (default) | gcloud-hsm | csc
NEXT_PRIVATE_SIGNING_TRANSPORT="local"
# OPTIONAL: The passphrase to use for the local file-based signing transport.
NEXT_PRIVATE_SIGNING_PASSPHRASE=
Expand All @@ -70,6 +70,14 @@ NEXT_PRIVATE_SIGNING_GCLOUD_HSM_CERT_CHAIN_FILE_PATH=
NEXT_PRIVATE_SIGNING_GCLOUD_HSM_CERT_CHAIN_CONTENTS=
# OPTIONAL: The Google Secret Manager path to retrieve the certificate for the gcloud-hsm signing transport.
NEXT_PRIVATE_SIGNING_GCLOUD_HSM_SECRET_MANAGER_CERT_PATH=
# OPTIONAL: The base URL of the Cloud Signature Consortium (CSC) provider for the csc signing transport.
NEXT_PRIVATE_SIGNING_CSC_PROVIDER_BASE_URL=
# OPTIONAL: The OAuth client ID registered with the CSC provider for the csc signing transport.
NEXT_PRIVATE_SIGNING_CSC_OAUTH_CLIENT_ID=
# OPTIONAL: The OAuth client secret registered with the CSC provider for the csc signing transport.
NEXT_PRIVATE_SIGNING_CSC_OAUTH_CLIENT_SECRET=
# OPTIONAL: Default signature level for envelopes created on a CSC instance when the caller doesn't specify one. Available options: AES (default) | QES. Explicit AES/QES requests always pass through unchanged.
NEXT_PRIVATE_SIGNING_CSC_SIGNATURE_LEVEL=
# OPTIONAL: Comma-separated list of timestamp authority URLs for PDF signing (enables LTV and archival timestamps).
NEXT_PRIVATE_SIGNING_TIMESTAMP_AUTHORITY=
# OPTIONAL: Contact info to embed in PDF signatures. Defaults to the webapp URL.
Expand All @@ -95,7 +103,7 @@ NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID="documenso"
NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY="password"

# [[SMTP]]
# OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | mailchannels
# OPTIONAL: Defines the transport to use for sending emails. Available options: smtp-auth (default) | smtp-api | resend | mailchannels
NEXT_PRIVATE_SMTP_TRANSPORT="smtp-auth"
# OPTIONAL: Defines the host to use for sending emails.
NEXT_PRIVATE_SMTP_HOST="127.0.0.1"
Expand Down Expand Up @@ -172,6 +180,20 @@ NEXT_PUBLIC_DISABLE_MICROSOFT_SIGNUP=
NEXT_PUBLIC_DISABLE_OIDC_SIGNUP=
# OPTIONAL: Comma-separated list of email domains allowed to sign up (e.g., example.com,acme.org).
NEXT_PRIVATE_ALLOWED_SIGNUP_DOMAINS=
# OPTIONAL: Set to "true" to disable all signin methods (email, Google, Microsoft, OIDC).
NEXT_PUBLIC_DISABLE_SIGNIN=
# OPTIONAL: Set to "true" to disable email/password signin only. Also closes /forgot-password and /reset-password.
NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD_SIGNIN=
# OPTIONAL: Set to "true" to hide the Google signin button.
NEXT_PUBLIC_DISABLE_GOOGLE_SIGNIN=
# OPTIONAL: Set to "true" to hide the Microsoft signin button.
NEXT_PUBLIC_DISABLE_MICROSOFT_SIGNIN=
# OPTIONAL: Set to "true" to hide the OIDC signin button.
NEXT_PUBLIC_DISABLE_OIDC_SIGNIN=
# OPTIONAL: When OIDC is the only enabled signin transport, /signin auto-redirects
# to the OIDC provider (rendering only a spinner). Set to "true" to disable this
# and keep showing the signin page.
NEXT_PUBLIC_DISABLE_OIDC_AUTO_REDIRECT=
# OPTIONAL: Set to true to use internal webapp url in browserless requests.
NEXT_PUBLIC_USE_INTERNAL_URL_BROWSERLESS=false

Expand Down
3 changes: 1 addition & 2 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ body:
label: Browser [e.g., Chrome, Firefox]
- type: input
attributes:
label: Version [e.g., 2.0.1]
label: Version [e.g., 2.13.0]
- type: checkboxes
attributes:
label: Please check the boxes that apply to this issue report.
Expand All @@ -44,4 +44,3 @@ body:
- label: I have included relevant environment information.
- label: I have included any relevant screenshots.
- label: I understand that this is a voluntary contribution and that there is no guarantee of resolution.
- label: I want to work on creating a PR for this issue if approved
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Security vulnerability
url: https://github.com/documenso/documenso/security/advisories/new
about: Please report security vulnerabilities privately via GitHub Security Advisories. Do not open a public issue.
- name: Questions & Discussions
url: https://github.com/documenso/documenso/discussions
about: Ask questions, share ideas, and discuss Documenso with the community.
- name: Discord
url: https://documen.so/discord
about: Chat with the community and the team.
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,3 @@ body:
- label: I have explained the use case or scenario for this feature.
- label: I have included any relevant technical details or design suggestions.
- label: I understand that this is a suggestion and that there is no guarantee of implementation.
- label: I want to work on creating a PR for this issue if approved
11 changes: 0 additions & 11 deletions .github/ISSUE_TEMPLATE/improvement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,6 @@ body:
description: 'Are there any additional context or information that might be relevant to the improvement suggestion.'
validations:
required: false
- type: dropdown
id: assignee
attributes:
label: 'Do you want to work on this improvement?'
multiple: false
options:
- 'No'
- 'Yes'
default: 0
validations:
required: true
- type: checkboxes
attributes:
label: 'Please check the boxes that apply to this improvement suggestion.'
Expand Down
11 changes: 11 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
<!--
We are no longer accepting external pull requests.

Aside from a small group of trusted contributors we reach out to directly,
new external PRs will usually be closed with a request to open an issue instead.
This is a security decision. See https://documenso.com/blog/why-we-re-pausing-external-pull-requests

If you're a trusted contributor or maintainer, continue below.
Otherwise, please open a detailed issue: https://github.com/documenso/documenso/issues/new/choose
-->

## Description

<!--- Describe the changes introduced by this pull request. -->
Expand Down
40 changes: 0 additions & 40 deletions .github/PULL_REQUEST_TEMPLATE/test-addition.md

This file was deleted.

8 changes: 1 addition & 7 deletions .github/workflows/first-interaction.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
name: 'Welcome New Contributors'

on:
pull_request:
types: ['opened']
issues:
types: ['opened']

permissions:
pull-requests: write
issues: write

jobs:
Expand All @@ -20,10 +17,7 @@ jobs:
- uses: actions/first-interaction@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
pr-message: |
Thank you for creating your first Pull Request and for being a part of the open signing revolution! 💚🚀
<br /> Feel free to hop into our community in [Discord](https://documen.so/discord)
issue-message: |
Thank you for opening your first issue and for being a part of the open signing revolution!
<br /> One of our team members will review it and get back to you as soon as it possible 💚
<br /> One of our team members will review it and get back to you as soon as possible 💚
<br /> Meanwhile, please feel free to hop into our community in [Discord](https://documen.so/discord)
62 changes: 0 additions & 62 deletions .github/workflows/issue-assignee-check.yml

This file was deleted.

63 changes: 0 additions & 63 deletions .github/workflows/pr-review-reminder.yml

This file was deleted.

27 changes: 0 additions & 27 deletions .github/workflows/semantic-pull-requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,6 @@ jobs:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- name: Check PR creator's previous activity
id: check_activity
run: |
CREATOR=$(curl -s "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}" | jq -r '.user.login')
ACTIVITY=$(curl -s "https://api.github.com/search/commits?q=author:${CREATOR}+repo:${{ github.repository }}" | jq -r '.total_count')
if [ "$ACTIVITY" -eq 0 ]; then
echo "::set-output name=is_new::true"
else
echo "::set-output name=is_new::false"
fi

- name: Count PRs created by user
id: count_prs
run: |
CREATOR=$(curl -s "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}" | jq -r '.user.login')
PR_COUNT=$(curl -s "https://api.github.com/search/issues?q=type:pr+is:open+author:${CREATOR}+repo:${{ github.repository }}" | jq -r '.total_count')
echo "::set-output name=pr_count::$PR_COUNT"

- uses: amannn/action-semantic-pull-request@v5
id: lint_pr_title
env:
Expand All @@ -44,19 +26,10 @@ jobs:
with:
header: pr-title-lint-error
message: |
Hey There! and thank you for opening this pull request! 📝👋🏼

We require pull request titles to follow the [Conventional Commits Spec](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted.

Details:

```
${{ steps.lint_pr_title.outputs.error_message }}
```

- if: ${{ steps.lint_pr_title.outputs.error_message == null && steps.check_activity.outputs.is_new == 'false' && steps.count_prs.outputs.pr_count < 2}}
uses: marocchino/sticky-pull-request-comment@v2
with:
header: pr-title-lint-error
message: |
Thank you for following the naming conventions for pull request titles! 💚🚀
2 changes: 1 addition & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
stale-pr-message: 'This PR has not seen activitiy for a while. It will be closed in 30 days unless further activity is detected.'
close-pr-message: 'This PR has been closed because of inactivity.'
exempt-pr-labels: 'WIP,on-hold,needs review'
exempt-issue-labels: 'WIP,on-hold,needs review,roadmap,assigned,needs triage'
exempt-issue-labels: 'WIP,on-hold,needs review,roadmap,status: assigned,status: triage'
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,6 @@ tmp/
deploy/gcp/config.sh
deploy/gcp/*.p12
deploy/gcp/*.pem

# local dev signing certificate — never commit
certs/
3 changes: 1 addition & 2 deletions .gitpod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ vscode:
extensions:
- aaron-bond.better-comments
- bradlc.vscode-tailwindcss
- dbaeumer.vscode-eslint
- esbenp.prettier-vscode
- biomejs.biome
- mikestead.dotenv
- unifiedjs.vscode-mdx
- GitHub.vscode-pull-request-github
Expand Down
2 changes: 1 addition & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
legacy-peer-deps = true
prefer-dedupe = true
min-release-age = 7
# min-release-age = 7
Loading
Loading