<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-documentation.git/docs/configuration/vpn, 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-10T15:33:10+00:00</updated>
<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>ipsec: T7555: Documentation of `ikev2-reauth` option for site-to-site peers (#2047)</title>
<updated>2026-05-28T10:39:28+00:00</updated>
<author>
<name>Alexandr K.</name>
<email>o.kuchmystyi@vyos.io</email>
</author>
<published>2026-05-28T10:39:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=33474196061993909daf7754c7b44c1e57532017'/>
<id>urn:sha1:33474196061993909daf7754c7b44c1e57532017</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: remove RST swap mechanism, archive rst-*.rst under docs/_rst_legacy/</title>
<updated>2026-05-10T14:19:31+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-10T14:19:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=3fd1787d50dda76619647dd95ea6e1d421204734'/>
<id>urn:sha1:3fd1787d50dda76619647dd95ea6e1d421204734</id>
<content type='text'>
The swap mechanism (RST-as-fallback for migrated MD pages) is dormant —
docs/_rst_overrides.txt has been empty since the MyST flip trio
(#1899/#1900/#1901) landed in May 2026. The mechanism's surface area
(scripts/swap_sources.py, its 245-line test, RTD pre/post hooks,
Makefile glue, conf.py dynamic loader) is dead weight, and the
rst-*.rst shadows scattered across the source tree cause Context7's
parser to misclassify the project as RST.

Changes:
- Move 253 rst-*.rst shadow files into docs/_rst_legacy/ preserving
  subdirectory structure. They remain in the repo for reference; Sphinx
  excludes the folder via exclude_patterns; Context7 excludes it via
  excludeFolders.
- Strip swap_sources.py invocation from docs/Makefile (swap/restore
  targets, : swap deps, trap chains).
- Strip jobs: pre_build/post_build block from .readthedocs.yml.
- Strip rst-*.rst exclude entry and the _md_exclude.txt loader from
  docs/conf.py; replace with a single _rst_legacy exclude.
- Delete scripts/swap_sources.py, tests/test_swap_sources.py,
  docs/_rst_overrides.txt.
- Update context7.json: add docs/_rst_legacy to excludeFolders;
  fix stale "Branch current tracks…" rule to "Branch rolling tracks…"
  (default branch was renamed 2026-05-10).
- Update AGENTS.md: drop the "RST override mechanism" section and the
  test-runner snippet for the deleted test; describe _rst_legacy as
  archive only.

Verified: sphinx-build -b html with --keep-going produces identical
warning set (68 unique), identical sitemap entry count (257), identical
llms.txt entry count (22), zero rst-* URLs in any artifact.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>feat: flip swap mechanism — MD as primary, RST as override (Phase 1)</title>
<updated>2026-05-06T17:42:32+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-06T17:42:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=5d6fa52b8985f8068314aba26878a1d7d5cb84e5'/>
<id>urn:sha1:5d6fa52b8985f8068314aba26878a1d7d5cb84e5</id>
<content type='text'>
This is the first of three phases inverting the per-page swap mechanism
so MD becomes the canonical primary and RST becomes the rare override.

Phase 1 — file renames + conf.py exclude_patterns flip only:
- Rename docs/**/md-&lt;stem&gt;.md to docs/**/&lt;stem&gt;.md (drop md- prefix)
  for all 254 stems previously listed in docs/_swap.txt
- Rename docs/**/&lt;stem&gt;.rst to docs/**/rst-&lt;stem&gt;.rst (add rst- prefix)
  for the same 254 stems
- Repurpose docs/_swap.txt as docs/_rst_overrides.txt; initially empty
  comment-only since no pages need the RST fallback right now
- conf.py exclude_patterns flipped: rst-*.rst is now excluded by default
  instead of md-*.md
- conf.py runtime-artifact references updated to _rst_override_state.json
  and _md_exclude.txt (Phase 2 will rewrite swap_sources.py to produce
  these names; for now no swap script runs because overrides list is empty)

Phase 2 (next commit on this branch) will rewrite scripts/swap_sources.py
with inverted rename direction, delete scripts/import_myst.py + tests, and
update tests/test_swap_sources.py for the new semantics.

Phase 3 will be the cleanup pass and ready-for-review flip.

Generated by robots https://vyos.io
</content>
</entry>
<entry>
<title>docs: fix typos and a few grammar issues (ported from #1852 RST → MyST)</title>
<updated>2026-05-06T13:18:03+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-05T20:21:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=d72e213cc7c2dd0099f305cda4a6ba527b27d1da'/>
<id>urn:sha1:d72e213cc7c2dd0099f305cda4a6ba527b27d1da</id>
<content type='text'>
Ports the typo/grammar sweep originally captured in PR #1852 from .rst
files to their .md equivalents, plus the eventhandler grammar fix that
Copilot flagged in #1852's review (which the RST PR explicitly skipped
as scope-stretch).

Sources:
- 73 typo/grammar substitutions from PR #1852 (rebased from #1801)
- "Using environments is more preferable" → "Using environment variables
  is preferable" (Copilot review comment on #1852)

#1852 itself is being discarded since it targets RST and we are phasing
out the RST tree in favor of MyST.

The 4 RST-linter line-wrap comments and 1 RST section-underline comment
from Copilot's #1852 review are RST-specific and do not apply to .md.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>refactor(swap): rename imported .md files to md- prefix for swap mechanism</title>
<updated>2026-05-06T13:18:03+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-02T15:59:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=5a35f4d30e5c16bd85e811176cffa86b721112b7'/>
<id>urn:sha1:5a35f4d30e5c16bd85e811176cffa86b721112b7</id>
<content type='text'>
Restore the canary file naming convention that swap_sources.py expects:
the imported MyST pages now live as docs/&lt;dir&gt;/md-&lt;name&gt;.md alongside
the existing docs/&lt;dir&gt;/&lt;name&gt;.rst, so swap_sources.py --swap can rename
them into place at build time.

- 254 .md files renamed (every page with a matching .rst counterpart)
- 2 MyST-only pages left at their final names (no .rst exists, no swap
  needed): docs/copyright.md, docs/automation/terraform/terraformvyos.md

All 114 stems listed in docs/_swap.txt now have a corresponding
md-&lt;name&gt;.md source file ready to swap in.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs: address Copilot review feedback on imported MyST pages</title>
<updated>2026-05-06T13:18:03+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-02T15:38:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=5dbb26f7b468874a8c6d1ba1a9cca3bb3d40f24f'/>
<id>urn:sha1:5dbb26f7b468874a8c6d1ba1a9cca3bb3d40f24f</id>
<content type='text'>
Fix issues flagged by Copilot review on PR #1857 (the same content lives
in myst/current as the canonical source):

Real bugs:
- site-2-site-cisco.md: replace curly quote (U+2019) with ASCII apostrophe
- rsa-keys.md: fix typo "key-pair nam&gt;&gt;" → "key-pair name&gt;"
- vmware.md: lowercase admonition directive (:::{NOTE} → :::{note})
- vpp/configuration/nat/index.md: remove blank line inside {include} fence

Grammar:
- vpp/configuration/interfaces/loopback.md: "bounded" → "bound"
- vpp/configuration/sflow.md: "VyOS support" → "VyOS supports"
- vpp/requirements.md: "bypass" → "bypasses"
- vpp/configuration/dataplane/interface.md: "configures" → "configure"

CI linter (IP addresses):
- nmp.md: wrap 8.8.8.8 example with stop/start_vyoslinter
- lac-lns.md: wrap LNS config block (contains 8.8.8.8)
- wan-load-balancing.md: wrap whole file (illustrative non-RFC IPs)
- policy/examples.md: replace 192.0.1.1 with RFC 5737 192.0.2.1

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>chore(swap): remove canary md-*.md files and docs/superpowers</title>
<updated>2026-05-06T13:18:03+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-02T14:54:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=f7bab3007a9e0d0fef3ec551a677380a00b12d6a'/>
<id>urn:sha1:f7bab3007a9e0d0fef3ec551a677380a00b12d6a</id>
<content type='text'>
- Remove 115 canary md-*.md files (incremental swap helpers no longer needed)
- Remove 8 files under docs/superpowers (project planning/design docs that
  shouldn't ship in the documentation tree)

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>feat(swap): import .md files and webp transition from myst/current</title>
<updated>2026-05-06T13:18:03+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-02T14:25:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=fa54a080fac977157454beb0853daf0ac0e6af66'/>
<id>urn:sha1:fa54a080fac977157454beb0853daf0ac0e6af66</id>
<content type='text'>
Selective import from origin/myst/current (cf9c9b34):
- Add/update 255 .md files (full MyST conversion plus webp ref updates)
- Delete 175 PNG/JPG from docs/_static/images (webp twins already present)
- Delete 5 autotest topology.png (webp twins already present)

Preserved on swap (untouched):
- All .rst files (incremental swap pattern)
- conf.py, _ext/, _include/*.txt, .gitignore
- 115 canary md-*.md files
- 7 superpowers/specs/*.md design docs
- Logos vyos-logo.png / vyos-logo-icon.png (referenced by conf.py)

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>feat: activate 106 visual-validated canaries via swap</title>
<updated>2026-05-06T13:18:03+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-04-29T03:35:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=9277e2f189115d9c544834f77fb216eaf3711407'/>
<id>urn:sha1:9277e2f189115d9c544834f77fb216eaf3711407</id>
<content type='text'>
Imports 105 MD files (plus quick-start already present) from
origin/myst/current and adds them to docs/_swap.txt. The selection
is the BackstopJS visual-passers cohort: pages with &lt;5% rendered
diff vs the live RST docs at docs.vyos.io/en/latest/, filtered to
those with an RST counterpart on current and no cmdincludemd usage
(template-format reconciliation pending).

Local sphinx-build with all 106 swapped: succeeded with 100
warnings (vs 95 baseline). The 5 new warnings are all undefined
cross-reference labels, not build failures:
- contributing/development.md (missing 'coding-guidelines')
- operation/upgrade-recovery.md (3 missing 'how_it_works' /
  'cancelling_recovery')
- vpp/configuration/dataplane/{buffers,memory,unix}.md (missing
  'vpp_config_dataplane_*' labels)

Source list: ~/.claude/projects/-Users-vybot-GitHub-vyos-documentation/docs/2026-04-29-myst-conversion-audit/visual-passers-under-5pct.txt
BackstopJS report: claude/gifted-hertz-74b9f9 worktree
(visual-compare/), 2026-04-23 vs vyos--1838.org.readthedocs.build.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
</feed>
