Version 0.2.1 version en ligne31 août 2026CorrectionsnewsletterL'envoi tombait en 431, et on ne pouvait pas choisir qui
Version 0.2.0 27 août 2026NouveautésreglesLes règles de gestion et les machines à états passent côté serveuruiEn portable, le menu de la plateforme devient un tiroirCorrectionsdevLe proxy de développement avalait les chunks nommés comme un domaine
Version 0.1.0 26 août 2026NouveautésmetierLes écrans des lieux, des demandeurs et de la file active parlent au backmetierLes quatre domaines du quotidien — lieux, demandeurs, patients, activitésenrôlementUn serveur on-prem s'authentifie, il ne rejoue plus son secretdroitsLe jeton porte les autorités que le profil accorde vraimentinstancesLes serveurs de l'équipe ont leur propre pagefacturationLes factures se consultent et se téléchargent dans PalliadenrôlementL'appairage se pilote depuis l'espace de l'équipeclésLes clés de signature passent du disque à MongoDBonpremL'assistant d'installation, côté écranonpremInstaller une instance client, au lieu de la livrer ouvertesaasEnrôler une instance on-prem depuis le SaaS, et pouvoir la couperdevLes deux backs et les deux fronts démarrent ensemble depuis VS CodefrontLes deux distributions se servent en parallèle, sans se voler leurs fichiersonpremLe client voit enfin d'où viennent ses référentiels et jusqu'à quand il a le droitonpremUne instance de client reçoit enfin ses référentiels du SaaSdistributionsP4 — un front et un seed par édition, référencement hors on-premfrontSolder P3 — plus aucun lien mort ni contenu vitrine en on-premfront-modulaireP3 — le prérendu appartient aux modules, le build on-prem produit un artefactfront-modulaireP3 — le shell commun cesse de connaître la facturation et la vitrinefrontP2 — profils de build cloud / onprem / dev, assemblage par donnéesfront-modulaireSite, treizième module extraitfront-modulaireFile-active, douzième module extraitfront-modulaireDemandes-intervention, onzième module extraitfront-modulaireActivites, dixième module extraitfront-modulaireFacturation, neuvième module extraitfront-modulaireAdministration, huitième module extraitfront-modulaireEquipe, septième module extraitfront-modulaireLes connecteurs prennent leur bloc INTÉGRATIONfront-modulaireDemandes-commerciales, sixième module extraitfront-modulaireDeveloppeur, cinquième module extraitfront-modulaireIntegration, quatrième module extraitfront-modulaireDemandeur, troisième module extraitfront-modulaireRapports, deuxième module extraitfront-modulaireAnnuaire, premier module extraitfront-modulairePLATFORM_ENTRY_GUARDS, le shell cesse de connaître la facturationfront-modulaireContrat de module et fusion des blocs de menuadminLes actes sur un abonnement quittent la liste pour la ficheadminFiltre par type de contrat sur la liste des abonnementsadminLa fiche d'équipe répond aux questions du support d'un coup d'œilbillingLes remises sont répercutées sur StripesavRemise ponctuelle, et un motif par remise plutôt qu'un motif de gesteoffresRestriction d'une option aux offres choisies, héritage visible, pages tarifaires refaitespublicUne page par offre, avec les options qui peuvent s'y ajouterpublicLes offres s'affichent enfin sur le site vitrinebillingCadence annuelle avec ristourne, et échéance sur une remisedepsGarganttua-api 3.0.0-ALPHA14 — sémantique du null à l'update, par champsavConsole de service après-vente sur la fiche d'une équipesignupMail de notification des demandes + profil du compte administrateursignupL'inscription crée enfin un tenant — et seulement quand elle est autoriséecontract-typesCiblage d'organisation appliqué au pipeline d'inscriptionbillingFenêtre de validité d'une offre — essais gratuits à durée limitéesignupParcours EMSP unique + recherche par numéro FINESSoffresTrier le catalogue d'options, et le rangerquotasUn domaine qui déclare ce qui peut être plafonnéoffresLes options ont leur propre écran d'administrationlicencesLes clés de signature deviennent un domaine de clés, et un écran d'admindistributionsDécouper le backend en common + cloud + on-prem, et signer les licencesoffresSection « Inclus », hiérarchie entre offres et options payantessite publicLes pages solutions/* entrent dans l'inventaire publicoffresUn type de contrat désigne la page vitrine où ses offres s'affichentannuaireLa synchro rattrape l'entité juridique manquante d'un centresignupCentres géographiques seulement, carte, paiement Stripe et lien contactsignupChoisir son EMSP — centre puis service, une seule équipe par EMSPbillingMiroir automatique du catalogue Palliad vers StripebillingRendre la souscription en ligne réellement possiblebillingBrancher le front sur les domaines contrats/abonnementsbillingWebhook vérifié de bout en bout sur l'image nativebillingPhase 4 (2/n) — use cases checkout, portal et webhookbillingClient Stripe natif-safe et vérification de signature webhookbillingPhase 4 (1/n) — domaines contract-types, contracts, subscriptionsonpremPhase 2 (2/2) — l'état d'habilitation est un use case du domaineonpremPhase 2 (1/2) — règles d'habilitation (LicenceService, LicenceState)onpremPhase 1 — domaine licence (entité, DTO, enregistrement)onpremPhase 0 — spikes S1 et S2 levés, single-tenant opérationneldirectoryMilieu hospitalier déduit du code NAF, refonte de l'import NOSdirectoryAnnuaire public filtré en base, entités juridiques masquées par défautdirectoryAnnuaire public servi par le vrai domaine, centres masqués exclusCorrectionsonpremUne instance neuve conduit à son installation, pas à un muradminLes cases de fonctionnalités étaient inertes, dans les deux ongletsfacturationRendre à chaque page le code qui lui appartientdevL'éditeur ne lance plus un back à moitié compilééquipeLes profils de l'invitation sont ceux qui existent vraimenticônes83 icônes s'affichaient en toutes lettres au lieu du glypheenrôlementUne équipe ne peut ni enrôler ni couper le serveur d'une autrecomptesMot de passe oublié et révocation de session échouaient hors du tenant maîtremailLes liens sortants suivent l'environnement, et un déploiement muet échoue au démarragedevL'éditeur retrouve la sélection de modules, et le port on-prem cesse d'être écrit deux fois sans liensyncUn centre saisi à la main n'arrivait jamais chez le clientdistributionLe SaaS refusait toute licence réelle, donc n'alimentait aucun clientonpremLe bundle du client cesse d'appeler la France depuis le navigateurdistributionsL'image docker « onprem » embarquait le binaire du cloudfront-modulaireRendre la plomberie des profils utilisable hors du profil cloudfront-modulaireTrois gardes que les profils n'avaient paspublicDésactiver une page la retire aussi de la navigationlicenceL'essai échu d'un client mettait toute l'instance en lecture seulesavAccorder une remise ne doit pas pouvoir effacer les optionsadminLes options souscrites étaient perdues à la lecture d'un abonnementadminUne liste d'équipes vide dit désormais pourquoiadmin/app/admin/teams lisait des équipes fictivesbilling,adminLicence perdue après paiement, et équipe invisible dans /app/admin/teamsuiLes popups d'édition débordaient à gauche et à droitequotasUne carte du catalogue n'affiche plus de valeurdistributionsNe rien construire de @Reflected avant le bootstrapdevRendre le .env aux configurations de lancement des deux distributionsdistributionsRendre le logger SLF4J aux assemblagessite publicL'admin affiche l'arborescence, et les types de contrats lisent le même inventairesignupPouvoir revenir en arrière, et ne plus rendre d'étape videannuaireL'identité d'un centre est son id logique FHIR, pas son FINESSdevPointer VS Code sur les JDK accessibles depuis son bac à sabledevForcer VS Code sur le JDK 25annuaireLes liens parent/sous-entité n'ouvraient plus riendevDéclarer les domaines billing dans le proxy de développementbillingTracer les webhooks acceptés, pas seulement les refusonpremLa signature de licence ne doit jamais sortir par l'APIdirectoryIdentifier un centre par son FINESS, plus par son URL FHIR
Version 0.0.29 17 août 2026NouveautésdirectoryFiltre présence d'une EMSP sur la page centres de soinsCorrectionsfhirSignaler les catégories TRE-R66 absentes de la curationfhirUne entité juridique ne porte ni EMSP, ni USP, ni LISP, ni niveaufhirNiveau d'offre déduit de l'USP/LISP, et EMSP réservée au milieu hospitalierfhirLes corrections manuelles survivent à un redémarrage en cours de drainfhirLa synchro partielle ne doit plus perdre de centreseventsUn bus indisponible ne doit plus faire tomber le démarragecontentAppliquer les seeds articles et glossaire au démarragetestSortir les bus d'events de /data/bus pendant les tests
Version 0.0.28 17 août 2026CorrectionsciMonter les volumes /data/bus et /data/images dans le smoke de release
Version 0.0.27 17 août 2026NouveautésdirectoryFlag EMSP sur les unités internes + recensement à décriredirectoryFiltre juridique/géographique + niveau par défaut hospitalierdirectorySuppression de tous les centres + retrait de l'encart FHIRuiCarte des centres — clustering géographique + tableau suivant la carte (D)directoryLibellés NOS (C) — catégorie, secteur, NAF, servicesdirectoryOptions de synchro — préservation des corrections manuelles (A)directoryServices enrichis de toutes les infos NOS (7 référentiels)directoryFlags palliatifs USP/LISP/EMSP détectés depuis les servicesdirectoryArborescence, sous-centres, contacts/services, orgs internes (front)directoryContacts + services synchronisés + orgs internes (modèle backend)directoryMilieu hospitalier dérivé de la catégorie du centredirectoryP5 — page connecteur FHIR + planification + toggle catégoriesdirectoryR2 + R1 — sélection des catégories persistée + compteurs de stockage livedirectoryP3b + P4 — niveau palliatif (services) + stockage busdirectoryP3 — enrichissement géocodage BAN sur le busdirectoryP2b — déclencheur de synchro FHIR + publication sur le busdirectoryP2a — client FHIR natif-compatible (sans HAPI)directoryP1 — socle de stockage des centres de soins (domaine + API)CorrectionsseoRendre les pages articles et glossaire indexablesdirectoryAjout d'une unité fonctionnelle sous un servicedirectoryL'édition d'un centre ne vide plus contacts/services/milieudirectoryLa liste des pôles du parent n'était plus videdirectoryRétablit les services/équipes rattachés aux pôles du parentfhirLe temps total de synchro inclut le traitement asynchroneuiCarte des centres plus grande et pleine largeurdirectoryNom des sous-entités (affichait l'URL au lieu du nom)directoryRefresh de la page détail d'un centre (retour landing)uiCarte dézoomable — auto-fit une seule foisdirectoryMapping des centres résilient (une ligne KO ne vide plus tout)banFallback sans code postal (codes CEDEX non géocodables)directoryExpansion des abréviations d'adresse dans le client natifdirectoryType d'entité réel + lien organisation parente résolvablebanGeocoder en java.net.http + Jackson 2 (élimine le clash Jackson 3)
Version 0.0.25 23 juillet 2026NouveautéssyncFiltrer les rapports par connecteur + purge par connecteurCorrectionssyncFaire remonter l'erreur dans les rapports de synchrocim11Skip the ICD-11 integration tests when the API is unreachable
Version 0.0.24 23 juillet 2026Nouveautésrelease-notesGénérer les notes de version depuis les Conventional CommitsuiAccessibility pass + migrate every page onto the cataloguecim11Refuse a concurrent sync runcim11Store the linearization metadata on each synced pathologycim11Group top-level codes by block letter, fold from the rowcim11Show the code hierarchy as a collapsible treeauthUser password management (self-service + admin reset)cim11Real ICD-11 sync replacing the mock connector pageCorrectionsapiEmit the official Mongo-like `filter=` syntax on read-allprodSet PALLIAD_FRONTEND_URL so emailed links aren't localhostPerformanceprodCache public glossary/blog reads at the edge
Version 0.0.23 21 juillet 2026NouveautésauthEnable stateful token revocation (checkStoredOnVerify)authSign bearer tokens with ES256 (was unsigned alg:none)CorrectionsprodDecrypt ALL compose secrets from pass, not just the GHCR tokenciSmoke test SPA-shell check fails spuriously on CI (SIGPIPE)prodPersist the mail bus + back-port Watchtower GHCR auth
Version 0.0.22 20 juillet 2026NouveautésmailCap the persisted send historyeventsBus pollInterval 1s (was 10s default) for low mail latencyeventsBuffer mail through a bus connector between rendering and SMTPeventsConnector IFilter (create-only); newsletter create/update/delete mails; subscriber list admin-onlyeventsDesign A — 2 transform routes per trigger (fan-out via routes)mailÉtape 4 live — import-template attachment via the events connectormailDefault the events mail pipeline ON (inline = explicit fallback)mailÉtape 6 — feed the "Connecteur Mail" dev page from the events pathmailÉtape 4 — import-template attachment seam (palliad-side, gated)mailRoute the secret login link mail through the events connector (étape 3)mailRoute the newsletter campaign send through the events connector (étape 2)mailRoute activation + password-reset through the events connector (étape 1)eventsDemo + newsletter mail triggers via events pipelineeventsWorking contact mail pipeline via garganttua-events (verified e2e)eventsMail topology contributor + contact create-through-domain (gated, dark)uiMake the platform sidebar logo link to the home pageeventsWire garganttua-events starters + unify garganttua stack on 3.0.0-ALPHA04authFrontend secretLoginGuard mirroring the server-side gatedeveloperLive Mail and MongoDB connector pagesnativeGraalVM AOT native build on garganttua-starter-nativeReactivate login and signup routes and add signup button to navbarteam+contentUser profileId + email/profile authority gates, Profil rename, JSON export/importauth+publicCRUD-pipeline writes, login-based secret gate, public-elements admin + enforcementauth+contentNewsletter templates, account hardening, secret admin login, User unicityadminPages tab as collapsible tree + no roles in authoritiesauthAccount activation + password reset (observer + DSL use cases)auth+uiSuper-owner gating, optional profiles, per-activity Configuration buttonsauthReal garganttua-api v3 auth — pure-POJO core + DSL wiringReactivate login and signup routes and add signup button to navbarCorrectionsnativeUnblock the v0.0.22 release — auth API now mounts in nativeciProvide a MongoDB service for AuthChainTestciMatch Maven server ids to pom repository idseventsAdapt to renamed route DSL — stage.expression() → processor()mailDispatch all mails explicitly; drop the api firehose; UTF-8 charsetmailPublish each mail of a multi-mail flow independentlyeventsOnly emit mail on successful CREATE, never on read/GETmailMake STARTTLS/auth configurable so MailHog (dev) receives mailbackendDeclare garganttua-starter-application for the runtime boot pathdockerSet GARGANTTUA_MONGODB_URI/DATABASE (v3) instead of DB_URLcontent-exportSerialize all entity fields in JSON exportnativeRegister NOS FHIR DTOs for reflection + surface NOS sync root cause
Version 0.0.21 13 mai 2026NouveautésheroThree new themes (pink/amber/teal) for the EMSP module pagesheroTheme presets to recover the per-page palettesCorrectionsheroDrop forced width on illustration cardsInclude menu/close ligatures in Material Icons subset
Version 0.0.19 13 mai 2026NouveautésBump 0.0.19, reusable breadcrumb, harmonised solution hero, sober Green ITCorrectionsciCommit package-lock.json, pin every @angular/* to exact versionsciPin @angular-devkit/build-angular to 19.2.19 (allowedHosts regression)
Version 0.0.16 12 mai 2026CorrectionsBump 0.0.16, escape @ in Ikoula email for Angular template parser
Version 0.0.2 7 mai 2026NouveautésSwitch prod to Caddy auto-TLS, store GHCR token in pass, fix Angular env replacement
Version 0.0.1 6 mai 2026NouveautésAlign with template, fix contact/demo forms, migrate images to WebPAdd contact and demo request API endpoints with email notificationsUpdate public pages, logos, nginx config, and remove obsolete filesReplace Spring Boot backend with Javalin native image, add SEO and security improvementsAdd subtypes, TypePicker component, data export page, and config improvementsReplace tableau de bord with enhanced file active as dashboardRefactor backend to multi-module, add internal org tree, location form, and UI improvementsAdd EMSP directory with map, intervention request forms and patient creationAdd public pages, legal pages and update contact informationComplete platform UI with EMSP-focused landing pageCorrectionsInstall artifacts to local repo for native build, redirect demo subject to demo page