Commit Graph

3054 Commits

Author SHA1 Message Date
Bryan Frimin
842bbfbe97 Style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 16:54:48 +01:00
Sacha Al Himdani
5864719a3f Release v0.143.0
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-16 16:32:44 +01:00
Bryan Frimin
807213d384 Stop tracking generated files
Run make generate in CI lint and test jobs since generated files are
now gitignored. Also include Relay codegen for frontend apps in the
generate target.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 16:19:47 +01:00
Bryan Frimin
3e3138f764 Cache Go modules explicitly with go mod download
Add go mod download step after setup-go in all CI jobs to ensure the
module cache is populated as a discrete step. This makes cache hits visible
in logs and prevents module downloads from being interleaved with build
operations, improving cache effectiveness.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:54:54 +01:00
Bryan Frimin
7e86d2c89f Rename proboctl CLI binary to prb
Shorter CLI name for faster typing. Renames the binary, build targets,
goreleaser config, command examples, and documentation.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:51 +01:00
Bryan Frimin
1f1df63676 Add proboctl CLI AGENTS.md
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:51 +01:00
Bryan Frimin
779f549530 Fix missing __typename checks and standalone var declarations
Add __typename to GraphQL queries and type guards in risk view,
risk list, user view, and user list commands to prevent silent
garbage output when a wrong node type ID is passed. Wrap
standalone var declarations in var () blocks per style guide.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:50 +01:00
Bryan Frimin
0438b8457d Clear active host on logout
When logging out of the active host while other hosts exist,
the stale ActiveHost reference caused DefaultHost() to silently
fall through to the first alphabetical host instead of treating
the user as logged out.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:50 +01:00
Bryan Frimin
a8ac1fa2a1 Add proboctl webhook commands
Add CRUD commands for webhook subscriptions and a command
to list webhook events.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:50 +01:00
Bryan Frimin
f1a028c4f1 Add proboctl statement of applicability commands
Add CRUD commands for statements of applicability and their
applicability statements (add, list, remove, update).

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:50 +01:00
Bryan Frimin
04cb9e08fb Add proboctl framework and control commands
Add create, list, view, update, and delete commands
for managing frameworks and controls.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:49 +01:00
Bryan Frimin
5a230278b2 Add proboctl risk commands
Add create, list, view, update, and delete commands
for managing risks.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:49 +01:00
Bryan Frimin
b313fbb951 Add proboctl org and user commands
Add organization list and user list/view commands.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:49 +01:00
Bryan Frimin
72c15b2a17 Add proboctl browse command
Add a command to open Probo resources in the web browser.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:49 +01:00
Bryan Frimin
94673d4ee2 Add proboctl config commands
Add get, set, and list commands for managing CLI
configuration values.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:48 +01:00
Bryan Frimin
907ba623e8 Add proboctl api command
Add a raw API command for executing GraphQL queries
directly against the Probo API.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:48 +01:00
Bryan Frimin
95d83872bc Add proboctl auth commands
Add login, logout, and status commands for managing
authentication with the Probo API.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:48 +01:00
Bryan Frimin
6919b9372a Add proboctl core skeleton and build system
Introduce the proboctl CLI entry point, root command, version,
completion, iostreams, shared cmdutil helpers (flags, table, JSON,
time formatting), API client with pagination, config management,
goreleaser configuration, and build system integration.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:41:47 +01:00
Sacha Al Himdani
0b7c0e0806 Add validation to mailman service
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-16 14:37:34 +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
f4a027e719 Fix generated files
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 12:07:37 +01:00
Bryan Frimin
5c22789624 Add reviewdog to post lint errors as PR comments
Use reviewdog in the CI lint job so golangci-lint and eslint
failures appear as inline comments on pull request files instead
of only in job logs.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 00:41:22 +01:00
Bryan Frimin
6a77d42dd6 Style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 00:28:47 +01:00
Bryan Frimin
7147cf189a Reorganize GraphQL docs: separate Go backend from frontend Relay client
Move frontend Relay client documentation into relay.md and create new graphql.md dedicated to Go backend patterns. Covers gqlgen schema-first approach, @goModel/@goEnum/@goField directives, connection type patterns, and cursor pagination implementation.

- relay.md: Frontend Relay client (environments, compiler, queries, fragments, mutations)
- graphql.md: Go backend gqlgen (directives, connection types, pagination schema, keyset pagination)
- AGENTS.md: Update documentation references

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 19:09:39 +01:00
Bryan Frimin
0ca6b6775d Expand e2e CLAUDE.md with full test patterns
Document client setup, factory pattern, test structure,
authorization testing, assertion helpers, and file
organization.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:35 +01:00
Bryan Frimin
9a37283e24 Require e2e tests for new Go API endpoints
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:34 +01:00
Bryan Frimin
5114a06acc Use for loop and ticker in worker pattern
Replace goto/LOOP with a for/select on time.Ticker for
clearer control flow.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:34 +01:00
Bryan Frimin
064a461d80 Remove extracted sections from AGENTS.md
Tests, workers, and service orchestration now live in
their own files under contrib/claude/.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:34 +01:00
Bryan Frimin
76e6d5a9a7 Move Go service orchestration to contrib/claude
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:33 +01:00
Bryan Frimin
54183598cd Move Go worker pattern to contrib/claude
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:33 +01:00
Bryan Frimin
377807be2a Move Go test conventions to contrib/claude
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:32 +01:00
Bryan Frimin
21eaaef30a Extend license header to all source file types
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:32 +01:00
Bryan Frimin
4ea629283b Move license header to contrib/claude
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:32 +01:00
Bryan Frimin
740112b348 Add reference docs and API surface rules to AGENTS.md
Move commit message section to contrib/claude/commit.md and
add rules requiring every feature to be exposed through
GraphQL, MCP, and CLI.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:31 +01:00
Bryan Frimin
c6f2c6a71c Move commit message conventions to contrib/claude
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:31 +01:00
Bryan Frimin
1b5f79c7d1 Add frontend Relay client guide
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:30 +01:00
Bryan Frimin
b0841becde Add Relay cursor pagination guide
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:30 +01:00
Bryan Frimin
7a4101185b Add per-folder CLAUDE.md for key packages
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 15:04:27 +01: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
Bryan Frimin
d263cda3f6 Add eslint-disable and TypeScript generics to graph hooks
Centralized graph files (hooks/graph/*.ts) define GraphQL
queries consumed by multiple page components. This architecture
intentionally separates field definitions from usage, triggering
relay/unused-fields and relay/must-colocate-fragment-spreads.
File-level eslint-disable comments suppress these false positives.

Also adds explicit TypeScript generics to useMutation and
usePaginationFragment calls to satisfy relay/generated-typescript-types
without eslint-disable.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-15 13:32:18 +01:00
Bryan Frimin
dbb4811a2c Update CHANGELOG
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-14 12:40:26 +01:00
Bryan Frimin
76f781ead1 Clear conflicting external_id when enrolling manual profile into SCIM
When a SCIM provider sends CreateUser for a user whose email matches an
existing manual profile, but another profile already holds that
external_id (e.g. created by a prior CreateUser with a different email),
clear the conflicting external_id before enrolling the manual profile.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-14 12:40:26 +01:00
Bryan Frimin
2f76eaf4ae Clear external_id and user_name when resetting SCIM sources
When a SCIM configuration is deleted, ResetSCIMSources now clears
external_id and user_name so stale values don't cause unique constraint
violations when SCIM is reconfigured.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-14 12:40:26 +01:00
Bryan Frimin
a3af41e6a1 Use errors.AsType in MembershipProfile.Insert
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-14 12:40:25 +01:00
Bryan Frimin
a74ebdd8b8 Add commit format intrsuction
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-14 12:39:28 +01:00
Bryan Frimin
5d2b394bac Include error in tool_end event for interrupted tools
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-14 12:28:26 +01:00
Bryan Frimin
d01ee914c1 Style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-13 20:00:22 +01:00
Bryan Frimin
deac1538e5 Style
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-13 19:58:02 +01:00