API-toegang en beveiligde documentatie
Hoe de REST API werkt
- Basis-URL:
https://fieldops.be/api(mobiele clients gebruiken hetzelfde domein). - Publiek zonder login: vrijwel alleen health en beperkte config — geen volledige datatoegang.
- Inloggen:
POST /api/auth/loginlevert een JWT. Andere endpoints gebruikenAuthorization: Bearer <token>. - Autorisatie: endpoints controleren rollen en rechten (werfleider, subco, platform-admin, …). Een geldig JWT is niet voldoende als je rol de actie niet mag uitvoeren.
Voorbeelden en screenshots: gebruik geen echte productietokens of klantdata.
Wat staat waar (publiek vs. afgeschermd)
| Materiaal | Typische inhoud | Op productie (docs.fieldops.be) |
|---|---|---|
| Gebruikershandleidingen | Werfleider, subco, magazijn, … | Openbaar — /docs/... |
| OpenAPI / Swagger UI | Paden, parameters, contract | Afgeschermd — HTTP Basic Auth via Caddy (/swagger-ui/, /openapi/) |
| TypeDoc (server-HTML) | Interne functies en modules | Afgeschermd — /typedoc/ |
| Interne technische notities | Architectuur, integraties | Afgeschermd — /docs/intern/… |
Je browser vraagt eenmalig om gebruikersnaam en wachtwoord voor die paden (team-/intern wachtwoord, niet je FieldOps-login).
Instelling op de server: omgevingsvariabelen DOCS_INTERNAL_USER en DOCS_INTERNAL_PASS_HASH (bcrypt), zie deploy/env.production.example en deploy/GITHUB_SECRETS.md.
OpenAPI-bestand in de repo
De bron staat in fieldops/openapi/openapi.yaml. Het is een verkort contract ten opzichte van alle Express-routes; uitbreiden bij nieuwe stabiele publieke API’s. Interne of zeer gevoelige routes hoeven niet in de publieke specificatie te staan — servercode en TypeDoc blijven achter de afgeschermde paden.