Vue d’ensemble
L’API TagType permet de gérer les tags des utilisateurs de Fess, c’est-à-dire les tags propres à chaque utilisateur que les utilisateurs connectés posent sur des documents (voir Tag). Elle gère les tags de tous les utilisateurs, que user.tag.enabled vaille true ou non.
Pour les méthodes d’authentification et les spécifications communes des réponses (code status, champ version, format des erreurs, codes de statut HTTP, etc.), consultez Vue d’ensemble de l’API Admin. Pour accéder à cette API, un jeton d’accès disposant de la permission d’API d’administration (admin-api) doit être indiqué dans l’en-tête Authorization: Bearer <jeton d'accès>.
Les noms des champs JSON de cette API sont en snake_case (sort_order, virtual_host, seq_no, primary_term, etc.).
URL de base
Liste des endpoints
| Méthode | Chemin | Description |
|---|---|---|
| GET | /settings | Obtention de la liste des tags |
| GET | /setting/{id} | Obtention d’un tag |
| POST | /setting | Création d’un tag |
| PUT | /setting | Mise à jour d’un tag |
| DELETE | /setting/{id} | Suppression d’un tag |
Obtention d’un tag
Requête
Réponse
seq_no et primary_term identifient la version lue du tag. paths et permissions contiennent une valeur par ligne.
Création d’un tag
Requête
Corps de la requête
Description des champs
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
name | String | Oui | Nom du tag. Il est normalisé en NFKC, les suites d’espaces sont réduites et les extrémités rognées ; le résultat doit compter de 1 à |
owner | String | Oui | Identifiant de connexion du propriétaire (1000 caractères au maximum). |
paths | String | Non | URL des documents sur lesquels poser le tag, séparées par un saut de ligne ( |
permissions | String | Non | Utilisateurs/groupes/rôles qui peuvent voir le tag (ex. |
virtual_host | String | Non | Hôte virtuel (1000 caractères au maximum). |
sort_order | Integer | Non | Ordre d’affichage (entier positif ou nul). 0 s’il est omis. |
L’identifiant d’un tag est le SHA-256 de sa valeur, formée du nom et du propriétaire ; il est donc décidé par le serveur. Le propriétaire et le nom identifient ensemble un tag : si le propriétaire a déjà un tag de ce nom, la création échoue avec une erreur de validation (status: 1, « A tag with the same name and owner already exists. »).
Réponse
En cas de création réussie, created vaut true.
Mise à jour d’un tag
Requête
Corps de la requête
Le corps contient tous les champs de la création, plus les champs suivants. Le tag est remplacé en entier : envoyez aussi les paths à conserver.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
id | String | Oui | L’identifiant du tag à mettre à jour. |
seq_no | Integer | Oui | Le seq_no du tag renvoyé par GET /setting/{id}. |
primary_term | Integer | Oui | Le primary_term du tag renvoyé par GET /setting/{id}. |
Si le tag a été modifié après sa lecture, c’est-à-dire que
seq_noetprimary_termne correspondent plus, la mise à jour échoue avec une erreur de validation (status: 1, « The tag was changed by someone else. Reload it and try again. »). Obtenez à nouveau le tag et recommencez.Modifier
nameouownerdonne au tag un nouvel identifiant ; l”idde la réponse est le nouveau. Si le propriétaire a déjà un tag du nouveau nom, la mise à jour échoue avec « A tag with the same name and owner already exists. ».Lorsque le propriétaire change, la permission utilisateur de l’ancien propriétaire dans
permissionsest remplacée par celle du nouveau propriétaire.
Réponse
Lors d’une mise à jour, created vaut false.
Suppression d’un tag
Requête
Réponse
Si le tag est modifié pendant sa suppression, celle-ci échoue avec « The tag was changed by someone else. Reload it and try again. ».
Exemples d’utilisation
Partager un tag avec tous les utilisateurs connectés
Informations complémentaires
Vue d’ensemble de l’API Admin - Vue d’ensemble de l’API Admin
API des tags - API des tags
Tag - Guide de gestion des tags
Comment les modifications atteignent les documents
La création, la mise à jour et la suppression d’un tag par cette API sont enregistrées immédiatement dans les tags. Tant que
user.tag.enabledvauttrue, la modification destinée aux documents (chemins ajoutés et retirés, renommage ou suppression) est mise en file d’attente et appliquée par la tâche « Log Aggregator » (log_aggregator) chaque minute. Tant qu’il vautfalse, rien n’est mis en file ; exécutez la tâche « Tag Updater » (tag_updater) après avoir activé les tags. Voir Tag.