[PR #1820] [MERGED] feat: add organisations #1870

Closed
opened 2026-02-26 20:31:26 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/documenso/documenso/pull/1820
Author: @dguyen
Created: 6/3/2025
Status: Merged
Merged: 6/10/2025
Merged by: @dguyen

Base: mainHead: feat/organisations


📝 Commits (10+)

📊 Changes

631 files changed (+37654 additions, -25733 deletions)

View changed files

📝 .cursorrules (+45 -18)
apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx (+197 -0)
apps/remix/app/components/dialogs/claim-create-dialog.tsx (+90 -0)
apps/remix/app/components/dialogs/claim-delete-dialog.tsx (+96 -0)
apps/remix/app/components/dialogs/claim-update-dialog.tsx (+92 -0)
📝 apps/remix/app/components/dialogs/document-delete-dialog.tsx (+0 -1)
📝 apps/remix/app/components/dialogs/document-duplicate-dialog.tsx (+3 -3)
apps/remix/app/components/dialogs/document-move-dialog.tsx (+0 -124)
📝 apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx (+11 -10)
📝 apps/remix/app/components/dialogs/document-resend-dialog.tsx (+2 -2)
📝 apps/remix/app/components/dialogs/folder-create-dialog.tsx (+7 -7)
apps/remix/app/components/dialogs/organisation-create-dialog.tsx (+423 -0)
apps/remix/app/components/dialogs/organisation-delete-dialog.tsx (+166 -0)
apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx (+251 -0)
apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx (+117 -0)
apps/remix/app/components/dialogs/organisation-leave-dialog.tsx (+115 -0)
apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx (+123 -0)
apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx (+478 -0)
apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx (+205 -0)
📝 apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx (+2 -2)

...and 80 more files

📄 Description

Pre release checklist

There are still things to do:

  • Full tests, review and code cleanup
  • Create post migration script
  • Prepare deployment plan
  • Update docs

Description

Add support for organisations. The new structure looks like this

image

Changes Made

High level change list:

  • Everyone gets an organisation and team by default
  • Add ability to group members into different teams
  • Rework billing to support claims
  • Rework admin panel to support customizing organisations and claims

Due to the nature of these changes, such as how TeamMember table no longer exists, the API V1 will remove the following endpoints:

  • Invite team member: POST /api/v1/team/:id/members/invite
  • Update team member POST /api/v1/team/:id/members/:memberId
  • Delete team member PUT /api/v1/team/:id/members/:memberId
  • Find team members GET /api/v1/team/:id/members

Testing Performed

  • E2E Tests

Authentication & Security

  • Sign in/Reset password/Google SSO/2FA setup and validation
  • Passkey/OIDC
  • Sign up/Email verification
  • Password management/Security settings

Profile

  • Profile management/avatar/signature/language preferences
  • User security settings/password/2FA
  • Passkey

Public Profile

  • Public Profile settings page
  • Link templates
  • Profile name change

Organisation Preferences

  • Document
  • Branding

Team Preferences

  • Document
  • Branding

Organisations & Team Management

  • Organisation creation/management/deletion
  • Organisation settings/preferences/branding/global configurations
  • Member management/invitations/roles/permissions
  • Organisation groups/custom groups/group permissions
  • Team-organisation relationship/inheritance/team management within orgs

Document Management

  • Document creation/sending/signing/sealing/etc
  • Document settings (reauth, etc)

Templates

  • Template creation/sending
  • Document generation from templates
  • Direct link templates

Folders & Organisation

  • Folder creation/management/organisation/visibility controls
  • Document organisation within folders/move/copy operations
  • Folder permissions/sharing/team access controls

Embedding

  • Documents
  • Templates

Integrations

  • Webhooks
  • API authentication/token generation

Admin Features

  • User administration/management/search/filtering/account controls
  • Organisation administration/settings override/billing/feature flags
  • System administration/site settings/feature toggles/banners/announcements

Mobile & Responsive

  • Mobile should somewhat work

Search & Navigation

  • Document search/title/recipient/status/date filtering
  • Organisation switching/selector/context preservation/personal vs org mode
  • URL structure consistency/navigation flows

Billing & Subscriptions

  • Plan selection/free vs paid/feature comparison/upgrade/downgrade/trials
  • Payment processing/Stripe integration/payment methods/invoices/failure handling
  • Billing portal/subscription overview/invoice history/payment updates/cancellation

Redirects

  • Logging in should redirect to the correct context
  • Clicking 'home' in org context should take to team context if t = 1

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/documenso/documenso/pull/1820 **Author:** [@dguyen](https://github.com/dguyen) **Created:** 6/3/2025 **Status:** ✅ Merged **Merged:** 6/10/2025 **Merged by:** [@dguyen](https://github.com/dguyen) **Base:** `main` ← **Head:** `feat/organisations` --- ### 📝 Commits (10+) - [`d1ca112`](https://github.com/documenso/documenso/commit/d1ca112334bc72c5719e93c340218040ce7882ae) feat: add organisations - [`4cc849b`](https://github.com/documenso/documenso/commit/4cc849b7ec3ca7c0cfc1c32a7ba6c4a55ac9e66d) fix: test - [`3df8ac5`](https://github.com/documenso/documenso/commit/3df8ac5a3812797f9c74ead5daa008028545d282) fix: refactor org routes - [`f4e2ba1`](https://github.com/documenso/documenso/commit/f4e2ba18178829de9e583012f03e1ec811729137) fix: defaults - [`bd8a7b0`](https://github.com/documenso/documenso/commit/bd8a7b04e1dae31f12be8f5e149ae7e6d64e3cb2) fix: build - [`d8b7109`](https://github.com/documenso/documenso/commit/d8b7109cb7173a1ff4b2e388730f34303907bb5e) fix: refactor - [`e5fc39a`](https://github.com/documenso/documenso/commit/e5fc39a65fe8444524b5f78a10afabc18e65f302) fix: migration - [`9eedc15`](https://github.com/documenso/documenso/commit/9eedc15e208adfd2a96b93e1cb96af8efba92ff0) fix: migration - [`1baa9a4`](https://github.com/documenso/documenso/commit/1baa9a4ba395b56dee54ad82e9ad8dc5f1ef0d6e) fix: bugs - [`51e8914`](https://github.com/documenso/documenso/commit/51e89142074353e3a904c0ff9df7d95cecfd8e24) fix: test ### 📊 Changes **631 files changed** (+37654 additions, -25733 deletions) <details> <summary>View changed files</summary> 📝 `.cursorrules` (+45 -18) ➕ `apps/remix/app/components/dialogs/admin-organisation-create-dialog.tsx` (+197 -0) ➕ `apps/remix/app/components/dialogs/claim-create-dialog.tsx` (+90 -0) ➕ `apps/remix/app/components/dialogs/claim-delete-dialog.tsx` (+96 -0) ➕ `apps/remix/app/components/dialogs/claim-update-dialog.tsx` (+92 -0) 📝 `apps/remix/app/components/dialogs/document-delete-dialog.tsx` (+0 -1) 📝 `apps/remix/app/components/dialogs/document-duplicate-dialog.tsx` (+3 -3) ➖ `apps/remix/app/components/dialogs/document-move-dialog.tsx` (+0 -124) 📝 `apps/remix/app/components/dialogs/document-move-to-folder-dialog.tsx` (+11 -10) 📝 `apps/remix/app/components/dialogs/document-resend-dialog.tsx` (+2 -2) 📝 `apps/remix/app/components/dialogs/folder-create-dialog.tsx` (+7 -7) ➕ `apps/remix/app/components/dialogs/organisation-create-dialog.tsx` (+423 -0) ➕ `apps/remix/app/components/dialogs/organisation-delete-dialog.tsx` (+166 -0) ➕ `apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx` (+251 -0) ➕ `apps/remix/app/components/dialogs/organisation-group-delete-dialog.tsx` (+117 -0) ➕ `apps/remix/app/components/dialogs/organisation-leave-dialog.tsx` (+115 -0) ➕ `apps/remix/app/components/dialogs/organisation-member-delete-dialog.tsx` (+123 -0) ➕ `apps/remix/app/components/dialogs/organisation-member-invite-dialog.tsx` (+478 -0) ➕ `apps/remix/app/components/dialogs/organisation-member-update-dialog.tsx` (+205 -0) 📝 `apps/remix/app/components/dialogs/public-profile-template-manage-dialog.tsx` (+2 -2) _...and 80 more files_ </details> ### 📄 Description ## Pre release checklist There are still things to do: - [ ] Full tests, review and code cleanup - [X] Create post migration script - [X] Prepare deployment plan - [ ] Update docs ## Description Add support for organisations. The new structure looks like this ![image](https://github.com/user-attachments/assets/ddd2a877-cb2f-4371-a287-1ec44f5559f5) ## Changes Made High level change list: - Everyone gets an organisation and team by default - Add ability to group members into different teams - Rework billing to support claims - Rework admin panel to support customizing organisations and claims Due to the nature of these changes, such as how `TeamMember` table no longer exists, the API V1 will remove the following endpoints: - **Invite team member:** POST /api/v1/team/:id/members/invite - **Update team member** POST /api/v1/team/:id/members/:memberId - **Delete team member** PUT /api/v1/team/:id/members/:memberId - **Find team members** GET /api/v1/team/:id/members ## Testing Performed - E2E Tests ### Authentication & Security - [x] Sign in/Reset password/Google SSO/2FA setup and validation - [ ] Passkey/OIDC - [x] Sign up/Email verification - [x] Password management/Security settings ### Profile - [x] Profile management/avatar/signature/language preferences - [x] User security settings/password/2FA - [ ] Passkey ### Public Profile - [x] Public Profile settings page - [x] Link templates - [ ] Profile name change ### Organisation Preferences - [X] Document - [X] Branding ### Team Preferences - [X] Document - [X] Branding ### Organisations & Team Management - [X] Organisation creation/management/deletion - [X] Organisation settings/preferences/branding/global configurations - [X] Member management/invitations/roles/permissions - [X] Organisation groups/custom groups/group permissions - [X] Team-organisation relationship/inheritance/team management within orgs ### Document Management - [ ] Document creation/sending/signing/sealing/etc - [X] Document settings (reauth, etc) ### Templates - [ ] Template creation/sending - [ ] Document generation from templates - [ ] Direct link templates ### Folders & Organisation - [ ] Folder creation/management/organisation/visibility controls - [ ] Document organisation within folders/move/copy operations - [ ] Folder permissions/sharing/team access controls ### Embedding - [ ] Documents - [ ] Templates ### Integrations - [X] Webhooks - [X] API authentication/token generation ### Admin Features - [X] User administration/management/search/filtering/account controls - [X] Organisation administration/settings override/billing/feature flags - [X] System administration/site settings/feature toggles/banners/announcements ### Mobile & Responsive - [ ] Mobile should somewhat work ### Search & Navigation - [x] Document search/title/recipient/status/date filtering - [X] Organisation switching/selector/context preservation/personal vs org mode - [x] URL structure consistency/navigation flows ### Billing & Subscriptions - [X] Plan selection/free vs paid/feature comparison/upgrade/downgrade/trials - [X] Payment processing/Stripe integration/payment methods/invoices/failure handling - [X] Billing portal/subscription overview/invoice history/payment updates/cancellation ### Redirects - [X] Logging in should redirect to the correct context - [ ] Clicking 'home' in org context should take to team context if t = 1 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 20:31:26 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/documenso#1870
No description provided.