Shopify Monorail checks the CLI request envelope.
Advisory checks for the pinned Shopify CLI SDK envelope on its exact /v1/produce request endpoint. The SDK sends schema_id and object payload using POST and JSON MIME. Payload fields, registry membership, timestamp-header requirements and remote acceptance are outside this profile.
What this pack matches
Rules
Codes are stable. A finding in CI, MCP, or the playground lands on the same id.
| Field | Required | What it checks | Rule ids | Source |
|---|---|---|---|---|
root |
optional | Advisory shape of the pinned Shopify CLI producer. Schema-specific payload rules and current service acceptance remain external. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: object. | vendor.shopify-monorail.body.root.invalid |
docs |
schema_id |
recommended | The pinned producer emits a schema_id field. Native schema-ID types and registry acceptance remain external; numeric keys and NaN-to-null serialization are valid source boundaries. Presence diagnostic severity: warning. Value diagnostic severity: warning. | vendor.shopify-monorail.body.schema_id.missing |
docs |
payload |
recommended | Advisory shape of the pinned Shopify CLI producer. Schema-specific payload rules and current service acceptance remain external. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: object. | vendor.shopify-monorail.body.payload.missingvendor.shopify-monorail.body.payload.invalid |
docs |
method |
required | Advisory shape of the pinned Shopify CLI producer. Schema-specific payload rules and current service acceptance remain external. Complete HTTP capture contract. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: string. | vendor.shopify-monorail.http.method.missingvendor.shopify-monorail.http.method.emptyvendor.shopify-monorail.http.method.invalid |
docs |
content_type |
recommended | Advisory shape of the pinned Shopify CLI producer. Schema-specific payload rules and current service acceptance remain external. Complete HTTP capture contract. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: string. | vendor.shopify-monorail.http.content_type.missingvendor.shopify-monorail.http.content_type.emptyvendor.shopify-monorail.http.content_type.invalid |
docs |
body |
recommended | Advisory shape of the pinned Shopify CLI producer. Schema-specific payload rules and current service acceptance remain external. Complete HTTP capture contract. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: object. | vendor.shopify-monorail.http.body.missingvendor.shopify-monorail.http.body.invalid |
docs |
Validate a payload
pixellint validate request @request.json --rulepack vendor/shopify-monorail
Try this failing payload in the playground. An example with a validation finding.
{"url": "https://monorail-edge.shopifysvc.com/v1/produce", "method": "POST", "headers": [{"name": "Content-Type", "value": "application/json"}]}
cargo install pixellint
·
npm install pixellint