diff --git a/content/de/_index.md b/content/de/_index.md index c2385631..b18ce876 100644 --- a/content/de/_index.md +++ b/content/de/_index.md @@ -10,7 +10,7 @@ description: "go-fileshare stellt Disk-Images und Verzeichnisse über SMB, NFS, **Ein Disk-Image – oder ein Verzeichnis –, bereitgestellt über SMB, NFS, WebDAV, SFTP und S3: dieselben Benutzer, derselbe Zugriff pro Freigabe, aus einer einzigen Konfigurationsdatei.** Reines Go, `CGO_ENABLED=0`, ein Binary. Diese Seiten beschreiben -[v0.29.0]({{< relref "/status.md" >}}). +[v0.29.1]({{< relref "/status.md" >}}). ```sh go install github.com/go-fileshare/fileshare@latest diff --git a/content/de/administration/reload.md b/content/de/administration/reload.md index 079019e0..0c82d24e 100644 --- a/content/de/administration/reload.md +++ b/content/de/administration/reload.md @@ -20,7 +20,7 @@ Seit v0.10.0 liest er sie erneut ein: - bei **`SIGHUP`** (Unix); - bei **`ReloadDirectory`** der [Admin-API]({{< relref "/administration/_index.md" >}}), das antwortet, wer hinzugefügt, entfernt und geändert wurde, ob eine neue Generation gestartet ist, und Hinweise gibt, die - man lesen sollte – eine Gruppe, die es nicht mehr gibt, jemand, den eine Freigabe nennt, + man lesen sollte – eine Gruppe, die es nicht mehr gibt oder die keine Mitglieder hat, jemand, den eine Freigabe nennt, der nicht mehr im Verzeichnis steht. Ohne `reload` wird das Verzeichnis nur beim Start, bei `SIGHUP` und bei @@ -44,7 +44,8 @@ Jemand Neues, der einer Gruppe beitritt, die eine Freigabe nennt, *ändert* dies eine neue Generation wie jede andere Änderung an ihr: SMB legt die Listen einer Freigabe bei deren Start fest. -Eine Freigabe, die jemanden nennt, der weg ist, oder eine Gruppe, die es nicht mehr gibt, wird +Eine Freigabe, die jemanden nennt, der weg ist, oder eine Gruppe, die es nicht mehr gibt oder +die keine Mitglieder mehr hat (seit v0.29.1 unterschieden), wird **ohne sie** bereitgestellt – die sichere Richtung – und das wird gemeldet, statt sie abzulehnen, wie es der Start tut: Ablehnen würde die alten Listen behalten, und die alten Listen sind der Zugriff, der gerade entzogen wurde. diff --git a/content/de/status.md b/content/de/status.md index cef033c1..40532721 100644 --- a/content/de/status.md +++ b/content/de/status.md @@ -5,7 +5,7 @@ description: "Welches fileshare-Release diese Seiten beschreiben, was jedes Rele tags: [stand, releases] --- -Diese Seiten beschreiben **fileshare v0.29.0**. +Diese Seiten beschreiben **fileshare v0.29.1**. ## Was jedes Release hinzugefügt hat {#what-each-release-added} @@ -48,6 +48,7 @@ Diese Seiten beschreiben **fileshare v0.29.0**. | v0.27.0 | ACME: Das Zertifikat wird **beim Start** angefordert, nicht bei der ersten Verbindung – neuer Versuch nach 1 min, verdoppelt bis 1 h, während der Server weiter bedient; ein Client, der **kein SNI** sendet (Verbindung per IP-Adresse), erhält das Zertifikat der ersten Domain statt eines gescheiterten Handshakes (go-authn/servercert v0.5.0). [HARICA]({{< relref "/security/tls.md#harica-gant-tcs-which-account-and-caa" >}}): Nur ein Enterprise-**Admin**-Konto (OV) stellt ohne Challenge aus, und CAA muss `harica.gr` erlauben | | v0.28.0 | die Admin-API wird auch [über HTTPS für OIDC-Tokens]({{< relref "/administration/_index.md#over-https-for-oidc-tokens" >}}) angeboten – Connect, gRPC-Web und gRPC auf einem Listener, eine Audience je Server, Aufrufer je Aussteller per Subject oder Gruppe benannt – der erste Schritt zu den Web- und nativen Oberflächen | | v0.28.1 | Sicherheit: gebaut mit Go 1.27.2 und golang.org/x/net v0.60.0, die GO-2026-6617 (eine Race im HPACK-Encoder von HTTP/2, die einen Server abstürzen lassen konnte), GO-2026-6613, -6612, -6611, -6610 und -6603 beheben. Die Admin-API über HTTPS spricht HTTP/2. `go install` verlangt nun Go 1.27.2 und wechselt selbst dorthin | +| v0.29.1 | ein [Neuladen]({{< relref "/administration/reload.md" >}}) behandelt eine im Verzeichnis geleerte Gruppe wie eine gelöschte: Sie gewährt nichts, und die Hinweise des Neuladens sagen `group @x has no members: it grants nothing` (go-authn/directory v0.12.0, das eine leere Gruppe von einer fehlenden unterscheidet) | | v0.29.0 | WebDAV: [ein `PROPFIND` auf die Wurzel listet die Freigaben]({{< relref "/protocols/webdav.md#the-root-and-uploads-in-pieces" >}}) (207; Tiefe infinity 403, Schreiben 405), sodass ein Dateimanager den ganzen Server einbinden kann; ein Upload kann in Stücken erfolgen, jedes `Content-Range` dort angehängt, wo das vorige endete (go-filesystems/webdav v0.6.0) — was der [Datei-Explorer]({{< relref "/administration/_index.md" >}}) braucht | {{< callout type="warning" >}} diff --git a/content/en/_index.md b/content/en/_index.md index d48f2ec5..07fd1eca 100644 --- a/content/en/_index.md +++ b/content/en/_index.md @@ -10,7 +10,7 @@ description: "go-fileshare serves disk images and directories over SMB, NFS, Web **A disk image — or a directory — served over SMB, NFS, WebDAV, SFTP and S3 — the same users, the same per-share access, from one configuration file.** Pure Go, `CGO_ENABLED=0`, one binary. These pages describe -[v0.29.0]({{< relref "/status.md" >}}). +[v0.29.1]({{< relref "/status.md" >}}). ```sh go install github.com/go-fileshare/fileshare@latest diff --git a/content/en/administration/reload.md b/content/en/administration/reload.md index 4a18f63b..fdbadfff 100644 --- a/content/en/administration/reload.md +++ b/content/en/administration/reload.md @@ -20,7 +20,7 @@ Since v0.10.0 it reads them again: - on **`SIGHUP`** (Unix); - on the [admin API]({{< relref "/administration/_index.md" >}})'s **`ReloadDirectory`**, which answers with who was added, removed and changed, whether a new generation started, and notes a - person should read — a group that no longer exists, somebody a share names + person should read — a group that no longer exists or has no members, somebody a share names who is no longer in the directory. Without `reload`, the directory is read at the start, on `SIGHUP` and on @@ -44,7 +44,8 @@ Somebody new who joins a group a share names *does* change that share, and goes through a new generation like any other change to it: SMB fixes a share's lists when it starts. -A share naming somebody who is gone, or a group that no longer exists, is served +A share naming somebody who is gone, or a group that no longer exists or no +longer has any members (told apart since v0.29.1), is served **without them** — the safe direction — and said, rather than refused the way a startup refuses it: refusing would keep the old lists, and the old lists are the access that was just taken away. diff --git a/content/en/status.md b/content/en/status.md index 602e6215..74c79d7c 100644 --- a/content/en/status.md +++ b/content/en/status.md @@ -5,7 +5,7 @@ description: "Which fileshare release these pages describe, what each release ad tags: [status, releases] --- -These pages describe **fileshare v0.29.0**. +These pages describe **fileshare v0.29.1**. ## What each release added @@ -48,6 +48,7 @@ These pages describe **fileshare v0.29.0**. | v0.27.0 | ACME: the certificate is asked for **at start**, not at the first connection — retried after 1 min, doubling up to 1 h, while the server keeps serving; a client that sends **no SNI** (connecting by IP address) is given the first domain's certificate instead of a failed handshake (go-authn/servercert v0.5.0). [HARICA]({{< relref "/security/tls.md#harica-gant-tcs-which-account-and-caa" >}}): only an Enterprise **Admin** (OV) account issues without a challenge, and CAA must allow `harica.gr` | | v0.28.0 | the admin API is also served [over HTTPS for OIDC tokens]({{< relref "/administration/_index.md#over-https-for-oidc-tokens" >}}) — Connect, gRPC-Web and gRPC on one listener, one audience per server, callers named by subject or group per issuer — the first step towards the web and native UIs | | v0.28.1 | security: built with Go 1.27.2 and golang.org/x/net v0.60.0, which fix GO-2026-6617 (an HTTP/2 HPACK race that could crash a server), GO-2026-6613, -6612, -6611, -6610 and -6603. The admin API over HTTPS speaks HTTP/2. `go install` now requires Go 1.27.2, and switches to it by itself | +| v0.29.1 | a [reload]({{< relref "/administration/reload.md" >}}) treats a group emptied in the directory as it treats a deleted one: it grants nothing, and the reload's notes say `group @x has no members: it grants nothing` (go-authn/directory v0.12.0, which tells an empty group from a missing one) | | v0.29.0 | WebDAV: [a `PROPFIND` of the root lists the shares]({{< relref "/protocols/webdav.md#the-root-and-uploads-in-pieces" >}}) (207; Depth infinity 403, writes 405), so a file manager can mount the whole server; an upload can go in pieces, each `Content-Range` appended where the last ended (go-filesystems/webdav v0.6.0) — what the [file explorer]({{< relref "/administration/_index.md" >}}) needs | {{< callout type="warning" >}} diff --git a/content/es/_index.md b/content/es/_index.md index 13b91d5b..d78963f0 100644 --- a/content/es/_index.md +++ b/content/es/_index.md @@ -10,7 +10,7 @@ description: "go-fileshare sirve imágenes de disco y directorios por SMB, NFS, **Una imagen de disco —o un directorio— servida por SMB, NFS, WebDAV, SFTP y S3: los mismos usuarios, el mismo acceso por recurso compartido, desde un solo archivo de configuración.** Go puro, `CGO_ENABLED=0`, un solo binario. Estas páginas describen -la [v0.29.0]({{< relref "/status.md" >}}). +la [v0.29.1]({{< relref "/status.md" >}}). ```sh go install github.com/go-fileshare/fileshare@latest diff --git a/content/es/administration/reload.md b/content/es/administration/reload.md index 624fb221..f0806b2e 100644 --- a/content/es/administration/reload.md +++ b/content/es/administration/reload.md @@ -20,7 +20,7 @@ la v0.10.0 las vuelve a leer: - con **`SIGHUP`** (Unix); - con el **`ReloadDirectory`** de la [API de administración]({{< relref "/administration/_index.md" >}}), que responde con quién se añadió, se eliminó y cambió, si empezó una nueva - generación, y notas que una persona debería leer: un grupo que ya no existe, + generación, y notas que una persona debería leer: un grupo que ya no existe o no tiene miembros, alguien a quien nombra un recurso compartido y que ya no está en el directorio. Sin `reload`, el directorio solo se lee al arrancar, con `SIGHUP` y con @@ -44,7 +44,7 @@ recurso compartido, y pasa por una nueva generación como cualquier otro cambio SMB fija las listas de un recurso compartido cuando este arranca. Un recurso compartido que nombra a alguien que se ha ido, o a un grupo que ya no -existe, se sirve **sin ellos** —la dirección segura— y se indica, en lugar de +existe o ya no tiene ningún miembro (distinguidos desde v0.29.1), se sirve **sin ellos** —la dirección segura— y se indica, en lugar de rechazarse como lo rechaza un arranque: rechazarlo conservaría las listas antiguas, y las listas antiguas son el acceso que se acaba de retirar. diff --git a/content/es/status.md b/content/es/status.md index b382afde..f224d561 100644 --- a/content/es/status.md +++ b/content/es/status.md @@ -5,7 +5,7 @@ description: "Qué versión de fileshare describen estas páginas, qué añadió tags: [estado, versiones] --- -Estas páginas describen **fileshare v0.29.0**. +Estas páginas describen **fileshare v0.29.1**. ## Lo que añadió cada versión {#what-each-release-added} @@ -48,6 +48,7 @@ Estas páginas describen **fileshare v0.29.0**. | v0.27.0 | ACME: el certificado se pide **al arrancar**, no en la primera conexión — se reintenta tras 1 min, duplicando hasta 1 h, mientras el servidor sigue sirviendo; un cliente que **no envía SNI** (conexión por dirección IP) recibe el certificado del primer dominio en lugar de un saludo fallido (go-authn/servercert v0.5.0). [HARICA]({{< relref "/security/tls.md#harica-gant-tcs-which-account-and-caa" >}}): solo una cuenta Enterprise **Admin** (OV) emite sin desafío, y el CAA debe autorizar `harica.gr` | | v0.28.0 | la API de administración se sirve también [por HTTPS para tokens OIDC]({{< relref "/administration/_index.md#over-https-for-oidc-tokens" >}}) — Connect, gRPC-Web y gRPC en un solo puerto, una audiencia por servidor, quienes llaman nombrados por sujeto o grupo para cada emisor — el primer paso hacia las interfaces web y nativas | | v0.28.1 | seguridad: compilado con Go 1.27.2 y golang.org/x/net v0.60.0, que corrigen GO-2026-6617 (una carrera en el codificador HPACK de HTTP/2 que podía tumbar un servidor), GO-2026-6613, -6612, -6611, -6610 y -6603. La API de administración por HTTPS habla HTTP/2. `go install` exige ahora Go 1.27.2, y cambia a él por sí solo | +| v0.29.1 | una [recarga]({{< relref "/administration/reload.md" >}}) trata un grupo vaciado en el directorio como uno eliminado: no concede nada, y las notas de la recarga dicen `group @x has no members: it grants nothing` (go-authn/directory v0.12.0, que distingue un grupo vacío de uno inexistente) | | v0.29.0 | WebDAV: [un `PROPFIND` de la raíz lista los recursos compartidos]({{< relref "/protocols/webdav.md#the-root-and-uploads-in-pieces" >}}) (207; profundidad infinity 403, escrituras 405), así que un gestor de archivos puede montar todo el servidor; una subida puede hacerse por partes, cada `Content-Range` añadido donde terminó el anterior (go-filesystems/webdav v0.6.0) — lo que necesita el [explorador de archivos]({{< relref "/administration/_index.md" >}}) | {{< callout type="warning" >}} diff --git a/content/fr/_index.md b/content/fr/_index.md index 92c9254b..45da67d1 100644 --- a/content/fr/_index.md +++ b/content/fr/_index.md @@ -10,7 +10,7 @@ description: "go-fileshare sert des images disque et des répertoires en SMB, NF **Une image disque — ou un répertoire — servie en SMB, NFS, WebDAV, SFTP et S3 : les mêmes utilisateurs, le même accès par partage, depuis un seul fichier de configuration.** Pur Go, `CGO_ENABLED=0`, un seul binaire. Ces pages décrivent la -[v0.29.0]({{< relref "/status.md" >}}). +[v0.29.1]({{< relref "/status.md" >}}). ```sh go install github.com/go-fileshare/fileshare@latest diff --git a/content/fr/administration/reload.md b/content/fr/administration/reload.md index 9847bc89..9522f14e 100644 --- a/content/fr/administration/reload.md +++ b/content/fr/administration/reload.md @@ -20,7 +20,7 @@ Depuis la v0.10.0, il les relit : - sur **`SIGHUP`** (Unix) ; - sur le **`ReloadDirectory`** de l'[API d'administration]({{< relref "/administration/_index.md" >}}), qui répond en indiquant qui a été ajouté, supprimé et modifié, si une nouvelle génération a démarré, et des remarques qu'une - personne devrait lire — un groupe qui n'existe plus, quelqu'un qu'un partage nomme + personne devrait lire — un groupe qui n'existe plus ou n'a plus de membres, quelqu'un qu'un partage nomme et qui n'est plus dans l'annuaire. Sans `reload`, l'annuaire n'est lu qu'au démarrage, sur `SIGHUP` et sur @@ -44,7 +44,8 @@ Une nouvelle personne qui rejoint un groupe que nomme un partage modifie *bel et par une nouvelle génération comme toute autre modification de celui-ci : SMB fixe les listes d'un partage à son démarrage. -Un partage qui nomme quelqu'un de parti, ou un groupe qui n'existe plus, est servi +Un partage qui nomme quelqu'un de parti, ou un groupe qui n'existe plus ou n'a +plus aucun membre (distingués depuis v0.29.1), est servi **sans eux** — le sens sûr — et c'est signalé, plutôt que refusé comme le refuserait un démarrage : refuser conserverait les anciennes listes, et les anciennes listes sont l'accès qui vient d'être retiré. diff --git a/content/fr/status.md b/content/fr/status.md index 1a62ca86..27367bbc 100644 --- a/content/fr/status.md +++ b/content/fr/status.md @@ -5,7 +5,7 @@ description: "La version de fileshare que décrivent ces pages, ce que chaque ve tags: [état, versions] --- -Ces pages décrivent **fileshare v0.29.0**. +Ces pages décrivent **fileshare v0.29.1**. ## Ce que chaque version a ajouté {#what-each-release-added} @@ -48,6 +48,7 @@ Ces pages décrivent **fileshare v0.29.0**. | v0.27.0 | ACME : le certificat est demandé **au démarrage**, et non à la première connexion — nouvel essai après 1 min, puis doublé jusqu'à 1 h, pendant que le serveur continue de servir ; un client qui n'envoie **pas de SNI** (connexion par adresse IP) reçoit le certificat du premier domaine au lieu d'une poignée de main échouée (go-authn/servercert v0.5.0). [HARICA]({{< relref "/security/tls.md#harica-gant-tcs-which-account-and-caa" >}}) : seul un compte Enterprise **Admin** (OV) délivre sans défi, et le CAA doit autoriser `harica.gr` | | v0.28.0 | l'API d'administration est aussi servie [en HTTPS pour des jetons OIDC]({{< relref "/administration/_index.md#over-https-for-oidc-tokens" >}}) — Connect, gRPC-Web et gRPC sur un seul port d'écoute, une audience par serveur, les appelants désignés par sujet ou par groupe pour chaque émetteur — première étape vers les interfaces web et natives | | v0.28.1 | sécurité : compilé avec Go 1.27.2 et golang.org/x/net v0.60.0, qui corrigent GO-2026-6617 (une concurrence dans l'encodeur HPACK d'HTTP/2 qui pouvait faire tomber un serveur), GO-2026-6613, -6612, -6611, -6610 et -6603. L'API d'administration en HTTPS parle HTTP/2. `go install` exige désormais Go 1.27.2, et y passe de lui-même | +| v0.29.1 | un [rechargement]({{< relref "/administration/reload.md" >}}) traite un groupe vidé dans l'annuaire comme un groupe supprimé : il n'accorde rien, et les remarques du rechargement disent `group @x has no members: it grants nothing` (go-authn/directory v0.12.0, qui distingue un groupe vide d'un groupe absent) | | v0.29.0 | WebDAV : [un `PROPFIND` de la racine liste les partages]({{< relref "/protocols/webdav.md#the-root-and-uploads-in-pieces" >}}) (207 ; profondeur infinity 403, écritures 405), si bien qu'un gestionnaire de fichiers peut monter tout le serveur ; un envoi peut se faire par morceaux, chaque `Content-Range` ajouté là où finissait le précédent (go-filesystems/webdav v0.6.0) — ce dont l'[explorateur de fichiers]({{< relref "/administration/_index.md" >}}) a besoin | {{< callout type="warning" >}} diff --git a/hugo.yaml b/hugo.yaml index e48c3a54..c74af30a 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -151,7 +151,7 @@ params: # The fileshare release these pages describe. Its minor version is the # documentation's version label (v0.22.2 -> 0.22): the CI reads it here. fileshare: - version: "v0.29.0" + version: "v0.29.1" # The language switch (foot of the sidebar) shows the translate icon, then # the language's flag. It appears once a second language is declared.