Simulate runs a request through a latch's real pipeline and shows you every filter's decision, without calling the upstream and without using the credential.
Use it before you hand a latch to anyone. A policy you have not simulated is a policy you are guessing about.
Using it
Pick a latch, then either:
- Scenarios. Pre-built requests that match the selected latch: the kind of call it is meant to allow, and the kind it is meant to refuse.
- Custom request. Your own method, path, and JSON body.
The pipeline then evaluates filter by filter, and you see exactly where a request is stopped and why. It is the same evaluation the proxy performs, not an approximation.
On a multi-mount latch, scenarios are built per mount, so you can exercise each service's pipeline independently.
What it will not tell you
Stateful filters are skipped, with an advisory note. A rate_limit cannot be
meaningfully replayed in a dry run: the whole point of it is the requests that came
before, and a simulation has no before. The same is true of spend_limit, which is
metered against live daily spend.
So a simulation that says "allow" is telling you the declarative filters allow it. It is not a promise that you are under your rate limit or your budget.
Related
- The pipeline: what the evaluation order actually is.
- Activity: the same filter trace, for requests that really happened.