Skip to content

docs: README in the shared Zentinel format - #4

Merged
raffaelschneider merged 1 commit into
mainfrom
docs/readme
Oct 21, 2026
Merged

raffaelschneider merged 1 commit into
mainfrom
docs/readme

Conversation

@raffaelschneider

Copy link
Copy Markdown
Contributor

Rewrites the README to the org-wide standard in zentinelproxy/design#2 (readme/STANDARD.md): the shared lockup header, flat badges in the brand colors, the standard section order and footer. Commands, config keys, features and links were checked against the code; the quick-start KDL passes zentinel test.

Corrections:

  • Proxy KDL attached the agent with a route-level agents key, which Zentinel ignores (so the agent was never called); replaced with a filter-based config validated by zentinel test, including the waf { body-inspection } block without which no body reaches the agent
  • UDS mode was described as "v1 compatibility via a v1 adapter"; both transports speak v2, and --grpc-address replaces the socket rather than adding to it
  • Short flag for --log-level is -l, and RUST_LOG is not read (README showed RUST_LOG=debug)
  • Missing config file falls back to defaults (not documented)
  • Introspection allowed_clients was shown with a CIDR; matching is exact, and neither IP nor header matching works because the body is analyzed without headers or client IP
  • Field-level authorization presented as working; with headers unavailable it denies every matched field, and nested Type.field selectors cannot match without a schema
  • Persisted queries: allowlist mode trusts the client-supplied APQ hash, hash-only APQ requests are rejected, and cache mode does nothing; README claimed APQ compatibility and hash tracking
  • "Live configuration push" claimed; Zentinel 0.6.50 does not forward agent config
  • Debug headers and the block response's Content-Type are sent from the body phase and dropped by Zentinel 0.6.50
  • Documented that GET queries, non-final body chunks and bodies cut at max-inspection-bytes are not analyzed
  • Removed CONTRIBUTING.md link (file does not exist), security@raskell.io contact, ASCII architecture diagram and example scenarios
  • License section now states Apache-2.0 from Cargo.toml; the repository has no LICENSE file

- Proxy KDL attached the agent with a route-level `agents` key, which Zentinel ignores (so the agent was never called); replaced with a filter-based config validated by `zentinel test`, including the `waf { body-inspection }` block without which no body reaches the agent
- UDS mode was described as "v1 compatibility via a v1 adapter"; both transports speak v2, and --grpc-address replaces the socket rather than adding to it
- Short flag for --log-level is -l, and RUST_LOG is not read (README showed RUST_LOG=debug)
- Missing config file falls back to defaults (not documented)
- Introspection allowed_clients was shown with a CIDR; matching is exact, and neither IP nor header matching works because the body is analyzed without headers or client IP
- Field-level authorization presented as working; with headers unavailable it denies every matched field, and nested `Type.field` selectors cannot match without a schema
- Persisted queries: allowlist mode trusts the client-supplied APQ hash, hash-only APQ requests are rejected, and cache mode does nothing; README claimed APQ compatibility and hash tracking
- "Live configuration push" claimed; Zentinel 0.6.50 does not forward agent config
- Debug headers and the block response's Content-Type are sent from the body phase and dropped by Zentinel 0.6.50
- Documented that GET queries, non-final body chunks and bodies cut at max-inspection-bytes are not analyzed
- Removed CONTRIBUTING.md link (file does not exist), security@raskell.io contact, ASCII architecture diagram and example scenarios
- License section now states Apache-2.0 from Cargo.toml; the repository has no LICENSE file
@raffaelschneider
raffaelschneider merged commit d33977c into main Oct 21, 2026
3 checks passed
@raffaelschneider
raffaelschneider deleted the docs/readme branch October 21, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant