Commit Graph

1043 Commits

Author SHA1 Message Date
Bryan Frimin
d360725d24 Fix import order and handle GraphQL errors in upload onCompleted
- Move DialogFooter before type DialogRef to satisfy import-x/order
- Check errors argument in onCompleted callback to avoid treating
  GraphQL errors as successful uploads

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-19 09:39:36 +01:00
Bryan Frimin
65e3bd014b Fix ESLint violations in CreateAuditDialog
- Fix import order for DialogRef type
- Add explicit type parameter to useMutation
- Remove unnecessary parens around single arrow function arg
- Fix jsx-one-expression-per-line for MB text

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-19 09:39:36 +01:00
Bryan Frimin
a6d5e9b1f0 Colocate upload mutation and remove promisifyMutation usage
Move uploadAuditReportMutation into CreateAuditDialog and replace
promisifyMutation with a Promise wrapper using native Relay callbacks.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-19 09:39:36 +01:00
Bryan Frimin
b4a6618736 Add PDF dropzone to audit list for streamlined report upload
Enable users to drag-and-drop PDF reports onto the audit list page, which automatically opens the create-audit dialog with the file attached. The dialog chains createAudit → uploadAuditReport mutations, with graceful handling for partial failures (audit created but upload failed).

Changes:
- AuditsPage: Add dropzone with visual overlay (dashed border + icon) when dragging PDFs
- CreateAuditDialog: Accept optional file prop, show file info, chain mutations on submit
- Extract audit ID from createAudit response to pass to uploadAuditReport
- Handle upload failure with warning toast, allowing manual upload from audit detail page
- Add react-dropzone dependency to console app

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-19 09:39:34 +01:00
Bryan Frimin
0e0539f1f3 Replace console frontend with unified findings pages
Add FindingsPage, FindingDetailsPage, and CreateFindingDialog
supporting all finding kinds (nonconformity, observation, exception)
with filtering, sorting, and audit linking.

Remove the separate nonconformity and continual improvement pages,
routes, and graph hooks. Update sidebar navigation, routes, and
components for nullable audit framework field.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-17 15:05:33 +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
Émile Ré
f62a2cb494 Fix build
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-16 16:50:57 +04:00
Bryan Frimin
ecba352307 Revert relay generics that cause cascade type errors
Adding TypeScript generics to useMutation, usePaginationFragment,
and useRefetchableFragment in graph hooks and page files causes
cascade type mismatches: string values are not assignable to
generated enum types, and typed refetch functions are incompatible
with SortableTable's generic refetch prop.

Use eslint-disable-next-line relay/generated-typescript-types
instead until the calling code is updated to use enum types.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 13:45:23 +01:00
Bryan Frimin
43d6ab38fb Fix formatting and React hook dependency lint errors
Fix max-len violations by breaking long lines across multiple
lines. Fix react-hooks/exhaustive-deps by adding missing deps
and removing unnecessary ones. Remove stale eslint-disable
comments in DataTable stories.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 13:32: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
Sacha Al Himdani
c493e31745 Fix documents UI
- Fix redirection after document deletion in detail page
- Fix refetch after publication
- Return proper error when trying to update a published document

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-13 12:01:57 +01:00
Sacha Al Himdani
4fbb5acb70 Change compliance update modals
- Merge new and edit modals design
- Create a send modal

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-12 20:33:15 +01:00
Émile Ré
85ed5296e7 Fix safe ssoLoginURL params after activation + resolver error
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-12 17:24:27 +04:00
Émile Ré
792871bab6 Stop redirecting on sign up errors
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-12 17:24:27 +04:00
Émile Ré
1d54f22cd9 Add ssoLoginURL in activate account outputs
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-12 17:24:27 +04:00
Émile Ré
03bdb27e20 redirect to password login after setting password
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-12 17:24:27 +04:00
Sacha Al Himdani
85ec106cd6 Send mailing list emails
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-11 15:34:37 +01:00
Sacha Al Himdani
4d2cb793b6 Add compliance page mailing list base
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-11 15:34:36 +01:00
Émile Ré
38a0f28094 Misc fixes
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-11 17:08:43 +04:00
Émile Ré
af17afeffb Catch account already activated error and redirect
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-11 17:08:43 +04:00
Émile Ré
355e6b81b8 Add an account activation step in the signing request flow when needed
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-11 17:08:42 +04:00
Émile Ré
fec4696aeb Remove document signing requests page
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-11 17:08:42 +04:00
Bryan Frimin
73ba7aab63 Fix duplicated identifier
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-11 13:17:06 +01:00
Sacha Al Himdani
6b75d55330 Update vendor compliance report UI
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-11 13:09:03 +01:00
Bryan Frimin
e1643d1e3a Add missing validation
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-11 13:09:02 +01:00
Bryan Frimin
edce4fe666 Fix lint
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-11 13:09:02 +01:00
Sacha Al Himdani
fe241fc136 Add social links
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-11 12:10:57 +01:00
Sacha Al Himdani
3a727f53fa Add vendor compliance tests
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-11 10:48:41 +01:00
Sacha Al Himdani
66a7d6c3e8 Update vendor compliance report UI
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-11 10:28:39 +01:00
Sacha Al Himdani
40e71489d8 Fix person update
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-11 10:21:18 +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
Émile Ré
db62b99d9d Remove profile active toggle on trust center zone
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-05 17:15:08 +04:00
Émile Ré
e1fb61979b Remove create trust center access mutation from console api
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-05 15:02:49 +04:00
Émile Ré
0d1bcd21aa Rework people list and trust center access list + edit dialog
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-05 14:32:28 +04:00
Émile Ré
e856817d2b Remove full name input from nda page
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-05 11:19:19 +04:00
Sacha Al Himdani
c17c53e80f Add compliance frameworks
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-04 10:19:39 +01:00
Sacha Al Himdani
6a83b53b47 Add obligation webhooks
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-27 17:14:26 +01:00
Sacha Al Himdani
6905472fba Add user webhooks
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-27 10:14:53 +01:00
Bryan Frimin
9e788ee558 Fix compliance page to only show published document versions
The compliance page was leaking draft document content and titles.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-23 19:11:49 +01:00
Bryan Frimin
ad1998a540 Fix no link button when list is empty
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-23 15:36:03 +01:00
Sacha Al Himdani
86e4c2eada Fix auditor access to people
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-23 15:16:02 +01:00
Bryan Frimin
40273ddd6f Style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-23 09:38:29 +01:00
Bryan Frimin
79084bca23 Refactor compliange page access code
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-23 09:38:28 +01:00
Bryan Frimin
069b47d240 Add NDA view on console
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-23 09:38:28 +01:00
Émile Ré
be039176b2 Fix console org dropdown query
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 18:37:08 +04:00
Émile Ré
aca1b781e9 Fix do not display inactive profiles on home page
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 17:48:06 +04:00
Émile Ré
a9e4e991b3 Add profile state sorting
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:05 +04:00
Émile Ré
c36156c18a Disable all inputs with disabled form prop
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:04 +04:00
Émile Ré
9941a6a66a Disable activation on scim profiles
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:02 +04:00
Émile Ré
13aef29ddf Disable org link when user is deactivated
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:02 +04:00