Every capability is exposed as a versioned REST endpoint before any UI is built. Clients, admin panels, and third-party integrations consume the same contract.
/enravo/v1/auth/login1POST /enravo/v1/auth/login2Content-Type: application/json3X-Client-ID: mobile_consumer4X-Device-ID: dev_9f8e7d6c5X-PoP-Signature: eyJhbGciOiJFUzI1NiJ9...6
7{8 "username": "user@example.com",9 "password": "••••••••",10 "device_info": {11 "platform": "android",12 "app_version": "2.4.1",13 "push_token": "fcm_abc123..."14 }15}Data models are declared as schemas. The platform reads your definition and generates storage, validation, API routes, permission scopes, and admin UI automatically. Change the schema — everything updates.
No request reaches business logic without passing through the complete guard pipeline. Failed at any stage → rejected with audit log.
JWT Validation
Token structure, expiry, signature, and client scope verified
Device Check
Device ID, status, and active device count verified
PoP Verify
ECDSA P-256 signature validated against device public key
App Chain
App status (active/revoked/banned) and attestation verified
Ability Check
Role abilities matched against endpoint requirements
Allow
Request proceeds to controller — full audit logged
JWT Validation
Token structure, expiry, signature, and client scope verified
Device Check
Device ID, status, and active device count verified
PoP Verify
ECDSA P-256 signature validated against device public key
App Chain
App status (active/revoked/banned) and attestation verified
Ability Check
Role abilities matched against endpoint requirements
Allow
Request proceeds to controller — full audit logged
The design decisions that keep the platform maintainable, predictable, and secure.
Modules declare dependencies through contracts, never through direct class references. Removing a module never breaks another.
When a guard cannot determine trust, the request is denied. 5 signature failures auto-block the device. 1 nonce replay triggers instant ban.
Every API request logged with device, client, user, IP, endpoint, ability, and status. Security violations trigger alerts. Config changes tracked.