chore: sync upstream documenso/documenso @ 0ecde7a (86 commits) - #3
Merged
Merged
Conversation
## Description - Update the rejected certificate so that is it more clear on who rejected the document. - Updated the audit log generation so that the completed audit log is included ### Before <img width="681" height="597" alt="image" src="https://github.com/user-attachments/assets/3dab41c1-c86f-4555-8d50-3d9245be65d5" /> ### After Note that the order of the recipient is different in this case <img width="818" height="769" alt="image" src="https://github.com/user-attachments/assets/71f0ac12-5859-47b4-8980-2420ef949d18" /> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
## 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>
## Description Resolves an issue where individual plan customers who cancel are not correctly put down to the free plan. To resolve this, we delete the subscription on the stripe subscription delete webhook. Since the customerId is stored on the organisation they can still access their old invoices.
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
Co-authored-by: Catalin Pit <catalinpit@gmail.com>
Reject disposable / throwaway email providers (mailinator, yopmail, 10minutemail, ...) across all signup paths: email/password, Google, Microsoft, personal OIDC and organisation OIDC. Backed by the mailchecker package (offline, ~55k domains, subdomain-aware). Exposes a SIGNUP_DISPOSABLE_EMAIL error code so the signup form and SSO redirect alert can show a dedicated message instead of the generic 'signup disabled' one.
Pulls 86 commits of upstream changes since fork at 2026-05-04 — first
upstream sync since initial Railway eject.
Notable upstream features (review for adoption):
- feat: protect signing URLs from indexing, caching, embedding (#2469)
- feat: block disposable email signups (#2883) + admin-configurable
email blocklist (#2884)
- feat: granular signup disable flags (#2765) — new env vars
NEXT_PUBLIC_DISABLE_{EMAIL_PASSWORD,GOOGLE,MICROSOFT,OIDC}_SIGNUP
- feat: support DOCX uploads via Gotenberg (#2801) — opt-in via new
NEXT_PRIVATE_DOCUMENT_CONVERSION_URL env (requires Gotenberg service)
- feat: add custom branding for signing pages (#2785) — new schema cols
- feat(storage): add native Azure Blob transport (#2871) — irrelevant on S3
- feat: add pending signed PDF downloads (#2730)
- feat: add new field overflow methods (#2715)
- feat: add DD-MM-YYYY date format variants (#2767)
- feat: add header metadata to emails (#2927)
- feat: add stripe sync (#2877) — irrelevant unless billing enabled
- feat: admin org deletion + admin user creation + admin org stats
Schema: 4 additive Prisma migrations (all ADD COLUMN with defaults or
CREATE TABLE — forward-safe). Postgres backup recommended pre-deploy
since Railway has no native backups.
CI: re-applied all 15 upstream-only guards (if: github.repository ==
'documenso/documenso') stripped by the --strategy-option=theirs merge.
DEVALOK_FORK_NOTES.md updated with sync history.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
First upstream sync since initial Railway eject (2026-05-04). Pulls 86 upstream commits through commit `0ecde7a` (2026-06-04).
Adoption candidates
Review which of these you want to enable post-merge — most need explicit config:
Security / signup hygiene (low risk, recommended)
UX (opt-in)
New external dep (opt-in)
Irrelevant for current Devalok use
Schema migrations (4, all additive)
All forward-additive. No drops/renames/required-without-default on existing rows.
Pre-merge checklist
CI
All 15 upstream-only guards re-applied (`if: github.repository == 'documenso/documenso'`). Stripped by `--strategy-option=theirs` merge then manually reinstated. Verified count = 15 across 14 files.
DO NOT auto-merge
Schema migrations + Postgres has no backup. Review + backup first.
🤖 Generated with Claude Code