API DataConfig

Vue d’ensemble

L’API DataConfig permet de gerer les configurations de datastore de Fess. Vous pouvez manipuler les configurations de crawl pour les bases de donnees, les fichiers CSV, JSON et autres sources de donnees.

URL de base

/api/admin/dataconfig

Liste des endpoints

Methode Chemin Description
GET /settings Obtention de la liste des configurations datastore
GET /setting/{id} Obtention d’une configuration datastore
POST /setting Creation d’une configuration datastore
PUT /setting Mise a jour d’une configuration datastore
DELETE /setting/{id} Suppression d’une configuration datastore

Obtention de la liste des configurations datastore

Requete

GET /api/admin/dataconfig/settings

Parametres

Parametre Type Requis Description
size Integer Non Nombre d’elements par page (par defaut : 25)
page Integer Non Numero de page (commence a 1, par defaut : 1)
name String Non Filtrer par nom de configuration
handlerName String Non Filtrer par nom de gestionnaire
description String Non Filtrer par description

Reponse

{
  "response": {
    "status": 0,
    "settings": [
      {
        "id": "dataconfig_id_1",
        "name": "Database Crawler",
        "description": "Crawler de base de donnees",
        "handlerName": "DatabaseDataStore",
        "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/mydb",
        "handlerScript": "...",
        "boost": 1.0,
        "available": "true",
        "permissions": "{role}admin",
        "virtualHosts": "",
        "sortOrder": 0
      }
    ],
    "total": 5
  }
}

Obtention d’une configuration datastore

Requete

GET /api/admin/dataconfig/setting/{id}

Reponse

{
  "response": {
    "status": 0,
    "setting": {
      "id": "dataconfig_id_1",
      "name": "Database Crawler",
      "description": "Crawler de base de donnees",
      "handlerName": "DatabaseDataStore",
      "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/mydb\nusername=dbuser\npassword=dbpass",
      "handlerScript": "...",
      "boost": 1.0,
      "available": "true",
      "sortOrder": 0,
      "permissions": "{role}admin",
      "virtualHosts": ""
    }
  }
}

Creation d’une configuration datastore

Requete

POST /api/admin/dataconfig/setting
Content-Type: application/json

Corps de la requete

{
  "name": "Product Database",
  "handlerName": "DatabaseDataStore",
  "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/products\nusername=user\npassword=pass",
  "handlerScript": "url=\"https://example.com/product/\" + product_id\ntitle=product_name\ncontent=description",
  "boost": 1.0,
  "available": "true",
  "sortOrder": 0,
  "permissions": "{role}admin\n{role}user"
}

Description des champs

Champ Requis Description
name Oui Nom de la configuration
description Non Description de la configuration
handlerName Oui Nom du gestionnaire de datastore
handlerParameter Non Parametres du gestionnaire (informations de connexion, etc.)
handlerScript Non Script de transformation des donnees
boost Oui Valeur de boost des resultats de recherche
available Oui Active/Desactive (chaine "true" / "false")
sortOrder Oui Ordre d’affichage
permissions Non Roles autorises (separes par des sauts de ligne si plusieurs)
virtualHosts Non Hotes virtuels (separes par des sauts de ligne si plusieurs)

Reponse

{
  "response": {
    "status": 0,
    "id": "new_dataconfig_id",
    "created": true
  }
}

Mise a jour d’une configuration datastore

Requete

PUT /api/admin/dataconfig/setting
Content-Type: application/json

Corps de la requete

{
  "id": "existing_dataconfig_id",
  "name": "Updated Product Database",
  "handlerName": "DatabaseDataStore",
  "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/products\nusername=user\npassword=newpass",
  "handlerScript": "url=\"https://example.com/product/\" + product_id\ntitle=product_name\ncontent=description + \" \" + features",
  "boost": 1.5,
  "available": "true",
  "sortOrder": 0,
  "versionNo": 1
}

Les requetes de mise a jour necessitent les memes champs obligatoires que la creation (name, handlerName, boost, available, sortOrder), ainsi que les champs suivants :

Champ Requis Description
id Oui ID de la configuration a mettre a jour
versionNo Oui Numero de version pour le verrouillage optimiste (indiquer la valeur obtenue lors de la recuperation du parametre)

Reponse

{
  "response": {
    "status": 0,
    "id": "existing_dataconfig_id",
    "created": false
  }
}

Suppression d’une configuration datastore

Requete

DELETE /api/admin/dataconfig/setting/{id}

Reponse

{
  "response": {
    "status": 0
  }
}

Types de gestionnaires

Nom du gestionnaire Description
DatabaseDataStore Connexion a une base de donnees via JDBC
CsvDataStore Lecture des donnees depuis un fichier CSV (traitement de chaque ligne comme un document)
CsvListDataStore Lecture des fichiers CSV avec suppression automatique des fichiers traites (extension de CsvDataStore avec filtrage par horodatage)
JsonDataStore Lecture des donnees depuis un fichier JSON ou une API JSON

Note

Les types de gestionnaires disponibles dependent des plugins de datastore installes. Les gestionnaires ci-dessus sont inclus par defaut. L’installation de plugins de datastore tels que SharePoint, Slack ou Salesforce rend disponibles leurs noms de gestionnaire respectifs.

Exemples d’utilisation

Configuration de crawl de base de donnees

curl -X POST "http://localhost:8080/api/admin/dataconfig/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "User Database",
       "handlerName": "DatabaseDataStore",
       "handlerParameter": "driver=org.postgresql.Driver\nurl=jdbc:postgresql://localhost/userdb\nusername=dbuser\npassword=dbpass\nsql=SELECT * FROM users WHERE active=true",
       "handlerScript": "url=\"https://example.com/user/\" + user_id\ntitle=username\ncontent=profile",
       "boost": 1.0,
       "available": "true",
       "sortOrder": 0
     }'

Informations complementaires