Long-tail batch 2 (API): per-device routing (hosts/providers/routes/routing_rules) #10

Merged
benvin merged 1 commits from benvin/longtail-routing into main 2026-07-26 15:45:00 +10:00
Owner

Why

Batch 2 of the remaining long-tail sections: the per-device routing tier. Stored, terraformable, AND compiler-rendered into each owning device's config.

Changes

  • Add hosts, providers (multi-ISP), routes (static), and routing_rules (rtrules): migration 0006 (verified against Postgres 17), model types, id-keyed store CRUD, and REST handlers.
  • Compiler rendering: each section is owned by a device and projected into that device's rendered config.

Note

Stacked on #9 (shared migration numbering) — the diff includes #9 until it merges, then I'll rebase onto main. The agent translation (tomswall) and provider resources land in paired PRs.

Deferred

Nested option structs on host/provider are omitted for now (rarely used).

## Why Batch 2 of the remaining long-tail sections: the per-device routing tier. Stored, terraformable, AND compiler-rendered into each owning device's config. ## Changes - Add **hosts**, **providers** (multi-ISP), **routes** (static), and **routing_rules** (rtrules): migration 0006 (verified against Postgres 17), model types, id-keyed store CRUD, and REST handlers. - Compiler rendering: each section is owned by a `device` and projected into that device's rendered config. ## Note Stacked on #9 (shared migration numbering) — the diff includes #9 until it merges, then I'll rebase onto main. The agent translation (tomswall) and provider resources land in paired PRs. ## Deferred Nested option structs on host/provider are omitted for now (rarely used).
unkinben added 1 commit 2026-07-26 15:10:58 +10:00
Add per-device routing long-tail: hosts, providers, routes, routing_rules
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
721f4c1af3
Storage + CRUD (migration 0006, model, id-keyed store, REST handlers) plus
compiler rendering: each section is owned by a device and projected into that
device's rendered config (hosts/providers/routes/routing_rules).
unkinben force-pushed benvin/longtail-routing from b312645387 to 721f4c1af3 2026-07-26 15:10:58 +10:00 Compare
benvin merged commit 22e0d07227 into main 2026-07-26 15:45:00 +10:00
benvin deleted branch benvin/longtail-routing 2026-07-26 15:45:00 +10:00
Sign in to join this conversation.