Skip to content

chore: sync upstream documenso/documenso @ 0ecde7a (86 commits) - #3

Merged
Mudit-Lal merged 4014 commits into
mainfrom
chore/sync-upstream-2026-06-04
Jun 4, 2026
Merged

Mudit-Lal merged 4014 commits into
mainfrom
chore/sync-upstream-2026-06-04

Conversation

@Mudit-Lal

Copy link
Copy Markdown
Contributor

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)

  • #2469 `feat: protect signing URLs from indexing, caching, embedding` — automatic, no config
  • #2883 `feat: block disposable email signups` — admin toggle
  • #2884 `feat: admin-configurable email blocklist` — admin UI
  • #2765 Granular signup-disable env vars added:
    • `NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD_SIGNUP`
    • `NEXT_PUBLIC_DISABLE_GOOGLE_SIGNUP`
    • `NEXT_PUBLIC_DISABLE_MICROSOFT_SIGNUP`
    • `NEXT_PUBLIC_DISABLE_OIDC_SIGNUP`

UX (opt-in)

  • #2785 Custom CSS branding for signing pages (new schema: `brandingColors`, `brandingCss`)
  • #2730 Pending signed PDF downloads
  • #2715 New field overflow methods
  • #2767 DD-MM-YYYY date format variants (India default)
  • #2927 Header metadata in emails

New external dep (opt-in)

  • #2801 `feat: support DOCX uploads via Gotenberg` — requires a separate Gotenberg service. Skip unless we want DOCX signing. Env: `NEXT_PRIVATE_DOCUMENT_CONVERSION_URL`

Irrelevant for current Devalok use

  • #2877 Stripe sync — billing-only
  • #2871 Native Azure Blob transport — on S3
  • Admin-org tooling (#2904, #2795, #2082) — useful only with multi-org admin workflows

Schema migrations (4, all additive)

Migration Risk
`20260504_add_allow_personal_organisations_to_auth_portal` ADD COLUMN with default. Safe.
`20260507_add_custom_css_branding` ADD COLUMN nullable + with default. Safe.
`20260529_add_org_rate_limits` ADD COLUMN with backfill + new `OrganisationMonthlyStat` table. Safe.
`20260603_add_email_reports_stat` ADD COLUMN with default. Safe.

All forward-additive. No drops/renames/required-without-default on existing rows.

Pre-merge checklist

  • Take Postgres backup — Railway has no native backups. Run `pg_dump` from local machine using DATABASE_URL from Railway dashboard, or have Claude exec inside container (requires explicit auth).
  • Review the migration files in `packages/prisma/migrations/2026{0504,0507,0529,0603}*`
  • After merge: monitor Railway deploy + `/api/health` for 5 min
  • If signing breaks: `/api/certificate-status` should still return `isAvailable: true`

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

dguyen and others added 30 commits February 12, 2026 16:06
## 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>
Mythie and others added 28 commits May 26, 2026 15:40
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>
@Mudit-Lal
Mudit-Lal merged commit 0790d22 into main Jun 4, 2026
8 of 10 checks passed
@Mudit-Lal
Mudit-Lal deleted the chore/sync-upstream-2026-06-04 branch June 4, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.