liquidmetal-dev / liquidmetal-dev/brigade
M4 follow-up: warn when north-edge gRPC auth token unset (permissive default)
- Dominant language
- Elixir
- Stars
- 2
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Context
The north-edge `AuthInterceptor` requires `authorization: Bearer ` on every RPC
**only when a token is configured**. With `auth_token: nil` (the default) the
interceptor is a pass-through — safe for local dev, but a silent risk if it ships to
prod unset. There's no startup signal that the gRPC server came up with auth disabled.
## Evidence
- `lib/brigade/grpc/auth_interceptor.ex:5-6` — moduledoc: *"When the token is unset
(default), auth is disabled — the permissive local-dev posture."*
- `lib/brigade/grpc/auth_interceptor.ex:20-22` — the `nil` branch calls `next` with no
check.
- `config/config.exs:18` — `auth_token: nil` ("nil = auth disabled").
- `config/config.exs:15` — `start_server: true` (the server is on by default).
## Scope
- Emit a **single warning at gRPC server start** when `start_server` is true and
`auth_token` is `nil`, e.g. *"north-edge gRPC auth disabled (auth_token unset) —
all clients accepted."*
- Mirror the quorum-warning pattern (m3-03) for a consistent operator-posture signal.
## Acceptance
- Token set → silent.
- Token `nil` with the server enabled → single clear warning at boot.
- `AuthInterceptor` request-time behaviour is unchanged.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with lib/brigade/grpc/auth_interceptor.ex and config/config.exs, then follow the gRPC server startup path and the quorum-warning pattern from m3-03. Confirm that a configured token stays silent, while auth_token: nil with start_server: true emits one clear boot warning and request-time interceptor behavior is unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir, grpc
- Domain
- authentication, backend
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100