Operations & platform
Endpoints and behaviours for running FiniteBase in production: health checks, metrics, request tracing, rate limits and the machine-readable API description.
Health & readiness
Two unauthenticated probes, suitable for a load balancer or Kubernetes:
GET /healthz # liveness: the process is up -> { "status":"ok" }
GET /readyz # readiness: dependencies (DB) reachable -> 200 when ready
Metrics
A Prometheus exposition endpoint (no project header) for scraping request counts, latencies and error rates:
GET /metrics # text/plain; version=0.0.4 exposition format
Request tracing
Every response carries an X-Request-Id. Send your own on the request and it is echoed back;
otherwise the engine generates one. Include it when reporting an issue so a request can be traced end to end.
Rate limiting
The data plane is rate limited per key. When you exceed it the engine returns
429 with a Retry-After header (seconds) and the standard error envelope:
{ "message":"Rate limit exceeded. Please retry shortly.", "code":429,
"type":"general_rate_limit_exceeded", "version":"1.0.0" }
Back off for the Retry-After interval before retrying.
Audit log
Privileged data-plane mutations (document, file and session create/update/delete) are recorded to an audit log, capturing what changed and when — independent of your own application logging.
OpenAPI description
The full API — routes, parameters, headers and error types — is published as an OpenAPI 3.1 document, per project:
curl "https://base.finiteskills.com/v1/openapi.json" -H "X-Appwrite-Project: <YOUR_PROJECT_ID>"
Feed it to an OpenAPI client generator, Postman or Insomnia to get a typed SDK or a ready-made request collection.