REST control plane and signed webhook design.
Lockia Push exposes a REST control plane. Devices speak MQTT to our gateway. Third-party integrations authenticate with Lockia Push machine identities and call the REST API with scoped tokens.
Issued through Lockia Push identity. Scopes per client, IP allowlists per environment, rotation in one click.
POST /v1/messages, GET /v1/messages/:id, /v1/devices, /v1/audit-events. Same shape as the console uses.
Endpoint management and SSRF-safe test delivery exist, but the signed event-delivery worker returns 501 and is not offered as a shipped customer feature.
Apache-licensed JavaScript and Android protocol-v2 SDKs include reconnect credentials, durable ACK state, and real-broker tests. Go and Rust SDKs remain roadmap items.
Default-deny LockiaMQ authentication, authorization, TLS, and persistence are source-controlled and runtime-tested. Live HA promotion remains operator-gated.
Core mutations and denials emit actor and result metadata. Retention workflows and exports require approved policy plus production evidence before contractual use.
Get a token, send an encrypted command, verify a webhook.
Three-step integration. Same code in the console's connection guide on /api-access.
curl -X POST $ZITADEL_ISSUER/oauth/v2/token \
-u "$LOCKIA_CLIENT_ID:$LOCKIA_CLIENT_SECRET" \
-d 'grant_type=client_credentials&scope=urn:zitadel:iam:org:project:id:$ZITADEL_PROJECT_ID:aud messages.write messages.read'curl -X POST https://admin.lockiapush.com/v1/messages \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d @encrypted-envelope.json# Header: X-Lockia-Signature: t=<unix>,v1=<hex>
# Verify: hmac_sha256(signing_secret, t + "." + raw_body) == v1