Commit Graph

3738 Commits

Author SHA1 Message Date
Émile Ré
d0592df676 Ensure caret is always visible
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:21 +04:00
Émile Ré
67273fe1b6 Fix table dragging
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:21 +04:00
Émile Ré
48206cbc36 Add header row / column option
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:21 +04:00
Émile Ré
4840dd510d Select all column / row cells on menu trigger click
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:21 +04:00
Émile Ré
d75edca6b1 Add TableRowMenu
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:21 +04:00
Émile Ré
c89c437074 Add table column menu
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:20 +04:00
Émile Ré
9a3077b320 Fix drag
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:20 +04:00
Émile Ré
74380f78d9 Add table cell menu
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:20 +04:00
Émile Ré
70ebdd771d Add table extension
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:20 +04:00
Émile Ré
3afdb0b5b8 Fix placeholder not displayed in table and lists
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:20 +04:00
Émile Ré
fc0c71ea7d Fix block and options menu triggers alignment with hovered block
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:20 +04:00
Émile Ré
c81769b926 Use slash to display menu and filter commands
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:19 +04:00
Émile Ré
9c810eb1dc Fix bug on hovered hr options menu click
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:19 +04:00
Émile Ré
7c5d8a8cc5 Add link handling in floating ui instead of prompt
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:19 +04:00
Émile Ré
9ce510caa7 Add phosphor icons and improve menus UI
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:19 +04:00
Émile Ré
34d64ecb75 Add side actions for insertin new / editing blocks
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:18 +04:00
Émile Ré
21eb2e5197 Add document node styling + extensions to handle clicking links with ctrl or cmd
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:18 +04:00
Émile Ré
6d18c7fce7 Remove outline on rich editor focus
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:18 +04:00
Émile Ré
eede0b72f1 Make rich editor full height
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:17 +04:00
Émile Ré
b84eab4698 Disable RichEditor on non draft version
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:17 +04:00
Émile Ré
3a054c70ba Implement debounced auto save
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:17 +04:00
Émile Ré
a9f4ecacfa Install tip tap
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-01 18:03:17 +04:00
Sacha Al Himdani
09ba7ab5a0 Release v0.156.1
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-01 15:23:05 +02:00
Sacha Al Himdani
1b811011eb Split employee document policy from core document actions
Introduce dedicated employee-scoped IAM actions and update all
resolvers and frontend mutations accordingly.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-04-01 15:00:54 +02:00
Sacha Al Himdani
bcfc693366 Release v0.156.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-31 18:06:38 +02:00
Sacha Al Himdani
2d11038232 Add document classification filter
Add classification as a filter-only field on documents, resolved from
the latest document version. Expose in GraphQL, MCP, and document list
UI with a selector alongside the document type filter.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-31 17:36:26 +02:00
Émile Ré
4a6cbdc97b Fix tests
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-31 19:16:56 +04:00
Émile Ré
999874f33e Fix dropzone description
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-31 19:05:46 +04:00
Émile Ré
bd3869e0f0 Remove gif from allowed image types
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-31 19:05:46 +04:00
Émile Ré
687148e2c1 Unify dropzone accept prop with accept helpers
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-31 19:05:46 +04:00
Émile Ré
3bac29f540 Center reference name
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-31 19:05:46 +04:00
Sacha Al Himdani
6baa111fed Fix chi middleware panic in trust API mux
The session-transfer route was registered before the session and member
provisioning middlewares, causing chi to panic with "all middlewares must
be defined before routes on a mux". Scope the middlewares to the graphql
route using r.Group so session-transfer remains unauthenticated.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-31 16:35:47 +02:00
Bryan Frimin
b58a7e8325 Style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-31 15:04:57 +02:00
Bryan Frimin
bb910b4314 Style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-31 14:49:21 +02:00
Bryan Frimin
8095ac6233 Validate session transfer redirect with saferedirect
The session transfer handler was blindly redirecting to the continue URL
from the signed token. Use saferedirect with a trust center domain check
to prevent open redirects, and only trigger session transfer for known
trust center custom domains instead of any non-base-URL host.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-31 14:49:21 +02:00
Bryan Frimin
84a35c90e9 Add session transfer for SSO cookies on custom domains
After OIDC login, if the redirect targets a trust center custom
domain, the callback now redirects through a session-transfer
endpoint on that domain. The endpoint verifies an HMAC-signed,
time-limited token and sets the session cookie on the custom
domain before redirecting to the final URL.

The continue URL is bound into the signed token payload to
prevent open-redirect attacks via parameter tampering.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-31 14:49:20 +02:00
Sacha Al Himdani
5d6d0bdd7f Move document classification from document to document version
Classification now lives exclusively on DocumentVersion. The field is
removed from the Document model, all SQL queries, GraphQL Document
type, SignableDocument type, UpdateDocumentInput, and MCP Document
schema.

New documents still accept classification in CreateDocumentInput,
applied to the first version. New drafts inherit classification from
the previous version. PDF generation uses the version classification.

The drawer allows editing classification on draft versions via the
updateDocumentVersion mutation. Classification is read-only on
published versions.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-31 14:11:57 +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
Bryan Frimin
de7e2c6dc9 Release v0.155.0 2026-03-31 11:35:59 +02:00
Bryan Frimin
419c93fc7d Fix compliance page login redirect to custom domains
SafeRedirect previously matched against a single static host string,
so OIDC callbacks always fell back to the console instead of
redirecting back to compliance pages on custom domains. Refactor
AllowedHost into a dynamic AllowedHostFunc and wire a trust-service
lookup into the connect handler so custom domain hosts are accepted.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-31 10:51:34 +02:00
dependabot[bot]
573e4f17f8 Bump golang.org/x/image from 0.36.0 to 0.38.0
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.36.0 to 0.38.0.
- [Commits](https://github.com/golang/image/compare/v0.36.0...v0.38.0)

---
updated-dependencies:
- dependency-name: golang.org/x/image
  dependency-version: 0.38.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 21:15:57 +02: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
c5a412ea41 Release v0.154.2
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-30 16:39:26 +02:00
Aditya Sharma
0b12eea733 Fix base-url to point to API server instead of Vite dev server
Signed-off-by: Aditya Sharma <aditya.sharma@usm.edu>
2026-03-30 16:08:45 +02:00
Aditya Sharma
36809432db Fix agents config in dev.yaml to use new providers schema
Signed-off-by: Aditya Sharma <aditya.sharma@usm.edu>
2026-03-30 16:08:45 +02:00
Sacha Al Himdani
0920690816 Add ability to disconnect Slack channel from compliance page
Users could connect a Slack channel to their compliance page but had no
way to remove or change the connection afterward. This adds a disconnect
button with a confirmation dialog next to connected Slack channels.

- GraphQL: deleteSlackConnection mutation with resolver
- Frontend: Disconnect button using useMutation with @deleteEdge

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-30 15:40:21 +02:00
Bryan Frimin
bc51c910ae Rename TruffleHog exclude paths file to plain text
The --exclude-paths flag expects a plain text file with one regex
per line, not a YAML file.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-30 14:18:29 +02:00
Bryan Frimin
5237e57d27 Revert "Use inline trufflehog:ignore instead of exclude paths file"
This reverts commit f10ecb8210b1176311d9372d1108b91ce8290fd4.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-30 14:18:29 +02:00
Bryan Frimin
7dcc3d21ac Use inline trufflehog:ignore instead of exclude paths file
Inline comments are more targeted than excluding the entire file
from secret scanning. Remove the .trufflehog.yml exclude file and
the --exclude-paths flag from the workflow.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-30 14:18:29 +02:00
Bryan Frimin
bba7855678 Fix TruffleHog exclude paths file format
The --exclude-paths flag expects newline-separated regexes, not YAML.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-30 14:18:29 +02:00