ProjectBuild a Permission-Aware Knowledge Hub as an MCP Server: the explanation · Module 14: The audit log and redaction · part 16 of 22
Part 16 · Module 14: The audit log and redaction

Module 14: The audit log and redaction

25 min read·
About 40 minutes · Needs: Module 7 (groups, visibility and who can read what), Module 11 (the tools and errors as results), Module 13 (create_issue and its confirm statuses) · Code: server/wayfinder/audit.py, server/wayfinder/mcp/server.py, server/wayfinder/api/routes.py, console/src/pages/Audit.tsx

Where this fits

WHERE THIS FITS Wayfinder this module AI CLIENTS the model writes the answer CONSOLE React, nginx WAYFINDER SERVER Starlette, mcp 2.3 RETRIEVAL permission filter before ranking INDEXING fastembed DATA Postgres 17 OPERATIONS evals, Docker, Cloud Run Claude Code HTTP + OAuth Cursor HTTP + OAuth Claude Desktop stdio bridge or connector MCP Inspector debugging, quick OAuth Web console React: search, audit, connect nginx one URL: /mcp, OAuth, /api MCP layer tools, resources Elicitation confirm create_issue OAuth 2.1 auth server, PKCE Tokens, sessions wf_pat_, cookie Console API /api REST Audit log every call, redacted stdio bridge wayfinder-stdio Guards proxy secret, limits Access rules groups per team Hybrid search pgvector + full text Fusion, boosts RRF, freshness, ADRs Knowledge decisions, owners Indexer loader, chunker bge-small-en fastembed, CPU PostgreSQL pgvector, full text Seed company Tidewater Freight Evaluation retrieval, 0 leaks Containers Docker Compose Deploy Cloud Run, Cloud SQL CI/CD GitHub Actions, WIF
The parts this module covers (blue): the audit log the MCP layer writes on every tool call, the console API and page that read it back, and the access rules that decide what each reader may see in a row.

Every tool call that reaches Wayfinder, from any client, leaves one row in the audit log. This module follows a row from the moment it is written in the MCP layer to the moment a lead, a security engineer or a VP reads it in the console, and shows the rule that was added after a security review: being allowed to see a row is not the same as being allowed to read what it touched.

The rest of this project is yours to keep

This project is bought on its own, once, and stays readable afterwards, including the parts added to it later.

Or open everything with a plan