Aller au contenu

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 - apikey: - Content-Type: application/json

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"