Projet

Général

Profil

Development #48751

UI de gestion des accès aux API

Ajouté par Frédéric Péters il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Version cible:
-
Début:
23 novembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Aujourd'hui les accès sont autorisés via l'ajout dans la section [api-secrets] du site-options.cfg d'une entrée user/clé; ça serait utile d'avoir ça dans une interface dans Paramètres (genre dans la section "Sécurité") et déplacer à cette occasion le stockage dans un "vrai" objet (XmlStorage) (ou plus raisonnablement ne pas déplacer mais gérer les deux, avec le site-options.cfg pour une partie "legacy").

L'idée de déplacer ça hors du site-options.cfg est d'ensuite pouvoir étendre avec d'autres paramètres.


Fichiers

0002-admin-manage-api-access-48751.patch (12,6 ko) 0002-admin-manage-api-access-48751.patch Nicolas Roche (absent jusqu'au 3 avril), 25 novembre 2020 10:53
0001-settings-add-an-xml-storage-for-site-options-48751.patch (9,3 ko) 0001-settings-add-an-xml-storage-for-site-options-48751.patch Nicolas Roche (absent jusqu'au 3 avril), 25 novembre 2020 10:53
0002-api-search-api-keys-from-dedicated-storage-objects-t.patch (4,49 ko) 0002-api-search-api-keys-from-dedicated-storage-objects-t.patch Nicolas Roche (absent jusqu'au 3 avril), 27 novembre 2020 17:19
0001-admin-manage-api-access-keys-48751.patch (33,2 ko) 0001-admin-manage-api-access-keys-48751.patch Nicolas Roche (absent jusqu'au 3 avril), 27 novembre 2020 17:19
0003-api-search-api-keys-from-dedicated-storage-objects-t.patch (3,88 ko) 0003-api-search-api-keys-from-dedicated-storage-objects-t.patch Nicolas Roche (absent jusqu'au 3 avril), 29 novembre 2020 19:35
0002-settings-add-export-import-for-api_access-objects-48.patch (9,22 ko) 0002-settings-add-export-import-for-api_access-objects-48.patch Nicolas Roche (absent jusqu'au 3 avril), 29 novembre 2020 19:35
0001-admin-manage-api-access-keys-48751.patch (20 ko) 0001-admin-manage-api-access-keys-48751.patch Nicolas Roche (absent jusqu'au 3 avril), 29 novembre 2020 19:35

Révisions associées

Révision 4653ad1b (diff)
Ajouté par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

admin: manage api access keys (#48751)

Révision 119288b7 (diff)
Ajouté par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

settings: add export/import for api_access objects (#48751)

Révision 7138d09c (diff)
Ajouté par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

api: search api keys from dedicated storage objects too (#48751)

Historique

#1

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

  • Assigné à mis à Nicolas Roche (absent jusqu'au 3 avril)
#2

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

Voici un premier jet.
(Pour voir si ça correspond à ce qui était attendu avant d'ajouter plus de tests)

#3

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Solution proposée à En cours
  • Patch proposed changé de Oui à Non

Ok tu fais bien de demander ce n'était pas du tout ça, il ne faut ni un énorme/vague objet Parameters ni toucher à la gestion du site-options.cfg, il faut juste s'intéresser à l'accès aux API, créer un objet dédié au sujet, par exemple on pourrait l'appeler ApiAccess et ça commencerait ainsi :

class ApiAccess(XmlStorableObject):
    _names = 'apiaccess'
    access_name = None
    access_key = None
#4

Mis à jour par Frédéric Péters il y a plus de 3 ans

Commentaires sur la branche, c'est tout à fait l'idée, détails donc :

  • je n'aurais pas inclus la partie snapshot mais pourquoi pas, comme elle est là, gardons-la. (de là je me dis que du coup si tu veux te faire un ticket pour ajouter la même chose aux catégories, pourquoi pas).
  • la partie export/import est un peu too much, je l'aurais retirée mais comme la vue snapshots propose une action d'export, ça ferait bizarre de ne pas avoir d'import en face, donc ok.
  • je sais que le code est fait ainsi ailleurs mais j'aimerais arrêter la séparation que tu reprends ApiAccessPage et ApiAccessUI; tu peux glisser le contenu de ApiAccessUI dans ApiAccessPage et ça sera mieux.
  • texte, j'écrirais "Configure access to the API endpoints" plutôt que "Configure access to the application programming interface".
  • sur l'objet le "id = slug" m'a fait douter mais ok on fait déjà comme ça pour wscalls.
  • il y a quand même un truc qui ne m'est pas clair entre name et slug qui est appelé identifier dans l'UI, j'aurais pensé que name était un libellé pour identifier l'affaire mais dans 0002 le lookup se fait par là, et du coup le slug ne servirait à rien. (?). Je serais pour garder name mais que ça serve juste de libellé, comme la description dessous sert juste à permettre une info supplémentaire, et puis slug/identifier qui serait à appeler "access identifier" pour aller avec la clé appelée "access key". C'est-à-dire en pratique renommer slug en access_identifier, et dans le libellé de champ correspondant écrire "Access Identifier" plutôt que "Identifier" + la reprendre sur la page wcs/backoffice/api_access.html.
  • typographie, {% trans "Access key" %}: il faut inclure le : dans la chaine à traduire, pour pouvoir y mettre l'espace insécable qui existe en français mais pas en anglais.
#5

Mis à jour par Frédéric Péters il y a plus de 3 ans

je sais que le code est fait ainsi ailleurs mais j'aimerais arrêter la séparation que tu reprends ApiAccessPage et ApiAccessUI; tu peux glisser le contenu de ApiAccessUI dans ApiAccessPage et ça sera mieux.

Ne pas prendre en compte cette partie, ça sera à faire de manière globale, autant ne pas diverger ici.

#6

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

Pour faciliter la relecture j'ai laissé momentanément les modifications liées aux remarques dans des commits séparés sur la branche.

Pour le slug, ça me fait tout drôle de le renommer, je pensais que c'était quelque chose de transverse.
Mais en fait ça ce passe bien, j'ai juste du ajouter "access_identifier" dans wcs/snapshots.py::restore()

#7

Mis à jour par Frédéric Péters il y a plus de 3 ans

Mais en fait ça ce passe bien, j'ai juste du ajouter "access_identifier" dans wcs/snapshots.py::restore()

Ok alors non tu oublies l'affaire de slug et de mélange de slug/id, tu laisses un vrai champ id, et à côté un champ access_identifier.

#8

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

(remarques prises en compte ; et j'ai renommé 'access_identifier' en 'access_id')

#9

Mis à jour par Frédéric Péters il y a plus de 3 ans

Je préfère vraiment access_identifier. (je n'ai pas regardé le patch)

#10

Mis à jour par Frédéric Péters il y a plus de 3 ans

Aussi je reviens sur ce que j'écrivais au début, ça m'ennuyait de demander la suppression de code qui avait été écrit mais vraiment la gestion des snapshots est excessive, je suis pour la retirer, et par la même occasion les vues d'import/export.

Par contre, il faut l'import/export global, cf import_zip() dans wcs/publisher.py et export() dans wcs/admin/settings.py.

#11

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

  • Statut changé de Solution proposée à En cours
#13

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée

(le ticket n'était pas en solution proposée mais j'imagine que c'était un oubli). Go.

#14

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 7138d09c3b458f6f8d52be20dc838a1fea7654ae
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Sat Nov 28 16:17:49 2020 +0100

    api: search api keys from dedicated storage objects too (#48751)

commit 119288b7cd33668c74240d0c6d9c8f5358d5c43a
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Sat Nov 28 15:54:21 2020 +0100

    settings: add export/import for api_access objects (#48751)

commit 4653ad1b8b932c1c7dcda1b607d207e202f5135d
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Sat Nov 28 14:47:10 2020 +0100

    admin: manage api access keys (#48751)
#15

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF