Changelog public

Versions CDN.PIZZA

Version courante v0.7.8 publiée le 12 juillet 2026. Ce changelog reprend les notes locales du dépôt et donne une lecture cohérente des versions bêta publiques.

Changelog complet

v0.7.8 Actuelle

CLI 1.0.4 et référence API

Patch développeur: le CLI 1.0.4 ajoute les commandes fichiers, billing, réseau privé et status-agent attendues, durcit les garde-fous d’exploitation et aligne la page console CLI/API avec le package publié.

  • Le CLI ajoute files, file:show, file:delete, network:show, status-agent:key, billing:plans et billing:checkout.
  • Les commandes de lecture principales acceptent --json pour CI, scripts et diagnostics opérateur.
  • La purge globale demande désormais --all, avec --yes pour les usages non interactifs.
  • logout distingue le token stocké localement de CDN_PIZZA_TOKEN afin d’éviter une révocation accidentelle en CI.
  • Les uploads valident les chemins locaux et exposent cache_ttl, direct_public_link et storage_nodes.
  • status-agent:run sérialise ses cycles afin d’éviter des heartbeats ou résultats concurrents.
  • La page /cli documente la nouvelle surface CLI/API et le tarball @cdn.pizza/cli 1.0.4.

Commandes CLI

  • files, file:show et file:delete couvrent les endpoints fichiers déjà publics côté API.
  • network:show expose les détails du réseau privé et la disponibilité WireGuard avant création de clés connector.
  • status-agent:key crée les clés cps_... depuis la CLI et complète status-agent:enroll/status/run.
  • billing:plans et billing:checkout couvrent la consultation des plans et la création d’une session Payrexx.

Fiabilité opérateur

  • config affiche l’URL API effective, la source du token et l’état de connexion sans afficher le bearer token.
  • logout ne révoque CDN_PIZZA_TOKEN que si --revoke-env est passé explicitement.
  • Les options numériques et les préfixes de tokens cpn_/cps_ sont validés avant les appels API.
  • Le package npm utilise une whitelist de fichiers afin de ne plus publier les tests.

Documentation et distribution

  • La référence console /cli liste les nouvelles commandes, les endpoints status-agent, billing checkout et fichiers.
  • Le fallback version CLI du control-plane et le package npm sont alignés sur 1.0.4.
  • Les traductions EN/DE de la page CLI/API sont complétées.

Validation

  • Suite Jest CLI complète: 42 tests passants.
  • CliPageTest couvre les nouvelles commandes affichées sur /cli.
  • translations:scan strict EN/DE, npm audit, npm pack --dry-run, git diff --check et scripts/check-permissions.sh exécutés.
Source: CLI reliability and command coverage pass 2026-07-12
v0.7.7 Publiée

Quarantaine POP par origine

Patch d’exploitation: les POPs qui cassent une origine précise sont désormais mis en quarantaine uniquement pour la zone concernée, sans drainer tout le POP, avec probes automatiques et resynchronisation DNS.

  • Les erreurs origine répétées via un POP déclenchent une quarantaine par zone/POP au lieu d’une intervention manuelle globale.
  • Le mode CDN Auto respecte la quarantaine dans GeoDNS, le refresh du pool Auto et la bascule vers le mode Auto.
  • La commande planifiée zones:check-origin-health teste uniquement les hosts proxifiés et ignore les records DNS-only comme les CNAME GitBook docs.
  • La restauration automatique réactive le POP pour la zone après probes sains et expiration de la quarantaine.
  • La version publique, les données live et le fallback statique du site exposent maintenant la version produit 0.7.7.

Routage POP par zone

  • zone_pops stocke l’état de santé origine, les compteurs de succès/échec, la dernière erreur et la fin de quarantaine.
  • GeoDnsService filtre les POPs en quarantaine origine avant de générer les vues country, nearest, continent et fallback.
  • DomainEffectiveState signale une raison zone-spécifique quand un POP est filtré pour origine en erreur.

Automatisation

  • zones:check-origin-health force la résolution du host vers chaque POP afin de tester le chemin visiteur réel POP vers origine.
  • Deux échecs consécutifs placent le POP en quarantaine pour la zone et dispatchent SyncDnsZone sur la queue dns-maintenance.
  • Deux succès après expiration restaurent le POP et redéclenchent une synchronisation DNS.
  • Les records non proxifiés restent hors scope, ce qui préserve docs.up-network.ch et les CNAME GitBook DNS-only.

Version publique

  • L’API /api/public/site-data utilise une clé cache versionnée afin qu’un ancien payload 0.7.6 ne puisse plus masquer la release courante.
  • Le site statique charge site-lunoz.js?v=88, renouvelle son cache local en v4 et affiche v0.7.7 même si les données live sont temporairement indisponibles.

Validation

  • Tests Laravel ajoutés pour la quarantaine après Bad Gateway répétés, la restauration après probes sains et l’exclusion des records DNS-only.
  • Tests GeoDNS et Domain POPs étendus pour empêcher le mode Auto de republier un POP en quarantaine origine.
  • Validation live up-network.ch: 95 probes origine, aucune dégradation persistante, apex HTTPS 200 et docs HTTPS 200 via GitBook.
Source: per-zone POP origin health quarantine and up-network.ch CDN migration hardening 2026-07-12
v0.7.6 Publiée

Status domaine, ping monitors et edge reload

Patch correctif: les pages status par domaine routent correctement via le host canonique, les POPs edge valident le reload CoreDNS avant de publier les métadonnées d’origine, et les monitors publics gagnent un check Ping ICMP.

  • Les hostnames status personnalisés servent la bonne page tenant via status.cdn.pizza sans boucle HTTPS ni exposition du mauvais tenant.
  • Le provisionnement du hostname status est transactionnel afin d’éviter un état partiel enabled=true sans record DNS synchronisable.
  • Les edge nodes redémarrent CoreDNS uniquement quand le reload ne prouve pas le nouveau SOA, puis publient les métadonnées d’origine après vérification.
  • Les monitors publics acceptent maintenant le type Ping ICMP avec validation des cibles publiques avant exécution.
  • Les pages status avec checks publics ne montrent plus un placeholder de composants vides quand aucun composant global n’est publié.
  • Le patch a été validé en live sur les 23 POPs actifs pour status.up-network.ch.

Status par domaine

  • GeoDNS route les hostnames status vers le fallback status canonique avec Host status.cdn.pizza et conserve le hostname public dans un header interne.
  • Le middleware status lit ce header uniquement depuis le host canonique afin de sélectionner la page tenant sans accepter un spoof direct sur les autres hosts.
  • La sauvegarde de la page status et le provisioning DNS partagent une transaction pour éviter les pages activées partiellement après erreur.

Edge et DNS

  • Le modèle d’origine edge supporte host_header et transmet X-CDN-Pizza-Forwarded-Host au fallback status.
  • La synchronisation DNS vérifie le SOA local après reload CoreDNS et bascule sur un restart contrôlé si le reload laisse une ancienne zone en mémoire.
  • Les métadonnées origins.json ne sont persistées qu’après validation du reload ou du restart.

Monitoring

  • Nouveau type de monitor public Ping ICMP dans la console domaine.
  • Les cibles ping passent par MonitorTargetGuard comme HTTP/TCP/TLS afin de refuser les hosts privés, réservés, locaux ou non résolus.
  • Le runner ping utilise un timeout borné et stocke le host demandé, l’IP validée et le code de sortie.
  • La page publique masque le placeholder de composants vides dès que des checks publics sont publiés.

Validation

  • Tests Laravel ajoutés pour le provisioning status transactionnel, le routage status via host canonique et le monitor Ping ICMP.
  • Test public ajouté pour éviter la régression No public components configured sur les pages status avec checks.
  • Tests Go ajoutés pour host_header edge, header forwarded-host et fallback restart CoreDNS après échec de vérification reload.
  • Validation live status.up-network.ch: sync DNS 23/23, HTTPS 200 sur chaque POP actif et authoritative DNS bufala/diavola.
Source: domain status host routing hotfix, ICMP ping monitor and CoreDNS reload fallback 2026-07-03
v0.7.5 Publiée

Onboarding DNS, registrar géré et durcissement

Patch d’exploitation et de sécurité: import DNS depuis un export zone file, DNSSEC registrar automatisé pour les domaines gérés cdn.pizza, routage DNS/SSL plus robuste, Partner POP post-approbation corrigé et site public mieux indexable.

  • L’ajout de domaine peut importer un export DNS BIND/zone file et pré-sélectionner les records importables.
  • Le mode CNAME est présenté comme mode réduit afin de pousser le mode NS complet quand import DNS, DNSSEC, wildcard SSL, status domaine et records automatiques sont nécessaires.
  • Les domaines enregistrés et renouvelés via cdn.pizza affichent un badge Domaine géré basé sur une détection registrar centralisée.
  • DNSSEC publie et retire automatiquement le DS chez InternetBS pour les domaines gérés par cdn.pizza, avec rollback local ou état de revue si la confirmation registrar est ambiguë.
  • GeoDNS émet les réponses AAAA des POPs quand elles existent et synchronise aussi les noeuds attachés au registre nameserver.
  • Les échecs ACME ne font plus perdre un wildcard SSL encore valide.
  • Les origines de streams actives sont résolues et rejetées si elles pointent vers une IP privée, réservée ou un POP cdn.pizza.
  • Le parcours Partner POP approuvé permet de créer un token d’enrôlement depuis la console ou l’API via un service centralisé.
  • Les webhooks Payrexx ne prennent plus les anciennes références abonnement héritées.
  • Le site public ajoute Open Graph/Twitter card, JSON-LD, FAQ, contenu SEO et sitemap enrichi.

DNS et registrar

  • Nouveau parseur DnsZoneFileImporter pour records A, AAAA, CNAME, MX, TXT, NS, SRV et CAA.
  • Les SOA et NS apex hérités sont ignorés lors de l’import pour garder la délégation cdn.pizza propre.
  • Les records proxy par défaut ne sont pas ajoutés automatiquement quand un import complet est sélectionné.
  • Le panneau DNSSEC indique quand cdn.pizza publie automatiquement le DS chez InternetBS.
  • InternetBsClient sait pousser ou vider les DNSSEC DS via Domain/Update et marque ces mutations comme ambiguës si la confirmation distante n’est pas certaine.

Routage, SSL et edge

  • GeoDNS ajoute les AAAA pour les records proxy et apex quand les POPs disposent d’une IPv6.
  • Le sync DNS cible aussi les noeuds du NameserverRegistry afin que bufala.cdn.pizza et diavola.cdn.pizza restent servis.
  • IssueWildcardSslCertificate conserve un état actif lorsqu’un certificat valide existe encore après un échec ACME.
  • Les sections CoreDNS managées ne réactivent plus le logging par requête.

Sécurité applicative

  • StreamProxyService résout les origines actives et bloque IP privées, réservées, locales et boucles vers les POPs.
  • NodeController limite la liste des nodes à l’organisation authentifiée, refuse les métriques négatives et vérifie les POPs autorisés par zone.
  • ResetPasswordNotification reconstruit une URL absolue depuis APP_URL.
  • WafMiddleware affine les signatures .env, .env.* et .git pour réduire les faux positifs sans relâcher les blocages sensibles.
  • PayrexxCheckoutController retire le support des références d’abonnement héritées.

Partner POP et site public

  • PartnerPopEnrollmentTokenService centralise la création des tokens à usage unique 24h.
  • La console affiche la prochaine étape post-approbation et permet de copier la commande d’enrôlement.
  • Les routes API et web utilisent le même contrôle canCreateEnrollmentToken.
  • Le site public enrichit titres, descriptions, Open Graph, Twitter card, JSON-LD, FAQ et sitemap lastmod/changefreq/priority.

Validation

  • Tests Laravel import DNS, formulaire DNS, DNSSEC registrar, SSL auto, streams, API hardening, nodes uptime, Partner POP, Payrexx, reset password, zones API et GeoDNS.
  • Tests Go edge-node pour empêcher le retour du log CoreDNS dans les zones managées.
  • Tests unitaires InternetBS DNSSEC et NameserverRegistry.
Source: dns zone file import, managed registrar DNSSEC, Partner POP enrollment and security hardening 2026-07-03
v0.7.4 Publiée

Promotion publique et SSL système

Patch de promotion bêta publique: messages d’inscription alignés sur une bêta ouverte, site public multilingue pointé vers les bons parcours panel et SSL système renforcé.

  • La note d’inscription n’est plus formulée comme une bêta privée.
  • Les layouts auth, console et release notes utilisent un vocabulaire public cohérent.
  • Les liens login/register et le sitemap du site public FR/EN/DE sont alignés sur les URLs de production.
  • Le setup de zone cdn.pizza et le seed DNS de base évitent les incohérences autour du domaine système.
  • La synchronisation SSL système est mieux couverte et évite les réécritures inutiles.

Inscription et site public

  • Renommage du partial beta-note pour refléter la bêta publique.
  • Messages d’inscription FR/EN/DE mis à jour dans les vues auth et console.
  • Pages publiques et sitemap harmonisés vers console.cdn.pizza.

SSL système

  • SetupCdnPizzaZone et BaseDnsRecordsSeeder alignés sur les hostnames système.
  • SystemSslCertificateSyncService durci pour mieux préserver l’état attendu.

Validation

  • Tests SetupCdnPizzaZoneCommand et SystemSslCertificateSyncService.
  • Tests auth, dashboard et release notes ajustés.
Source: public beta signup messaging, public website promotion and system SSL hardening 2026-06-25
v0.7.3 Publiée

Préparation bêta publique et sécurité navigateur

Patch de préparation bêta: headers navigateur centralisés, sessions durcies, actions admin nodes mieux contrôlées et données publiques plus cohérentes pendant le rollout.

  • La console applique un middleware de headers de sécurité centralisé.
  • La configuration session est vérifiée pour la surface web publique.
  • Les actions groupées admin nodes sont couvertes par une suite dédiée.
  • Les données publiques et pages status/domain POPs suivent mieux l’éligibilité réelle des noeuds.
  • Les dépendances CLI et control-plane sont réalignées avec les versions livrées.

Sécurité console

  • EnsureSecurityHeaders et SecurityHeaders ajoutent des headers cohérents sur la console.
  • La session Laravel garde des réglages plus stricts pour la bêta publique.

Exploitation nodes

  • NodeAdminController supporte les actions groupées nécessaires à l’exploitation.
  • DomainEffectiveState, GeoDNS et WAF tiennent mieux compte des POPs éligibles.

Validation

  • Tests ConsoleSecurityHeaders, SessionSecurityConfig, NodeBulkActions, DomainPopsPage, PublicStatusPage, GeoDNS et API publique.
Source: public beta readiness, console security headers and node operations 2026-06-25
v0.7.2 Publiée

Clarté Sponsor POP et parcours panel

Patch de clarté Partner/Sponsor POP: ressources et portée réseau explicites, parcours sponsor ramené dans le panel et rendu status plus stable.

  • Les pages Partner POP exposent les ressources attendues et la portée réseau avant certification.
  • Les demandes Sponsor POP du site public passent par le panel pour garder un workflow traçable.
  • La page status public normalise ses graisses typographiques.
  • L’admin et l’API Partner POP exposent les informations utiles pour la certification.

Partner et Sponsor POP

  • Copies FR/EN/DE clarifiées sur ressources, réseau et sponsor.
  • Partial service-scope ajouté pour éviter les divergences entre vues.
  • Liens sponsor du site public redirigés vers la console.

Validation

  • Tests Partner POP admin, API et web étendus.
  • Test status page pour figer le rendu typographique.
Source: Partner POP resource requirements, sponsor site routing and status typography 2026-06-23/24
v0.7.1 Publiée

Certification Partner POP automatisée

Patch Partner POP: certification automatisée, état admin/API plus visible et publication contrôlée des POPs partenaires dans les données publiques.

  • Ajout du modèle, service et job de certification Partner POP.
  • Les demandes Partner POP stockent les champs nécessaires au suivi de certification.
  • L’admin peut suivre l’état de certification et déclencher le contrôle.
  • L’API publique ne publie que les POPs partenaires certifiés.
  • La documentation agent contient le design et le plan d’implémentation Partner POP.

Certification

  • RunPartnerPopCertification orchestre les contrôles post-approbation.
  • PartnerPopCertificationService centralise l’évaluation et les messages.
  • StatusPageService et PublicSiteDataController tiennent compte des POPs partenaires certifiés.

Validation

  • Migration Partner POP automation ajoutée.
  • Tests Partner POP admin, API, web et PublicSiteDataApi.
Source: Partner POP automation design and certification workflow 2026-06-23
v0.7.0 Publiée

Status domaine, DNSSEC et mails localisés

Nouvelle surface produit et durcissement bêta: chaque domaine peut publier sa page de status, lancer des monitors, enrôler un agent léger, activer DNSSEC sur les zones NS, recevoir les notifications/mails dans sa langue et exploiter une console WAF/SSL plus explicite.

  • Chaque domaine peut avoir une page de status isolée avec titre, sous-titre, composants, incidents et monitors publics.
  • Les zones gérées en NS peuvent provisionner automatiquement leur hostname status proxifié; les zones CNAME restent sans mutation DNS automatique.
  • Les monitors HTTP, TCP, DNS et TLS s’exécutent sur une queue dédiée avec latence, état courant et détection des runs bloqués.
  • Le nouvel agent cdn-pizza peut être enrôlé sur une machine légère pour remonter heartbeat, configuration et résultats sans exposer de secret.
  • Les zones DNS gérées par CDN.PIZZA peuvent activer DNSSEC depuis la page DNS, avec DS à publier, signature de zone et vérification du DS parent.
  • La console et les mails transactionnels suivent maintenant la locale utilisateur FR/EN/DE jusque dans les notifications billing, sécurité et invitation.
  • L’inscription bêta est ouverte sans code d’invitation et demande la langue par défaut utilisée ensuite par la session, le profil et les mails.
  • Le WAF montre l’effet réel des règles, notamment le mode Surveillance, et les certificats SSL générés peuvent être exportés en bundle PEM.
  • Les cibles publiques sont filtrées contre les réseaux locaux, privés et réservés afin de réduire le risque SSRF.
  • Le rollout est tolérant au schéma et le déploiement Docker/Nginx/CoreDNS évite les 500/502 persistants ou les reloads DNS non restaurés.

Pages status domaine

  • Nouvelle page de gestion depuis le domaine pour activer, personnaliser et prévisualiser le status.
  • Rendu public isolé par hostname afin qu’un domaine ne puisse pas voir les composants ou incidents d’un autre.
  • Provisioning DNS automatique limité aux zones en mode NS, avec record A proxifié vers l’origine fallback cdn.pizza.
  • Les domaines en mode CNAME affichent une limite explicite et ne déclenchent pas de changement DNS côté plateforme.

Monitors et files

  • Création de monitors HTTP, TCP, DNS et TLS avec intervalle, timeout, seuils HTTP et visibilité publique configurables.
  • Résultats historisés avec statut, latence, erreur normalisée et horodatage de check.
  • Nouveaux jobs et commandes pour dispatcher les checks dus, marquer les runs stale et surveiller la queue monitors.
  • Worker Docker dédié aux monitors afin de ne pas mélanger les probes de santé avec les queues déploiement/default.

Agent status

  • Commandes CLI status-agent: enroll, status et run.
  • Enrollment par token court et à usage limité, stockage local sous ~/.cdn-pizza/status-agents avec permissions strictes.
  • Heartbeat et publication de résultats via bearer token hashé; l’API ignore les identités envoyées dans le body.
  • Configuration agent renvoyée seulement pour la page status et l’organisation authentifiées.

DNSSEC domaine

  • Nouveau panneau DNSSEC pour les zones gérées par les nameservers CDN.PIZZA: activation, désactivation, état signé et DS à transmettre au registrar.
  • Génération de clés KSK/ZSK et signature des zones avant synchronisation vers les edge nodes.
  • Vérification du DS parent afin d’indiquer si la délégation publiée chez le registrar correspond au DS attendu.
  • Les records DNSSEC techniques DS et DNSKEY sont exclus du formulaire DNS standard pour éviter des configurations partielles ou contradictoires.
  • Les domaines en mode CNAME affichent une explication dédiée: DNSSEC reste géré chez le fournisseur DNS externe.

Localisation et mails

  • Locales centralisées dans config/locales.php et App\Support\SupportedLocales pour français, anglais et allemand.
  • Inscription avec choix de langue par défaut, persistance users.locale, réhydratation de session au login, TOTP et WebAuthn.
  • Les modèles User implémentent HasLocalePreference afin que NotificationSender applique la locale du destinataire.
  • Les notifications billing et sécurité résolvent maintenant titres, corps, labels de contexte et actions au moment du rendu mail.
  • Les invitations envoyées à une adresse anonyme portent explicitement la locale de l’inviteur.
  • Scanner translations:scan étendu avec --strict, --locale et --path pour garder les catalogues FR/EN/DE complets.

Console WAF, SSL et exploitation

  • La page WAF présente l’état effectif du trafic, le mode appliqué, la readiness challenge, le filtrage pays, le rate limit et l’ordre d’évaluation.
  • Le mode Surveillance journalise les blocklists pays côté edge au lieu de bloquer, et la console affiche cet effet réel.
  • Export PEM disponible pour les certificats SSL automatiques actifs, générés et déjà poussés sur les POPs.
  • Le health-check des POPs CDN vérifie aussi le port 53 pour retirer du DNS les noeuds dont le DNS public ne répond plus.
  • Le sync CoreDNS privilégie systemctl reload, restaure après rollback et évite un restart complet quand un reload suffit.
  • Logo CDN.PIZZA harmonisé sur console, releases et vitrine générée.

Sécurité et rollout

  • Blocage des targets locales, privées, réservées, documentation, multicast et liens locaux pour les monitors publics.
  • Aucun token, endpoint interne ou détail privé de node n’est rendu dans la page status publique.
  • Garde de compatibilité dans le service status pour éviter un 500 si /api/public/site-data est appelé avant la fin des migrations.
  • Migrations appliquées pour les pages status, monitors, résultats, clés d’enrollment et agents.
  • Image Laravel reconstruite avec ldns-tools pour générer et signer les zones DNSSEC dans les conteneurs applicatifs.
  • Nginx résout désormais dynamiquement l’upstream app via le resolver Docker afin de ne pas garder une ancienne IP de conteneur après recreate.

Validation

  • Tests Laravel pour pages status domaine, monitors, API agent, page publique et rollout /api/public/site-data.
  • Tests Jest CLI pour l’agent status, les tokens et les sorties sans secret.
  • Tests mail/localisation pour session FR/EN/DE, rendu réel via NotificationSender, billing, sécurité et invitations anonymes.
  • Tests WAF pour état effectif, mode Surveillance, layout progressif et comportement edge des blocklists pays.
  • Tests SSL export, santé POP DNS :53 et reload/rollback CoreDNS.
  • Tests Laravel DNS/DNSSEC/GeoDNS pour résolution DS, formulaire DNS, activation DNSSEC, signature de zone et sync signée.
  • Endpoint /api/public/site-data vérifié en 200 après migration et cache clear.
  • Binaire ldns-keygen et ldns-signzone vérifiés dans les conteneurs applicatifs après rebuild Docker.
  • Console vérifiée en 200 sur /login après correction Nginx et redémarrage/recreate des services applicatifs.
  • Scanner strict traductions, Pint ciblé, git diff --check et garde-fou permissions exécutés.
Source: domain status pages, monitors, lightweight status agent, DNSSEC and localized mail 2026-06-23
v0.6.2 Publiée

Préparation console bêta et cache CDN

Version de préparation bêta: console plus testée, navigation simplifiée, cache HTTP edge configurable par domaine et interface DNS clarifiée pour comprendre ce qui passe réellement par le CDN.

  • La console dispose de nouvelles validations bêta: smoke Playwright authentifiée, seed sandbox et tests BaseDNS, SSL, billing, Payrexx, fichiers, purge et GeoDNS.
  • La navigation console est regroupée en catégories Services, Opérations et Paramètres, avec le compte et les réglages mieux alignés à droite.
  • Le CDN HTTP peut maintenant mettre en cache les réponses d’origine sûres avec modes, TTL POP, TTL navigateur et stratégie query string par domaine.
  • Les edge nodes évitent automatiquement de cacher les requêtes sensibles: Authorization, Cookie, Range, Set-Cookie et directives privées/no-store/no-cache.
  • La page DNS présente un bloc CDN HTTP clair qui sépare origine web, cache edge et portée des records Proxy actif.
  • Le site public de développement a été poli pour la bêta avec une section console réelle et un carousel panel plus stable.

Console bêta

  • Ajout d’un environnement Playwright console avec utilisateur sandbox, base SQLite dédiée, serveur de test et teardown propre.
  • Renforcement des parcours testés: facturation, dépôts Payrexx, fichiers, purge cache, BaseDNS admin, certificats SSL admin, GeoDNS et endpoint nodes.
  • Les jobs de purge et de synchronisation fichiers transportent mieux le contexte zone et node pour éviter les actions ambiguës.

Navigation console

  • Regroupement des entrées secondaires en menus déroulants Services, Opérations et Paramètres.
  • Réduction du poids visuel de la navbar sur desktop et vérification du comportement mobile authentifié.
  • Déplacement logique du bloc compte/réglages vers la droite afin de séparer navigation produit et actions utilisateur.

Cache CDN

  • Nouveaux réglages domaine: mode cache, TTL edge, TTL navigateur, query string incluse ou ignorée et bypass cookies.
  • Les payloads DNS sync transmettent la politique cache aux edge nodes pour les hostnames proxyfiés.
  • Le cache edge ne stocke que les réponses HTTP sûres et sert les HEAD depuis le cache sans peupler de nouvelles entrées.
  • Les purges restent disponibles via API et les stratégies par domaine sont couvertes par tests Laravel, Go et API zones.

DNS et interface cache

  • Le bloc DNS “CDN HTTP : origine et cache” explique que les records DNS-only restent de simples réponses DNS.
  • Les réglages sont séparés entre Origine web et Cache edge, avec libellés explicites pour connexion origine, HTTPS visiteur, TTL POP et cache navigateur.
  • Correction CSP de la page DNS grâce au nonce sur le script dynamique du formulaire DNS.

Site public dev

  • Section console réelle et carousel panel ajustés pour mieux montrer le produit sans inventer d’interface.
  • Amélioration responsive et réduction des répétitions visuelles dans les pages de préparation bêta.
  • Contrôles des données publiques pour éviter les valeurs frontend incohérentes.

Validation

  • Tests Laravel ciblés sur DNS/cache, release notes et parcours bêta.
  • Tests Go edge-node pour cache HTTP, sync DNS et règles de bypass.
  • Validation Playwright desktop/mobile de la navigation et du panneau DNS/cache, sans erreur console/CSP.
  • Pint et garde-fou permissions exécutés sur les changements livrés.
Source: beta console readiness, navigation grouping and configurable CDN cache 2026-06-21
v0.6.1 Publiée

Clarté WAF et mode Surveillance

Patch de clarté WAF: la console distingue l’action configurée de l’effet réel, et l’edge applique une sémantique Surveillance cohérente pour le filtrage pays.

  • La page WAF expose un état de protection effectif avant les réglages.
  • Les actions Bloquer et Challenge affichent leur effet réel en Surveillance.
  • Le filtrage pays côté edge respecte désormais le mode Surveillance et journalise au lieu de bloquer.
  • Les libellés des actions custom, managed, géo et rate limit sont harmonisés.

Console WAF

  • Ajout d’un bloc État de protection avec trafic protégé/non protégé, mode effectif, challenge, géo, rate limit et ordre d’évaluation.
  • Affichage explicite Action configurée / Effet maintenant pour éviter de promettre un blocage lorsque le WAF est en Surveillance.
  • Copies clarifiées sur les listes pays et IP pour rappeler que l’effet dépend du mode WAF.

Edge WAF

  • Le filtrage géographique utilise la même résolution d’action que les autres règles WAF.
  • En mode Surveillance, les pays blocklistés sont journalisés au lieu d’être bloqués.

Validation

  • Tests Go edge WAF pour les blocklists pays en Surveillance.
  • Tests Laravel de rendu WAF pour trafic non protégé, Surveillance et protection active.
  • Validation Playwright desktop/mobile et garde-fou permissions.
Source: waf clarity and monitor mode consistency 2026-06-21
v0.6.0 Publiée

Préparation de la bêta publique

Version de préparation à la bêta publique: site public complet, vraie vitrine de la console, réseau live plus crédible, branding cdn.pizza et données publiques alignées avec le produit réel.

  • Le site public présente désormais les surfaces clés pour la bêta: fonctionnalités, réseau live, CLI/API, sponsors, prix, sécurité et pages multilingues FR/EN/DE.
  • La homepage remplace les aperçus inventés par un carousel de captures réelles du panel issues d’un compte sandbox isolé, sans données client.
  • La page réseau utilise une carte Leaflet fondée sur les coordonnées réelles des POPs, avec flags robustes et inventaire public cohérent.
  • Les données publiques exposent les tiers POP réels Margherita/Diavola et évitent les valeurs frontend hardcodées.
  • Le branding public a été consolidé autour du logo cloud + pizza, des icônes Lunoz/Boxicons et du crédit UP-NETWORK Sàrl.

Site public

  • Pages publiques structurées pour la bêta: accueil, fonctionnalités, réseau live, développeurs, sponsors, prix et sécurité.
  • Versions statiques FR, EN et DE avec URLs propres, liens hreflang/canonical et sitemap public.
  • Suppression des notes internes/SEO visibles au profit d’un contenu public orienté produit.

Console et preuve produit

  • Carousel de captures réelles du panel: tableau de bord, domaines, DNS, WAF, fichiers et réseaux privés.
  • Captures labellisées comme sandbox isolée afin de rendre la console tangible sans exposer de données client.
  • Mise en scène homepage plus compacte pour la bêta publique, avec contrôles accessibles et états actifs.

Réseau live et données publiques

  • Carte Leaflet sombre avec coordonnées POP réelles, markers/flags stabilisés et regroupement plus lisible.
  • Inventaire POP public aligné avec les données backend: statut, régions, tiers et prix par GB.
  • Cartes POP plus denses: statuts compacts et suppression des répétitions de données manquantes.

Branding et exploitation

  • Logo cloud + pizza appliqué au site public, à la console et aux variantes statiques.
  • Remplacement des décorations emoji par les icônes Lunoz/Boxicons adaptées au style cdn.pizza.
  • Version console et changelog remis à jour pour suivre la préparation de sortie bêta publique.
Source: public beta preparation + public site commits 2026-06-19/20
v0.5.3 Publiée

Sécurité des dépôts Payrexx

Patch sécurité billing: les webhooks Payrexx ne créditent un wallet que si la transaction confirmée correspond au dépôt local attendu.

  • Les dépôts Payrexx sont liés à leur référence locale avant tout crédit wallet.
  • Le montant, la gateway et la devise attendus sont vérifiés contre les données confirmées par Payrexx.
  • Les rejouements ou transactions externes ne peuvent plus créditer un dépôt en attente sans correspondance.
  • La console expose ce durcissement dans le changelog public et le footer de version.

Billing

  • Le webhook refuse les transactions confirmées qui ne pointent pas vers le dépôt pending correspondant.
  • Les écarts de montant, monnaie ou passerelle restent en attente au lieu de créditer automatiquement le wallet.
  • Les tests de régression couvrent le binding transaction/dépôt et les cas de spoofing webhook.

Console

  • Version bêta mise à jour en v0.5.3 dans le footer console et auth.
  • Entrée changelog publique ajoutée pour tracer le correctif de sécurité Payrexx.
Source: security/payrexx-webhook-hardening
v0.5.2 Publiée

Durcissement ACL, billing et déploiements

Patch de préparation développement: enforcement ACL default-deny, cohérence billing, sécurité dépendances et hygiène de déploiement.

  • Les policies réseau default-deny couvrent aussi les routes privées configurées côté edge.
  • Les règles ACL personnalisées invalides restent en brouillon et ne cassent plus l’application edge.
  • Les coupons trafic sont réconciliés lors des corrections de consommation à la baisse.
  • Les builds et playbooks évitent d’exposer les secrets dans les images ou logs de déploiement.

Sécurité réseau

  • Application nftables sérialisée côté edge pour éviter les courses entre pushes de policy.
  • Default-deny appliqué même sans règle active afin d’éviter les échecs ouverts.
  • Activation ACL bloquée tant que les règles ne disposent pas de données CIDR appliquables.

Billing et exploitation

  • Allowance premium 100 GB alignée entre API, console et configuration.
  • Crédits coupons restaurés quand une rerun journalière corrige la consommation à la baisse.
  • Docker, CoreDNS, GitHub Actions et templates Ansible durcis pour une reprise de développement propre.
Source: working tree 2026-06-04
v0.5.1 Publiée

Confirmations panel et alertes intégrées

Patch UI/sécurité: les confirmations destructives et alertes du panel ne dépendent plus des popups navigateur désactivables.

  • Les formulaires data-confirm ouvrent un dialogue intégré au panel Lunoz via SweetAlert2.
  • Les alertes JS visibles sur nodes, POPs, renouvellement registrar et bulk actions utilisent le même helper panel.
  • Les confirm/alert natifs sont bannis des vues Blade actives par test automatique.
  • La suppression groupée des nodes conserve la confirmation serveur confirm_bulk_delete et les protections nameservers critiques.

Interface

  • Chargement global des assets SweetAlert2 du template Lunoz et styles compatibles dark mode.
  • Libellés de confirmation centralisés et traduits depuis le layout applicatif.
  • Fallback Bootstrap fermé si SweetAlert2 n’est pas disponible, sans soumission silencieuse.

Sécurité et accessibilité

  • Messages injectés en texte, pas en HTML, afin de limiter les risques XSS.
  • Suppression des handlers inline onclick/onsubmit confirm pour rester compatible CSP.
  • Contrats de tests ajoutés pour empêcher le retour de window.confirm, alert ou confirm natif dans le panel.
Source: working tree 2026-06-01
v0.5.0 Publiée

Sécurité, compatibilité edge et origines privées

Lot courant de durcissement et compatibilité: audit sécurité, contrat de build edge, gate des origines privées et visibilité admin des versions nodes.

  • Les edge nodes reportent version, commit, date de build et capabilities dans heartbeat et health.
  • Le control-plane stocke la compatibilité des nodes et bloque les métadonnées private-origin sur les builds qui ne prouvent pas le support.
  • Commande d’audit nodes:audit-compatibility et badges admin fleet pour repérer les nodes unknown/incompatible.
  • Passe sécurité: SSRF IPv6 transition, WebDAV, reset password, BYOC, webhooks, supply-chain PHP/Go et action GitHub de déploiement.

Compatibilité edge

  • Capability requise: private_origin_metadata_v1.
  • Statuts normalisés: compatible, incompatible ou unknown selon les métadonnées reçues.
  • Les fingerprints DNS tiennent compte du support capability afin de resynchroniser après upgrade ou downgrade.

Sécurité

  • SafeOutboundHttpClient bloque les formes IPv6 de transition vers des cibles privées ou réservées.
  • Les URLs webhook loggées sont nettoyées de userinfo et query string.
  • Le reset password révoque les tokens et sessions database existants.

Origines privées et BYOC

  • Les POPs sans capability private-origin ne reçoivent plus de métadonnées d’origine privée.
  • Les nodes BYOC sont rattachées à l’organisation courante et la rotation de token exige la clé actuelle.
  • Les stats et messages multi-tenant évitent d’exposer des POPs, réseaux ou CIDR d’autres organisations.

Edge et supply-chain

  • Le stockage public edge ne sert plus l’espace interne .metadata/.
  • La sync DNS edge purge les hôtes managés hors zone au reload/sync.
  • Go, dépendances PHP et images Docker edge sont mis à jour avec versions plus explicites.
Source: docs/SECURITY-AUDIT-2026-05-29.md + docs/superpowers/plans/2026-05-29-edge-node-compatibility-contract.md
v0.4.2 Publiée

Changelog public et footer de version

Version de cohérence pour rendre le numéro du footer cliquable et documenter tout l’historique bêta.

  • Footer console et auth relié au changelog public.
  • Catalogue centralisé des versions bêta avec dates, statut, sources et détails.
  • Page publique /releases avec définition de versioning et historique complet.

Versioning

  • La version courante est reconstruite depuis le catalogue et retombe sur la dernière entrée si APP_VERSION est vide ou obsolète.
  • Les versions précédentes restent visibles avec leur date de publication locale et leur source documentaire.

Interface

  • Le badge v0.4.2 du footer devient un lien accessible vers le changelog.
  • La page publique reste disponible sans authentification pour les footers des écrans de login.
Source: working tree 2026-05-29
v0.4.1 Publiée

Consolidation du socle de release

Consolidation de main après les branches agent, garde-fou de permissions et validation complète du lot publié.

  • Branches codex consolidées dans main sans travail unique restant.
  • Garde-fou permissions ajouté avec scripts de contrôle/correction et hook pre-commit.
  • Contraste du layout Laravel corrigé pour les tables en mode sombre.
  • Validation complète Laravel, Go, CLI, permissions et diff Git.

Exploitation

  • La suite du développement repart explicitement de main.
  • Les scripts de permissions protègent les fichiers suivis sans relâcher storage, cache, .env ou secrets runtime.

Validation

  • Laravel: 545 tests et 3202 assertions.
  • Edge-node: go test ./... validé.
  • CLI: 6 suites Jest et 15 tests validés.
Source: docs/UPDATE-2026-05-26.md
v0.4.0 Publiée

Console, edge et sécurité

Grand lot console/control-plane/edge: WAF, réseau privé, DNS, webhooks, CLI et facturation pay-as-you-go.

  • Protection dev par mot de passe et personnalisation du challenge WAF.
  • Synchronisation réseau privée plus stricte entre control-plane et edge nodes.
  • Webhooks customer, client HTTP sortant sûr et protections SSRF.
  • Pages Organisation/Billing alignées avec le wallet pay-as-you-go.

Réseau et edge

  • Policies réseau vérifiées par hash, node, profil POP et statut réel de l’applier.
  • Edge-node renforcé pour WireGuard, WAF dev auth, DNS CoreDNS et redémarrages robustes.

Console

  • Page CLI enrichie avec commandes, endpoints API, erreurs HTTP et notes de sécurité.
  • Navigation console refactorisée avec topbar, menu horizontal et corrections mobile.

Sécurité

  • Validation des URL webhooks et SEO via SafeOutboundHttpClient.
  • Détails de facturation masqués aux rôles non managers.
Source: docs/UPDATE-2026-05-23.md
v0.3.0 Publiée

Patch plateforme et sécurité compte

Patch plateforme autour de l’authentification, du registrar, du DNS, du routage POP et du durcissement edge.

  • WebAuthn/passkeys pour la 2FA et durcissement des tokens API.
  • Coupons trafic, registrar en queue et renouvellement des domaines gérés.
  • Jobs DNS/registrar visibles dans les tâches opérationnelles.
  • Edge management protégé par CIDR et proxy origin durci.

Compte et admin

  • Création de tokens API protégée par mot de passe courant.
  • Mode admin protégé par 2FA avec gestion utilisateurs enrichie.

DNS et POPs

  • Synchronisation DNS, suppression DNS et base-zone déplacées en jobs.
  • Sélection des POPs actifs et probes de latence dédiées à la queue latency.
Source: docs/UPDATE-2026-05-19.md
v0.2.0 Publiée

Socle produit privé

Première consolidation applicative large: organisations, support, registrar, mail, fichiers, WAF et POPs.

  • Organisations avec rôles, invitations et remplacement d’organisation personnelle vide.
  • Support client avec tickets, réponses, notes internes et pièces jointes.
  • Registrar Internet.bs, mail géré, WebDAV et stockage répliqué.
  • WAF avec presets, listes pays/IP, challenge et synchronisation edge.

Produit

  • Pages POP/réseau remaniées avec smart routing et probes de qualité inter-noeuds.
  • Audits SEO avancés sandboxés avec débit wallet et artefacts.

Technique

  • Middleware de rôle organisation sur les mutations customer.
  • Nouvelles migrations pour tickets, invitations, mail, SEO, probes et codes d’invitation.
Source: docs/UPDATE-2026-05-17.md
v0.1.0-beta Base

Import initial cdn.pizza

Base Laravel/control-plane, edge-node Go, CLI et site public importés dans le dépôt.

  • Structure initiale du control-plane Laravel.
  • Edge-node Go et CLI séparés du control-plane.
  • Site public statique et premières conventions de dépôt.

Base

  • Point de départ de l’historique bêta avant les notes de mise à jour datées.
Source: commit 87c75ea