Commit Graph

25 Commits

Author SHA1 Message Date
Sacha Al Himdani
b63f043849 Move document title ownership from document to version
Title is now owned by document_versions, following the same pattern as
classification and document_type. The documents.title column is made
nullable with a TODO to drop it. Backend loads title from a
latest_versions CTE for ordering purposes only. The frontend resolves
title from the latest version, and DocumentTitleForm now operates on
DocumentVersion using UpdateDocumentVersion mutation.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-09 20:01:32 +02:00
Sacha Al Himdani
9a418a7711 Move document type from document to document version
Follow the same pattern used for classification: document type now lives
exclusively on DocumentVersion. A migration copies existing values from
documents to their versions. The document filter uses a subquery on the
latest version. All three API surfaces (GraphQL, MCP, CLI), resolvers,
frontend, and e2e tests are updated accordingly.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-02 16:32:38 +02:00
Sacha Al Himdani
851e585b9b Add ISC license headers to Go, TypeScript, and SQL files
Add ISC license headers to all .go, .ts, .tsx, and .sql files
using each file's git history to determine the correct copyright
year or year range. Trademarked icons (brand logos, vendor logos,
compliance framework logos) are excluded.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-31 13:31:30 +02:00
Sacha Al Himdani
1db8e7133e Add document archiving
Documents can be archived and unarchived. Archived documents are
read-only, excluded from the trust center, and moved to a dedicated
Archived tab in the document list.

- Add archived_at timestamp and status (ACTIVE/ARCHIVED) PG enum column
- Rename DocumentStatus → DocumentVersionStatus, introduce DocumentStatus
- Archive/unarchive mutations in GraphQL, MCP, and CLI
- Bulk archive/unarchive mutations with Active/Archived tabs in the list
- ABAC policies: write actions denied on archived docs, unarchive denied
  on active docs
- Remove control/risk mappings and reset trust center visibility on archive
- Exclude archived documents from mapping dialogs and trust center tab

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-19 14:15:54 +01:00
Bryan Frimin
13ca50df68 Fix relay lint in components and pages
Remove unused GraphQL fields (createdAt, updatedAt, totalCount,
__id, sourceId, etc.) from queries and fragments across 50+ files.

Add TypeScript generics to useMutation, usePaginationFragment,
useRefetchableFragment, and useLazyLoadQuery calls to satisfy
relay/generated-typescript-types.

Add justified eslint-disable comments for fields needed by Relay
cache normalization (id) or consumed by sibling components through
fragment spreads.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 13:32:43 +01:00
Émile Ré
fb09bed247 Refactor document detail to document layout
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-27 17:52:58 +04:00
Émile Ré
de93e39252 Fix apps/console lint issues
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-23 12:44:31 +04:00
Émile Ré
e143477d66 Remove extensions from import paths
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-23 12:42:34 +04:00
Émile Ré
3b4f77c5e8 Change folder aliases
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-22 21:14:37 +04:00
Émile Ré
c168be6de0 Add import order sorting rules
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-22 20:38:37 +04:00
Émile Ré
aa5696b5d3 Add eslint-plugin-import
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-22 19:57:10 +04:00
Émile Ré
dd23449cc0 Fix apps/console lint issues
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-22 12:51:43 +04:00
Émile Ré
2790a4e46e Put back default email using current user context in bulk document exports
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-17 12:22:44 -08:00
Émile Ré
ecf27751ac Add CurrentUser context and use it in documents
Signed-off-by: Émile Ré <nemile.re@gmail.com>
2026-01-17 12:15:43 -08:00
Émile Ré
6b2864e160 Move console to a relay multi project config
Signed-off-by: Émile Ré <nemile.re@gmail.com>
2026-01-17 11:02:51 -08:00
Sacha Al Himdani
f77676c88c Add auditor role
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-12-12 14:58:32 +01:00
Émile Ré
44336c2a35 Fix warnings
Signed-off-by: Émile Ré <nemile.re@gmail.com>
2025-12-04 17:27:47 +04:00
Sacha Al Himdani
7da20b038a Handle download in pdf preview
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-10-31 19:24:57 +01:00
Bryan Frimin
5951b464cf Fix react-pdf race condition
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-10-16 12:58:11 +02:00
Bryan Frimin
2f2c8ccd4b Make UI of signature page better
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-10-15 15:17:04 +02:00
Bryan Frimin
0c4a7169df Add procedure document type
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-10-13 22:36:37 +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
781026d3e7 Use network only for selector queries
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-09-03 12:11:14 +02:00
Bryan Frimin
ff7feedbfa Add frontend button
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-07-03 11:58:37 +02:00
Sacha Al Himdani
d6ba8e1072 Remove old frontend
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-06-13 14:01:04 -07:00