Skip to content

Add Keycloak-gated catalog search (mdb Stage 2) - #89

Open
kirillmitrofanov wants to merge 2 commits into
mainfrom
feat/catalog-search
Open

Add Keycloak-gated catalog search (mdb Stage 2)#89
kirillmitrofanov wants to merge 2 commits into
mainfrom
feat/catalog-search

Conversation

@kirillmitrofanov

@kirillmitrofanov kirillmitrofanov commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Keycloak-gated /api/catalog/{statistics,search,lookup,datasets}/ proxy to private mdb (keyword search only; search token never in the browser).
  • Catalog UI at /catalog plus four MCP tools on the same surface.
  • Rebuild-from-main ops: pin Docker network neuro-workflow_workflow, HTTP contract (deployment/MDB_CLIENT_CONTRACT.md), and deploy runbook (deployment/DEPLOY_MDB_CATALOG.md). MDB_API_TOKEN stays in gitignored gui/workflow_backend/.env (never VITE_*, never committed).
  • No public 8004, no nginx /mdb, no catalog copy into Postgres, no sync/chat/agent routes, no MDB_ADMIN_TOKEN in NeuroWorkflow.

Test plan

  • cd gui/workflow_backend && poetry run pytest django-project/tests/test_catalog.py -q
  • cd gui/workflow_frontend && npm test && npx tsc -b
  • Confirm frontend src/ has no 8004 / VITE_MDB
  • Follow deployment/DEPLOY_MDB_CATALOG.md: mdb joins neuro-workflow_workflow as mdb-mindsdb; backend curl http://mdb-mindsdb:8004/ → 200
  • Set MDB_BASE_URL + MDB_API_TOKEN in backend .env only, SIGHUP gunicorn, rebuild frontend only, then login → Catalog → search mouse → open a DANDI row

nw-kirill added 2 commits August 28, 2026 11:42
Stage 2 exposes keyword search, statistics, lookup, and browse in the UI and MCP without publishing mdb or putting tokens in the frontend.
…mdb contract.

Pin neuro-workflow_workflow so mdb-mindsdb can attach as a hostname. Add the HTTP contract and deploy runbook with env placeholders only — tokens stay in gitignored .env files.
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