Aller au contenu

Divers changements sur l'API Entrepôt

Divers modifications ont été faites sur l'API entrepot. Ces changements ont eu lieu le 24 juillet 2025

Suppression de l'API de catalogue des uploads

Afin d’harmoniser les livraisons avec les données stockées, la ligne de catalogage des livraisons est supprimée : GET /catalogs/uploads

API d'ajout, de création et suppression de visibilité d'une donnée stockée

Ajout d’une API permettant à un utilisateur d’un datastore d’accorder la visibilité d’une de ses données stockées à une ou plusieurs communautés pour leur permettre d'utiliser la donnée en lecture.

/datastores/{datastore}/stored_data/{stored_data}/visibility
[
"{id_community}"
]
[
    {
        "creation": "2025-07-30T08:12:04.934Z",
        "update": "2025-07-30T08:12:04.934Z",
        "name": "string",
        "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
]

Il est ensuite possible de récupérer la liste des visibilités accordées à une de ses données stockées :

/datastores/{datastore}/stored_data/{stored_data}/visibility
[
    {
        "creation": "2025-07-30T08:12:04.934Z",
        "update": "2025-07-30T08:12:04.934Z",
        "name": "string",
        "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
]

Il est aussi possible de supprimer la visibilité d'une donnée stockée :

/datastores/{datastore}/stored_data/{stored_data}/visibility
[
"{id_community}"
]

Amélioriation des évènements sur les livraisons, les données stockées et les configurations

Les titres des évènements sont améliorés pour être plus parlant pour les utilisateurs. Les évènements sont accessibles à ces URls :

/datastores/{datastore}/uploads/{upload}/events
/datastores/{datastore}/stored_data/{stored_data}/events
/datastores/{datastore}/configurations/{configuration}/events

Ajout d'un filtrage sur les clés utilisateurs

Ajout d'un filtrage sur la recherche des clés utilisateur : GET /users/me/keys

Les champs sur lesquels il est possible de filtrer sont : * type (valeurs possibles : HASH, HEADER, BASIC, OAUTH2) * user_agent (possibilité de joker "%") * referer (possibilité de joker "%") * whitelist (possibilité de joker "%") * blacklist (possibilité de joker "%") * name (possibilité de joker "%")

Ajout du champ "creation" pour toutes les entités

Les exécutions de traitement et de vérification possède un champ "creation" de type date. Ce champ est généraliser à toutes les entités : * upload * annex * stored data * configuration * static file * metadata * offering * document * datastore * community * permission * processing

Dans le cas des exécutions de traitement, les champs suivant sont renommés pour l'occasion : * creationDate -> creation * lauchDate -> lauch * startDate -> start * finishDate -> finish

Généralisation de la date de mise à jour sur les entités

Ce nouveau permet de connaitre facilement la date de dernière modification "importante" sur les entités. Le nouveau champ est appelé "update" et est ajouté à ces entités : * annex * configuration * static file * metadata * offering * document

Ce champ est mise à jour lors de ces évènements :

  • lors du téléversement d'un nouveau fichier annexe pour écraser l'ancien (PUT /datastore/{datastore}/annexes/{annexe} )
  • lors du téléversement d'un nouveau fichier metadonnée pour écraser l'ancien (PUT /datastore/{datastore}/metadata/{metadata} )
  • lors du téléversement d'un nouveau fichier statique pour écraser l'ancien (PUT /datastore/{datastore}/statics/{static} )
  • lors d'un appel de modification de la configuration (PUT /datastore/{datastore}/configurations/{configuration} )
  • lors d'un appel de synchronisation d'une offre (PUT /datastore/{datastore}/offerings/{offering} )
  • lors du téléversement d'un nouveau fichier document (PUT /users/me/documents/{document} )

Modification du système de tri dans les listes d'entités

Le tri par "lastEvent" est remplacé par "last_event". Exemple :

/datastores/{datastore}/configurations?sort=last_event,desc
[
    {
        "name": "BDORTHO en infrarouge fausses couleurs",
        "layer_name": "ORTHOIMAGERY.ORTHOPHOTOS.IRC",
        "type": "WMS-RASTER",
        "status": "PUBLISHED",
        "_id": "bc5c244f-1528-41d3-bad9-d6557cbefce5"
    },
    {
        "name": "BDORTHO en infrarouge fausses couleurs",
        "layer_name": "ORTHOIMAGERY.ORTHOPHOTOS.IRC",
        "type": "WMTS-TMS",
        "status": "PUBLISHED",
        "_id": "578fb2b4-3246-4900-9776-ad533cc0cf4e"
    },
    {
        "name": "Ortho_20_cm-wmsr",
        "layer_name": "HR.ORTHOIMAGERY.ORTHOPHOTOS",
        "type": "WMS-RASTER",
        "status": "PUBLISHED",
        "_id": "c4206604-6f96-47a5-bed5-32cf3b63c571"
    }
]

De plus, ajout de la possibilité de trier par date de création (creation) et par date de mise à jour (update) pour les API suivantes :

  • GET /datastores/{datastore}/annexes
  • GET /organizations/{organization}/annexes
  • GET /administrator/annexes
  • GET /datastores/{datastore}/configurations
  • GET /organizations/{organization}/configurations
  • GET /administrator/configurations
  • GET /datastores/{datastore}/statics
  • GET /organizations/{organization}/statics
  • GET /administrator/statics
  • GET /datastores/{datastore}/metadata
  • GET /datastores/{datastore}/offerings
  • GET /organizations/{organization}/offerings
  • GET /administrator/offerings
  • GET /users/me/documents

Et, pour les API suivantes, ajout uniquement de la possibilité de trier par date de création (creation) :

  • GET /datastores/{datastore}/uploads
  • GET /datastores/{datastore}/checks
  • GET /datastores/{datastore}/permissions
  • GET /datastores/{datastore}/stored_data
  • GET /datastores/{datastore}/processings
  • GET /datastores/{datastore}/processings/executions
  • GET /organizations/{organization}/uploads
  • GET /organizations/{organization}/stored_data
  • GET /organizations/{organization}/permissions
  • GET /organizations/{organization}/processings/executions
  • GET /administrator/uploads
  • GET /administrator/stored_data
  • GET /administrator/datastores
  • GET /administrator/communities
  • GET /administrator/checks
  • GET /administrator/processings
  • GET /administrator/processings/executions

Nouvelle route de listage des stockages

Liste les stockages disponibles pour le datastore. Les paramètres disponibles pour la route sont : * type : type de stockage (valeurs disponibles : POSTGRESQL, S3, FILESYSTEM, OPENSEARCH, POSTGRESQL-ROUTING) * use_ratio : Pourcentage minimum d'utilisation du quota

/datastores/{datastore}/storages
{
    "data": [
        {
        "use": 0,
        "quota": 0,
        "storage": {
            "creation": "2025-07-30T08:44:31.208Z",
            "update": "2025-07-30T08:44:31.208Z",
            "name": "string",
            "type": "POSTGRESQL",
            "labels": [
            "string"
            ],
            "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
        }
    ],
    "uploads": {
        "use": 0,
        "quota": 0,
        "storage": {
        "creation": "2025-07-30T08:44:31.208Z",
        "update": "2025-07-30T08:44:31.208Z",
        "name": "string",
        "type": "POSTGRESQL",
        "labels": [
            "string"
        ],
        "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
    },
    "annexes": {
        "use": 0,
        "quota": 0,
        "storage": {
        "creation": "2025-07-30T08:44:31.208Z",
        "update": "2025-07-30T08:44:31.208Z",
        "name": "string",
        "type": "POSTGRESQL",
        "labels": [
            "string"
        ],
        "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
    }
}

Suppression de la visibilité associée aux livraisons et données stockées et ajout d'une notion de publicité

Une harmonisation est réalisée en supprimant la visibilité associée aux entités et en ajoutant une notion de publicité.

Pour les livraisons et les données stockées, le champs "visibility" est remplacé par "open".

Ainsi, les livraisons et données stockées en "visibility=PUBLIC" deviennent "open=true" et celles en "visibility=REFERENCED" ou "visibility=PRIVATE" deviennent "open=false".

Les livraisons et données stockées en "open=true" pourront donc être utilisé dans les traitements d'autres datastores.

Cette modification impacte la création de la livraison et il faut bien remplacé le champ "visibility" par "open" pour que la création fonctionne

API de récupération des données stockées visibles d'un utilisateur

Ajout d’une API permettant à un utilisateur de connaitre les données stockées qui lui sont visibles.

Les paramètres de filtrage sont identiques à ceux de GET /datastores/{datastore}/stored_data, sauf owned, shared

/users/me/stored_data
[
    {
        "creation": "2025-07-30T09:29:22.332Z",
        "update": "2025-07-30T09:29:22.332Z",
        "name": "string",
        "type": "ROK4-PYRAMID-RASTER",
        "open": true,
        "srs": "string",
        "description": "string",
        "status": "CREATED",
        "contact": "string",
        "bbox": {
        "west": 0,
        "south": 0,
        "east": 0,
        "north": 0
        },
        "size": 0,
        "last_event": {
        "title": "string",
        "text": "string",
        "date": "2025-07-30T09:29:22.332Z",
        "initiator": {
            "creation": "2025-07-30T09:29:22.332Z",
            "update": "2025-07-30T09:29:22.332Z",
            "last_name": "string",
            "first_name": "string",
            "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
        },
        "tags": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
        },
        "edition": {
        "from": "2025-07-30",
        "to": "2025-07-30"
        },
        "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
]

De plus, une route supplémentaire permet de récupérer les informations d'une donnée stockée visisible de l'utilisateur :

/users/me/stored_data/{stored_data}
[
    {
        "creation": "2025-07-30T09:29:22.332Z",
        "update": "2025-07-30T09:29:22.332Z",
        "name": "string",
        "type": "ROK4-PYRAMID-RASTER",
        "open": true,
        "srs": "string",
        "description": "string",
        "status": "CREATED",
        "contact": "string",
        "bbox": {
        "west": 0,
        "south": 0,
        "east": 0,
        "north": 0
        },
        "size": 0,
        "last_event": {
        "title": "string",
        "text": "string",
        "date": "2025-07-30T09:29:22.332Z",
        "initiator": {
            "creation": "2025-07-30T09:29:22.332Z",
            "update": "2025-07-30T09:29:22.332Z",
            "last_name": "string",
            "first_name": "string",
            "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        }
        },
        "tags": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
        },
        "edition": {
        "from": "2025-07-30",
        "to": "2025-07-30"
        },
        "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
]

Ajout du champ "fields" pour l'API de récupération de la liste des traitements disponibles

Pour l'API, GET /datastores/{datastore}/processings, le champ d'énumération "fields" a été ajouté pour préciser les champs souhaités dans la réponse. Les valeurs disponibles sont : * creation * name * descritption * priority * input_types * output_types

Par défaut, la réponse contient les champs "name" et "description"