Capture request/response bodies in audit-log, extend it to MCP
custom_fields_by_lua adds request_body/response_body to the http-log payload. Bodies and the raw Authorization header are now both logged in clear text — dev only, flagged in the plugin file itself.
This commit is contained in:
@@ -15,4 +15,5 @@ resources:
|
|||||||
- mcp/consumergroups.yaml
|
- mcp/consumergroups.yaml
|
||||||
- mcp/ai-mcp-proxy.yaml
|
- mcp/ai-mcp-proxy.yaml
|
||||||
- mcp/openid-connect.yaml
|
- mcp/openid-connect.yaml
|
||||||
|
- mcp/audit-log.yaml
|
||||||
- mcp/pluginbindings.yaml
|
- mcp/pluginbindings.yaml
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: configuration.konghq.com/v1
|
||||||
|
kind: KongPlugin
|
||||||
|
metadata:
|
||||||
|
name: ${NAME}-catalog-mcp-audit-log
|
||||||
|
namespace: ${NAMESPACE}
|
||||||
|
plugin: http-log
|
||||||
|
# dev only: request/response bodies and the raw Authorization (JWT) header
|
||||||
|
# are captured in clear text. Not acceptable as-is for a non-dev environment.
|
||||||
|
config:
|
||||||
|
http_endpoint: ${AUDIT_LOG_ENDPOINT}
|
||||||
|
method: POST
|
||||||
|
content_type: application/json
|
||||||
|
custom_fields_by_lua:
|
||||||
|
request_body: "return kong.request.get_raw_body()"
|
||||||
|
response_body: "return kong.response.get_raw_body()"
|
||||||
@@ -33,3 +33,21 @@ spec:
|
|||||||
group: configuration.konghq.com
|
group: configuration.konghq.com
|
||||||
kind: KongRoute
|
kind: KongRoute
|
||||||
name: ${NAME}-catalog-mcp
|
name: ${NAME}-catalog-mcp
|
||||||
|
---
|
||||||
|
apiVersion: configuration.konghq.com/v1alpha1
|
||||||
|
kind: KongPluginBinding
|
||||||
|
metadata:
|
||||||
|
name: ${NAME}-catalog-mcp-audit-log-binding
|
||||||
|
namespace: ${NAMESPACE}
|
||||||
|
spec:
|
||||||
|
controlPlaneRef:
|
||||||
|
type: konnectNamespacedRef
|
||||||
|
konnectNamespacedRef:
|
||||||
|
name: ${CONTROL_PLANE_REF_NAME}
|
||||||
|
pluginRef:
|
||||||
|
name: ${NAME}-catalog-mcp-audit-log
|
||||||
|
targets:
|
||||||
|
serviceRef:
|
||||||
|
group: configuration.konghq.com
|
||||||
|
kind: KongService
|
||||||
|
name: ${NAME}-catalog-mcp
|
||||||
|
|||||||
@@ -4,7 +4,12 @@ metadata:
|
|||||||
name: ${NAME}-catalog-api-audit-log
|
name: ${NAME}-catalog-api-audit-log
|
||||||
namespace: ${NAMESPACE}
|
namespace: ${NAMESPACE}
|
||||||
plugin: http-log
|
plugin: http-log
|
||||||
|
# dev only: request/response bodies and the raw Authorization (JWT) header
|
||||||
|
# are captured in clear text. Not acceptable as-is for a non-dev environment.
|
||||||
config:
|
config:
|
||||||
http_endpoint: ${AUDIT_LOG_ENDPOINT}
|
http_endpoint: ${AUDIT_LOG_ENDPOINT}
|
||||||
method: POST
|
method: POST
|
||||||
content_type: application/json
|
content_type: application/json
|
||||||
|
custom_fields_by_lua:
|
||||||
|
request_body: "return kong.request.get_raw_body()"
|
||||||
|
response_body: "return kong.response.get_raw_body()"
|
||||||
|
|||||||
Reference in New Issue
Block a user