Rebuild catalog-mcp consumer groups on the real 5-role model

KongConsumerGroups were still named sttlab-user/sttlab-admin, a leftover
from before the classic-models realm's role model existed. Real users'
JWTs carry realm roles (admin, read_only, product_manager, customer,
support) via consumer_groups_claim, so no group ever matched and every
tool call was rejected with 403 "consumer groups were not found".

Groups now match the realm roles directly; tool ACLs gate on each role's
catalog:read/catalog:write grant from security-model.yaml.
This commit is contained in:
Stéphane Tailland
2026-08-21 18:35:02 +02:00
parent 95f9b611b3
commit fc6b60c582
2 changed files with 52 additions and 9 deletions
+12 -5
View File
@@ -18,8 +18,11 @@ config:
open_world_hint: false open_world_hint: false
acl: acl:
allow: allow:
- sttlab-user - admin
- sttlab-admin - read_only
- product_manager
- customer
- support
method: GET method: GET
scheme: http scheme: http
host: ${REST_HOSTNAME} host: ${REST_HOSTNAME}
@@ -34,8 +37,11 @@ config:
open_world_hint: false open_world_hint: false
acl: acl:
allow: allow:
- sttlab-user - admin
- sttlab-admin - read_only
- product_manager
- customer
- support
method: GET method: GET
scheme: http scheme: http
host: ${REST_HOSTNAME} host: ${REST_HOSTNAME}
@@ -56,7 +62,8 @@ config:
open_world_hint: false open_world_hint: false
acl: acl:
allow: allow:
- sttlab-admin - admin
- product_manager
method: POST method: POST
scheme: http scheme: http
host: ${REST_HOSTNAME} host: ${REST_HOSTNAME}
+40 -4
View File
@@ -1,23 +1,59 @@
apiVersion: configuration.konghq.com/v1beta1 apiVersion: configuration.konghq.com/v1beta1
kind: KongConsumerGroup kind: KongConsumerGroup
metadata: metadata:
name: ${NAME}-sttlab-user name: ${NAME}-admin
namespace: ${NAMESPACE} namespace: ${NAMESPACE}
spec: spec:
controlPlaneRef: controlPlaneRef:
type: konnectNamespacedRef type: konnectNamespacedRef
konnectNamespacedRef: konnectNamespacedRef:
name: ${CONTROL_PLANE_REF_NAME} name: ${CONTROL_PLANE_REF_NAME}
name: sttlab-user name: admin
--- ---
apiVersion: configuration.konghq.com/v1beta1 apiVersion: configuration.konghq.com/v1beta1
kind: KongConsumerGroup kind: KongConsumerGroup
metadata: metadata:
name: ${NAME}-sttlab-admin name: ${NAME}-read_only
namespace: ${NAMESPACE} namespace: ${NAMESPACE}
spec: spec:
controlPlaneRef: controlPlaneRef:
type: konnectNamespacedRef type: konnectNamespacedRef
konnectNamespacedRef: konnectNamespacedRef:
name: ${CONTROL_PLANE_REF_NAME} name: ${CONTROL_PLANE_REF_NAME}
name: sttlab-admin name: read_only
---
apiVersion: configuration.konghq.com/v1beta1
kind: KongConsumerGroup
metadata:
name: ${NAME}-product_manager
namespace: ${NAMESPACE}
spec:
controlPlaneRef:
type: konnectNamespacedRef
konnectNamespacedRef:
name: ${CONTROL_PLANE_REF_NAME}
name: product_manager
---
apiVersion: configuration.konghq.com/v1beta1
kind: KongConsumerGroup
metadata:
name: ${NAME}-customer
namespace: ${NAMESPACE}
spec:
controlPlaneRef:
type: konnectNamespacedRef
konnectNamespacedRef:
name: ${CONTROL_PLANE_REF_NAME}
name: customer
---
apiVersion: configuration.konghq.com/v1beta1
kind: KongConsumerGroup
metadata:
name: ${NAME}-support
namespace: ${NAMESPACE}
spec:
controlPlaneRef:
type: konnectNamespacedRef
konnectNamespacedRef:
name: ${CONTROL_PLANE_REF_NAME}
name: support