refactor: Replace 'reach' field with 'public' boolean in service registration and related components

This commit is contained in:
2026-07-10 02:13:37 +00:00
parent fffc84e14c
commit 4feaa63da0
12 changed files with 112 additions and 220 deletions

View File

@@ -25,7 +25,7 @@ The domain is the unique key. One registration per domain.
| `backend.type` | string | yes | — | `tcp-passthrough` or `http`. |
| `backend.health` | string | no | — | Health check path for L7 services (e.g., `/health`). |
| `subdomains` | bool | no | `false` | If true, also routes `*.domain` traffic to this backend. |
| `reach` | string | yes | — | `internal` or `public`. |
| `public` | bool | no | `false` | If true, domain gets public DNS + internet exposure. |
| `tls` | string | no | inferred | `passthrough` or `terminate`. Defaults based on backend type. |
## User-facing concepts
@@ -34,9 +34,9 @@ The API fields map to three user-visible controls:
### Public / Private
`reach: "public"` or `reach: "internal"`
`public: true` or `public: false`
- **Private** (internal): Domain resolves only on the LAN. No public DNS record. Accessible only from your local network or VPN.
- **Private** (default): Domain resolves only on the LAN. No public DNS record. Accessible only from your local network or VPN.
- **Public**: Domain resolves on the LAN AND has a public DNS A record. Accessible from the internet through Central's HAProxy.
### Subdomains
@@ -75,7 +75,7 @@ When a service is registered, Central automatically:
"source": "wild-cloud",
"backend": {"address": "192.168.8.240:443", "type": "tcp-passthrough"},
"subdomains": true,
"reach": "public"
"public": true
}
```
@@ -87,8 +87,7 @@ Central creates: LAN DNS → 192.168.8.240, public DNS A record, HAProxy L4 SNI
{
"domain": "wild-cloud.payne.io",
"source": "wild-cloud",
"backend": {"address": "127.0.0.1:5055", "type": "http"},
"reach": "internal"
"backend": {"address": "127.0.0.1:5055", "type": "http"}
}
```
@@ -102,7 +101,7 @@ Central creates: LAN DNS → Central IP (with `local=/`), HAProxy L7 reverse pro
"source": "wild-cloud",
"backend": {"address": "192.168.8.240:443", "type": "tcp-passthrough"},
"subdomains": false,
"reach": "public"
"public": true
}
```