# Implementation Notes Teknisiä huomioita git-pages 0.9.1:n käyttäytymisestä, joita ei ole ilmeistä dokumentaatiosta. ## Storage v2 (Protobuf manifest) Git-pages 0.9.1 käyttää v2-arkkitehtuuria. Kaikki sisältö on pakattu Protobuf-manifestiin (`site/{host}/.index`), ei flat-FS:nä. Tästä seuraa: - Tiedostoja ei voi etsiä tai poistaa `find`/`rm`-komennoilla - `.git-pages/manifest.json` listaa kaikki tiedostot (ProtoJSON) - `.git-pages/archive.tar` antaa koko sisällön (saattaa truncata HTTP/2:ssa) ## Host-header Git-pages valitsee sivuston Host-headerin perusteella. Ilman oikeaa Hostia palauttaa 404. - Ulkoiset requestit: Traefik välittää alkuperäisen Hostin automaattisesti - Sidecar/localhost: `-H "Host: ci-reports.helm-dev.keskikuja.site"` ## PATCH ja directory-entryt Jos PATCH-tar sisältää directory-entryn (tyyppi directory, tar typeflag '5'), se **korvaa** koko hakemiston dokumentaation mukaan. Tar saa sisältää vain file- ja symlink-entryjä, jotta PATCH toimii odotetusti. ## Whiteout — tiedostojen poisto Ainoa tapa poistaa tiedostoja ilman koko sivuston PUT-korvausta: - Tarissa character device entry (`CHRTYPE`, tar typeflag '4') - `devmajor=0`, `devminor=0` - PATCH:ataan sivuston juureen ## .init — ensimmäinen julkaisu Ensimmäinen julkaisu vaatii PUTin, joka luo `.index`-tiedoston. Tämän jälkeen PATCH riittää. Helm-chartin post-install -job hoitaa tämän automaattisesti: consumerien publish-scriptien ei tarvitse tuntea asennuksen tilaa.