A node being adopted cannot take a web module: every module reachable by name requires route, the mesh's only provider of it binds the two public ports, and the predecessor's proxy holds them and serves every public name there. Stopping the predecessor to break the circle darkens every name at once, with every certificate to re-obtain in the same window. So this answers the same provision without binding anything. It provides route and receives the same contributions file, and writes each contribution as one route file where the predecessor's file provider reads, naming the predecessor's own certificate resolver so no certificate is asked for. It removes a file it wrote when its contribution goes and never touches a file it did not write — the name and a marker inside both have to say it is the mesh's. A step, not a daemon: run-once, re-run by restart-on over the received file and the settings. The predecessor's dynamic directory is a node setting, because it is a fact about one machine. Migration scaffolding with a stated end: assigned only on an adopted node, deleted when the predecessor's proxy retires.
13 lines
252 B
JSON
13 lines
252 B
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2022",
|
|
"module": "NodeNext",
|
|
"moduleResolution": "NodeNext",
|
|
"strict": true,
|
|
"esModuleInterop": true,
|
|
"skipLibCheck": true,
|
|
"noEmit": true
|
|
},
|
|
"include": ["adapter.ts", "index.ts"]
|
|
}
|