72 lines
3.5 KiB
Python
72 lines
3.5 KiB
Python
import os
|
|
from datetime import timedelta
|
|
from urllib.parse import quote_plus
|
|
|
|
#Настройки телеграм
|
|
TOKEN = os.getenv('TELEGRAM_TOKEN')
|
|
ADMINS = os.getenv('TELEGRAM_ADMINS', '')
|
|
ADMINS_LIST = [int(admin_id.strip()) for admin_id in ADMINS.split(',') if admin_id.strip().isdigit()]
|
|
REGIONS_PER_PAGE = os.getenv('REGIONS_PER_PAGE', 10)
|
|
#Настройки Zabbix
|
|
ZABBIX_API_TOKEN = os.getenv('ZABBIX_API_TOKEN')
|
|
ZABBIX_URL = os.getenv('ZABBIX_URL')
|
|
ZABBIX_VERIFY_SSL = os.getenv('ZABBIX_VERIFY_SSL', True)
|
|
ZABBIX_TZ = os.getenv('TZ', 'Europe/Moscow')
|
|
#Настройки Flask и Telegram bot
|
|
basedir = os.path.abspath(os.path.dirname(__file__))
|
|
DB_ABS_PATH = os.path.join(basedir, 'db/telezab.db')
|
|
SQLALCHEMY_DATABASE_URI = f'sqlite:///{DB_ABS_PATH}'
|
|
SUPPORT_EMAIL = os.getenv("SUPPORT_EMAIL", "shiftsupport-rtmis@rtmis.ru")
|
|
HELP_URL = os.getenv("HELP_URL", "https://confluence.is-mis.ru/pages/viewpage.action?pageId=416785183")
|
|
#Настройки RabbitMQ
|
|
RABBITMQ_HOST = os.getenv('RABBITMQ_HOST', 'localhost')
|
|
RABBITMQ_PORT = int(os.environ.get("RABBITMQ_PORT", "5672"))
|
|
RABBITMQ_LOGIN = os.getenv('RABBITMQ_LOGIN', 'admin')
|
|
RABBITMQ_PASS = os.getenv('RABBITMQ_PASS', 'admin')
|
|
RABBITMQ_QUEUE = os.environ.get("RABBITMQ_QUEUE", "telegram_notifications")
|
|
RABBITMQ_NOTIFICATIONS_QUEUE = os.environ.get("RABBITMQ_NOTIFICATIONS_QUEUE", "notifications_queue")
|
|
RABBITMQ_VHOST = os.getenv("RABBITMQ_VHOST", "/")
|
|
RABBITMQ_VHOST_ENCODED = quote_plus(RABBITMQ_VHOST)
|
|
RABBITMQ_URL_FULL = (
|
|
f"amqp://{RABBITMQ_LOGIN}:{RABBITMQ_PASS}@{RABBITMQ_HOST}:{RABBITMQ_PORT}/{RABBITMQ_VHOST_ENCODED}"
|
|
)
|
|
# Mailing settings
|
|
MAILING_MAX_WORKERS = int(os.getenv("MAILING_MAX_WORKERS", "16"))
|
|
MAILING_RATE_LIMIT = int(os.getenv("MAILING_RATE_LIMIT", "25"))
|
|
MAILING_MAX_RETRIES = int(os.getenv("MAILING_MAX_RETRIES", "5"))
|
|
# Настройки Flask-LDAP3-login
|
|
LDAP_HOST = os.getenv('LDAP_HOST', 'localhost')
|
|
LDAP_PORT = int(os.getenv('LDAP_PORT', 389))
|
|
LDAP_USE_SSL = os.getenv('LDAP_USE_SSL', 'False').lower() == 'true'
|
|
LDAP_BASE_DN = os.getenv('LDAP_BASE_DN', 'DC=tech,DC=local')
|
|
LDAP_BIND_USER_DN = os.getenv('LDAP_BIND_USER_DN', 'CN=sa_tgbot,OU=Service Accounts,DC=tech,DC=local')
|
|
LDAP_USER_DN = os.getenv('LDAP_USER_DN', 'RMIS')
|
|
LDAP_USER_PASSWORD = os.getenv('LDAP_USER_PASSWORD', '***')
|
|
LDAP_USER_OBJECT_FILTER = os.getenv('LDAP_USER_OBJECT_FILTER', '(objectClass=person)')
|
|
LDAP_USER_RDN_ATTR = os.getenv('LDAP_USER_RDN_ATTR', 'sAMAccountName')
|
|
LDAP_USER_LOGIN_ATTR = os.getenv('LDAP_USER_LOGIN_ATTR', 'sAMAccountName')
|
|
LDAP_USER_SEARCH_SCOPE = os.getenv('LDAP_USER_SEARCH_SCOPE', 'SUBTREE')
|
|
LDAP_SCHEMA = os.getenv('LDAP_SCHEMA', 'active_directory')
|
|
|
|
|
|
|
|
class Config:
|
|
basedir = os.path.abspath(os.path.dirname(__file__))
|
|
|
|
# SQLAlchemy
|
|
SQLALCHEMY_DATABASE_URI = f"sqlite:///{os.path.join(basedir, 'db/telezab.db')}"
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
|
|
# Flask session
|
|
SECRET_KEY = os.environ.get('SECRET_KEY', 'your-secret-key')
|
|
SESSION_COOKIE_SECURE = os.getenv('SESSION_COOKIE_SECURE', 'True').lower() == 'true'
|
|
SESSION_COOKIE_HTTPONLY = os.getenv('SESSION_COOKIE_HTTPONLY', 'True').lower() == 'true'
|
|
SESSION_COOKIE_SAMESITE = os.getenv('SESSION_COOKIE_SAMESITE', 'Lax')
|
|
PERMANENT_SESSION_LIFETIME = timedelta(
|
|
seconds=int(os.getenv('PERMANENT_SESSION_LIFETIME_SECONDS', 3600))
|
|
)
|
|
SESSION_COOKIE_MAX_AGE = int(os.getenv('SESSION_COOKIE_MAX_AGE', 3600))
|
|
|
|
# Дополнительное (если используется)
|
|
TIMEZONE = os.getenv('TZ', 'Europe/Moscow')
|