blob: 2a00311e28fce95349b070c95f0b3dc0423b962d [file] [log] [blame]
subject: namespace:ns
revision: "2022"
rules:
- selector: # must be empty for preprocessing adapters
aspects:
# Fetch the API key and use it to set various request attributes.
# This is where the adapter should cache, because this one gets called three times
# (check, quota, and report)
- kind: attributes
adapter: apigeeAttributes
params:
input_expressions:
apiKey: request.headers["apikey"] | "INVALID_KEY"
requestPath: request.path | "/"
attribute_bindings:
authorization.success.string: successString
authorization.success: success
authorization.client.id: clientID
authorization.application.name: applicationName
authorization.apiproduct.name: apiProduct
# In "check" reject the request if the key is invalid. It'd be nice if we could
# customize the error here. We could build yet another adapter for that purpose!
- kind: lists
adapter: authorizationChecker
params:
checkExpression: authorization.success.string
- kind: attributes
adapter: apigeeAnalytics
params:
logName: accesslog.apigee
log:
descriptorName: accesslog.apigee
labels:
sourceIP: source.ip
urlPath: request.path
hostHeader: request.host
httpMethod: request.method
userAgent: request.useragent
requestTime: request.time
responseTime: response.time
responseCode: response.code | 200
proxyName: proxy.name | "istio"
proxyRevision: proxy.revision | 1
clientID: authorization.client.id | ""
applicationName: authorization.application.name | ""
apiProduct: authorization.apiproduct.name | ""