KUMA
Мониторинг whitelist и почтовые алерты. Версия __VERSION__.
+ +Готово к проверке+
diff --git a/History/2026-08-26.md b/History/2026-08-26.md index e8775a9..137a271 100644 --- a/History/2026-08-26.md +++ b/History/2026-08-26.md @@ -125,7 +125,7 @@ WHITELIST_TIMEOUT=10 ## Версионирование -Версия KUMA установлена в `0.0.1`. В дальнейшем увеличивается только третья позиция: `0.0.*`. +Версия KUMA установлена в `0.0.2`. В дальнейшем увеличивается только третья позиция: `0.0.*`. ## SMTP-алерты @@ -141,3 +141,5 @@ SMTP_SUBJECT_PREFIX=[KUMA] ``` Для сортировки почты добавлен префикс темы `[KUMA]`. `SMTP_FROM` остаётся реальным адресом SMTP-аккаунта; несуществующий адрес отправителя не используется. + +Добавлен UI на `/` для ручной проверки whitelist и отправки алерта. Whitelist URL предустановлен: `https://whitelist.nodejsk8s.services.ngcloud.ru/v2/app`. diff --git a/src/app.py b/src/app.py index e6bd981..47d3f4e 100644 --- a/src/app.py +++ b/src/app.py @@ -4,11 +4,11 @@ import smtplib import ssl from email.message import EmailMessage -from flask import Flask, jsonify +from flask import Flask, jsonify, request import requests app = Flask(__name__) -VERSION = "0.0.1" +VERSION = "0.0.2" WHITELIST_URL = os.getenv( "WHITELIST_URL", "https://whitelist.nodejsk8s.services.ngcloud.ru/v2/app", @@ -26,13 +26,14 @@ def mariadb_configuration(): } -def check_whitelist(): +def check_whitelist(url=None): + url = url or WHITELIST_URL headers = {} token = os.getenv("WHITELIST_TOKEN") if token: headers["Authorization"] = f"Bearer {token}" response = requests.get( - WHITELIST_URL, + url, headers=headers, allow_redirects=False, timeout=int(os.getenv("WHITELIST_TIMEOUT", "10")), @@ -40,7 +41,7 @@ def check_whitelist(): content_type = response.headers.get("Content-Type", "") body = response.json() if "json" in content_type else response.text return { - "url": WHITELIST_URL, + "url": url, "status": response.status_code, "location": response.headers.get("Location"), "body": body, @@ -66,13 +67,20 @@ def send_alert(subject, body): @app.get("/") def index(): - return jsonify({ - "service": "kuma", - "version": VERSION, - "state": "stateless", - "target": "https://whitelist.nodejsk8s.services.ngcloud.ru/", - "mariadb": mariadb_configuration(), - }) + return """ +
+Мониторинг whitelist и почтовые алерты. Версия __VERSION__.
+ +Готово к проверке+