You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add interactive content keyword approval with whitelist/blacklist
- Adds deny_content_keywords policy that scans request bodies for
sensitive terms and prompts users to allow or block before forwarding
to LLMs.
- Users can permanently whitelist or blacklist files to avoid
repeated prompts. Includes desktop UI modal and headless fallback.
When a request body contains a file matching a deny pattern, Egressor returns `403` to the client and logs the blocked request — the payload never reaches the LLM.
157
162
163
+
### Content keywords (interactive approval)
164
+
165
+
When `deny_content_keywords` is set, request bodies are scanned for these keywords (case-insensitive). If a match is found, Egressor pauses the request and prompts the user in the desktop UI with four options:
166
+
167
+
- **Allow Once** — forward this request, don't remember
168
+
- **Allow Always** — forward and add the file to the whitelist (never ask again)
169
+
- **Block Once** — return 403, don't remember
170
+
- **Block Always** — return 403 and add the file to the blacklist (auto-block in future)
171
+
172
+
The whitelist and blacklist are persisted to `config.yaml` via "Save to config". In headless mode, keyword matches are blocked by default (no UI to prompt).
173
+
158
174
---
159
175
160
176
## Desktop UI
@@ -163,7 +179,7 @@ The default mode opens a native desktop window (built with Wails + React):
163
179
164
180
- **Sessions tab** — live table of intercepted connections with method, host, status, file count
165
181
- **Detail panel** — click a session to see full request/response headers, body (JSON-formatted), and detected files
166
-
- **Policy tab** — manage allowed directories and deny file patterns, save to config
0 commit comments