mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-03-25 10:53:05 -04:00
151 lines
6.7 KiB
Python
Executable File
151 lines
6.7 KiB
Python
Executable File
"""CONSTANTS for NetAlertX"""
|
|
|
|
import os
|
|
|
|
from config_paths import (
|
|
API_PATH_STR,
|
|
API_PATH_WITH_TRAILING_SEP,
|
|
APP_PATH_STR,
|
|
CONFIG_PATH_STR,
|
|
CONFIG_PATH_WITH_TRAILING_SEP,
|
|
DATA_PATH_STR,
|
|
DB_PATH_STR,
|
|
DB_PATH_WITH_TRAILING_SEP,
|
|
LOG_PATH_STR,
|
|
LOG_PATH_WITH_TRAILING_SEP,
|
|
PLUGINS_PATH_WITH_TRAILING_SEP,
|
|
REPORT_TEMPLATES_PATH_WITH_TRAILING_SEP,
|
|
)
|
|
|
|
# ===============================================================================
|
|
# PATHS
|
|
# ===============================================================================
|
|
|
|
applicationPath = APP_PATH_STR
|
|
dataPath = DATA_PATH_STR
|
|
configPath = CONFIG_PATH_STR
|
|
dbFolderPath = DB_PATH_STR
|
|
apiRoot = API_PATH_STR
|
|
logRoot = LOG_PATH_STR
|
|
|
|
dbFileName = "app.db"
|
|
confFileName = "app.conf"
|
|
|
|
confPath = CONFIG_PATH_WITH_TRAILING_SEP + confFileName
|
|
dbPath = DB_PATH_WITH_TRAILING_SEP + dbFileName
|
|
pluginsPath = PLUGINS_PATH_WITH_TRAILING_SEP.rstrip(os.sep)
|
|
logPath = LOG_PATH_WITH_TRAILING_SEP.rstrip(os.sep)
|
|
apiPath = API_PATH_WITH_TRAILING_SEP
|
|
reportTemplatesPath = REPORT_TEMPLATES_PATH_WITH_TRAILING_SEP
|
|
fullConfFolder = configPath
|
|
fullConfPath = confPath
|
|
fullDbPath = dbPath
|
|
vendorsPath = os.getenv("VENDORSPATH", "/usr/share/arp-scan/ieee-oui.txt")
|
|
vendorsPathNewest = os.getenv(
|
|
"VENDORSPATH_NEWEST", "/usr/share/arp-scan/ieee-oui_all_filtered.txt"
|
|
)
|
|
|
|
NATIVE_SPEEDTEST_PATH = os.getenv("NATIVE_SPEEDTEST_PATH", "/usr/bin/speedtest")
|
|
|
|
default_tz = "Europe/Berlin"
|
|
|
|
# ===============================================================================
|
|
# Magic strings
|
|
# ===============================================================================
|
|
|
|
NULL_EQUIVALENTS = ["", "null", "(unknown)", "(Unknown)", "(name not found)"]
|
|
|
|
# Convert list to SQL string: wrap each value in single quotes and escape single quotes if needed
|
|
NULL_EQUIVALENTS_SQL = ",".join("'" + v.replace("'", "''") + "'" for v in NULL_EQUIVALENTS)
|
|
|
|
# ===============================================================================
|
|
# SQL queries
|
|
# ===============================================================================
|
|
sql_devices_all = """
|
|
SELECT
|
|
*
|
|
FROM DevicesView
|
|
"""
|
|
|
|
sql_appevents = """select * from AppEvents order by dateTimeCreated desc"""
|
|
sql_devices_filters = """
|
|
SELECT DISTINCT 'devSite' AS columnName, devSite AS columnValue
|
|
FROM Devices WHERE devSite NOT IN ('', 'null') AND devSite IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devSourcePlugin' AS columnName, devSourcePlugin AS columnValue
|
|
FROM Devices WHERE devSourcePlugin NOT IN ('', 'null') AND devSourcePlugin IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devOwner' AS columnName, devOwner AS columnValue
|
|
FROM Devices WHERE devOwner NOT IN ('', 'null') AND devOwner IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devType' AS columnName, devType AS columnValue
|
|
FROM Devices WHERE devType NOT IN ('', 'null') AND devType IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devGroup' AS columnName, devGroup AS columnValue
|
|
FROM Devices WHERE devGroup NOT IN ('', 'null') AND devGroup IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devLocation' AS columnName, devLocation AS columnValue
|
|
FROM Devices WHERE devLocation NOT IN ('', 'null') AND devLocation IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devVendor' AS columnName, devVendor AS columnValue
|
|
FROM Devices WHERE devVendor NOT IN ('', 'null') AND devVendor IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devSyncHubNode' AS columnName, devSyncHubNode AS columnValue
|
|
FROM Devices WHERE devSyncHubNode NOT IN ('', 'null') AND devSyncHubNode IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devVlan' AS columnName, devVlan AS columnValue
|
|
FROM Devices WHERE devVlan NOT IN ('', 'null') AND devVlan IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devParentRelType' AS columnName, devParentRelType AS columnValue
|
|
FROM Devices WHERE devParentRelType NOT IN ('', 'null') AND devParentRelType IS NOT NULL
|
|
UNION
|
|
SELECT DISTINCT 'devSSID' AS columnName, devSSID AS columnValue
|
|
FROM Devices WHERE devSSID NOT IN ('', 'null') AND devSSID IS NOT NULL
|
|
ORDER BY columnName;
|
|
"""
|
|
|
|
sql_devices_stats = f"""
|
|
SELECT
|
|
onlineDevices as online,
|
|
downDevices as down,
|
|
allDevices as 'all',
|
|
archivedDevices as archived,
|
|
(SELECT COUNT(*) FROM Devices a WHERE devIsNew = 1) as new,
|
|
(SELECT COUNT(*) FROM Devices a WHERE devName IN ({NULL_EQUIVALENTS_SQL}) OR devName IS NULL) as unknown
|
|
FROM Online_History
|
|
ORDER BY scanDate DESC
|
|
LIMIT 1
|
|
"""
|
|
sql_events_pending_alert = "SELECT * FROM Events where evePendingAlertEmail is not 0"
|
|
sql_settings = "SELECT * FROM Settings"
|
|
sql_plugins_objects = "SELECT * FROM Plugins_Objects"
|
|
sql_language_strings = "SELECT * FROM Plugins_Language_Strings"
|
|
sql_notifications_all = "SELECT * FROM Notifications"
|
|
sql_online_history = "SELECT * FROM Online_History"
|
|
sql_plugins_events = "SELECT * FROM Plugins_Events"
|
|
sql_plugins_history = "SELECT * FROM Plugins_History ORDER BY dateTimeChanged DESC"
|
|
sql_new_devices = """SELECT * FROM (
|
|
SELECT eveIp as devLastIP,
|
|
eveMac as devMac,
|
|
MAX(eveDateTime) as lastEvent
|
|
FROM Events_Devices
|
|
WHERE evePendingAlertEmail = 1
|
|
AND eveEventType = 'New Device'
|
|
GROUP BY eveMac
|
|
ORDER BY lastEvent
|
|
) t1
|
|
LEFT JOIN
|
|
( SELECT devName, devMac as devMac_t2 FROM Devices ) t2
|
|
ON t1.devMac = t2.devMac_t2"""
|
|
|
|
|
|
sql_generateGuid = """
|
|
lower(
|
|
hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||
|
|
substr(hex( randomblob(2)), 2) || '-' ||
|
|
substr('AB89', 1 + (abs(random()) % 4) , 1) ||
|
|
substr(hex(randomblob(2)), 2) || '-' ||
|
|
hex(randomblob(6))
|
|
)
|
|
"""
|