Sacha Al Himdani
86c45875a4
Whitelist ownership grants via allow policies
...
Replace the deny-based restriction on granting OWNER with role-scoped
allow policies so authorization fails closed: admins may create and
update memberships only when the assigned role is not OWNER, and the
absence of a target role no longer implies permission.
To keep console UI gating accurate without loosening the base grants,
the permission field gains an optional typed options argument
(PermissionOptionsInput) that forwards target_role into the dry-run
authorization. Only the two role-related console calls (create user,
update membership) pass it; the OWNER option stays hidden for admins via
the existing assignable-roles helper.
Add a non-regression test that an admin cannot promote a member to OWNER
while still being able to change members between non-owner roles.
2026-07-08 18:41:13 +02:00
Sacha Al Himdani
ff9cb881e8
Enforce owner-only member removal and ownership grants via policy
...
An organization ADMIN could hard-remove members, including OWNERs, because
removeUser (connect and MCP) only checked the weaker iam:membership-profile:delete
gate. Authorize the owner-only iam:membership:delete instead, and expose the
source attribute on MembershipProfile so the owner grant's non-SCIM condition
can match.
Consolidate ownership-grant authorization into policy for both createUser and
updateMembership: each resolver passes the requested role as a target_role
attribute and ADMIN is denied granting ownership via deny-create-owner /
deny-promote-owner. target_role is distinct from resource.role, which is the
target's current role and guards editing existing owners. With no callers left,
the iam:membership-role:set-owner action (grant and OAuth2 scope) is removed.
Also pass the authorized scope through to the RemoveUser/CreateUser services,
gate the console Remove action on iam:membership:delete, and add regression
tests plus a changelog entry.
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-08 17:59:45 +02:00
Ludovic Vielle
3443e63184
Release probod/v0.223.3
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-06 17:06:03 +02:00
Sacha Al Himdani
119b20bfbc
Release probod/v0.223.2
...
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-03 17:45:53 +02:00
Bryan Frimin
83cceb5d00
Release probod/v0.223.1
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-07-03 12:14:35 +02:00
Sacha Al Himdani
cdb1b679bd
Release probod/v0.223.0
...
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-07-02 19:39:07 +02:00
Ludovic Vielle
a3b65a6449
Release probod/v0.222.2
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-01 12:09:45 +02:00
Ludovic Vielle
e27c4b99ff
Release probod/v0.222.1
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-07-01 00:04:15 +02:00
Bryan Frimin
bc581eebf9
Release probod/v0.222.0
...
Signed-off-by: Bryan Frimin <bryan@getprobo.com >
2026-06-30 19:40:36 +02:00
Ludovic Vielle
9f9ace2cb8
Release probod/v0.221.0
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-30 13:08:37 +02:00
Ludovic Vielle
14f52f0ef4
Release probod/v0.220.0
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-25 10:34:47 +02:00
Ludovic Vielle
00010ce104
Release probod/v0.219.0
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-24 21:49:42 +02:00
Émile Ré
46d552da38
Release probod/v0.218.1
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-06-23 12:01:02 +02:00
Émile Ré
14aa6c3196
Release probod/v0.218.0
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-06-23 11:39:20 +02:00
Bryan Frimin
76ce4ced28
Release probod/v0.217.0
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-22 17:43:23 +02:00
Bryan Frimin
c24e7f7ae8
Release probod/v0.216.1
2026-06-19 18:50:55 +02:00
Bryan Frimin
5d37d9899c
Release probod/v0.216.0
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-19 17:27:19 +02:00
Émile Ré
d4b0040e95
Release probod/v0.215.1
2026-06-19 17:12:27 +02:00
Émile Ré
42ddefc261
Release probod/v0.215.0
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-06-19 15:19:31 +02:00
Ludovic Vielle
e79747a5f3
Release probod/v0.214.0
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-19 10:27:27 +02:00
Émile Ré
8906140ab3
Release probod/v0.213.0
2026-06-18 17:49:32 +02:00
Bryan Frimin
c9b74bac4a
Release probod/v0.212.0
2026-06-18 13:32:37 +02:00
Bryan Frimin
4535cd47fd
Style
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-18 11:42:12 +02:00
Bryan Frimin
5495f8e86b
Release probod/v0.211.2
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-18 11:39:19 +02:00
Bryan Frimin
7e4b060c12
Fix exit codes
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-18 11:36:49 +02:00
Bryan Frimin
f40be113cf
Release probod/v0.211.1
2026-06-18 11:09:11 +02:00
Bryan Frimin
44cb00a1a1
Fix missing os exit code on error
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-18 11:06:59 +02:00
Bryan Frimin
b1c8e56b58
Release probod/v0.211.0
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-18 11:03:08 +02:00
Bryan Frimin
91945442b3
Always output error as json when panic
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-18 10:39:52 +02:00
Sacha Al Himdani
29be61acbc
Release probod/v0.210.0
...
Signed-off-by: Sacha Al Himdani <sacha@probo.com >
2026-06-16 13:30:23 +02:00
Émile Ré
d9016b2d3a
Release probod/v0.209.0
...
Signed-off-by: Émile Ré <emile@probo.com >
2026-06-12 19:03:47 +02:00
Ludovic Vielle
beeee81a20
Release probod/v0.208.1
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-12 10:05:48 +02:00
Ludovic Vielle
07b844061a
Release probod/v0.208.0
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-11 16:17:49 +02:00
Émile Ré
90c52d743d
Release probod/v0.207.0
...
Signed-off-by: Émile Ré <emile@probo.com >
2026-06-10 18:47:09 +02:00
Émile Ré
5a4bbb8294
Release probod/v0.206.0
...
Signed-off-by: Émile Ré <emile@probo.com >
2026-06-09 18:06:22 +02:00
Sacha Al Himdani
9ac71f948f
Update contact email to hello@probo.com
...
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com >
2026-06-09 16:45:23 +02:00
Émile Ré
b643c8eb6d
Release probod/v0.205.0
...
Signed-off-by: Émile Ré <emile@probo.com >
2026-06-08 19:32:35 +02:00
Bryan Frimin
1c0f431bee
Release probod/v0.204.0
2026-06-05 17:56:54 +02:00
Bryan Frimin
2dfb7a4763
Release probod/v0.203.0
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-06-05 16:37:13 +02:00
Émile Ré
8f40f460d4
Release probod/v0.202.2
...
Signed-off-by: Émile Ré <emile@probo.com >
2026-06-03 16:42:35 +02:00
Émile Ré
4553407591
Release probod/v0.202.1
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-06-03 16:22:32 +02:00
Ludovic Vielle
460decaa1b
Release probod/v0.202.0
...
Signed-off-by: Ludovic Vielle <ludovic@probo.com >
2026-06-03 14:47:34 +02:00
Émile Ré
d9cf24d8fc
Release probod/v0.201.0
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-06-02 12:46:35 +02:00
Émile Ré
66708ec053
Release probod/v0.200.1
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-06-01 16:47:49 +02:00
Émile Ré
49dabedff4
Release probod/v0.200.0
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-06-01 14:58:04 +02:00
Bryan Frimin
4790f83360
Release probod/v0.199.1
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-05-28 20:26:05 -07:00
Bryan Frimin
6ad81a319a
Release probod/v0.199.0
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-05-28 18:40:45 -07:00
Bryan Frimin
ada92790bc
Release probod/v0.198.0
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-05-28 14:08:23 -07:00
Bryan Frimin
5e78b11f08
Release probod/v0.197.0
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-05-28 09:54:57 -07:00
Bryan Frimin
f0b9acb748
Release probod/v0.196.1
...
Signed-off-by: Bryan Frimin <bryan@probo.com >
2026-05-27 19:27:13 -07:00