pixellint

vendor/heap-user-properties · vendor documented

Heap user properties need app_id and identity

The server API cannot attach traits to an anonymous Heap user_id. identity is required. properties is the object that writes the traits. The builtin Email property is the lowercase key email.

identity is required on the server API

Client-side addUserProperties can run in an anonymous session. The server call needs the known identity.

Rule: vendor.heap-user-properties.body.identity.missing

What this pack matches

Hosts
heapanalytics.com, c.eu.heap-api.com
Paths
/api/add_user_properties
Vendor docs
developers.heap.io/reference/add-user-properties

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
app_id required It is the Heap environment ID. Heap documents it as required. Fix: Set app_id to the environment ID from Heap Projects. vendor.heap-user-properties.body.app_id.missing
vendor.heap-user-properties.body.app_id.empty
docs
identity required It is the known identity. Heap documents it as required. The server API cannot attach properties to an anonymous Heap user_id. Fix: Send the same identity you use in Heap Identify. vendor.heap-user-properties.body.identity.missing
vendor.heap-user-properties.body.identity.empty
docs
properties recommended It is the trait object. Heap documents keys and values as strings or numbers, fewer than 1024 characters. The builtin Email property is the lowercase key email. Fix: Send a properties object. Use the key email, lowercase, for Heap's builtin Email property. vendor.heap-user-properties.body.properties.missing docs

Validate a payload

pixellint validate json @payload.json --rulepack vendor/heap-user-properties

Try this failing payload in the playground. Heap add user properties missing identity.

{"app_id":"11","properties":{"age":"25"}}

cargo install pixellint · npm install pixellint