Rename transport binding to WIP over HTTP
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
`wip-fs-server` projects one configured Linux filesystem directory onto WIP
|
||||
Worldspace `/` at request time. It does not register the filesystem contents or
|
||||
keep one object instance per entry. It uses `wip-host` for publication and typed
|
||||
operation dispatch and uses the standard `wip-https` routes, JSON codecs,
|
||||
operation dispatch and uses the standard `wip-http` routes, JSON codecs,
|
||||
envelopes, batching, and HTTP status mapping.
|
||||
|
||||
## Security model
|
||||
@@ -28,9 +28,9 @@ envelopes, batching, and HTTP status mapping.
|
||||
- Protocol metadata and errors never contain the backend absolute path. Startup
|
||||
prints only the explicitly configured effective root and security-sensitive
|
||||
modes.
|
||||
- The built-in listener is cleartext and loopback-only. Production deployments
|
||||
must pass `--behind-tls-proxy` and terminate HTTPS at a trusted reverse proxy.
|
||||
Plain development HTTP requires the explicit `--development-http` flag.
|
||||
- The built-in HTTP listener is loopback-only. TLS termination, certificates,
|
||||
authentication, an externally visible URL scheme, and proxy routing are
|
||||
deployment concerns rather than separate WIP transport profiles.
|
||||
|
||||
The implementation currently targets Linux because it uses `O_PATH`,
|
||||
directory-relative descriptor traversal, and `/proc/self/fd` to reopen the same
|
||||
@@ -38,34 +38,32 @@ pinned backend object without resolving the untrusted Worldspace path twice.
|
||||
|
||||
## Run
|
||||
|
||||
Read-only behind a TLS-terminating reverse proxy:
|
||||
Run the loopback listener in read-only mode:
|
||||
|
||||
```console
|
||||
cargo run -p wip-fs-server -- \
|
||||
--root /srv/public-files \
|
||||
--listen 127.0.0.1:8443 \
|
||||
--base-path /wip \
|
||||
--behind-tls-proxy
|
||||
--listen 127.0.0.1:8080 \
|
||||
--base-path /wip
|
||||
```
|
||||
|
||||
Local development with the write capability deliberately enabled:
|
||||
Run with the write capability deliberately enabled:
|
||||
|
||||
```console
|
||||
cargo run -p wip-fs-server -- \
|
||||
--root ./example-files \
|
||||
--listen 127.0.0.1:8080 \
|
||||
--base-path /wip \
|
||||
--development-http \
|
||||
--read-write
|
||||
```
|
||||
|
||||
The server reports the effective root, `ReadOnly`/`ReadWrite` mode, transport
|
||||
mode, endpoint, and actual listen address. It does not enumerate the root.
|
||||
The server reports the effective root, `ReadOnly`/`ReadWrite` mode, endpoint,
|
||||
and actual listen address. It does not enumerate the root.
|
||||
|
||||
## Standard interactions
|
||||
|
||||
The following examples use development HTTP for readability. The JSON is the
|
||||
standard `wip-https` profile; validators and operation `Bytes` are base64 body
|
||||
The following examples use the built-in HTTP listener. The JSON follows the
|
||||
standard WIP over HTTP binding; validators and operation `Bytes` are base64 body
|
||||
fields, never `ETag` or `If-Match` headers.
|
||||
|
||||
Observe only the root Object:
|
||||
|
||||
Reference in New Issue
Block a user