Skip to content
Ironflow is pre-1.0: APIs can change between releases. Pin a version. What is ready →

ironflow conformance

Check your own handler against an Ironflow wire contract. This command contacts no Ironflow server.

Terminal window
ironflow conformance <subcommand> [flags]

Send the requests the engine sends to a push endpoint, and check each answer against the push protocol. The endpoint must host the four fixture functions on the push conformance page.

Terminal window
ironflow conformance push --url http://localhost:8080/ironflow --signing-key $KEY

Flags:

FlagShortTypeDefaultDescription
--urlstringPush endpoint to check. Required.
--signing-keystring$IRONFLOW_SIGNING_KEYKey the endpoint verifies X-Ironflow-Signature with. Without it, the signature checks are skipped.
--levelint3Run checks up to this level: 1 transport, 2 steps, 3 sleep yield.
--timeoutduration10sTimeout for each request.
--jsonboolfalsePrint the report as JSON.

Exit codes:

CodeMeaning
0No check failed.
1One or more checks failed.
3The endpoint did not answer.
4A flag is not valid.

Output:

PASS L1 transport.method-not-allowed
FAIL L2 steps.full-replay
delta step IDs
want: (none)
got: run_conf_x:plain:0 run_conf_x:plain:1
contract: https://docs.ironflow.run/reference/api/push-protocol/#memoization-rules
SKIP L1 signature.valid (no --signing-key)
12 passed, 1 failed, 8 skipped