feat: content filtering to block secrets in messages#2
Merged
Killea merged 2 commits intoKillea:mainfrom Feb 28, 2026
Merged
Conversation
Block known secret patterns (AWS keys, GitHub tokens, private keys, JWT, Slack tokens) from being persisted in messages. - New src/content_filter.py: regex-based SECRET_PATTERNS + check_content() - src/config.py: CONTENT_FILTER_ENABLED env var (default: enabled) - src/db/crud.py: content check in msg_post() before DB insertion - src/main.py: HTTP 400 response when ContentFilterError raised - src/tools/dispatch.py: JSON error response via MCP tool - test_content_filter_unit.py: 14 unit and CRUD-level tests (no server needed) - test_e2e.py: 4 integration tests for running server Backward-compatible: AGENTCHATBUS_CONTENT_FILTER_ENABLED=false to disable. No schema changes required. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Messages could expose secrets if an agent/user pastes API keys or tokens in a thread.
Solution
Regex-based content filter in msg_post() before any DB write.
Changes
Patterns: AWS keys, GitHub tokens (ghp/gho/ghs), private keys, Slack tokens, Google API keys
Backward Compatible: set AGENTCHATBUS_CONTENT_FILTER_ENABLED=false to disable. No schema changes.
Tests: 14 passed in 0.99s (unit + CRUD, no server required)