Add document approval workflow
Introduce a complete approval system for document publishing. Document versions can now require approval from selected reviewers before being published, with automatic publishing once all approvers have approved. - Add approval quorum and decision tables with backfill migration - Implement request approval, approve, and reject flows with electronic signature support for approve decisions - Add employee approvals page with dedicated tab and pending approvals view - Add changelog field to publish and request approval flows - Pre-select previous version's approvers in the publish dialog - Show quorum approvers in document list with 100 approver hard limit - Expose approval workflow through GraphQL, MCP, and CLI - Remove legacy default approvers feature entirely - Add comprehensive e2e test coverage for approval workflows Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
@@ -40,6 +40,14 @@ const documentTabs = (prefix: string) => {
|
||||
import("#/pages/organizations/documents/controls/DocumentControlsPageLoader"),
|
||||
),
|
||||
},
|
||||
{
|
||||
path: `${prefix}approvals`,
|
||||
Fallback: LinkCardSkeleton,
|
||||
Component: lazy(
|
||||
() =>
|
||||
import("#/pages/organizations/documents/approvals/DocumentApprovalsPageLoader"),
|
||||
),
|
||||
},
|
||||
{
|
||||
path: `${prefix}signatures`,
|
||||
Fallback: LinkCardSkeleton,
|
||||
@@ -61,6 +69,9 @@ export const documentsRoutes = [
|
||||
path: "documents/:documentId",
|
||||
Fallback: PageSkeleton,
|
||||
Component: lazy(() => import("#/pages/organizations/documents/DocumentLayoutLoader")),
|
||||
children: [...documentTabs(""), ...documentTabs("versions/:versionId/")],
|
||||
children: [
|
||||
...documentTabs(""),
|
||||
...documentTabs("versions/:versionId/"),
|
||||
],
|
||||
},
|
||||
] satisfies AppRoute[];
|
||||
|
||||
Reference in New Issue
Block a user