-
NoBaSe 1.10.1
StableAll checks were successfulIntégration continue / ci (push) Successful in 2m22snobase/tests 1510 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 2m20sreleased this
2026-11-06 11:12:02 +00:00 | 0 commits to main since this releaseFrançais
- Corrige une fausse alerte « Aucune sauvegarde réussie depuis N jours » : après une période
sans modification (sauvegardes automatiques sautées, comme prévu), la première modification
déclenchait l'alerte, comptée depuis la dernière sauvegarde, juste avant que la sauvegarde de
rattrapage ne réussisse. Le délai est désormais compté depuis la première modification non
sauvegardée. - L'historique des mises à jour (validation automatique d'une version) et la vérification des
canaux de thèmes ne comptent plus comme des modifications du site. - Tests : étape
access, alerte de sauvegarde (site inchangé puis modifié, modifications en
attente, tenue de registre ignorée).
English
- Fixes a false “No successful backup for N days” alert after a quiet period: the delay now
starts at the first unsaved change, not at the last backup. CMS bookkeeping (update history,
theme channel checks) no longer counts as a site change.
Fichier Taille SHA-256 nobase-1.10.1.zip1.25 Mo 00e79361944a5e033bd159d9ed79db4a869255e395146682574e6a5ca510aa3fnobase-update-1.10.1.zip1.00 Mo 7f6f67d759a7e8101d2d8e01c3dde03092c5d1cae33950931423cdc562024133nobase-1.10.1.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.10.1.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 71, commit
8eefdcb9daf6).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Corrige une fausse alerte « Aucune sauvegarde réussie depuis N jours » : après une période
-
NoBaSe 1.10.0
StableAll checks were successfulIntégration continue / ci (push) Successful in 2m13snobase/tests 1507 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 2m20sreleased this
2026-10-30 09:04:38 +00:00 | 1 commits to main since this releaseFrançais
- API de publication par jetons (docs/api.md) : publier, programmer et
illustrer des contenus depuis un script, un outil d'écriture ou une automatisation, sans
navigateur (Authorization: Bearer nbt_…). Jetons créés dans Mon compte → Jetons d'API
après confirmation d'identité : nom, droits (contenus, publication, suppression, médias), types
de contenu, validité (1 an au plus) ; secret montré une seule fois, stocké seulement haché. - Sécurité : droits du jeton = droits cochés ∩ rôles du compte (recalculés à chaque requête), HTML
libre toujours nettoyé, routes des contenus et des médias seulement (jamais comptes, sécurité,
système, thèmes, sauvegardes, mises à jour), aucun cookie ni session, débit borné, jetons
refusés signalés au pare-feu, audit au nom du jeton, alerte à la création, révocation par le
propriétaire ou un administrateur, interrupteur Réglages système → Sessions → Jetons d'API
(CMS_API_TOKENS=0).www/.htaccesstransmet l'en-têteAuthorizationà PHP. - Tests : nouvelle étape
api; page Mon compte mesurée sur mobile.
English
- Token-based publishing API (docs/api.md): publish, schedule and illustrate
content from a script or automation (Authorization: Bearer nbt_…). Tokens are created in
My account → API tokens after identity confirmation, shown once, stored hashed. - Security: token rights = ticked scopes ∩ account roles, raw HTML always sanitised, content and
media routes only, no cookie or session, rate limited, failures reported to the firewall,
audited under the token's name, revocable by the owner or an administrator, site-wide switch. - Tests: new
apistep.
Fichier Taille SHA-256 nobase-1.10.0.zip1.25 Mo 52b3d825c6b5f07bec391e81afde0b17b79cfa58a9d405a06755fa79a945766cnobase-update-1.10.0.zip1.01 Mo af5223c8535cdd3d3dd3b7febfed1b3b07182a64f09d88cfca9f16731fdfa446nobase-1.10.0.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.10.0.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 67, commit
36eeb645d750).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- API de publication par jetons (docs/api.md) : publier, programmer et
-
NoBaSe 1.9.0
StableAll checks were successfulnobase/tests 1449 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 2m18sreleased this
2026-10-30 09:02:06 +00:00 | 2 commits to main since this releaseFrançais
- Mises à jour des thèmes indépendantes du CMS : chaque thème peut déclarer dans son
theme.jsonson propre canal signé (update: adresse de l'index + clés publiques de son
auteur). Le site vérifie le canal chaque jour, annonce les nouvelles versions (Thèmes → Mises à
jour des thèmes, alerte e-mail) et les installe après validation (droitthemes, 2FA,
confirmation d'identité). Sécurité : clés de l'auteur figées à l'installation, index signé avec
expiration et anti-rejeu, téléchargement anti-SSRF (adresse publique épinglée, sans
redirection), empreinte du paquet, puis la même analyse que l'import (sans forçage). - Mise à jour sur place du thème actif (par le canal ou par import d'un .zip) : ancienne
version archivée, réglages conservés, contrôle de santé du site juste après, retour automatique
à l'ancienne version en cas de problème. Il n'est plus nécessaire d'activer un autre thème. - L'import compare les versions (installée → nouvelle), signale une version plus ancienne et un
changement de canal ou de clés. - Compatibilité thème ↔ CMS :
nobase_minetnobase_belowdanstheme.json. Un thème
incompatible n'est ni importé, ni activé, ni proposé en mise à jour ; une mise à jour du CMS est
bloquée tant que le thème actif ne la prend pas en charge. - Outil de l'auteur :
tools/theme_release.py(keygen,release,index,verify) construit
et signe les versions d'un thème ;CHANGELOG.mdpermis à la racine d'un thème (notes de version). - Tests : nouvelle étape
themes(faux canal signé : accès, parcours complet, canal hostile,
compatibilité, version qui casse le site, import sur place) ; page Thèmes mesurée sur mobile.
English
- Theme updates independent of the CMS: each theme can declare its own signed channel in
theme.json(update: index URL + its author's public keys). The site checks it daily,
announces new versions and installs them after approval (themespermission, 2FA, identity
confirmation). Author keys pinned at install, signed index with expiry and anti-replay,
SSRF-safe download, package hash, then the full import analysis (no override). - In-place update of the active theme (channel or .zip import): previous version archived,
settings kept, site health check, automatic rollback. - Import compares versions and flags downgrades and channel/key changes.
- Theme ↔ CMS compatibility:
nobase_min/nobase_below; incompatible themes are refused,
and a CMS update is blocked while the active theme does not support it. - Author tool:
tools/theme_release.py. Tests: newthemesstep.
Fichier Taille SHA-256 nobase-1.9.0.zip1.23 Mo 450c28d828c28b58b2c9e49d008c3816f3045732677452370544224fa5a89464nobase-update-1.9.0.zip1.00 Mo 07268597bc3cfb3c2d40c9aeb16e218699004584ed14701f887c4f2193afe16cnobase-1.9.0.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.9.0.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 66, commit
41ab0287eeec).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Mises à jour des thèmes indépendantes du CMS : chaque thème peut déclarer dans son
-
NoBaSe 1.8.0
StableAll checks were successfulnobase/tests 1376 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 2m9sreleased this
2026-10-30 08:59:39 +00:00 | 3 commits to main since this releaseFrançais
- PHP 8.3 minimum (8.1 auparavant, qui n'est plus maintenu depuis fin 2025) ; PHP 8.5
conseillé (maintenance complète jusqu'à fin 2027, sécurité jusqu'à fin 2029). PHP 8.3 reçoit
les correctifs de sécurité jusqu'à fin 2027 : passez à 8.5 quand votre hébergeur la propose
(chez OVH :app.engine.version=8.5dans le.ovhconfigdu site). L'image Docker passe à
php:8.5-apache(PHP_VERSION=8.3pour tester la version minimale). - Code prêt pour PHP 8.5 :
imagedestroy(), obsolète en 8.5 (sans effet depuis 8.0), n'est plus
appelé. Suite de tests complète en PHP 8.5.12 et en PHP 8.3, sans aucun avertissement ni
obsolescence (E_ALL). - Outils : Python 3.11 minimum pour les scripts de publication et de test (3.9 n'est plus
maintenu).
English
- PHP 8.3 minimum (previously 8.1, unmaintained since late 2025); PHP 8.5 recommended.
The Docker image usesphp:8.5-apache(PHP_VERSION=8.3to test the minimum). - PHP 8.5 ready: deprecated
imagedestroy()calls removed; full test suite on PHP 8.5.12 and 8.3
with no warning or deprecation. Tooling: Python 3.11 minimum.
Fichier Taille SHA-256 nobase-1.8.0.zip1.22 Mo 33831da6696eb8f63ec2b18146b1176d50454c1be950ea4ce14e1144e9e72c9fnobase-update-1.8.0.zip0.98 Mo 482d6b3b53df10ceea34822fda3e6f2f1ed43e78f45890f39680087fa0c5866cnobase-1.8.0.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.8.0.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 65, commit
0a8aefe5084a).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- PHP 8.3 minimum (8.1 auparavant, qui n'est plus maintenu depuis fin 2025) ; PHP 8.5
-
NoBaSe 1.7.1
StableAll checks were successfulIntégration continue / ci (push) Successful in 1m57snobase/tests 1376 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 1m54sreleased this
2026-10-30 07:17:38 +00:00 | 4 commits to main since this releaseFrançais
- Plus aucun outil abandonné dans la chaîne de compilation du back-office :
deepmerge(dépendance du greffon Svelte de Vite, aucune version depuis 2023, faille
GHSA-gcqx-w48m-w2h4 jamais corrigée) est remplacé par une fonction de fusion écrite pour NoBaSe,
sans son code (admin-src/vendor/nobase-merge), sur le modèle du correctif proposé au greffon
(sveltejs/vite-plugin-svelte#1415) ; testée à chaquemake test(dont la pollution de prototype) ;- TypeScript 7 (7.0.2) vérifie désormais le code (
svelte-check --tsgo) ; TypeScript 6.0,
en maintenance officielle (correctifs de sécurité), reste installé parce quesvelte-check
s'en sert pour lire les fichiers Svelte ; - Node.js 26.13.0 (LTS) sur la forge au lieu de 22 ; empreintes tirées de
SHASUMS256.txt
après vérification de sa signature GPG ; - Chrome for Testing 156.0.8078.80 pour les tests navigateur.
- Aucun changement pour les sites : le code installé (PHP) est le même qu'en 1.7.0, hormis le
back-office recompilé.
English
- No unmaintained tool left in the admin build chain:
deepmerge(no release since 2023,
unfixed GHSA-gcqx-w48m-w2h4) replaced by NoBaSe's own merge function, modelled on
sveltejs/vite-plugin-svelte#1415 and tested on every run; TypeScript 7 now type-checks the code
(svelte-check --tsgo, TypeScript 6.0 kept for svelte-check, under official security maintenance);
Node.js 26.13.0 LTS on the forge; Chrome for Testing 156.0.8078.80. - No change for sites besides the rebuilt admin area.
Fichier Taille SHA-256 nobase-1.7.1.zip1.22 Mo 33dd9aad917a5e6112a7bc23a88d633f20a56dc69db894e99d7a3568adebdc91nobase-update-1.7.1.zip0.98 Mo e039d3b1e6ac8ea2ac1faf1502ba5702e975e4880af3b1ee6d1a16219df40ebdnobase-1.7.1.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.7.1.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 63, commit
97b4487f0a65).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Plus aucun outil abandonné dans la chaîne de compilation du back-office :
-
NoBaSe 1.7.0
StableAll checks were successfulIntégration continue / ci (push) Successful in 1m57snobase/tests 1376 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 1m56sreleased this
2026-10-29 20:15:16 +00:00 | 5 commits to main since this releaseFrançais
- Informations sur une adresse IP (whois intégré) : bouton Infos devant chaque adresse
bloquée (Sécurité → Blocages). Titulaire du réseau et son adresse, nom et bloc d'adresses, pays,
contact d'abus de l'hébergeur, dates, nom d'hôte inverse (confirmé ou non), lien vers la réponse
brute. Données du registre qui fait autorité (ARIN, RIPE NCC, APNIC, LACNIC, AFRINIC) par le
protocole RDAP, successeur du whois, choisi par l'annuaire de l'IANA. - Confidentialité et sécurité : adresse envoyée au registre seulement sur demande, jamais pour
une adresse privée ; seuls les registres officiels sont contactés (HTTPS, redirections vers eux
seulement, 8 s et 512 Ko au plus) ; textes du registre nettoyés et affichés comme du texte ;
cache de 7 jours (data/cache/rdap/, sans les échecs passagers) ; débit limité ; droitsecurity; journal d'audit
(security.ip_lookup). - Tests : étape
access, faux registre RDAP (rdap.nobase.test) : contrôle d'accès, adresses
invalides et privées, analyse d'une réponse de forme RIPE, cache, audit, redirections hostiles,
réponse géante, réponse invalide, caractères de contrôle.
English
- IP address information (built-in whois): an Info button next to each blocked address
(Security → Blocks) shows the network holder and address, network name and range, country, the
host's abuse contact, dates, reverse host name (confirmed or not) and a link to the raw answer,
from the authoritative registry (ARIN, RIPE NCC, APNIC, LACNIC, AFRINIC) over RDAP, the
successor of whois, selected through the IANA bootstrap registry. - Privacy and security: the address is sent to the registry only on request, never for a
private address; only the official registries are contacted (HTTPS, redirects to them only, 8 s
and 512 KB max); registry text is sanitised and rendered as text; 7-day cache; rate limited;
securitypermission; audit log entry. - Tests:
accessstep, fake RDAP registry covering access control, invalid and private addresses,
parsing, cache, audit, hostile redirects, oversized and invalid answers, control characters.
Fichier Taille SHA-256 nobase-1.7.0.zip1.22 Mo 44f4f6c1b0ac135ca2687c9c18b8d0eed4d6dfd7e18fad2c09b3a45f144883banobase-update-1.7.0.zip0.99 Mo 31ab133f1cc09e25820e466e89791e8424aae52df3a41983d90cbfdcbb771bcenobase-1.7.0.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.7.0.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 61, commit
5d49ea3b29bc).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Informations sur une adresse IP (whois intégré) : bouton Infos devant chaque adresse
-
NoBaSe 1.6.0
StableAll checks were successfulIntégration continue / ci (push) Successful in 1m45snobase/tests 1352 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 1m55sreleased this
2026-10-29 19:20:15 +00:00 | 6 commits to main since this releaseFrançais
- Rester connecté entre deux visites (Réglages système → Sessions,
session_persistent,
désactivé par défaut ; surchargeCMS_SESSION_PERSISTENT=1) : le cookie de session porte une
expiration égale à la durée maximale d'une session, au lieu de disparaître à la fermeture du
navigateur. Le back-office reste ouvert sur un téléphone ou dans l'application installée, même
quand Android ferme Chrome en arrière-plan. Les contrôles côté serveur sont inchangés
(inactivité, durée maximale, « déconnecter partout », changement de mot de passe) et les actions
sensibles demandent toujours une confirmation d'identité. À éviter sur des ordinateurs partagés. - La déconnexion efface désormais aussi le cookie de session dans le navigateur (
Max-Age=0). - Expiration après inactivité réglable jusqu'à 30 jours (7 jours auparavant), comme la durée
maximale d'une session. - Tests : étape
access, cookie de session avec et sans le réglage (attributsExpires/Max-Age
réellement émis), contrôle d'accès du réglage, bornes de l'inactivité.
English
- Stay signed in between visits (System settings → Sessions,
session_persistent, off by
default; overrideCMS_SESSION_PERSISTENT=1): the session cookie expires with the maximum session
lifetime instead of being dropped when the browser closes, so the admin area stays open on a phone
or in the installed app. Server-side checks are unchanged and sensitive actions still require an
identity confirmation. Avoid on shared computers. - Signing out now also clears the session cookie in the browser (
Max-Age=0). - Expiry after inactivity can now be set up to 30 days (previously 7).
- Tests:
accessstep checks the session cookie with and without the setting, access control and
inactivity bounds.
Fichier Taille SHA-256 nobase-1.6.0.zip1.21 Mo 00c809a119ddd7ba8e7ff8090ebded5b8ed0982e99df266369bd4ba575bd0288nobase-update-1.6.0.zip0.98 Mo dce6c419f34ff66e2a056f960d29a3490a0061c15daac0a2f15e66dfdc55db98nobase-1.6.0.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.6.0.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 59, commit
7c8ef3638bd6).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Rester connecté entre deux visites (Réglages système → Sessions,
-
NoBaSe 1.5.1
StableAll checks were successfulIntégration continue / ci (push) Successful in 2m0snobase/tests 1334 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 1m53sreleased this
2026-10-29 18:48:09 +00:00 | 7 commits to main since this releaseFrançais
- Installation du back-office comme application sur Android : l'invitation d'installation du
navigateur n'est plus étouffée. Le back-office captait l'événementbeforeinstallpromptet
l'annulait (preventDefault()) pour le remplacer par son propre bouton, présent seulement dans
les réglages de notifications ; sur Android, Chrome n'affichait alors ni bannière ni pastille
« Installer l'application ». L'invitation de Chrome est rétablie, et le bouton « Installer
l'application » apparaît aussi sur l'écran de connexion et dans le menu du compte (seulement si
le navigateur propose l'installation et que l'application n'est pas déjà installée). - Nom court de l'application (sous l'icône de l'écran d'accueil) : le nom du site entier jusqu'à
15 caractères, sinon les premiers mots qui tiennent ; plus jamais un mot coupé (« La
Brigantine 2 » donnait « La Brigantin »). - Tests : vérifications de la PWA dans l'étape
access(manifeste et icônes sans session, nom
court, invitation du navigateur conservée). - Dépendances à jour, aucune vulnérabilité connue (
npm audit: 0) : svelte 5.57.3, svelte-check
4.7.7, vite 8.3.5, TypeScript 6.0.3 (dernière version acceptée par svelte-check ; la 7 ne l'est pas
encore).deepmerge(utilisé par le greffon Svelte de Vite, compilation seulement) n'a aucune version
corrigée de GHSA-gcqx-w48m-w2h4 (empoisonnement du prototype de l'objet renvoyé) : une copie corrigée
est embarquée (admin-src/vendor/deepmerge, propriétés définies et non plus affectées) et imposée
paroverrides; elle demande npm ≥ 10 (Node.js 22 le fournit ;make adminetmake test
l'indiquent clairement avec le npm 9 de Debian). - CI et publication : Node.js 22.23.4 (version de sécurité du 2026-10-20, au lieu de 22.23.3) et
Chrome for Testing 156.0.8078.73 (au lieu de 155), SHA-256 figés. - Tests : le PHP de test n'utilise plus les domaines de recherche DNS du poste (
LOCALDOMAIN) ;
sur un réseau dont le DNS répond pour tout sous-domaine, les noms fictifs de l'étapecalendars
se résolvaient en adresse privée et l'anti-SSRF (à raison) les refusait.
English
- Installing the admin area as an app on Android: the browser's install prompt is no longer
suppressed. The admin area caughtbeforeinstallpromptand cancelled it (preventDefault()) in
favour of its own button, shown only in the notification settings; on Android, Chrome then showed
no install banner or badge. Chrome's prompt is restored, and the “Install the app” button now also
appears on the sign-in screen and in the account menu (only when the browser offers installation
and the app is not installed yet). - App short name (under the home-screen icon): the full site name up to 15 characters,
otherwise the first words that fit; a word is never cut anymore. - Tests: PWA checks in the
accessstep (manifest and icons without a session, short name, browser
prompt kept). - Dependencies up to date, no known vulnerability (
npm audit: 0): svelte 5.57.3, svelte-check
4.7.7, vite 8.3.5, TypeScript 6.0.3 (latest accepted by svelte-check).deepmerge(build only) has no
fixed release for GHSA-gcqx-w48m-w2h4: a patched copy is bundled (admin-src/vendor/deepmerge) and
enforced throughoverrides; it requires npm ≥ 10 (shipped with Node.js 22). - CI and release: Node.js 22.23.4 (security release) and Chrome for Testing 156.0.8078.73,
pinned SHA-256. - Tests: the test PHP no longer uses the machine's DNS search domains (
LOCALDOMAIN), so fictitious
test host names cannot resolve to a private address on networks with wildcard DNS.
Fichier Taille SHA-256 nobase-1.5.1.zip1.21 Mo df040876beb458c64e973bc1d9b4469a70b5f4f7f800a22cffb4c04888a940c1nobase-update-1.5.1.zip0.98 Mo 1b87e5b12e70af8b72c7be53d621f76613711c60c3f984029f54e0d28f4dd4b9nobase-1.5.1.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.5.1.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 57, commit
33cc33f37db8).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Installation du back-office comme application sur Android : l'invitation d'installation du
-
NoBaSe 1.5.0
StableAll checks were successfulIntégration continue / ci (push) Successful in 1m52snobase/tests 1323 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 2m6sreleased this
2026-10-15 12:41:36 +00:00 | 8 commits to main since this releaseFrançais
- Calendriers : état des jours sans période (onglet Statuts) : les demi-journées sans période
peuvent prendre un statut du calendrier (ex. « Fermé ») au lieu d'être libres ; une période
« Disponible » les rouvre. Appliqué partout de la même façon : affichage sur le site et sa légende,
lecture publique (default_status), formulaires liés (refus dans un jour fermé, au demi-jour près),
export iCal (les jours concernés deviennent des événements), vue du back-office. Un statut par
défaut non public n'est jamais montré sur le site mais compte pour les formulaires. Sans réglage,
rien ne change. - Nouveaux calendriers : statut « Disponible » (non occupé) proposé en plus d'Indisponible, Option
et Fermé. - Canal de mise à jour réglable depuis la page Mises à jour (carte « Le site ne cherche pas les
mises à jour tout seul » et Options avancées), avec un bouton « Utiliser le canal officiel » ;
mêmes protections que dans Réglages système (droit Réglages système, double authentification,
confirmation d'identité), vérification du canal aussitôt après l'enregistrement ; lecture seule
pour les autres comptes ou si la valeur est imposée par le serveur. - Nouvelles installations : canal de mise à jour officiel prérempli (case à décocher dans
/install, option--no-update-channelen ligne de commande). Les sites existants ne changent pas. - Vocabulaire unique « canal de mise à jour » dans le back-office et l'aide.
English
- Calendars: state of days without a period (Statuses tab): half-days without a period can take
a status of the calendar (e.g. “Closed”) instead of being free; an “Available” period reopens them.
Applied everywhere in the same way: display on the site and its legend, public read
(default_status), linked forms (refused on a closed day, to the half-day), iCal export (those days
become events), back-office view. A non-public default status is never shown on the site but counts
for forms. Without this setting, nothing changes. - New calendars: “Available” status (not busy) offered in addition to Unavailable, Option and Closed.
- Update channel can be set from the Updates page (“The site does not look for updates on its
own” card and Advanced options), with a “Use the official channel” button; same protections as
in System settings (System settings right, two-factor authentication, identity confirmation),
channel checked right after saving; read-only for other accounts or when the value is imposed by
the server. - New installations: official update channel pre-filled (checkbox to untick in /install,
--no-update-channelon the command line). Existing sites do not change. - Single wording “update channel” in the back office and help.
Fichier Taille SHA-256 nobase-1.5.0.zip1.21 Mo e612e93b5e96b18fc4acbefbe25d32c7e22bcd3f0ade2dda993c1d308dccf926nobase-update-1.5.0.zip0.98 Mo 64added3cbe3e7da489e3fdfc28e937fdd18b75850c69e5aef00d625d97b30ecnobase-1.5.0.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.5.0.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 54, commit
22965577fb49).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Calendriers : état des jours sans période (onglet Statuts) : les demi-journées sans période
-
NoBaSe 1.4.0
StableAll checks were successfulIntégration continue / ci (push) Successful in 1m35snobase/tests 1273 vérification(s) réussie(s), 0 échec(s) ; NON EXÉCUTÉ : webauthn : navigateur headless inutilisable pour WebAuthn sur cet hôte : ERREUR (environnement de test) : bibliothèques système manquantes pour chrome-headless-s | mobile : navigateur headlePublication d'une version / release (push) Successful in 1m43sreleased this
2026-10-15 09:53:10 +00:00 | 9 commits to main since this releaseFrançais
- Calendriers de disponibilité au demi-jour (menu Calendriers, droit
calendars: Administrateur et
Éditeur) : périodes du matin ou de l'après-midi avec des statuts propres au site (couleur, public ou
non, occupé ou non), note privée, chevauchements refusés avec la liste des conflits ou remplacés
(raccourcis, découpés) à la demande, saisie à la souris, au doigt ou au clavier, historique,
archivage, duplication, suppression avec archive de 90 jours, purge automatique des périodes
terminées depuis plus d'un an. Affichage dans une page par un nouveau champ de genre « Calendrier » :
rendu accessible sans JavaScript (un tableau par mois, état de chaque jour écrit, hachures pour
l'indisponible), statuts publics seulement, jamais de note ; lecture publique
/api/public/calendars/<id>mise en cache 5 minutes. Documentation : docs/calendriers.md. - Cache des pages : une page peut fixer sa propre échéance (calendrier : minuit suivant).
- Formulaires liés à un calendrier : un champ « Dates du séjour » peut vérifier les dates dans un
calendrier (demi-journées d'arrivée et de départ) et refuser l'envoi (message générique, rien de
privé), l'accepter en le signalant, ou ne rien vérifier ; l'envoi ne modifie jamais le calendrier.
Dans Messages reçus : « Créer une période à partir de ce message » (dialogue pré-rempli). Un clic
sur le calendrier de la page remplit les dates. - Calendriers : iCal. Export par une adresse privée (
/ical/<id>/<jeton>.ics, jeton stocké
seulement haché, montré une fois, régénérable et révocable après confirmation d'identité, statuts
choisis, jamais les notes, débit limité) ; import de 5 sources par calendrier (HTTPS, protection
contre les requêtes vers le réseau interne, 2 Mo, récurrences bornées), synchronisées
automatiquement ou à la demande, périodes importées en lecture seule, conflits comptés, alerte
après trois échecs de suite (nouveau type « calendar_import »). - Formulaires : nouveau crochet
form_validate(erreurs par champ ajoutées par une extension) et
signalements (form_flag) visibles dans Messages reçus et dans l'e-mail de notification. - Statistiques : adresses IP exclues (Statistiques → Réglages de la mesure) : une liste d'IP ou de
plages CIDR (sonde Uptime Kuma, poste du bureau…) qui ne sont plus comptées, ni comme visites ni
dans les compteurs de requêtes (robots compris). Journal de sécurité et pare-feu inchangés pour elles. - Uptime Kuma reconnu comme sonde de disponibilité.
- Corrigé : la page Statistiques débordait sur mobile quand le graphique avait des données
(tableau accessible masqué mal contenu).
English
- Half-day availability calendars (Calendars menu,
calendarsright: Administrator and Editor):
morning or afternoon periods with site-defined statuses (colour, public or not, busy or not),
private note, overlaps refused with the list of conflicts or replaced (shortened, split) on
request, entry by mouse, touch or keyboard, history, archiving, duplication, deletion with a
90-day archive, automatic purge of periods that ended more than a year ago. Shown in a page
through a new “Calendar” field kind: accessible rendering without JavaScript (one table per month,
each day's state written out, hatching for unavailable), public statuses only, never a note; public
read/api/public/calendars/<id>cached for 5 minutes. Documentation: docs/calendriers.md. - Page cache: a page can set its own expiry (calendar: next midnight).
- Forms linked to a calendar: a “Dates of stay” field can check the dates in a calendar (arrival
and departure half-days) and refuse the submission (generic message, nothing private), accept it
with a flag, or check nothing; a submission never changes the calendar. In Received messages:
“Create a period from this message” (pre-filled dialog). Clicking the calendar on the page fills
in the dates. - Calendars: iCal. Export through a private address (
/ical/<id>/<token>.ics, token stored
hashed only, shown once, regenerable and revocable after identity confirmation, chosen statuses,
never the notes, rate limited); import of 5 sources per calendar (HTTPS, protection against requests
to the internal network, 2 MB, bounded recurrences), synchronised automatically or on demand,
read-only imported periods, conflicts counted, alert after three failures in a row (new
“calendar_import” type). - Forms: new
form_validatehook (per-field errors added by an extension) and flags (form_flag)
shown in Received messages and in the notification e-mail. - Analytics: excluded IP addresses (Analytics → Measurement settings): IPs or CIDR ranges (Uptime
Kuma monitor, office computer…) that are no longer counted, neither as visits nor in request
counters (bots included). Security log and firewall still apply to them. - Uptime Kuma recognised as an uptime monitor.
- Fixed: the Analytics page overflowed on mobile when the chart had data (hidden accessible table).
Fichier Taille SHA-256 nobase-1.4.0.zip1.20 Mo 106a29820a861338f2c0b99f2374dd2f19fa5621b31e524b6502534dec50dc22nobase-update-1.4.0.zip0.97 Mo 7de57306a34f9f0ed57a4aeffb14d5a19e033c571ed70e5502e88cca0e162758nobase-1.4.0.zip: paquet d'installation public, sans jeton (créez le vôtre :php app/cli/install.php --new-token, ou voirINSTALLATION.txt).nobase-update-1.4.0.zip: paquet de mise à jour signé (Ed25519 + ECDSA P-256), installé depuis le back-office (Mises à jour) ou par le canallatest.jsonde la brancheupdates.- Signé par la clé
cccd09dc81ef2c61— empreinte SHA-256cccd09dc81ef2c6173538eaf923ea4463eee78491c4a48cf622645e2658ff875(comparez avecwww/app/update-keys.json). - Construit et signé automatiquement par la forge (exécution n° 52, commit
6f569be220b5).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Calendriers de disponibilité au demi-jour (menu Calendriers, droit