Move route-proxy out of the controller's repository, which is archived with the controller
route-proxy provides `route` to five modules and lived in novox/mesh-controller, archived once the controller is removed (issue 1126). Its history comes along (git filter-repo of modules/route-proxy and its earlier home examples/route-proxy). Its contract's Go module path names this repository, and route-proxy builds the contract from its own tree through a replace, so no tag is needed before the first build. The two manifest tests that held its public ACME account and mounted program lived in the controller's internal/ownmanifest; they move beside the module. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
This commit is contained in:
@@ -18,9 +18,10 @@ consumer on its own machine.
|
||||
## Its contract: a package of its own
|
||||
|
||||
**route-proxy defines its own contract, and other modules use it** (the operator, 2026-10-31). It is the Go module
|
||||
`git.novox.be/novox/mesh-controller/modules/route-proxy/contract`, in `contract/` here with its own `go.mod`, standard
|
||||
library only, released by tags `modules/route-proxy/contract/vX.Y.Z`, the way mesh-sdk is released (`go/vX.Y.Z`); this
|
||||
module depends on it by its version like any other. It holds:
|
||||
`git.novox.be/novox/mesh-networking/modules/route-proxy/contract`, in `contract/` here with its own `go.mod`, standard
|
||||
library only, released by tags `modules/route-proxy/contract/vX.Y.Z` of this repository, the way mesh-sdk is released
|
||||
(`go/vX.Y.Z`); another module depends on it by its version like any other, and this module builds it from its own
|
||||
tree (a `replace` of `./contract` in `go.mod`), so the two never drift. It holds:
|
||||
|
||||
- **the route a consumer asks** (`Request`, read strictly by `DecodeRequest`: no field it does not name, a name of
|
||||
either kind, a port where the rule forwards, http or https, a positive body limit, a secret's file never a
|
||||
@@ -64,8 +65,8 @@ directory URL — `https://acme-v02.api.letsencrypt.org:443/directory`, port inc
|
||||
spelled it — and of the root bundle the `trust` container copies in. Any change to either is a new
|
||||
authority to the proxy: a new account, and every routed name ordered again against Let's Encrypt's
|
||||
rate limits. So the URL keeps the `:443`, `ACME_ROOTS_PATH` stays empty, and the `trust` artifact's
|
||||
pinned image is not moved without a decision; mesh-controller's
|
||||
`TestRouteProxyKeepsItsPublicAccountDirectory` holds all three.
|
||||
pinned image is not moved without a decision; `TestRouteProxyKeepsItsPublicAccountDirectory`
|
||||
(cmd/route-provider) holds all three.
|
||||
|
||||
## How it ships the Go proxy
|
||||
|
||||
|
||||
Reference in New Issue
Block a user