Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Afficher les bannières dynamiquement. #11071

Open
wants to merge 7 commits into
base: dev
Choose a base branch
from

Conversation

MathieuGilet
Copy link
Contributor

@MathieuGilet MathieuGilet commented Jan 10, 2025

🎄 Problème

L'affichage et le contenu des bannières des différentes applications front nécessite de builder l'application.
Cela engendre un délai d'au moins 10 minutes entre la décision de mettre une bannière et le moment auquel la bannière est effectivement visible pour les utilisateurs.

🎁 Proposition

Cette contrainte est liée à l'utilisation de variables d'environnement pour définir le texte et la sévérité des bannières.
Ces variables d'environnement ne sont lues uniquement au moment du build.

Pour pallier à cette contrainte, on décide de stocker les données des bannières à afficher, pour chaque front, dans des clés Redis préfixées par information-banners:.

La sauvegarde dans Redis elle-même est effectuée via Pix Exploit permettant un contrôle fort de ce qui est affiché aux utilisateurs.

Les fronts, lors de leur lancement, appelle une route dédiée (/api/banners/:target) périodiquement afin de pouvoir modifier l'affichage des bannières de manière plus réactive qu'actuellement.

🧦 Remarques

On en a profité pour renommer TemporaryStorage en KeyValueStorage et permettre un stockage sans durée d'expiration.

🎅 Pour tester

Lancer Pix Certif.
Vérifier qu'aucune bannière n'est affichée.

Lancer la commande

scalingo -a pix-api-review-pr11071 run "npm run banner:add -- --target=pix-front-review-pr11071 --severity=information --message_fr=\"Coucou encore\" --message_en=\"Hello again\""

Vérifier qu'une bannière n'est affichée.

Lancer la commande

scalingo -a pix-api-review-pr11071 run "npm run banner:remove -- --target=pix-front-review-pr11071"

Vérifier qu'aucune bannière n'est affichée.

@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@VincentHardouin VincentHardouin marked this pull request as draft January 10, 2025 14:04
@MathieuGilet MathieuGilet changed the title [TECH] Afficher les bannière dynamiquement [TECH] Afficher les bannières dynamiquement Jan 10, 2025
@HEYGUL HEYGUL changed the title [TECH] Afficher les bannières dynamiquement [TECH] Afficher les bannières dynamiquement. Jan 13, 2025
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch from 44529db to ac61e18 Compare January 14, 2025 08:38
@HEYGUL HEYGUL changed the title [TECH] Afficher les bannières dynamiquement. [FEATURE] Afficher les bannières dynamiquement. Jan 14, 2025
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch 3 times, most recently from 2fd3db2 to 4dffff9 Compare January 15, 2025 15:01
@HEYGUL HEYGUL removed ⚠️ Blocked POC Pour les PoC labels Jan 15, 2025
@HEYGUL HEYGUL requested a review from bpetetot January 15, 2025 15:22
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch 4 times, most recently from 3df66a3 to ee7d4d6 Compare January 16, 2025 06:52
api/scripts/information-banners/add.js Outdated Show resolved Hide resolved
api/scripts/information-banners/add.js Outdated Show resolved Hide resolved
api/scripts/information-banners/add.js Outdated Show resolved Hide resolved
certif/app/components/information-banners.gjs Show resolved Hide resolved
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch 3 times, most recently from c22a648 to 56dccda Compare January 16, 2025 10:40
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch 3 times, most recently from cac1a33 to e978467 Compare January 16, 2025 13:49
@HEYGUL HEYGUL marked this pull request as ready for review January 16, 2025 13:55
@HEYGUL HEYGUL requested review from a team as code owners January 16, 2025 13:55
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch from e978467 to ac168f8 Compare January 16, 2025 14:32
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch from a0d705c to f3aa97f Compare January 16, 2025 16:29
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch from f3aa97f to 7caf7e5 Compare January 16, 2025 20:45
@HEYGUL HEYGUL force-pushed the tech/dynamic-banners branch from 5c179ce to 68275fa Compare January 16, 2025 21:13
Copy link
Contributor

@bpetetot bpetetot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests OK et revue OK 👍👍👍👍

  • Ajout de plusieurs bannière via le script.
  • Affichage des bannières.
  • Suppression des bannières via le script.

Suggestion: Mettre le temps de polling par défaut (en local) au moins à une minute, car ça spam pas mal quand on dev en local et ça peut être un peu chiant.

Comment on lines +11 to +16
target: {
type: 'string',
describe: 'application name we want to remove information banners from',
required: true,
requiresArg: true,
},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion(non-bloquante) : Il manque peut-être de pouvoir choisir le type d'alerte à retirer : Si on a une alerte information pour plusieurs mois et qu'on ajoute une alerte warning, là on retire les deux pour ajouter de nouveau celle de type information, ce qui peut être sujet à faire des erreurs ou ne pas la remettre.

question : On parle de Pix Exploit dans la description, du coup est-ce que ces scripts ne sont pas des doublons ? 🤔

Copy link
Contributor

@bpetetot bpetetot Jan 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense que Pix Exploit est uniquement pour la production (pour le moment), les scripts permettent à n'importe qui de réaliser les opérations en local/RA/Integration/Recette

@yaf yaf added team-certif team-evaluation PR relatives à l'expérience d'évaluation labels Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
👀 Func Review Needed 👀 Tech Review Needed team-captains This is your captain speaking team-certif team-evaluation PR relatives à l'expérience d'évaluation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants