Commit Graph

60 Commits

Author SHA1 Message Date
Sacha Al Himdani
e1148f812e Replace implemented column with CMMI maturity level
Drop the boolean implemented/not-implemented state in favor of a
mandatory CMMI maturity level enum (NONE, INITIAL, MANAGED, DEFINED,
QUANTITATIVELY_MANAGED, OPTIMIZING) stored as a Postgres enum type.

The migration backfills existing rows (NOT_IMPLEMENTED → NONE,
IMPLEMENTED → INITIAL), makes the column NOT NULL, and drops the old
implemented column and its enum type.

- maturityLevel is required on CreateControlInput and non-nullable (!)
  in the GraphQL schema
- CLI displays human-readable CMMI labels instead of raw enum tokens
- SOA table and published document use a single Maturity column in
  place of the old Implemented + Maturity columns
- Remove ControlImplementationState type and all implemented references
  across backend, frontend, CLI, MCP, n8n, and E2E tests

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-21 11:06:36 +02:00
Alejandro Juan
da91afc2a7 Add CMMI maturity level to compliance controls
Adds an optional CMMI 0-5 maturity level field to Control to support
ISO 27001 clause 9.1 effectiveness measurement and HITRUST CSF maturity
requirements. The field is nullable, framework-agnostic, and exposed
across all four API surfaces (GraphQL, MCP, CLI, n8n) plus the
generated SoA document.

Signed-off-by: Alejandro Juan <alejandrojuan@alejandrojuan.com>
2026-04-21 11:06:36 +02:00
Sacha Al Himdani
6c5c1fa818 Remove meeting feature
Drop meetings and meeting_attendees tables, remove all meeting-related
code across GraphQL, MCP, CLI, N8N, webhooks, frontend, and e2e tests.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-20 15:37:39 +02:00
Sacha Al Himdani
55563226cb Data as document: replace snapshot with publish workflow
Mirror the SOA-to-document migration for the data list. Remove data
from the snapshot system and add a publish workflow that generates a
ProseMirror document for the full organization data inventory.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-20 14:44:00 +02:00
Sacha Al Himdani
5b8918bd5a Add approval quorum and decision read tools
Expose document version approval quorums and decisions
through MCP, CLI, and n8n. This lets users inspect who
approved or rejected a document version, including the
rejection comment, without relying solely on the audit
log.

MCP tools: listDocumentVersionApprovalQuorums,
getDocumentVersionApprovalQuorum,
listDocumentVersionApprovalDecisions,
getDocumentVersionApprovalDecision.

CLI commands: document list-approval-quorums,
view-approval-quorum, list-approval-decisions,
view-approval-decision.

n8n operations: Get/Get Many Approval Quorums and
Approval Decisions on the Document resource.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-20 10:45:17 +02:00
Sacha Al Himdani
9c9c60d0eb Add webhook subscription MCP tools and N8N operations
Expose webhook subscription CRUD and event listing through the MCP API
(list, get, create, update, delete subscriptions + list events) and add
a new webhook resource to the N8N node with matching operations.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-17 13:14:49 +02:00
Sacha Al Himdani
ce1f2fa28c Fix Profile field name in n8n-node GraphQL queries
Rename primaryEmailAddress to emailAddress to match the Profile type
in the GraphQL schema.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-16 12:14:45 +02:00
Sacha Al Himdani
c635492f75 SOA as document: replace export with publish workflow
Statements of Applicability are no longer exported as one-off PDFs.
Instead, each SOA owns a persistent document that accumulates versions
over time, following the same publish/approve lifecycle as authored
documents.

Publishing without approvers publishes immediately; publishing with
approvers creates a draft pending approval via the existing quorum
system. SOAs can also store default approvers that are pre-populated in
the publish dialog.

The SOA is removed from the snapshot system — applicability statements
are now queried directly (snapshot_id IS NULL) rather than through
snapshot copies.

A standalone migration script (cmd/migrate-soa-snapshots-to-documents)
converts existing SOA snapshots into documents with proper ProseMirror
content, preserving version history and approval decisions.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-16 00:01:13 +02:00
Sacha Al Himdani
891bc02f3e Add document filters to MCP and n8n APIs
Align MCP and n8n document listing endpoints with the GraphQL console
API so every document filter is available across all three interfaces.

MCP:
- listDocuments: add status filter, default to ACTIVE
- listDocumentVersions: add statuses filter
- DocumentOrderField: add UPDATED_AT

n8n:
- document getAll: add query, documentTypes, classifications, status filters (default ACTIVE)
- document getAllVersions: add statuses filter
- document getAllSignatures: add states and activeContract filters

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-15 13:14:04 +02:00
Sacha Al Himdani
d40b114f0f Add document resource to n8n node and MCP sendSigningNotifications tool
Add a complete document resource to the n8n node with 21 operations
covering documents, versions, and signatures — matching the MCP
specification. Also add the sendSigningNotifications tool to the MCP
API for triggering pending signature reminders.

n8n operations: create, get, getAll, update, delete, archive,
unarchive, getVersion, getAllVersions, createDraftVersion,
updateVersion, deleteDraftVersion, publishMajorVersion,
publishMinorVersion, requestApproval, voidApproval, getSignature,
getAllSignatures, requestSignature, cancelSignature,
sendSigningNotifications.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-13 17:31:06 +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
a8f733706b Fix npm audit vulnerabilities
Bump @n8n/node-cli to ^0.24.1 and remove stale form-data override.

Add overrides for transitive sub-dependencies with no upstream fix:
- brace-expansion ^5.0.5 (ReDoS / process hang)
- minimatch@9 ^9.0.9 (ReDoS in 9.0.0-9.0.6)
- langsmith ^0.5.0 (SSRF via tracing header injection)
- handlebars 4.7.9 (prototype pollution / XSS)
- @langchain/community ^1.1.25 (SSRF bypass)

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-27 11:23:41 +01:00
Bryan Frimin
36d517e8ce Fix n8n sub-dep CVE
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-27 08:10:57 +01:00
Sacha Al Himdani
ffd17520ee Fix n8n get many organization
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-02 09:14:41 +01:00
Sacha Al Himdani
9dd626ff2d Add connect API to n8n execute
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-24 13:35:02 +01:00
Sacha Al Himdani
71b01bf20e Add vendor contacts to n8n
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-23 14:33:23 +01:00
Bryan Frimin
2de602f033 Fix n8n get many organization
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-23 12:16:50 +01:00
Émile Ré
f75bde75f1 Remove unused schema fields
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-20 18:24:57 +04:00
Émile Ré
0e8f65c553 Reimplement n8n
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:01 +04:00
Sacha Al Himdani
25a6d4170c Add audit nodes
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-18 10:06:25 +01:00
Sacha Al Himdani
40e4db9278 Remove deprecated SOA code
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-17 15:06:49 +01:00
Émile Ré
f24c5e7590 Remove people from n8n
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 16:21:13 +04:00
Bryan Frimin
96a62e9ada Add member n8n actions
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-06 11:46:00 +01:00
Bryan Frimin
3ef541516c Fix create organization node
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-04 15:50:57 +01:00
Bryan Frimin
36b1095441 Fix endpoint api call
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-03 09:01:40 +01:00
Bryan Frimin
177d18f3d3 Add user agent
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-03 08:01:53 +01:00
Bryan Frimin
e2e695205a Fix n8n use legacy API
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-03 07:56:46 +01:00
Émile Ré
0e4ac296cb Update eslint for apps/trust & packages/n8n-node
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-22 17:53:44 +04:00
Bryan Frimin
2b11ff90af Revert back to graphql endpoint
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-01-20 07:47:48 -08:00
Émile Ré
4881901a73 Revert console graphql endpoint pathname for tmp n8n app fix
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-20 14:56:42 +04:00
Émile Ré
0f562002b6 Fix n8n probo request options
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-20 13:32:22 +04:00
Bryan Frimin
0620b7aba2 Add email to n8n-node package
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-01-15 15:49:47 -08:00
Sacha Al Himdani
aba51629c0 Fix people in mcp
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-01-09 15:55:26 +01:00
Sacha Al Himdani
8478006c30 Remove useless dependency to n8n
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-12-17 10:19:55 +01:00
Sacha Al Himdani
7d58080ab4 Add risk vendor risk assesment to n8n
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-12-17 10:17:00 +01:00
Sacha Al Himdani
88572b07da Add service to vendor on n8n
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-12-15 11:15:55 +01:00
Sacha Al Himdani
a7fc04e44e Add risks to n8n
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-12-11 18:09:01 +01:00
Sacha Al Himdani
ba1c884f4a Add people to n8n
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-12-09 16:04:53 +01:00
Bryan Frimin
1e4813c9d7 Add vendor operations
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-03 12:04:19 +01:00
Bryan Frimin
06098464b0 Fix n8n always in success mode
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-03 12:03:15 +01:00
Bryan Frimin
45abd2a57f Add meeting operations
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 15:58:51 +01:00
Bryan Frimin
d718766a94 Fix npm git url
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 15:26:51 +01:00
Bryan Frimin
b926911fe0 Fix missing placeholder
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 15:09:10 +01:00
Bryan Frimin
ba4c229ef1 Add organization operations
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 15:01:09 +01:00
Bryan Frimin
6ba68ee830 Enable trusted publisher
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 14:35:38 +01:00
Bryan Frimin
04f3f3798a Fix npm config
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 14:28:15 +01:00
Bryan Frimin
ae6b13eec8 Fix error type
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 14:17:21 +01:00
Bryan Frimin
d710f5af73 Fix style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 14:12:58 +01:00
Bryan Frimin
b0e475301a Fix missing nodes
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 13:50:20 +01:00
Bryan Frimin
0daf272320 Add release workflow
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 13:38:26 +01:00