apigeelint
Version:
Node module and tool to lint a bundle for an Apigee API Proxy or sharedflow.
103 lines • 3.5 kB
text/xml
<ProxyEndpoint name="default">
<Description/>
<DefaultFaultRule name="DefaultFaultRule">
<Step>
<Condition>(flow.error.code == null)</Condition>
<Name>AM-set-proxy-default-error-vars</Name>
</Step>
<Step>
<Name>AM-set-standard-error-response</Name>
</Step>
<AlwaysEnforce>true</AlwaysEnforce>
</DefaultFaultRule>
<FaultRules>
<FaultRule name="ProxyFaultRules">
<!-- Quiet apigeelint -->
<Condition>(fault.name != null)</Condition>
<Step>
<Name>JS-proxy-fault-rules</Name>
</Step>
</FaultRule>
</FaultRules>
<PreFlow name="PreFlow">
<Request>
<Step>
<Condition>(request.verb != "OPTIONS")</Condition>
<Name>VA-header</Name>
</Step>
<Step>
<Condition>(request.verb != "OPTIONS")</Condition>
<Name>AM-remove-x-apikey</Name>
</Step>
<Step>
<Condition>(request.verb != "OPTIONS")</Condition>
<Name>KV-config-values</Name>
</Step>
<Step>
<Name>AM-config-properties</Name>
</Step>
</Request>
<Response/>
</PreFlow>
<PostFlow name="PostFlow">
<Request/>
<Response/>
</PostFlow>
<Flows>
<Flow name="ping">
<Description>proxy health check</Description>
<Request/>
<Response>
<Step>
<Name>JS-set-time-data</Name>
</Step>
<Step>
<Name>AM-create-ping-response</Name>
</Step>
</Response>
<Condition>(proxy.pathsuffix MatchesPath "/ping") and (request.verb = "GET")</Condition>
</Flow>
<Flow name="status">
<Description>back end health check</Description>
<Request/>
<Response>
<Step>
<Name>JS-set-time-data</Name>
</Step>
<Step>
<Name>AM-create-status-response</Name>
</Step>
</Response>
<Condition>(proxy.pathsuffix MatchesPath "/status") and (request.verb = "GET")</Condition>
</Flow>
<Flow name="cors">
<Description>ignore OPTIONS request</Description>
<Request/>
<Response/>
<Condition>(request.verb = "OPTIONS") and (proxy.pathsuffix MatchesPath "/**")</Condition>
</Flow>
<Flow name="catch all">
<Description>Catch any unmatched calls and raise fault</Description>
<Request>
<Step>
<Name>RF-path-suffix-not-found</Name>
</Step>
</Request>
<Response/>
<Condition>(proxy.pathsuffix MatchesPath "**")</Condition>
</Flow>
</Flows>
<HTTPProxyConnection>
<BasePath>/pingstatus/v1</BasePath>
</HTTPProxyConnection>
<RouteRule name="cors">
<Condition>(request.verb == "OPTIONS")</Condition>
</RouteRule>
<RouteRule name="ping">
<Condition>(proxy.pathsuffix MatchesPath "/ping")</Condition>
</RouteRule>
<RouteRule name="default">
<TargetEndpoint>default</TargetEndpoint>
</RouteRule>
</ProxyEndpoint>