Commit Graph

31 Commits

Author SHA1 Message Date
Émile Ré
be189693ae Use json.RawMessage for document data content
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:26 +04:00
Émile Ré
7dcfa90672 Remove arbitrary h2 sibiling page breaks
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:25 +04:00
Émile Ré
2c3261354d Add blockquote style
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:25 +04:00
Émile Ré
e71e7f1a45 Use prosemirror pkg to render document PDF
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:25 +04:00
Sacha Al Himdani
68bc8cf59a Add major.minor document versioning
Introduce a two-part version scheme (major.minor) for documents.
Drafts start at 0.1 and increment minor on each new draft. Publishing
as minor keeps the current version, publishing as major bumps to the
next major.0. Both current_published_major and current_published_minor
are tracked on the document for exact version lookups.

Signatures and approval quorums aggregate across all versions sharing
the same major number using CTE joins. Approval page mutations spread
the decision fragment so Relay updates the version row state without
requiring a page refresh.

GraphQL, MCP, and service layer expose separate publishMajor and
publishMinor mutations instead of a single mutation with a type enum.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-30 18:54:28 +02:00
Sacha Al Himdani
999171a626 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>
2026-03-27 19:43:20 +01:00
Sacha Al Himdani
8c02c53315 Update copyright headers across all Go files
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-25 17:38:32 +01:00
Sacha Al Himdani
cf1dadc0b5 Add implemented state and justification to controls
Introduce `implemented` enum (IMPLEMENTED/NOT_IMPLEMENTED) and
`not_implemented_justification` (nullable text) fields on the Control
entity across all API surfaces (GraphQL, MCP, CLI), database, frontend,
and SOA export.

The database stores implementation state as a PostgreSQL enum
`control_implementation_state`. Controls default to IMPLEMENTED during
migration. The SOA list and PDF export show implementation status
alongside applicability, with "-" for non-applicable controls.
Justification columns are renamed for clarity: "Justification for
non-applicability" and "Justification for non-implementation".

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-17 11:01:04 +01:00
Sacha Al Himdani
d5c62a9383 Run go fmt/fix
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-13 14:48:13 +01:00
Sacha Al Himdani
c98ffaeda3 Add mermaid suport
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-12 14:41:30 +01:00
Sacha Al Himdani
c63a0b7ded Display empty state for soa control assessment
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-06 12:13:53 +01:00
Sacha Al Himdani
33dfcd26c2 Fix approvers ui
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-17 10:48:44 +01:00
Bryan Frimin
ece54f1616 Fix golint errors
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-02 18:42:50 +01:00
Sacha Al Himdani
4ed3f5a067 Change state of applicability
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-01-16 22:56:00 +01:00
Sacha Al Himdani
c76764b69a Add processing activity exports
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-01-16 14:42:53 +01:00
Sacha Al Himdani
75e28627a5 Fix code blocks
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-01-05 10:45:20 +01:00
Bryan Frimin
59aa332ab5 Move to vanity import url
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-10-31 17:01:52 +01:00
Bryan Frimin
6f2bd9c92f Fix failed to to cannot
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-10-30 16:38:08 +01:00
Bryan Frimin
4768410d10 Fix HTML entities displaying incorrectly in PDF exports
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-10-24 09:13:51 +02:00
Sacha Al Himdani
da2e19e1bc Fix ordered list display in documents
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-10-17 14:41:19 +02:00
Sacha Al Himdani
d757c9604b Add company name and logo to documents
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-10-14 11:02:12 +02:00
Sacha Al Himdani
ec716e587c Remove document description and footer
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-09-30 20:32:16 +02:00
Sacha Al Himdani
56a666b7e8 Add export document pdf options
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-09-30 18:00:08 +02:00
Sacha Al Himdani
f61ad48b59 Remove description
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-09-30 17:54:50 +02:00
Sacha Al Himdani
07b931c66c Drop request by
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-09-26 09:24:29 +02:00
Sacha Al Himdani
533822b60d Decouple users from people
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-09-23 13:50:41 +02:00
Sacha Al Himdani
2df463c5dc Fix tables in pdf export
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-07-22 14:36:47 +02:00
Bryan Frimin
68b422e06b Fix publisher by format error
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-07-03 11:58:17 +02:00
Bryan Frimin
574a25fe9b Fix published by must be a string
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-07-03 11:38:10 +02:00
Bryan Frimin
90bd4d76e1 Remove unused object
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-07-03 11:38:01 +02:00
Bryan Frimin
1025bcb509 Add docgen package
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-07-03 11:37:08 +02:00