<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-documentation.git/docs, branch feature/T9082-codeql-onboard</title>
<subtitle>VyOS readthedocs (mirror of https://github.com/vyos/vyos-documentation.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-documentation.git/atom?h=feature%2FT9082-codeql-onboard</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-documentation.git/atom?h=feature%2FT9082-codeql-onboard'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/'/>
<updated>2026-07-11T07:34:18+00:00</updated>
<entry>
<title>Merge rolling into claude/pdf-image-conversion (combine constrained apt line: imagemagick, librsvg2-bin, poppler-utils)</title>
<updated>2026-07-11T07:34:18+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-07-11T07:34:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=028cba2b881ba1beeaa21f6d0fd5eccf7fdc2f25'/>
<id>urn:sha1:028cba2b881ba1beeaa21f6d0fd5eccf7fdc2f25</id>
<content type='text'>
🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs-infra: convert webp/svg images for PDF builds (sphinx.ext.imgconverter + ImageMagick/librsvg)</title>
<updated>2026-07-10T16:01:35+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-07-10T16:01:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=b78ccb662b2359a2cb5f60c4040c30004b43a412'/>
<id>urn:sha1:b78ccb662b2359a2cb5f60c4040c30004b43a412</id>
<content type='text'>
🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(DMVPN): T4667: Add firewall rule to prevent unencrypted GRE leaks (#2136)</title>
<updated>2026-07-10T15:33:10+00:00</updated>
<author>
<name>zdc</name>
<email>zdc@users.noreply.github.com</email>
</author>
<published>2026-07-10T15:33:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=50acf8f188475b0554b99a739cb8ada12d51e77b'/>
<id>urn:sha1:50acf8f188475b0554b99a739cb8ada12d51e77b</id>
<content type='text'>
* docs(DMVPN): T4667: Add firewall rule to prevent unencrypted GRE leaks

In DMVPN the mGRE tunnel and the IPSec protecting it are handled
independently, so GRE can be forwarded while no IPSec SA is active for a
peer (e.g. while an SA is still being negotiated or after one expires),
allowing unencrypted GRE to leave the router. This is inherent to
combining GRE with IPSec and is common to DMVPN implementations in
general.

Add a "Protecting against unencrypted traffic leaks" section to the DMVPN
reference page explaining the behaviour and recommending an output filter
rule that drops GRE not matched by an outbound IPSec policy
(ipsec match-none-out). Note that this disables unencrypted GRE on the
node entirely, so coexisting plain GRE tunnels would stop working.

Apply the same rule in the Dual HUB Dual Cloud example on the VyOS nodes.

Co-authored-by: Daniil Baturin &lt;daniil@baturin.org&gt;

* docs(DMVPN): reflow DMVPN documentation for line length compliance

Reformat the DMVPN guide and dual-hub dual-cloud example to wrap
long lines and improve readability without changing the documented
behavior or configuration guidance.

---------

Co-authored-by: Daniil Baturin &lt;daniil@baturin.org&gt;</content>
</entry>
<entry>
<title>docs: Cloudflare Workers hosting pipeline (apex, content workers, CI, previews) (#2140)</title>
<updated>2026-07-10T14:14:13+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-07-10T14:14:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=21689ef59b0eb34b1a29eda739dc10d33d25b44a'/>
<id>urn:sha1:21689ef59b0eb34b1a29eda739dc10d33d25b44a</id>
<content type='text'>
* docs-infra: scaffold Cloudflare workers workspace (versions.json v2, matrix, toolchain)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: record full Phase-0 plan decision in workers/PLAN.md

🤖 Generated by [robots](https://vyos.io)

* docs-infra: shared content worker — asset serving, cache classes, X-Docs-Build, canary no-store

🤖 Generated by [robots](https://vyos.io)

* docs-infra: run worker script before assets; test fetch entrypoint

🤖 Generated by [robots](https://vyos.io)

* docs-infra: apex manifest loader + dispatch map + runtime binding guard (TDD)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: apex redirects (aliases, PDF, trailing-slash) + special paths (TDD)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: PDF redirect honors pdf:null and preserves query

🤖 Generated by [robots](https://vyos.io)

* docs-infra: apex UA gate — allowlist-wins, log-only AI crawlers, empty block list at launch

🤖 Generated by [robots](https://vyos.io)

* docs-infra: apex router (pipeline §3.2), themed 404/503, /kb seam, env configs + congruence test

🤖 Generated by [robots](https://vyos.io)

* docs-infra: add missing-User-Agent regression test for apex UA gate

🤖 Generated by [robots](https://vyos.io)

* docs-infra: R2-streaming preview worker — MIME map, noindex, no-store (TDD)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: preview 404 no-store + fetch handler tests

🤖 Generated by [robots](https://vyos.io)

* docs-infra: bootstrap script — binding-target workers must exist before apex deploys

🤖 Generated by [robots](https://vyos.io)

* docs-infra: apex run_worker_first, lockfile for npm ci, PDF Location from manifest

🤖 Generated by [robots](https://vyos.io)

* docs-infra: derive html_baseurl from DOCS_VERSION_SLUG with RTD fallback (canonical gate prereq)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: version picker + status banner + language scaffold (vanilla JS, TDD pure core)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: picker preserves query+hash across switch; valid breadcrumb markup

🤖 Generated by [robots](https://vyos.io)

* docs-infra: Pagefind search wrapper with runtime base-path + preview prefix handling (TDD)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: pagefind wrapper — asset-failure notice + UI stylesheet load

🤖 Generated by [robots](https://vyos.io)

* docs-infra: gate Pagefind searchbox to CF builds (RTD keeps stock search until cutover)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: deploy sanity gates — limits, critical pages, count-delta, canonical (TDD)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: hermetic gate tests via fixture versions.json

🤖 Generated by [robots](https://vyos.io)

* docs-infra: docs-build workflow — candidate/smoke/promote two-stage deploy + registry + rollback

Two-stage CF Workers pipeline: build in pinned container, assemble artifact,
sanity gates, deploy candidate, scoped pre-traffic smoke via canary apex,
promote (rollback-id capture, hostname purge, registry upload), post-promote
probe + auto-rollback. DOCS_CF_LIVE repo variable gates every docs.vyos.io
production interaction pre-cutover.

scripts/docs_gates/smoke.py adds one authorized check beyond the spec: the
version's index.html probe asserts the #vyos-search mount div is present in
the response body, guarding CI silently forgetting DOCS_VERSION_SLUG (which
would otherwise ship stock RTD search without the Pagefind gate noticing).

🤖 Generated by [robots](https://vyos.io)

* docs-infra: build docs image in-workflow with buildx cache (v4.1 — digest pin dropped)

Plan v4.1 amendment: the ghcr.io digest-pinned image does not exist (workflow
would hard-fail at the first docker step on every push). Replace the BUILD_IMAGE
env placeholder with an in-workflow docker build from docker/Dockerfile via
docker/setup-buildx-action@v3 + docker/build-push-action@v6 (context: docker/,
load: true, tags: docs-build:local, GHA cache from/to). The checked-out commit
is the pin; buildx GHA cache keeps repeat builds cheap. Sphinx-build step swaps
to docs-build:local; inner script unchanged.

🤖 Generated by [robots](https://vyos.io)

* docs-infra: apex/preview deploy workflow — canary auto, production behind environment approval

* docs-infra: apex-deploy concurrency guard (per-ref, cancel-in-progress)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: fork-safe PR preview pipeline — approval record, R2 prefixes, label consumption, cleanup

* docs-infra: nightly preview sweep — pipefail + per-prefix failure isolation

🤖 Generated by [robots](https://vyos.io)

* docs-infra: nightly canary QA — per-entry sweep + URL-parity corpus vs RTD

🤖 Generated by [robots](https://vyos.io)

* docs-infra: parity sweep scoped to CF-built versions; transport-error resilience

🤖 Generated by [robots](https://vyos.io)

* docs-infra: one-off bootstrap workflow (binding targets — runs once on this push)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: remove one-off bootstrap workflow (bootstrap complete)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: one-off canary apex + preview deploy (route targets for Task 3.6 step 2c)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: remove one-off canary deploy workflow (targets live)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: address Phase-0 CodeRabbit findings (canonical gate, error caching, registry pointer, validation)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: strengthen manifest tests (full dispatch iteration, mutation-free validate)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: address GitHub CodeRabbit review (pointer-after-probe, fail-closed sweeps, block-precedence UA gate, preview hardening)

🤖 Generated by [robots](https://vyos.io)

* docs-infra: adversarial review fixes — error no-store, probe retry, PR-list membership, preview dotted-segment

🤖 Generated by [robots](https://vyos.io)

* docs-infra: serve oversized legacy PDF from R2 via apex (spec §5 fallback)

The 1.3 PDF (29.2 MiB) exceeds the 25 MiB static-asset cap and is absent
from the legacy content Worker's build, so /_/downloads/en/1.3/pdf/ (and
the picker's PDF link) 301'd into a dead-end 404 post-cutover. Add the R2
object fallback spec §5 already documented but never implemented: a
DOCS_PDFS R2 bucket binding on the apex Worker, a manifest pdf_r2_key
field (1.3 only), and a router step ahead of version dispatch that streams
the object with its own cache class (canary/error still force no-store).

🤖 Generated by [robots](https://vyos.io)

* docs-infra: PDF R2 fallback honors Range + If-None-Match, preserves ETag

🤖 Generated by [robots](https://vyos.io)</content>
</entry>
<entry>
<title> docs: Update Suricata page to VyOS 1.5 standards (#2118)</title>
<updated>2026-07-07T09:23:54+00:00</updated>
<author>
<name>LiudmylaNad</name>
<email>l.nadolina@vyos.io</email>
</author>
<published>2026-07-07T09:23:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=6d2d28d4411ff52ad0f9314cf3696336748ab89d'/>
<id>urn:sha1:6d2d28d4411ff52ad0f9314cf3696336748ab89d</id>
<content type='text'>
* docs: Update Suricata page to VyOS 1.5 standards

* Update suricata.md

* Update suricata.md

* Update suricata.md</content>
</entry>
<entry>
<title>Merge pull request #2133 from LiudmylaNad/te-ospf-note</title>
<updated>2026-07-06T15:13:14+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2026-07-06T15:13:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=a97e238644fa4a77d60ee129d17058e0e7310c53'/>
<id>urn:sha1:a97e238644fa4a77d60ee129d17058e0e7310c53</id>
<content type='text'>
docs(Traffic Engineering): Clarify OSPF advertisement is not yet supported</content>
</entry>
<entry>
<title>docs(Traffic Engineering): Clarify OSPF advertisement is not yet supported</title>
<updated>2026-07-03T15:50:21+00:00</updated>
<author>
<name>MilaNad</name>
<email>l.nadolina@vyos.io</email>
</author>
<published>2026-07-03T15:50:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=bfc18e8cb46ce179bc6b41f087643e2ee34eb502'/>
<id>urn:sha1:bfc18e8cb46ce179bc6b41f087643e2ee34eb502</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: Add GeoIP ASN support (T5746) (#2124)</title>
<updated>2026-07-03T15:35:26+00:00</updated>
<author>
<name>Grant</name>
<email>github@firefishy.com</email>
</author>
<published>2026-07-03T15:35:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=e10f12c5d9077052c11991931879659da56d0b67'/>
<id>urn:sha1:e10f12c5d9077052c11991931879659da56d0b67</id>
<content type='text'>
* docs: Add GeoIP ASN support (T5746)

* Small styling changes


---------

Co-authored-by: Daniil Baturin &lt;daniil@baturin.org&gt;</content>
</entry>
<entry>
<title> docs: Update UDP broadcast relay page to VyOS 1.5 standards (#2115)</title>
<updated>2026-07-01T10:46:01+00:00</updated>
<author>
<name>LiudmylaNad</name>
<email>l.nadolina@vyos.io</email>
</author>
<published>2026-07-01T10:46:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=93bb5f321cdad490f2e61ef29e17907ebd5645b5'/>
<id>urn:sha1:93bb5f321cdad490f2e61ef29e17907ebd5645b5</id>
<content type='text'>
* docs: Update UDP broadcast relay page to VyOS 1.5 standards

* Remove the implication that something other than IPv4 supports broadcast

---------

Co-authored-by: Daniil Baturin &lt;daniil@baturin.org&gt;</content>
</entry>
<entry>
<title>bgp: T6573: add input/output queue limit CLI commands</title>
<updated>2026-06-30T13:57:32+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-06-25T20:41:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=9ad380fb7a1b122a605c7562124085e3200e30f0'/>
<id>urn:sha1:9ad380fb7a1b122a605c7562124085e3200e30f0</id>
<content type='text'>
</content>
</entry>
</feed>
