Skip to content

Ploi Panel 0.3.0 — refonte de l'interface (préversion)

Pre-release
Pre-release

Choose a tag to compare

@ronylicha ronylicha released this 02 Oct 14:06
d3ecb66

Ploi Panel 0.3.0 — refonte de l'interface

Client Android open source et indépendant pour l'administration Ploi, en Kotlin/Jetpack Compose. L'application parle directement à l'API officielle Ploi : aucun serveur intermédiaire, aucun compte Ploi Panel, aucune télémétrie. Non affiliée à Ploi.

Cette version refond l'interface de tous les écrans et corrige quatre bugs réels découverts en parcourant l'application sur un vrai compte Ploi. Elle porte aussi l'application complète sur main et corrige la licence déclarée du dépôt : main contenait encore le texte GPL-3.0 du commit initial alors que le projet est en LGPL-3.0-only depuis la v0.1.0.

Téléchargements

  • Ploi-Panel-0.3.0.apk — installation directe, Android 10+ (API 29). APK release signé, com.qrcommunication.ploipanel, versionCode 3. Met à jour une 0.1.0/0.2.0 signée de la même clé.
  • Ploi-Panel-0.3.0.aab — bundle signé par la même clé d'upload, destiné à une soumission manuelle à Google Play Console. Aucune fiche Play n'existe à ce jour.
  • upload_certificate.pem — certificat public de la clé d'upload, pour vérifier la signature.

Empreinte SHA-256 du certificat signataire (APK et AAB) :

b7306ed91bd26aa1d2a8a9ba536e139b1028f19dd9579c06cb33582ff6d9cee3

Vérifiez avant installation :

apksigner verify --print-certs Ploi-Panel-0.3.0.apk
sha256sum Ploi-Panel-0.3.0.apk   # a867ae67d65a4675923b07109c01633876ff8f85fe107fd06d6b011a76eaeede

Bugs corrigés, constatés sur des données réelles

  • Widget « un serveur » impossible à afficher sur un appareil. Sa mise en page utilisait une vue View, interdite dans RemoteViews : le lanceur affichait « Impossible de charger le widget ». Un test (RemoteViewsWhitelistTest) vérifie désormais les classes utilisées par toutes les mises en page de widgets.
  • Écran Projets en erreur « Réponse Ploi illisible ». /projects renvoie les serveurs comme objets {id, name, status, ip} et non comme la liste d'identifiants décrite dans la documentation. Les deux formes sont acceptées et les noms sont affichés.
  • Vue d'ensemble des serveurs surveillés vide. /servers/monitored renvoie des séries nommées ({"name":"CPU","data":{"HH:mm":valeur}}). Elles sont assemblées par horodatage, dans un ordre qui reste correct autour de minuit ; une mesure nulle reste inconnue au lieu d'être lue comme zéro.
  • Horodatages de monitoring décalés et toujours « périmés ». /monitor envoie yyyy-MM-dd HH:mm:ss sans fuseau (UTC) ; les dates sont désormais converties dans le fuseau et le format de l'appareil.

Les 35 lectures de l'API ont été rejouées sur les réponses réelles du compte.

Interface

  • Design system appliqué à tous les écrans : barre d'outils, cartes de ressources avec statut en mots, détails en paires libellé/valeur, actions destructrices distinguées en rouge et toujours derrière leur confirmation, états vide/erreur/chargement homogènes, valeurs machine (IP, ports, chemins, commandes) en police à largeur fixe, sorties longues repliées.
  • Liste des serveurs : 50 serveurs par page (maximum documenté), filtres par état avec compteurs de la page chargée, recherche locale dont la portée est indiquée, tirer pour actualiser.
  • Serveurs injoignables : retestés automatiquement à l'ouverture de la liste et de la fiche — relecture du statut Ploi, puis test TCP vers le port SSH depuis le téléphone, les deux résultats affichés séparément et horodatés. Ploi ne documente aucun moyen de relancer sa propre vérification : l'application ne le prétend pas.
  • Formats d'écran : barre de navigation sous 600 dp, rail latéral au-delà, liste et détail côte à côte à partir de 720 dp (pliant ouvert, tablette).
  • Mots plutôt que codes : statuts, priorités et règles de pare-feu traduits (« Injoignable », « À traiter », « Autoriser »…) ; les valeurs inconnues restent visibles telles qu'envoyées.
  • Widgets : pied de carte compact tenant en 2×2, statut Ploi précis, jauges natives colorées par palier (sous 75 %, 75–89 %, 90 % et plus) avec la valeur écrite à côté.
  • PIN de 4 à 12 chiffres, avec règles expliquées pendant la frappe.

Vérification

  • 751 tests JVM, 0 échec ; rapport lint No issues found.
  • APK et AAB reconstruits depuis le tag v0.3.0 dans un arbre de travail propre, afin que les fichiers publiés correspondent exactement au commit.
  • Les écrans de lecture ont été parcourus sur un compte Ploi réel, en lectures seules, rendus sur la JVM (Robolectric, graphismes natifs) en quatre formats : téléphone, pliant fermé (344 dp), pliant ouvert (690 dp), tablette paysage (1280 dp). Ce parcours est facultatif (-Pscreenshots), lit son jeton dans un fichier et n'est pas exécuté en CI.

Non vérifié

  • Usage sur un appareil réel : gestes, claviers tiers, lecteur d'écran TalkBack, biométrie, tailles de texte système.
  • Widgets posés sur un véritable écran d'accueil (seul leur rendu a été contrôlé).
  • Terminal SSH connecté à un serveur réel.
  • Toutes les actions qui créent, modifient ou suppriment des ressources Ploi : le parcours automatisé est strictement en lecture. Vérifiez les droits de votre jeton et les effets d'une action avant de l'utiliser sur des ressources importantes.
  • Aucune publication Google Play.

Licence

Code du dépôt : GNU LGPL-3.0-only (LICENSE), permissions additionnelles à la GPL-3.0. Les dépendances tierces conservent leurs propres licences. « Ploi » appartient à ses titulaires respectifs.

Journal complet : CHANGELOG.md.