Server API
AppKernia describes its server contract with OpenAPI 3.1. These pages explain common routes, examples, and security boundaries; server/openapi/openapi.yaml in the current repository remains the final source for fields, enums, status codes, and schemas.
Download the current OpenAPI YAML
Use the Admin online OpenAPI reference
Admin and Mobile tokens are not interchangeable. X-AppID selects a public active app; tenant and user scope still come from the verified session.
Authentication flow
Admin and Mobile use separate entry points and audiences. Refresh is a controlled one-time session rotation, not an automatic replay mechanism for arbitrary failed requests.
Admin and Mobile have separate entry points and audiences. A client must not blindly replay a failed write; automatic retry is allowed only when the endpoint has explicit idempotency semantics described in conventions.
API families
First request without authentication
After the local API starts, request public config with the development App ID from the repository manifest:
A successful response has a 2xx status, a stable code, matching Content-Language, and no server secret.
Integration checklist
- Generate clients from OpenAPI and verify the schema hash in CI.
- Mobile calls only
/api/v1; Admin calls only/admin-api/v1. - Send
Accept-Languageon every request; preserve Request IDs without logging tokens. - Cover denied paths with backend authorization tests—menus and buttons are not evidence.
- Define idempotency keys, retry limits, and audit behavior for writes.
- Validate SQL isolation with integration data from two tenants.
Start with the online OpenAPI reference and System menu, conventions, Mobile authentication, Mobile resources, Admin authentication, or Admin core resources.