Nouveautés

Ce que chaque version de PalliaD apporte — corrections comprises. La liste est produite à partir de l'historique du code, à chaque livraison.

Version 0.2.1 version en ligne

Corrections

  • newsletterL'envoi tombait en 431, et on ne pouvait pas choisir qui

Version 0.2.0

Nouveautés

  • reglesLes règles de gestion et les machines à états passent côté serveur
  • uiEn portable, le menu de la plateforme devient un tiroir

Corrections

  • devLe proxy de développement avalait les chunks nommés comme un domaine

Version 0.1.0

Nouveautés

  • metierLes écrans des lieux, des demandeurs et de la file active parlent au back
  • metierLes quatre domaines du quotidien — lieux, demandeurs, patients, activités
  • enrôlementUn serveur on-prem s'authentifie, il ne rejoue plus son secret
  • droitsLe jeton porte les autorités que le profil accorde vraiment
  • instancesLes serveurs de l'équipe ont leur propre page
  • facturationLes factures se consultent et se téléchargent dans Palliad
  • enrôlementL'appairage se pilote depuis l'espace de l'équipe
  • clésLes clés de signature passent du disque à MongoDB
  • onpremL'assistant d'installation, côté écran
  • onpremInstaller une instance client, au lieu de la livrer ouverte
  • saasEnrôler une instance on-prem depuis le SaaS, et pouvoir la couper
  • devLes deux backs et les deux fronts démarrent ensemble depuis VS Code
  • frontLes deux distributions se servent en parallèle, sans se voler leurs fichiers
  • onpremLe client voit enfin d'où viennent ses référentiels et jusqu'à quand il a le droit
  • onpremUne instance de client reçoit enfin ses référentiels du SaaS
  • distributionsP4 — un front et un seed par édition, référencement hors on-prem
  • frontSolder P3 — plus aucun lien mort ni contenu vitrine en on-prem
  • front-modulaireP3 — le prérendu appartient aux modules, le build on-prem produit un artefact
  • front-modulaireP3 — le shell commun cesse de connaître la facturation et la vitrine
  • frontP2 — profils de build cloud / onprem / dev, assemblage par données
  • front-modulaireSite, treizième module extrait
  • front-modulaireFile-active, douzième module extrait
  • front-modulaireDemandes-intervention, onzième module extrait
  • front-modulaireActivites, dixième module extrait
  • front-modulaireFacturation, neuvième module extrait
  • front-modulaireAdministration, huitième module extrait
  • front-modulaireEquipe, septième module extrait
  • front-modulaireLes connecteurs prennent leur bloc INTÉGRATION
  • front-modulaireDemandes-commerciales, sixième module extrait
  • front-modulaireDeveloppeur, cinquième module extrait
  • front-modulaireIntegration, quatrième module extrait
  • front-modulaireDemandeur, troisième module extrait
  • front-modulaireRapports, deuxième module extrait
  • front-modulaireAnnuaire, premier module extrait
  • front-modulairePLATFORM_ENTRY_GUARDS, le shell cesse de connaître la facturation
  • front-modulaireContrat de module et fusion des blocs de menu
  • adminLes actes sur un abonnement quittent la liste pour la fiche
  • adminFiltre par type de contrat sur la liste des abonnements
  • adminLa fiche d'équipe répond aux questions du support d'un coup d'œil
  • billingLes remises sont répercutées sur Stripe
  • savRemise ponctuelle, et un motif par remise plutôt qu'un motif de geste
  • offresRestriction d'une option aux offres choisies, héritage visible, pages tarifaires refaites
  • publicUne page par offre, avec les options qui peuvent s'y ajouter
  • publicLes offres s'affichent enfin sur le site vitrine
  • billingCadence annuelle avec ristourne, et échéance sur une remise
  • depsGarganttua-api 3.0.0-ALPHA14 — sémantique du null à l'update, par champ
  • savConsole de service après-vente sur la fiche d'une équipe
  • signupMail de notification des demandes + profil du compte administrateur
  • signupL'inscription crée enfin un tenant — et seulement quand elle est autorisée
  • contract-typesCiblage d'organisation appliqué au pipeline d'inscription
  • billingFenêtre de validité d'une offre — essais gratuits à durée limitée
  • signupParcours EMSP unique + recherche par numéro FINESS
  • offresTrier le catalogue d'options, et le ranger
  • quotasUn domaine qui déclare ce qui peut être plafonné
  • offresLes options ont leur propre écran d'administration
  • licencesLes clés de signature deviennent un domaine de clés, et un écran d'admin
  • distributionsDécouper le backend en common + cloud + on-prem, et signer les licences
  • offresSection « Inclus », hiérarchie entre offres et options payantes
  • site publicLes pages solutions/* entrent dans l'inventaire public
  • offresUn type de contrat désigne la page vitrine où ses offres s'affichent
  • annuaireLa synchro rattrape l'entité juridique manquante d'un centre
  • signupCentres géographiques seulement, carte, paiement Stripe et lien contact
  • signupChoisir son EMSP — centre puis service, une seule équipe par EMSP
  • billingMiroir automatique du catalogue Palliad vers Stripe
  • billingRendre la souscription en ligne réellement possible
  • billingBrancher le front sur les domaines contrats/abonnements
  • billingWebhook vérifié de bout en bout sur l'image native
  • billingPhase 4 (2/n) — use cases checkout, portal et webhook
  • billingClient Stripe natif-safe et vérification de signature webhook
  • billingPhase 4 (1/n) — domaines contract-types, contracts, subscriptions
  • onpremPhase 2 (2/2) — l'état d'habilitation est un use case du domaine
  • onpremPhase 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érationnel
  • directoryMilieu hospitalier déduit du code NAF, refonte de l'import NOS
  • directoryAnnuaire public filtré en base, entités juridiques masquées par défaut
  • directoryAnnuaire public servi par le vrai domaine, centres masqués exclus

Corrections

  • onpremUne instance neuve conduit à son installation, pas à un mur
  • adminLes cases de fonctionnalités étaient inertes, dans les deux onglets
  • facturationRendre à chaque page le code qui lui appartient
  • devL'éditeur ne lance plus un back à moitié compilé
  • équipeLes profils de l'invitation sont ceux qui existent vraiment
  • icônes83 icônes s'affichaient en toutes lettres au lieu du glyphe
  • enrôlementUne équipe ne peut ni enrôler ni couper le serveur d'une autre
  • comptesMot de passe oublié et révocation de session échouaient hors du tenant maître
  • mailLes liens sortants suivent l'environnement, et un déploiement muet échoue au démarrage
  • devL'éditeur retrouve la sélection de modules, et le port on-prem cesse d'être écrit deux fois sans lien
  • syncUn centre saisi à la main n'arrivait jamais chez le client
  • distributionLe SaaS refusait toute licence réelle, donc n'alimentait aucun client
  • onpremLe bundle du client cesse d'appeler la France depuis le navigateur
  • distributionsL'image docker « onprem » embarquait le binaire du cloud
  • front-modulaireRendre la plomberie des profils utilisable hors du profil cloud
  • front-modulaireTrois gardes que les profils n'avaient pas
  • publicDésactiver une page la retire aussi de la navigation
  • licenceL'essai échu d'un client mettait toute l'instance en lecture seule
  • savAccorder une remise ne doit pas pouvoir effacer les options
  • adminLes options souscrites étaient perdues à la lecture d'un abonnement
  • adminUne liste d'équipes vide dit désormais pourquoi
  • admin/app/admin/teams lisait des équipes fictives
  • billing,adminLicence perdue après paiement, et équipe invisible dans /app/admin/teams
  • uiLes popups d'édition débordaient à gauche et à droite
  • quotasUne carte du catalogue n'affiche plus de valeur
  • distributionsNe rien construire de @Reflected avant le bootstrap
  • devRendre le .env aux configurations de lancement des deux distributions
  • distributionsRendre le logger SLF4J aux assemblages
  • site publicL'admin affiche l'arborescence, et les types de contrats lisent le même inventaire
  • signupPouvoir revenir en arrière, et ne plus rendre d'étape vide
  • annuaireL'identité d'un centre est son id logique FHIR, pas son FINESS
  • devPointer VS Code sur les JDK accessibles depuis son bac à sable
  • devForcer VS Code sur le JDK 25
  • annuaireLes liens parent/sous-entité n'ouvraient plus rien
  • devDéclarer les domaines billing dans le proxy de développement
  • billingTracer les webhooks acceptés, pas seulement les refus
  • onpremLa signature de licence ne doit jamais sortir par l'API
  • directoryIdentifier un centre par son FINESS, plus par son URL FHIR

Version 0.0.29

Nouveautés

  • directoryFiltre présence d'une EMSP sur la page centres de soins

Corrections

  • fhirSignaler les catégories TRE-R66 absentes de la curation
  • fhirUne entité juridique ne porte ni EMSP, ni USP, ni LISP, ni niveau
  • fhirNiveau d'offre déduit de l'USP/LISP, et EMSP réservée au milieu hospitalier
  • fhirLes corrections manuelles survivent à un redémarrage en cours de drain
  • fhirLa synchro partielle ne doit plus perdre de centres
  • eventsUn bus indisponible ne doit plus faire tomber le démarrage
  • contentAppliquer les seeds articles et glossaire au démarrage
  • testSortir les bus d'events de /data/bus pendant les tests

Version 0.0.28

Corrections

  • ciMonter les volumes /data/bus et /data/images dans le smoke de release

Version 0.0.27

Nouveautés

  • directoryFlag EMSP sur les unités internes + recensement à décrire
  • directoryFiltre juridique/géographique + niveau par défaut hospitalier
  • directorySuppression de tous les centres + retrait de l'encart FHIR
  • uiCarte des centres — clustering géographique + tableau suivant la carte (D)
  • directoryLibellés NOS (C) — catégorie, secteur, NAF, services
  • directoryOptions 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 services
  • directoryArborescence, 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 centre
  • directoryP5 — page connecteur FHIR + planification + toggle catégories
  • directoryR2 + R1 — sélection des catégories persistée + compteurs de stockage live
  • directoryP3b + P4 — niveau palliatif (services) + stockage bus
  • directoryP3 — enrichissement géocodage BAN sur le bus
  • directoryP2b — déclencheur de synchro FHIR + publication sur le bus
  • directoryP2a — client FHIR natif-compatible (sans HAPI)
  • directoryP1 — socle de stockage des centres de soins (domaine + API)

Corrections

  • seoRendre les pages articles et glossaire indexables
  • directoryAjout d'une unité fonctionnelle sous un service
  • directoryL'édition d'un centre ne vide plus contacts/services/milieu
  • directoryLa liste des pôles du parent n'était plus vide
  • directoryRétablit les services/équipes rattachés aux pôles du parent
  • fhirLe temps total de synchro inclut le traitement asynchrone
  • uiCarte des centres plus grande et pleine largeur
  • directoryNom 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 fois
  • directoryMapping 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 natif
  • directoryType d'entité réel + lien organisation parente résolvable
  • banGeocoder en java.net.http + Jackson 2 (élimine le clash Jackson 3)

Version 0.0.26

Corrections

  • nosRéparer l'import silencieux à zéro en image native

Version 0.0.25

Nouveautés

  • syncFiltrer les rapports par connecteur + purge par connecteur

Corrections

  • syncFaire remonter l'erreur dans les rapports de synchro
  • cim11Skip the ICD-11 integration tests when the API is unreachable

Version 0.0.24

Nouveautés

  • release-notesGénérer les notes de version depuis les Conventional Commits
  • uiAccessibility pass + migrate every page onto the catalogue
  • cim11Refuse a concurrent sync run
  • cim11Store the linearization metadata on each synced pathology
  • cim11Group top-level codes by block letter, fold from the row
  • cim11Show the code hierarchy as a collapsible tree
  • authUser password management (self-service + admin reset)
  • cim11Real ICD-11 sync replacing the mock connector page

Corrections

  • apiEmit the official Mongo-like `filter=` syntax on read-all
  • prodSet PALLIAD_FRONTEND_URL so emailed links aren't localhost

Performance

  • prodCache public glossary/blog reads at the edge

Version 0.0.23

Nouveautés

  • authEnable stateful token revocation (checkStoredOnVerify)
  • authSign bearer tokens with ES256 (was unsigned alg:none)

Corrections

  • prodDecrypt ALL compose secrets from pass, not just the GHCR token
  • ciSmoke test SPA-shell check fails spuriously on CI (SIGPIPE)
  • prodPersist the mail bus + back-port Watchtower GHCR auth

Version 0.0.22

Nouveautés

  • mailCap the persisted send history
  • eventsBus pollInterval 1s (was 10s default) for low mail latency
  • eventsBuffer mail through a bus connector between rendering and SMTP
  • eventsConnector IFilter (create-only); newsletter create/update/delete mails; subscriber list admin-only
  • eventsDesign A — 2 transform routes per trigger (fan-out via routes)
  • mailÉtape 4 live — import-template attachment via the events connector
  • mailDefault the events mail pipeline ON (inline = explicit fallback)
  • mailÉtape 6 — feed the "Connecteur Mail" dev page from the events path
  • mailÉ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 pipeline
  • eventsWorking 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 page
  • eventsWire garganttua-events starters + unify garganttua stack on 3.0.0-ALPHA04
  • authFrontend secretLoginGuard mirroring the server-side gate
  • developerLive Mail and MongoDB connector pages
  • nativeGraalVM AOT native build on garganttua-starter-native
  • Reactivate login and signup routes and add signup button to navbar
  • team+contentUser profileId + email/profile authority gates, Profil rename, JSON export/import
  • auth+publicCRUD-pipeline writes, login-based secret gate, public-elements admin + enforcement
  • auth+contentNewsletter templates, account hardening, secret admin login, User unicity
  • adminPages tab as collapsible tree + no roles in authorities
  • authAccount activation + password reset (observer + DSL use cases)
  • auth+uiSuper-owner gating, optional profiles, per-activity Configuration buttons
  • authReal garganttua-api v3 auth — pure-POJO core + DSL wiring
  • Reactivate login and signup routes and add signup button to navbar

Corrections

  • nativeUnblock the v0.0.22 release — auth API now mounts in native
  • ciProvide a MongoDB service for AuthChainTest
  • ciMatch Maven server ids to pom repository ids
  • eventsAdapt to renamed route DSL — stage.expression() → processor()
  • mailDispatch all mails explicitly; drop the api firehose; UTF-8 charset
  • mailPublish each mail of a multi-mail flow independently
  • eventsOnly emit mail on successful CREATE, never on read/GET
  • mailMake STARTTLS/auth configurable so MailHog (dev) receives mail
  • backendDeclare garganttua-starter-application for the runtime boot path
  • dockerSet GARGANTTUA_MONGODB_URI/DATABASE (v3) instead of DB_URL
  • content-exportSerialize all entity fields in JSON export
  • nativeRegister NOS FHIR DTOs for reflection + surface NOS sync root cause

Version 0.0.21

Nouveautés

  • heroThree new themes (pink/amber/teal) for the EMSP module pages
  • heroTheme presets to recover the per-page palettes

Corrections

  • heroDrop forced width on illustration cards
  • Include menu/close ligatures in Material Icons subset

Version 0.0.20

Performance

  • Fix CLS 0.13 (Manjari font swap) and drop decoding=sync on LCP

Version 0.0.19

Nouveautés

  • Bump 0.0.19, reusable breadcrumb, harmonised solution hero, sober Green IT

Corrections

  • ciCommit package-lock.json, pin every @angular/* to exact versions
  • ciPin @angular-devkit/build-angular to 19.2.19 (allowedHosts regression)

Version 0.0.18

Corrections

  • Bump 0.0.18, revert Material Icons subset (broke ligatures)

Version 0.0.17

Performance

  • Bump 0.0.17, subset Material Icons + a11y fixes

Version 0.0.16

Corrections

  • Bump 0.0.16, escape @ in Ikoula email for Angular template parser

Version 0.0.15

Corrections

  • seoShip preloadImage() to match landing call site

Version 0.0.13

Performance

  • Bump 0.0.13, drop MatIconModule from public bundle

Version 0.0.12

Performance

  • Bump 0.0.12, shrink public bundle, self-host fonts

Version 0.0.11

Corrections

  • seoUnbury sitemap + robots; cache npm and native-image in CI

Version 0.0.10

Nouveautés

  • seoAngular SSG prerendering — keyword pages are now real HTML

Version 0.0.9

Corrections

  • mailRobust import-template attachment send

Version 0.0.8

Nouveautés

  • Import-template request popup + email delivery with attachment

Version 0.0.7

Nouveautés

  • seoSEO landing pages, articles, glossaire + mobile navbar fix

Version 0.0.6

Nouveautés

  • mailSend acknowledgement to contact/demo form submitters

Version 0.0.5

Corrections

  • mailPort 465 SMTPS, async send, hard timeouts, raw subjects

Version 0.0.4

Corrections

  • Bump backend child module parent versions to 0.0.3

Version 0.0.3

Nouveautés

  • Anti-spam, newsletter, articles page + HTML email templates

Version 0.0.2

Nouveautés

  • Switch prod to Caddy auto-TLS, store GHCR token in pass, fix Angular env replacement

Version 0.0.1

Nouveautés

  • Align with template, fix contact/demo forms, migrate images to WebP
  • Add contact and demo request API endpoints with email notifications
  • Update public pages, logos, nginx config, and remove obsolete files
  • Replace Spring Boot backend with Javalin native image, add SEO and security improvements
  • Add subtypes, TypePicker component, data export page, and config improvements
  • Replace tableau de bord with enhanced file active as dashboard
  • Refactor backend to multi-module, add internal org tree, location form, and UI improvements
  • Add EMSP directory with map, intervention request forms and patient creation
  • Add public pages, legal pages and update contact information
  • Complete platform UI with EMSP-focused landing page

Corrections

  • Install artifacts to local repo for native build, redirect demo subject to demo page