How michael-dahlke/cyber-news-tool works
Cyber News Tool is a macOS cybersecurity-news research app. Users browse categorized and MSRC feeds, open extracted articles, search the archive, and optionally generate KQL from article content; source management and settings configure those workflows. React views call Rust commands through Tauri, with Rust services handling feed ingestion, extraction, search, caching, and KQL, backed by SQLite and OS keychain storage. README documents the major capabilities, while several core handlers and UI modules were not excerpted, so links that depend on their internal call paths are omitted.
Main entry points: App.tsx App routes · articleService.ts Article IPC client · feedService.ts Feed IPC client · mod.rs SQLite archive
Components 24
Desktop interface
- App routes
src/App.tsx - Settings
src/components/Settings/SettingsView.tsx
News and reading
- News dashboard
src/components/Dashboard/DashboardView.tsx - MSRC advisories
src/components/Dashboard/MSRCView.tsx - Source browser
src/components/Sources/SourcesView.tsx - Source manager
src/components/Settings/SourceManager.tsx - Article reader
src/components/Reader/ReaderView.tsx - WebView fallback
src/components/Reader/WebViewFallback.tsx
Rust application services
- Article IPC client
src/services/articleService.ts - Feed IPC client
src/services/feedService.ts - Article commands
src-tauri/src/commands/articles.rs - Feed commands
src-tauri/src/commands/feeds.rs - Feed processing
src-tauri/src/services/feed_service.rs - Content extraction
src-tauri/src/services/content_extractor.rs - Settings commands
src-tauri/src/commands/settings.rs
Persistence and secrets
- OS keychain
src-tauri/src/services/keychain.rs - SQLite archive
src-tauri/src/db/mod.rs
Search and KQL
- Search results
src/components/Search/SearchResults.tsx - Search IPC client
src/services/searchService.ts - Search commands
src-tauri/src/commands/search.rs - Full-text search
src-tauri/src/services/search_service.rs - KQL generator
src/components/KQL/KQLPanel.tsx - KQL generation
src-tauri/src/services/kql_service.rs
Other components
- Researcher
Connections 29
- Researcher → App routes: opens
README.md - App routes → News dashboard: routes to
src/App.tsx - App routes → MSRC advisories: routes to
src/App.tsx - App routes → Article reader: routes to
src/App.tsx - App routes → Search results: routes to
src/App.tsx - App routes → Settings: routes to
src/App.tsx - App routes → Source browser: routes to
src/App.tsx - Researcher → Source manager: manages feeds
README.md - News dashboard → Feed IPC client: refreshes feeds
src/components/Dashboard/DashboardView.tsx - News dashboard → Article IPC client: loads articles
src/components/Dashboard/DashboardView.tsx - MSRC advisories → Article IPC client: loads advisories
src/components/Dashboard/MSRCView.tsx - Source manager → Feed IPC client: manages sources
src/components/Settings/SourceManager.tsx - Source browser → Feed IPC client: lists sources
src/components/Sources/SourcesView.tsx - Article reader → Article IPC client: loads content
src/components/Reader/ReaderView.tsx - Article reader → WebView fallback: renders fallback
src/components/Reader/ReaderView.tsx - Feed IPC client → Feed commands: invokes
src/services/feedService.ts - Article IPC client → Article commands: invokes
src/services/articleService.ts - Search results → Search IPC client: submits query
src/components/Search/SearchResults.tsx - Search IPC client → Search commands: invokes
src/services/searchService.ts - Search commands → Full-text search: executes search
src-tauri/src/commands/search.rs - Full-text search → SQLite archive: queries FTS5
src-tauri/src/services/search_service.rs - KQL generator → KQL generation: requests generation
- Settings → Settings commands: configures settings
- Feed commands → Feed processing: dispatches feed work
- Feed processing → SQLite archive: stores articles
src-tauri/src/services/feed_service.rs - Article commands → Content extraction: extracts content
- Article commands → SQLite archive: reads article data
- KQL generation → OS keychain: reads API secret
src-tauri/src/services/kql_service.rs - KQL generation → SQLite archive: stores suggestions
src-tauri/src/services/kql_service.rs