Commit Graph

143 Commits

Author SHA1 Message Date
Bryan Frimin
1d3cc1c65e Use single OIDC session auth method instead of per-provider values
The OIDC provider is already tracked in iam_oidc_states.provider, so
there is no need for provider-specific session auth methods (GOOGLE,
MICROSOFT). Replace them with a single OIDC auth method.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-23 14:17:44 +01:00
Bryan Frimin
23084a72a2 Add OIDC login support for Google and Microsoft providers
Implements OpenID Connect authentication flow with PKCE, JWT verification, and enterprise-only account restrictions. Adds OIDC service with JWKS caching and state management, HTTP handlers for login/callback flows, GraphQL query for available providers, and sign-in UI integration.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-23 14:17:43 +01:00
Bryan Frimin
7b320916af Add audit log feature for recording all actions
Adds audit logging that records all authorized actions performed by
users and API keys. The audit log is automatically populated whenever
the authorizer approves an action, and is queryable via GraphQL, MCP,
and CLI interfaces. Permission checks are excluded via a dry-run flag
to avoid phantom entries on page loads.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-21 19:16:19 +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
É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é
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é
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
Bryan Frimin
0974488fa3 Generate golang code
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-11 13:09:02 +01:00
Bryan Frimin
e393411333 Move kind to string
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-11 13:09:02 +01:00
Bryan Frimin
dd3885ac54 Fix MS365 attributes handling
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-11 13:09:01 +01:00
Émile Ré
17c9f2eded Fix profiles default filter
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-10 18:19:16 +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é
909beeb606 Migrate some trust_center_access columns to profiles
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-05 10:36:08 +04:00
Sacha Al Himdani
21ed4113c3 Go format
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-03 11:17:05 +01:00
Émile Ré
3c70b1e3eb Generate go files after gqlgen & mcpgen upgrades
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-03-03 12:54:43 +04: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é
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é
aaa2d77d40 Sign out any other account when activating via mail token
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:03 +04:00
Émile Ré
2a082efae0 Fix after rebase
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:03 +04:00
Émile Ré
cfb81ca154 Fix e2e again
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:02 +04:00
Émile Ré
776af96170 Fix bot review
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:02 +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é
ab5fe8e5e2 Fix e2e tests
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:13:01 +04:00
Émile Ré
7971f88fcd Create flow to add password after account activation
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:58 +04:00
Émile Ré
5ab5d2cc4c Implement activate account page
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:58 +04:00
Émile Ré
47aba96b69 Reimplement invitations
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:58 +04:00
Émile Ré
a42fc4fa61 Reimplement remove / create in console
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:57 +04:00
Émile Ré
f931bda10f Reimplement remove and invite user
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:56 +04:00
Émile Ré
196738f876 Implement create user
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:56 +04:00
Émile Ré
56ec0ab3c3 Move source and state from membership to profile
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:55 +04:00
Émile Ré
ec3d8fad40 Fix console app graphQL queries
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:54 +04:00
Émile Ré
baeb758a4f Implement resolvers
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:53 +04:00
Émile Ré
c115e2c9dc Update graphql schema
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:53 +04:00
Émile Ré
108e9cb85d Remove coredata.MembershipProfile MemerhipID field
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-19 16:12:52 +04:00
Émile Ré
5684984755 Fix bot review
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-18 18:20:45 +04:00
Émile Ré
00cc91c102 Fix assume SAML required error redirect
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-18 15:16:00 +04:00
Sacha Al Himdani
f9de9c4834 Add webhooks
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-13 18:28:25 +01:00
Émile Ré
3a459f1992 Rework console pages and implement profile update
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 16:21:12 +04:00
Émile Ré
8d20220c86 Fix e2e tests
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 16:21:11 +04:00
Émile Ré
e46c1d4894 Rename redirect-path to continue + handle redirection on forbidden from wrong org assume
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:07 +04:00
Émile Ré
16556f9fb9 Implement redirect path for SAML SSO
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:07 +04:00
Émile Ré
e0bb27bff4 Various fixes
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:06 +04:00
Émile Ré
a8d1ce0097 Implement redirect path for saml
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:06 +04:00
Émile Ré
bdb70c5cac Add comment regarding error handling when opening child session on sign in
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:05 +04:00
Émile Ré
5fa4477d5d Create assume page to redirect to when AssumptionRequired catched in boundary
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:04 +04:00
Émile Ré
039ff7c5f0 Reuse existing session when signing in in for assume
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:03 +04:00
Émile Ré
65ac873cff Remove unused parameter
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-12 09:37:03 +04:00
Sacha Al Himdani
1494707cb5 Exclude users from google workspace bridge
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-02-10 12:42:24 +01:00