Skip to content

feat(privacy-proxy-ui): RBAC admin panel for the privacy proxy#303

Open
AnshuJalan wants to merge 1 commit into
feat/privacy-proxyfrom
feat/privacy-proxy-ui
Open

feat(privacy-proxy-ui): RBAC admin panel for the privacy proxy#303
AnshuJalan wants to merge 1 commit into
feat/privacy-proxyfrom
feat/privacy-proxy-ui

Conversation

@AnshuJalan
Copy link
Copy Markdown

@AnshuJalan AnshuJalan commented May 17, 2026

Summary

  • New packages/privacy-proxy-ui — React 18 + Vite 5 + TS admin panel that surfaces every privacy-proxy admin capability (1–16) behind a wallet-signature sign-in.
  • Stack and branding match cross-chain-dex-ui (wagmi/RainbowKit/viem, TanStack Query, Tailwind on the surge-* palette, react-hot-toast). Only new top-level dep is react-router-dom@^6 for deep-linkable URLs.
  • Local-dev: Vite proxies /api/* to the privacy-proxy on :8080 so browsers see same-origin and no CORS layer is needed on the Rust side.

Surfaces

  • Login via EIP-191 wallet signature; session token stored in localStorage, used as bearer until expiry. 401 from the proxy auto-drops the session.
  • Dashboard with counts: members (split by role), rules + entries, lambdas, gated RPC endpoints, declared roles.
  • Members — list/filter/upsert with typed user attributes (kyc, blacklisted); delete (self-delete guarded); revoke sessions.
  • Access rules — list/filter/create/replace/delete; per-entry add/edit-lambda/remove on the rule detail page. Selector input offers a synthetic-RPC-method dropdown OR a 4-byte hex picker with a top-10 common-selector list + custom-hex fallback.
  • Lambdas / Gated RPC endpoints / Roles — read-only reference pages (amber "Read-only" tag). The Lambdas page renders each expected_selector as an aqua chip with the resolved signature underneath (via a local common-selector table).

New package that exposes every privacy-proxy admin capability via an
enterprise-styled UI. Wallet sign-in once per token lifetime, then
bearer auth on every call.

Stack matches cross-chain-dex-ui (React 18 + Vite 5 + TypeScript 5,
wagmi/RainbowKit/viem, TanStack Query, Tailwind with the surge-* palette,
react-hot-toast). Adds react-router-dom for deep-linkable URLs.

Surfaces:
- Login screen via wallet signature; session cached in localStorage and
  enforced on every protected route.
- Dashboard counts (members by role, rules + entries, lambdas, gated RPC
  endpoints, declared roles).
- Members: list/filter/upsert (typed user attributes — kyc, blacklisted),
  delete (self-delete guarded), revoke active sessions.
- Access rules: list/filter/create/replace/delete; per-entry add, edit
  (lambda), and remove on the detail page. Selector input offers either
  a synthetic RPC method dropdown or the 4-byte hex with a top-10
  common-selector picker plus a custom-hex fallback.
- Read-only references: Lambdas (per-role, with expected selectors and
  signatures), Gated RPC endpoints, Roles. All three carry an amber
  "Read-only" tag.

Local-dev wiring: Vite proxies /api/* → privacy-proxy on 8080 so the
proxy package needs no CORS layer. Defaults work against
http://127.0.0.1:8080 out of the box.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@AnshuJalan AnshuJalan changed the title feat(privacy-proxy-ui): wallet-auth admin panel for the privacy proxy feat(privacy-proxy-ui): RBAC admin panel for the privacy proxy May 17, 2026
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