mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 05:30:46 +08:00
Key alerts now deliver only via the DSH hub; Modal Body no longer flex-shrinks the rules rows to empty. Co-authored-by: Cursor <cursoragent@cursor.com>
97 lines
4.7 KiB
Text
97 lines
4.7 KiB
Text
NETX_DATABASE_URL=postgresql+psycopg://netx:netx@127.0.0.1:5432/netx
|
|
# Fernet key for managed NE passwords (python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")
|
|
NETX_CREDENTIAL_SECRET_KEY=
|
|
NETX_NE_CONNECT_MAX_WORKERS=5
|
|
NETX_NE_CONNECT_TIMEOUT_SEC=30
|
|
# Managed NE CLI: max commands per exec request (default 5, hard cap 50). Lab can set 10+.
|
|
NETX_NE_EXEC_MAX_COMMANDS=5
|
|
NETX_HOST=127.0.0.1
|
|
NETX_PORT=8890
|
|
NETX_VENDOR=ZTE
|
|
NETX_SOURCE_TYPE=gateway_export_excel
|
|
NETX_PARSER_CONFIG=netx_api/config/parsers/zte_alarm_monitor_v1.yaml
|
|
NETX_OCLAW_ANALYZE_URL=http://127.0.0.1:8787/admin/api/ops-ai/analyze-sync
|
|
NETX_OCLAW_ANALYZE_TOKEN=
|
|
NETX_OCLAW_HEALTH_URL=http://127.0.0.1:8787/admin/api/ops-ai/health
|
|
NETX_UME_BASE_URL=https://10.227.157.143:18014
|
|
NETX_UME_USERNAME=
|
|
NETX_UME_PASSWORD=
|
|
NETX_UME_AUTH_HEADER=accessToken
|
|
NETX_UME_CONTENT_TYPE=application/yang-data+json;charset=UTF-8
|
|
NETX_UME_TOKEN_TTL_S=1800
|
|
NETX_UME_TOKEN_REFRESH_SKEW_S=60
|
|
NETX_UME_TOKEN_PATH=/restconf/operations/zte-security:oauth_token
|
|
NETX_UME_TOKEN_HANDSHAKE_PATH=/restconf/operations/zte-security:oauth_handshake
|
|
NETX_UME_TOKEN_LOGOUT_PATH=/restconf/operations/zte-security:oauth_token
|
|
NETX_UME_NE_PATH=/restconf/data/zte-resources-module:network-elements
|
|
NETX_UME_ALARMS_PATH=/restconf/data/zte-alarms:alarms/alarm-list
|
|
NETX_UME_TOPO_NODES_PATH=/restconf/data/zte-resources-module:TopoNodes
|
|
NETX_UME_TOPOLOGICAL_LINKS_PATH=/restconf/data/zte-resources-module:TopologicalLinks
|
|
NETX_UME_SYNC_TOPOLOGY_AUTO_ENABLED=true
|
|
NETX_UME_SYNC_TOPOLOGY_EVERY_HOURS=24
|
|
# Topology dump: 0 = no read timeout (wait while TCP stays up). Set e.g. 3600 to cap.
|
|
# NETX_UME_TOPOLOGY_TIMEOUT_S=0
|
|
# Reap stuck topology jobs only after this many seconds (default 24h).
|
|
# NETX_UME_SYNC_TOPOLOGY_STALE_RUNNING_SEC=86400
|
|
NETX_UME_SYNC_ALARMS_CURRENT_ENABLED=true
|
|
NETX_UME_SYNC_ALARMS_CURRENT_INTERVAL_S=18000
|
|
NETX_UME_SYNC_ALARMS_CURRENT_SKIP_WHEN_WS=true
|
|
NETX_UME_STARTUP_SYNC_ALARMS_BEFORE_WS=true
|
|
NETX_UME_ALARM_CLEARED_TOMBSTONE_S=300
|
|
NETX_UME_ALARM_WS_ENABLED=true
|
|
NETX_UME_NOTIFICATION_ESTABLISH_PATH=/restconf/operations/zte-notifications:establish-subscription
|
|
NETX_UME_NOTIFICATION_DELETE_PATH=/restconf/operations/zte-notifications:delete-subscription
|
|
NETX_UME_NOTIFICATION_TOPIC=ALARM
|
|
# TLS verify for UME (default false for lab self-signed). Production: set true or pin a CA.
|
|
# NETX_UME_VERIFY_TLS=false
|
|
# Auth (lab defaults: admin/admin123 + data/auth/mcp_token)
|
|
# NETX_AUTH_ENABLED=true
|
|
# Leave NETX_AUTH_SECRET empty to auto-create data/auth/jwt_secret on first boot.
|
|
# NETX_AUTH_SECRET=
|
|
# NETX_AUTH_SECRET_FILE=data/auth/jwt_secret
|
|
# NETX_BOOTSTRAP_ADMIN_USERNAME=admin
|
|
# NETX_BOOTSTRAP_ADMIN_PASSWORD=admin123
|
|
# NETX_API_TOKEN= # MCP: leave empty to auto-read data/auth/mcp_token
|
|
# API docs (/docs, /redoc, /openapi.json); default false. Lab: set true.
|
|
# NETX_DOCS_ENABLED=true
|
|
# NETX_ALLOW_INSECURE_DEFAULTS=false
|
|
# Schema: Alembic auto-upgrades on API start (defaults on). Override only if needed:
|
|
# NETX_ALEMBIC_UPGRADE_ON_START=false
|
|
# NETX_SKIP_LEGACY_STARTUP_DDL=false
|
|
# NETX_SQL_READONLY_DATABASE_URL=postgresql+psycopg://netx_ro:xxx@127.0.0.1:5432/netx
|
|
# Device collectors run inline with the API by default (frontend+backend start is enough).
|
|
# Production split only: NETX_RUN_INLINE_SCHEDULERS=false and run `python -m netx_api.worker`
|
|
# (start_netx.ps1/.sh do this automatically). Worker writes heartbeat for API /metrics.
|
|
# NETX_RUN_INLINE_SCHEDULERS=false
|
|
# NETX_SCHEDULER_HEARTBEAT_PATH=data/runtime/scheduler_heartbeat.json
|
|
# --- Multi-user shared-server capacity (defaults in Settings already match these) ---
|
|
# NETX_DB_POOL_SIZE=40
|
|
# NETX_DB_MAX_OVERFLOW=40
|
|
# NETX_DB_POOL_RECYCLE_SEC=1800
|
|
# NETX_DB_POOL_TIMEOUT_SEC=30
|
|
# NETX_CLI_MAX_CONCURRENT=24
|
|
# NETX_CLI_FEATURE_HARD_CAP=32
|
|
# NETX_CLI_TIMEOUT_POOL_WORKERS=24
|
|
# NETX_PORT_TRAFFIC_DISPATCH_WORKERS=6
|
|
# NETX_NE_CONNECT_MAX_WORKERS=8
|
|
# NETX_NE_COLLECT_MAX_WORKERS=8
|
|
# NETX_NE_COLLECT_RUN_TIMEOUT_CAP_SEC=600
|
|
# NETX_NE_COLLECT_MAX_OUTPUT_BYTES=8388608
|
|
# NETX_WEBCRT_MAX_SESSIONS=40
|
|
# NETX_WEBCRT_KEEPALIVE_SEC=30
|
|
# NETX_WEBCRT_OUT_QUEUE_MAX=2000
|
|
# NETX_WEBCRT_SESSION_LOG_MAX_BYTES=4194304
|
|
# NETX_WEBCRT_SFTP_MAX_FILE_BYTES=536870912
|
|
# NETX_WEBCRT_SFTP_LIST_MAX_ENTRIES=5000
|
|
# NETX_AUDIT_ASYNC=true
|
|
# NETX_AUDIT_SAMPLE_N=5
|
|
# NETX_AUDIT_QUEUE_MAX=5000
|
|
# NETX_OCLAW_FORWARD_QUEUE_MAX=5000
|
|
# NETX_OCLAW_FORWARD_MAX_RETRIES=3
|
|
# NETX_UME_RAW_JSON_MAX_BYTES=65536
|
|
# NETX_NE_COLLECTION_KEEP_DAYS=14
|
|
# Heavier fleets: raise CLI/DB together; also ensure Postgres max_connections and bastion session limits.
|
|
# One-click start (recommended): .\scripts\start_netx.ps1 -Background -WithWeb
|
|
# -> API with NETX_RUN_INLINE_SCHEDULERS=false + auto-started netx_api.worker + optional Vite
|
|
# Legacy single-process: add -InlineSchedulers
|
|
# Stop all: .\scripts\stop_netx.ps1
|