Every public HTTP surface of the nSelf stack. All service endpoints go through the nginx reverse proxy with TLS termination.
Base: https://api.local.nself.org/v1/graphql
Primary application API. All app reads and writes go through Hasura. Auth via JWT claims.
| Method | Path | Summary |
|---|---|---|
| POST | /v1/graphql | GraphQL query, mutation, and subscription endpoint. |
| GET | /v1/version | Hasura server version. |
| GET | /healthz | Hasura health check. |
Base: https://auth.local.nself.org
Email/password, magic link, OAuth, and WebAuthn. JWTs include Hasura claims.
| Method | Path | Summary |
|---|---|---|
| POST | /v1/signup/email-password | Register a new user. |
| POST | /v1/signin/email-password | Sign in with email and password. |
| POST | /v1/signin/pat | Exchange a personal access token for a session. |
| POST | /v1/signout | Sign out and revoke the current refresh token. |
| POST | /v1/token | Refresh access token. |
| POST | /v1/user/password/reset | Request a password reset email. |
| POST | /v1/user/email/change | Request an email-change confirmation. |
| POST | /v1/mfa/totp/generate | Enroll a TOTP second factor. |
| POST | /v1/mfa/totp/verify | Verify a TOTP code. |
Base: https://storage.local.nself.org
S3-compatible object storage (MinIO). Presigned URL support for direct upload and download.
| Method | Path | Summary |
|---|---|---|
| POST | /v1/files | Upload a file (multipart). |
| GET | /v1/files/:id | Download a file or redirect to a presigned URL. |
| DELETE | /v1/files/:id | Delete a file. |
| GET | /v1/files/:id/presigned | Get a time-limited presigned download URL. |
Base: https://ping.nself.org
Public license validation and CLI telemetry. Only hosted at nself.org, not self-hosted.
| Method | Path | Summary |
|---|---|---|
| GET | /version | Latest CLI version and release notes. |
| POST | /telemetry | Anonymous CLI usage event. |
| POST | /license/validate | Validate a license key and return its tier. |
| POST | /license/activate | Activate a license key for a domain. |
| GET | /plugins/:name/download | Authenticated pro plugin tarball download. |
Base: http://localhost:3021
Local admin dashboard. Only runs on the developer machine. Never exposed publicly.
| Method | Path | Summary |
|---|---|---|
| GET | /api/status | Stack-wide status. |
| GET | /api/services | All services with health and ports. |
| POST | /api/services/:name/restart | Restart a specific service. |
| GET | /api/logs/:service | Stream service logs. |
All authenticated requests use a bearer JWT in theAuthorization: Bearer <token> header. Tokens come from the Auth service and encode Hasura role claims.
Default nginx rate limits: 60 req/min per IP on GraphQL, 30 req/min on Auth, 10 req/min on signup. Override innginx/conf.d/.