Arise Programming Interface (API)
- Présentation d’ARISE et de l’API
- Quand utiliser l’API
- Obtenir un token (OIDC ou clé API)
- Tester via GraphiQL / sandbox
- Exemples de requêtes et réponses
- Schéma d’auth (headers, scopes/permissions)
- Gestion des tokens (rotation, durée, bonnes pratiques)
- Structure du schéma (types clés : utilisateurs, groupes, photos, constantes)
- Requêtes fréquentes (lecture)
- Mutations fréquentes (création/mise à jour)
- Pagination, tri, filtres
Liste des codes d'erreur
Erreurs client
TOO_MUCH_PAGINATION_ARGUMENTS
NO_PAGINATION_LIMIT_PROVIDED
INVALID_CURSOR
parameter
FORBIDDEN
auth_level
CLAIM_NOT_FOUND
namespace
claim
UNIQUE_VIOLATION
CHECK_VIOLATION
Erreurs serveur
INTERNAL_SERVER_ERROR
component
Erreurs internes
NOT_FOUND
entity
urn
IP_NOT_ALLOWED
ip
ADMIN_ERROR
GLOBAL_STATE_ERROR
kind
CURRENT_YEAR ODD_SEMESTER_STILL_ACTIVE
ID_GENERATION_FAILURE
attempts
UNIX_UID_GENERATION_FAILURE
attempts
Permissions
Par sécurité, aucune donnée n'est accessible sans être authentifié.
Données utilisateur
Liste des utilisateurs
En étant authentifié, les données accessibles sur les utilisateurs contiennent le nécessaire pour afficher un profil, sans données sensibles.
[!IMPORTANT] Sont définis comme sensible :
- Le genre
- La photo de trombinoscope
- L'email
- Le numéro de téléphone
- Les réseaux sociaux
Profil personnel
Un utilisateur authentifié pourra accéder à ses propres données, y compris les données sensibles.
OAuth
Un utilisateur authentifié via OAuth ne verra aucune données utilisateur par défaut.
[!WARNING] L'accès aux données des autres utilisateurs n'est pas possible avec OAuth.
L'accès aux données propres de l'utilisateur se fait via le système de scope, pour autoriser l'application à accéder à un sous ensemble de valeurs.
Liste non exhaustive de chaines valides :
profileemailgroups
- Téléchargement/Upload de photos
- Webhooks ou endpoints spécifiques (s’il y en a)
- Récupérer un profil et sa photo
- Synchroniser un annuaire ou une mailing list
- Lister les membres d’une association
- Quotas éventuels, tailles max de payload
- Gestion des erreurs (codes, messages, extensions GraphQL)
- Versioning et compatibilité