Tool
Validate an AMAP document
Paste or load a JSON document and check it against the published AMAP schemas. Nothing you paste leaves your browser: the schemas are built into this page, and the check runs locally.
This validator gives the same verdict as the specification's own conformance gate, fixtures/validate.py. It checks the same schema rules and the same two extra checks that JSON Schema can't express: attachment indexes must match their position in the array, and every content_ref must point to its own notice. It reaches the same verdict, with the same error messages, on all 119 conformance fixtures.
1. Choose the document type
The conformance gate picks a schema from the fixture's filename prefix. You can't do that with real files: on disk, a runtime names both a delivery notice and the spooled message behind it notice-<id>.json, from the same notice id. So choose the type explicitly.
2. Paste or load the document
What a pass does not prove
Passing the schemas is necessary, but it isn't conformance. The specification's Conformance section says that claiming conformance as a runtime or a connector takes both the fixture run and the operational checks prescribed for that role. A document validator can't see how a document was written, where it lives, or what the runtime did with it. Obligations outside any document check include:
- Sidecar attachment files existing as declared, with
size_bytesandsha256matching the real bytes. - A
filenameis never treated as a path.filenameandmedia_typeare untrusted display strings, deliberately left unchecked beyond being non-empty. - Write ordering and atomicity (sidecars before the request, write-then-rename), and runtime-private staging outside the shared volume.
- Path discipline on write and read: no following symlinks, pinned parent directories, create-exclusive writes, bounded reads.
- Caps and allowlists: attachment types, sizes, quotas and recipients.
- Enforcement by absence: a quarantined message produces no notice at all.
- Connector tolerance of a read-only inbound tree, ingest-by-copy, and a single writer and a single drainer per namespace.
- For the peer lane: who may write the peer tree, intake isolation, where signatures are verified, and at-most-once action.
A green result also covers only the documents you check. Name every kind of document you emit, and show that one of each reached the validator.
More on conformance: For implementers. The schemas, fixtures and the reference gate are in the amap-spec repository, and the schemas this page checks against are in schemas/.