Harvest API - Utilisateurs O2S (0.9.0)

Download OpenAPI specification:Download

API de gestion des utilisateurs O2S

Cette API offre différents services permettant de gérer des utilisateurs O2S ainsi que les informations liées.

Pour ce faire, plusieurs ressources sont à disposition, à savoir :

  • Utilisateur : Permet de gérer l'entité de base de cette API que sont les utilisateurs.
  • Agence : Permet de gérer les agences.
  • Profil : Permet de gérer les profils.

Règlement Général sur la Protection des Données (RGPD)

Dans le cadre de la mise à disposition de l’API, HARVEST s’engage à effectuer pour le compte du Client responsable de traitement, les opérations de traitement de données à caractère personnel en qualité de sous-traitant. A ce titre, HARVEST et le Client s’engagent à respecter la réglementation en vigueur applicable au traitement de données à caractère personnel en particulier, le règlement (UE) 2016/679 du Parlement européen et du Conseil du 27 avril 2016 (ci-après le « RGPD »).

L’API peut vous permettre de renseigner librement des propriétés typées et non typées. HARVEST attire votre attention sur la nécessité, lors de la complétude de ces propriétés, de respecter les dispositions du RGPD. Dès lors, seules les données adéquates, pertinentes et strictement nécessaires au regard de la finalité des traitements réalisés par l’API doivent être transmises.

L’API contient par ailleurs des zones de commentaires libres dans lesquelles vous devez impérativement rédiger des commentaires objectifs, jamais excessifs ou insultants. Aussi, vous devez exclure toute donnée considérée comme sensible (origine raciale ou ethnique, opinions politiques, philosophiques ou religieuses, appartenance syndicale, données relatives à la santé ou à la vie sexuelle, infractions, condamnations, mesure de sûreté). En cas de doute, vous pouvez contacter votre DPO qui vous indiquera ce qu’il est possible de rédiger pour ne pas porter atteinte aux droits des personnes concernées.

Sécurité

Généralité

Pour utiliser l'API O2S, vous devez préalablement vous authentifier en suivant le protocole OAuth2 "password grant type" afin de récupérer un jeton (JWT) d'accès.

Informations nécessaires

Les informations nécessaires à l'obtention d'un jeton sont constituées :

  • d'informations fournies par Harvest qui sont spécifiques à votre application (client_id + client_secret)
  • d'informations spécifiques à un utilisateur O2S (username + password) dont l'API reprendra l'identité.

Il vous faut renseigner ces informations dans la ressource en entrée du service d'obtention d'un nouveau jeton.

Utilisation du jeton d'accès

Le jeton JWT doit être fourni lors de l'appel de chaque requête à l'API. Il doit être ajouté dans l'entête HTTP Authorization comme ceci : Authorization: Bearer <JWT>

OAuthPasswordAuthenticate

Le jeton JWT d'accès à exploiter est retourné dans valeur de la propriété access_token.

Il doit être précisé dans l'entête HTTP de toutes les requêtes (sauf celle d'authentification) comme ceci :

Authorization: Bearer <access_token>

Authorizations:
JWT
Request Body schema: application/x-www-form-urlencoded
grant_type
required
string
Value: "password"

Méthode d'authentification OAuth à définir obligatoirement à password.

client_id
required
string

Identifiant de l'application cliente.

client_secret
required
string

Secret de l'application cliente.

username
required
string

Identifiant de connexion de l'utilisateur.

password
required
string

Mot de passe de l'utilisateur.

Responses

Request samples

Content type
application/x-www-form-urlencoded
grant_type=password&client_id=clientId&client_secret=clientSecret&username=username&password=password

Response samples

Content type
application/json
{
  • "access_token": "eyJhbGciOi...fgWOZZmV7Q",
  • "expires_in": 86400,
  • "refresh_expires_in": 86400,
  • "refresh_token": "eyJhbGciOi...KiIVIifWw",
  • "token_type": "bearer",
  • "not-before-policy": 1602682985,
  • "session_state": "85d20350-891b-4dad-b6ed-c411c6ac870c",
  • "scope": "..."
}

Réponse en cas de problème

Les réponses principales de l'API sont décrites au niveau de chacune de ses ressources (GET, POST, PUT, DELETE...).

Celles qui n'y sont pas spécifiées sont celles retournées en cas de problème soit avec la requête elle-même soit avec le serveur ou son environnement.

Les statuts HTTP concernés par ces dernières sont les 4xx (hors 404) et 5xx.

Le format des réponses répond au schéma Problem Zalando.

Utilisateur

Opérations sur les utilisateurs O2S

Lister des Utilisateurs

Récupère une liste d'Utilisateur correspondant aux critères facultatifs de recherche.
Par défaut :

  • aucun filtre n'est appliqué (permet de récupérer tous les utilisateurs)
  • le nombre d'éléments retournés est limité à 20
Authorizations:
JWT
query Parameters
refext
string^.+:.*$
Example: refext=SI:12345

Référence externe de l'utilisateur recherché (de la forme référentiel:identifiant)

responsableId
string (TypeId) [ 1 .. 100 ] characters

Référence (id) de l'utilisateur responsable hiérarchique des utilisateurs recherchés

agenceId
string (TypeId) [ 1 .. 100 ] characters

Référence (id) d'une agence de rattachement des utilisateurs recherchés

profilId
string (TypeId) [ 1 .. 100 ] characters

Référence (id) du profil des utilisateurs recherchés

limit
integer
Default: 20

Nombre maximum d'utilisateurs à retourner

offset
integer
Default: 0

Indice (0-based) du premier utilisateur à retourner

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Créer un Utilisateur

Crée un nouvel Utilisateur.

Authorizations:
JWT
Request Body schema: application/json

Les données d'un Utilisateur à créer.

libelle
string (TypeLibelle) [ 1 .. 200 ] characters

Le libellé de l'entité.

login
string <= 50 characters

Login utilisé pour la connexion à l'application

profilId
required
string [ 1 .. 100 ] characters

Référence (id) d'un profil utilisateur

object (TypeReferencesExternes)

Collection d'identifiants de la ressource dans plusieurs référentiels. Chaque référence externe est constituée :

  • d'une clé correspondant à un identifiant global du référentiel externe
  • d'une valeur associée correspondant à la valeur de l'identifiant de la ressource dans le référentiel externe concerné
statut
string (TypeStatutUtilisateur)
Enum: "ACTIVE" "DESACTIVE"

Permet de spécifier si le compte utilisateur est activé ou désactivé

responsableId
string [ 1 .. 100 ] characters

Référence (id) de l'utilisateur responsable hiérarchique

agenceIds
Array of strings (TypeId) [ items [ 1 .. 100 ] characters ]

Références (ids) des agences de rattachement

object (DonneesPersonnelles)

Données à caractère personnel

Responses

Request samples

Content type
application/json
{
  • "libelle": "string",
  • "login": "string",
  • "profilId": "string",
  • "refExternes": {
    },
  • "statut": "ACTIVE",
  • "responsableId": "string",
  • "agenceIds": [
    ],
  • "donneesPersonnelles": {
    }
}

Obtenir un Utilisateur

Récupère les données d'un unique Utilisateur.

Authorizations:
JWT
path Parameters
utilisateurId
required
string (TypeId) [ 1 .. 100 ] characters

Référence (id) de l'utilisateur si la valeur est connue. Mettre la valeur 'myself' pour le GET afin de retourner les informations sur l'utilisateur connecté

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "libelle": "string",
  • "dateCreation": "2019-08-24T14:15:22Z",
  • "dateMaj": "2019-08-24T14:15:22Z",
  • "login": "string",
  • "profilId": "string",
  • "refExternes": {
    },
  • "statut": "ACTIVE",
  • "responsableId": "string",
  • "agenceIds": [
    ],
  • "donneesPersonnelles": {
    }
}

Mettre à jour un Utilisateur

Met à jour un Utilisateur existant.

Authorizations:
JWT
path Parameters
utilisateurId
required
string (TypeId) [ 1 .. 100 ] characters

Référence (id) de l'utilisateur si la valeur est connue. Mettre la valeur 'myself' pour le GET afin de retourner les informations sur l'utilisateur connecté

Request Body schema: application/json

Les données d'un Utilisateur à mettre à jour.

libelle
string (TypeLibelle) [ 1 .. 200 ] characters

Le libellé de l'entité.

login
string <= 50 characters

Login utilisé pour la connexion à l'application

profilId
required
string [ 1 .. 100 ] characters

Référence (id) d'un profil utilisateur

object (TypeReferencesExternes)

Collection d'identifiants de la ressource dans plusieurs référentiels. Chaque référence externe est constituée :

  • d'une clé correspondant à un identifiant global du référentiel externe
  • d'une valeur associée correspondant à la valeur de l'identifiant de la ressource dans le référentiel externe concerné
statut
string (TypeStatutUtilisateur)
Enum: "ACTIVE" "DESACTIVE"

Permet de spécifier si le compte utilisateur est activé ou désactivé

responsableId
string [ 1 .. 100 ] characters

Référence (id) de l'utilisateur responsable hiérarchique

agenceIds
Array of strings (TypeId) [ items [ 1 .. 100 ] characters ]

Références (ids) des agences de rattachement

object (DonneesPersonnelles)

Données à caractère personnel

Responses

Request samples

Content type
application/json
{
  • "libelle": "string",
  • "login": "string",
  • "profilId": "string",
  • "refExternes": {
    },
  • "statut": "ACTIVE",
  • "responsableId": "string",
  • "agenceIds": [
    ],
  • "donneesPersonnelles": {
    }
}

Supprimer un Utilisateur

Supprime un Utilisateur existant.

Authorizations:
JWT
path Parameters
utilisateurId
required
string (TypeId) [ 1 .. 100 ] characters

Référence (id) de l'utilisateur si la valeur est connue. Mettre la valeur 'myself' pour le GET afin de retourner les informations sur l'utilisateur connecté

Responses

Mettre à jour le statut d'un Utilisateur

Met à jour le statut d'un Utilisateur existant.

Authorizations:
JWT
path Parameters
utilisateurId
required
string (TypeId) [ 1 .. 100 ] characters

Référence (id) de l'utilisateur si la valeur est connue. Mettre la valeur 'myself' pour le GET afin de retourner les informations sur l'utilisateur connecté

Request Body schema: application/json
statut
string (TypeStatutUtilisateur)
Enum: "ACTIVE" "DESACTIVE"

Permet de spécifier si le compte utilisateur est activé ou désactivé

Responses

Request samples

Content type
application/json
{
  • "statut": "ACTIVE"
}

Mettre à jour le responsable d'un Utilisateur

Met à jour la référence au responsable hiérarchique d'un Utilisateur existant.

Authorizations:
JWT
path Parameters
utilisateurId
required
string (TypeId) [ 1 .. 100 ] characters

Référence (id) de l'utilisateur si la valeur est connue. Mettre la valeur 'myself' pour le GET afin de retourner les informations sur l'utilisateur connecté

Request Body schema: application/json
responsableId
string [ 1 .. 100 ] characters

Référence (id) de l'utilisateur responsable hiérarchique

Responses

Request samples

Content type
application/json
{
  • "responsableId": "string"
}

Supprimer le responsable d'un Utilisateur

Supprimer la référence au responsable hiérarchique d'un Utilisateur existant.

Authorizations:
JWT
path Parameters
utilisateurId
required
string (TypeId) [ 1 .. 100 ] characters

Référence (id) de l'utilisateur si la valeur est connue. Mettre la valeur 'myself' pour le GET afin de retourner les informations sur l'utilisateur connecté

Responses

Agence

Opérations sur les agences O2S

Lister les Agences

Récupère la liste de toutes les Agence existantes.

Authorizations:
JWT

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Créer une Agence

Crée une nouvelle Agence.

Authorizations:
JWT
Request Body schema: application/json

Une Agence à créer.

libelle
string (TypeLibelle) [ 1 .. 200 ] characters

Le libellé de l'entité.

object (TypeMoyensContact)

Moyens de contact (adresse, emails, téléphones)

Responses

Request samples

Content type
application/json
{
  • "libelle": "string",
  • "moyensContact": {
    }
}

Obtenir une Agence

Récupère les données d'une unique Agence.

Authorizations:
JWT
path Parameters
agenceId
required
string

L'identifiant unique et stable d'une Agence.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "libelle": "string",
  • "dateCreation": "2019-08-24T14:15:22Z",
  • "dateMaj": "2019-08-24T14:15:22Z",
  • "moyensContact": {
    }
}

Mettre à jour une Agence

Met à jour une Agence existante.

Authorizations:
JWT
path Parameters
agenceId
required
string

L'identifiant unique et stable d'une Agence.

Request Body schema: application/json

Les données d'une Agence à mettre à jour.

libelle
string (TypeLibelle) [ 1 .. 200 ] characters

Le libellé de l'entité.

object (TypeMoyensContact)

Moyens de contact (adresse, emails, téléphones)

Responses

Request samples

Content type
application/json
{
  • "libelle": "string",
  • "moyensContact": {
    }
}

Supprimer une Agence

Supprime une Agence existante.

Authorizations:
JWT
path Parameters
agenceId
required
string

L'identifiant unique et stable d'une Agence.

Responses

Profil

Opérations sur les profils O2S

Lister les profils

Récupère la liste de tous les Profil existants.

Authorizations:
JWT

Responses

Response samples

Content type
application/json
[
  • {
    }
]