Conformance suite¶
thingmake-conformance is a self-certification CLI for integrators validating their
HTTP factory-service backend against the thingmake-facing contract. It signs and sends
dispatches to your backend and observes your backend’s polling/reporting behaviour from
a single process — no separate thingmake instance required. This page is a front door; the
suite README is the authoritative reference.
Source of truth¶
Artifact |
What it is |
|---|---|
|
Full suite guide — flags, exit codes, scenario categories, output formats |
|
The standalone Go binary source ( |
Single-command invocation¶
thingmake-conformance \
--backend-url http://your-factory-backend:8080 \
--access-key <your-access-key-id> \
--secret-key <your-secret-key>
Add --webhook-secret <ws> to enable the HMAC webhook scenarios. Credentials are
pre-shared test values and are never echoed into report output (only header names
appear in diagnostics).
Prerequisite — point your backend at --listen-addr¶
Before running the suite, configure your factory backend’s thingmake-base-url to point at
the suite’s --listen-addr (default :8910). The suite binds an embedded
mock-thingmake listener there and serves the state-changes feed, identity-blacklist
feed, and the result-webhook sink, so it can observe both faces of the contract during
a run:
your-factory-backend ←── dispatches ── thingmake-conformance (driver)
your-factory-backend ─── polls ──────► :8910 (mock control-plane)
your-factory-backend ── reports result ► :8910 (result-webhook sink)
Exit codes¶
Code |
Meaning |
|---|---|
|
all scenarios passed |
|
one or more scenarios failed |
|
usage / flag error |
The suite emits --format text (default), json, or junit. Use junit to wire the
green/red gate into CI. Scenario diagnostics name the expected THM-NNNNN code on each
failure — cross-reference the error catalog.
Scenario coverage¶
The suite groups scenarios by category: AK/SK server-face accept/reject, thing-state
notifications, webhook HMAC verification, state-changes cursor polling (incl. HTTP 410
expiry, THM-50120), identity-blacklist polling (HTTP 410, THM-70120), result
reporting, and error-code paths. The full category table is in the
suite README.
A bundled reference stub (services/thingmake/cmd/factory-refstub) is the green
reference the suite must pass 100% against — a useful template when building your own
backend.
What next¶
Run conformance as step 2 of the journey → Getting started
Decode any failing
THM-NNNNNcode → Error catalog