feat: initial T-Pot attack map with Spanish UI and Docker support
- Full Spanish interface (all UI text, popups, charts, tables) - Dark and light mode support - Disclaimer banner: no data logged, public European service - Footer: Servicio ofrecido por Cloud Host (cloudhost.es) - Docker: single container (Redis + DataServer + AttackMapServer) - Remote T-Pot support via ELASTICSEARCH_URL env var (direct or SSH tunnel) - Based on telekom-security/t-pot-attack-map (Apache 2.0) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
46
static/cache-bridge.js
Normal file
46
static/cache-bridge.js
Normal file
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* Cache Bridge - Connection between dashboard cache and map
|
||||
* Provides functions for map.js to interact with the cache system
|
||||
*/
|
||||
|
||||
// Global function to restore attack to map during cache restoration
|
||||
window.restoreAttackToMap = function(event) {
|
||||
// This function will be called by dashboard.js during cache restoration
|
||||
// map.js can override this function to handle restored attacks
|
||||
console.log('[CACHE-BRIDGE] Attack restoration requested:', event);
|
||||
|
||||
// If map.js has defined a restoration handler, use it
|
||||
if (typeof window.processRestoredAttack === 'function') {
|
||||
window.processRestoredAttack(event);
|
||||
}
|
||||
};
|
||||
|
||||
// Global function to get cache statistics
|
||||
window.getCacheStatistics = function() {
|
||||
if (window.attackMapDashboard && window.attackMapDashboard.attackCache) {
|
||||
return window.attackMapDashboard.attackCache.getStatistics();
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
// Global function to clear cache (for debugging)
|
||||
window.clearAttackCache = function() {
|
||||
if (window.attackMapDashboard && window.attackMapDashboard.attackCache) {
|
||||
// Clear based on storage type
|
||||
if (window.attackMapDashboard.attackCache.storageType === 'indexeddb') {
|
||||
// Clear IndexedDB
|
||||
const deleteRequest = indexedDB.deleteDatabase('TPotAttackCache');
|
||||
deleteRequest.onsuccess = () => console.log('[CACHE] IndexedDB cleared');
|
||||
deleteRequest.onerror = (e) => console.error('[CACHE] Failed to clear IndexedDB:', e);
|
||||
} else {
|
||||
// Clear LocalStorage
|
||||
localStorage.removeItem('tpot_attack_cache');
|
||||
console.log('[CACHE] LocalStorage cleared');
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
console.log('[CACHE-BRIDGE] Cache bridge initialized');
|
||||
Reference in New Issue
Block a user