API admin ERP (Edge Functions)¶
Base URL: https://supabase.oben-services.com/functions/v1
Authentification¶
Ces endpoints exigent un utilisateur Admin ou Manager.
Headers a fournir:
- Authorization: Bearer
Important: ne jamais exposer la SERVICE_ROLE_KEY dans un navigateur.
CORS et domaines autorises¶
Les fonctions verifient l origine via la variable ALLOWED_ORIGINS.
- Exemple: https://oben-services.com,https://www.oben-services.com
- Sans ajout, seules les origines locales sont autorisees.
POST /invite-user¶
Invite un utilisateur par email.
Payload JSON:
{ "email": "user@exemple.com", "role": "Technicien", "redirectTo": "https://oben-services.com" }
Champs: - email (requis) - role (optionnel): Admin | Manager | Technicien | Client - redirectTo (optionnel): URL de redirection apres activation
Reponse:
{ "userId": "...", "email": "...", "role": "Technicien" }
POST /admin-users¶
Gere la liste et les roles.
Action list¶
Payload:
{ "action": "list", "page": 1, "perPage": 200 }
Reponse:
{ "users": [{ "id": "...", "email": "...", "role": "Manager", "createdAt": "...", "invitedAt": "...", "lastSignInAt": "..." }] }
Action set_role¶
Payload:
{ "action": "set_role", "userId": "<id>", "role": "Admin" }
Reponse:
{ "userId": "<id>", "role": "Admin" }
Action delete¶
Payload:
{ "action": "delete", "userId": "<id>" }
Reponse:
{ "userId": "<id>", "deleted": true }
Exemple curl (admin ou manager)¶
ANON_KEY="..."
ACCESS_TOKEN="..."
curl -i https://supabase.oben-services.com/functions/v1/invite-user \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "apikey: $ANON_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"user@exemple.com","role":"Technicien","redirectTo":"https://oben-services.com"}'
Endpoint de test¶
GET /hello sert a verifier que le runtime Edge Functions demarre.
curl -i https://supabase.oben-services.com/functions/v1/hello \
-H "Authorization: Bearer $ANON_KEY" \
-H "apikey: $ANON_KEY"