---
id: w7/m5/t004
title: Dashboard — Key Value Networking section (allowlist editor)
worker: worker7
status: done
estimate: 45m
depends_on: [w7/m5/t003]
---

## Objective

Give the dashboard a Key Value Networking section where a user views and edits the instance's IP allowlist — mirroring how managed Postgres surfaces its allowlist, and closing the "no per-instance IP-allowlist UI" gap the parity ledger records for KV.

## Context

- `dashboard/src/routes/keyvalue/$id…` — the KeyValue detail page (status/plan, connection-info reveal, suspend/resume, typed-name delete). Add a Networking section here.
- The managed-Postgres allowlist UI (if present) is the visual/interaction reference; reuse its component/pattern rather than inventing one.
- `dashboard/CLAUDE.md` — read before editing; GraphQL client is Apollo over bex-api's GraphQL (the t003 `ipAllowList` field).

## Steps

1. Add a Networking section to the KeyValue detail route: list current CIDRs, add/remove, save via the GraphQL update from t003.
2. Reuse the Postgres allowlist component/pattern if one exists; otherwise a minimal CIDR-list editor consistent with the KeyValue page's existing sections.
3. Handle the empty-list (open) state explicitly; reflect the public/internal-only distinction (allowlist only meaningful when public).
4. `cd dashboard && <build/typecheck>` per dashboard/CLAUDE.md.

## Files

- `dashboard/src/routes/keyvalue/$id…` (+ a feature component under `dashboard/src/features/…`)

## Acceptance criteria

- [ ] The KeyValue detail page has a Networking section that reads and writes `ipAllowList` via GraphQL.
- [ ] Empty-list (open) and internal-only states render sensibly; save round-trips.

## Out of scope

- Backend field work (t003); parity audit (t005).
