Files
Stéphane Tailland de69f88e29 Build sales-api REST + MCP layers (Layer 3), full build in one pass
14 routes: Order (single key, full CRUD + order-details sub-resource)
and Orderdetail (composite key ordernumber+productcode, own
top-level resource, mirrors backend's own URL structure). MCP layer
built with the corrected single-route pattern from the start
(STATUS.md section 18) — 7 tools, list/get read-only for all 5
roles, create-order/create-orderdetail for admin+customer+support
(verified against OrderPermission/OrderScopedPermission.check() —
support gets an unconditional class-level pass, the status-only
restriction is object-level and doesn't apply to create).

Keycloak (local): sales-api-audience + mcp-sales-audience client
scopes, sales-api + mcp-sales resource clients, attached to the
broker and librechat respectively. Deploy key and broker secret
reused/mirrored from catalog-api and the live broker client, same
pattern as customers-api/payments-api.
2026-08-23 17:02:17 +02:00

260 lines
5.2 KiB
YAML

apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-listorders
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_listorders
methods:
- GET
- OPTIONS
paths:
- /sales/v1/orders/
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-createorder
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_createorder
methods:
- POST
- OPTIONS
paths:
- /sales/v1/orders/
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-getorder
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_getorder
methods:
- GET
- OPTIONS
paths:
- ~/sales/v1/orders/(?<ordernumber>[^#?/]+)/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-updateorder
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_updateorder
methods:
- PUT
- OPTIONS
paths:
- ~/sales/v1/orders/(?<ordernumber>[^#?/]+)/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-patchorder
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_patchorder
methods:
- PATCH
- OPTIONS
paths:
- ~/sales/v1/orders/(?<ordernumber>[^#?/]+)/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-deleteorder
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_deleteorder
methods:
- DELETE
- OPTIONS
paths:
- ~/sales/v1/orders/(?<ordernumber>[^#?/]+)/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-getorderorderdetails
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_getorderorderdetails
methods:
- GET
- OPTIONS
paths:
- ~/sales/v1/orders/(?<ordernumber>[^#?/]+)/order-details/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-listorderdetails
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_listorderdetails
methods:
- GET
- OPTIONS
paths:
- /sales/v1/orderdetails/
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-createorderdetail
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_createorderdetail
methods:
- POST
- OPTIONS
paths:
- /sales/v1/orderdetails/
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-getorderdetail
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_getorderdetail
methods:
- GET
- OPTIONS
paths:
- ~/sales/v1/orderdetails/(?<ordernumber>[^#?/]+)/(?<productcode>[^#?/]+)/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-updateorderdetail
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_updateorderdetail
methods:
- PUT
- OPTIONS
paths:
- ~/sales/v1/orderdetails/(?<ordernumber>[^#?/]+)/(?<productcode>[^#?/]+)/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-patchorderdetail
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_patchorderdetail
methods:
- PATCH
- OPTIONS
paths:
- ~/sales/v1/orderdetails/(?<ordernumber>[^#?/]+)/(?<productcode>[^#?/]+)/$
strip_path: false
tags:
- sales
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-sales-api-deleteorderdetail
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-sales-api
name: sales-api_deleteorderdetail
methods:
- DELETE
- OPTIONS
paths:
- ~/sales/v1/orderdetails/(?<ordernumber>[^#?/]+)/(?<productcode>[^#?/]+)/$
strip_path: false
tags:
- sales