feat: Configure Aeros license retrieval from Vault, falling back to environment variables defined in the new `.env.example`.

main
Cizz22 2 weeks ago
parent 212a37c7bd
commit ed5275c237

@ -0,0 +1,35 @@
LOG_LEVEL=INFO
ENV=local
PORT=8000
HOST=localhost
# Database
DATABASE_HOSTNAME=localhost
DATABASE_CREDENTIAL_USER=user
DATABASE_CREDENTIAL_PASSWORD=password
DATABASE_NAME=digital_twin
DATABASE_PORT=5432
# Collector
COLLECTOR_HOSTNAME=localhost
COLLECTOR_PORT=5432
COLLECTOR_CREDENTIAL_USER=user
COLLECTOR_CREDENTIAL_PASSWORD=password
COLLECTOR_NAME=collector
# Services
AUTH_SERVICE_API=http://192.168.1.82:8000/auth
AEROS_BASE_URL=http://192.168.1.102
WINDOWS_AEROS_BASE_URL=http://192.168.1.102:8800
TEMPORAL_URL=http://192.168.1.86:7233
RELIABILITY_SERVICE_API=http://192.168.1.82:8000/reliability
# Aeros License (Fallback if Vault is not used)
AEROS_LICENSE_ID=
AEROS_LICENSE_SECRET=
# Vault (Optional if using .env fallback)
VAULT_URL=
ROLE_ID=
SECRET_ID=
AEROS_SECRET_PATH=

@ -1,6 +1,6 @@
import anyio import anyio
from licaeros import LicensedSession, device_fingerprint_hex from licaeros import LicensedSession, device_fingerprint_hex
from src.config import AEROS_BASE_URL, WINDOWS_AEROS_BASE_URL, VAULT_URL, ROLE_ID, SECRET_ID, AEROS_SECRET_PATH from src.config import AEROS_BASE_URL, WINDOWS_AEROS_BASE_URL, VAULT_URL, ROLE_ID, SECRET_ID, AEROS_SECRET_PATH, AEROS_LICENSE_ID, AEROS_LICENSE_SECRET
import logging import logging
from src.utils import get_vault_secrets from src.utils import get_vault_secrets
@ -10,11 +10,27 @@ log = logging.getLogger(__name__)
_aeros_session = None _aeros_session = None
def get_aeros_session(base_url): def get_aeros_session(base_url):
license_id = AEROS_LICENSE_ID
results = get_vault_secrets(vault_url=VAULT_URL,role_id=ROLE_ID,secret_id=SECRET_ID,secret_path=AEROS_SECRET_PATH,secret_keys_to_be_returned=['aeros_license_id', 'aeros_license_secret']) license_secret = AEROS_LICENSE_SECRET
if not results: # If vault is configured, try to get from there
raise Exception("Failed to get Aeros license from Vault") if VAULT_URL and ROLE_ID and SECRET_ID and AEROS_SECRET_PATH:
results = get_vault_secrets(
vault_url=VAULT_URL,
role_id=ROLE_ID,
secret_id=SECRET_ID,
secret_path=AEROS_SECRET_PATH,
secret_keys_to_be_returned=['aeros_license_id', 'aeros_license_secret']
)
if results:
license_id = results['aeros_license_id']
license_secret = results['aeros_license_secret']
log.info("Aeros license retrieved from Vault")
else:
log.warning("Failed to get Aeros license from Vault, trying local env fallback")
if not license_id or not license_secret:
raise Exception("Aeros license ID or Secret not provided (checked Vault and local .env)")
global _aeros_session global _aeros_session
if _aeros_session is None: if _aeros_session is None:
@ -22,8 +38,8 @@ def get_aeros_session(base_url):
log.info(f"Encrypted Device ID: {device_fingerprint_hex()}") log.info(f"Encrypted Device ID: {device_fingerprint_hex()}")
_aeros_session = LicensedSession( _aeros_session = LicensedSession(
api_base=base_url, api_base=base_url,
license_id=results['aeros_license_id'], license_id=license_id,
license_secret=results['aeros_license_secret'], license_secret=license_secret,
timeout=1000 timeout=1000
) )
return _aeros_session return _aeros_session

@ -98,10 +98,10 @@ RELIABILITY_SERVICE_API = config("RELIABILITY_SERVICE_API", default="http://192.
CLAMAV_HOST = config("CLAMAV_HOST", default="192.168.1.82") CLAMAV_HOST = config("CLAMAV_HOST", default="192.168.1.82")
CLAMAV_PORT = config("CLAMAV_PORT", cast=int, default=3310) CLAMAV_PORT = config("CLAMAV_PORT", cast=int, default=3310)
# AEROS_LICENSE_ID = config("AEROS_LICENSE_ID", default="") AEROS_LICENSE_ID = config("AEROS_LICENSE_ID", default=None)
# AEROS_LICENSE_SECRET = config("AEROS_LICENSE_SECRET", default="") AEROS_LICENSE_SECRET = config("AEROS_LICENSE_SECRET", default=None)
VAULT_URL=config('VAULT_URL') VAULT_URL=config('VAULT_URL', default=None)
ROLE_ID=config('ROLE_ID') ROLE_ID=config('ROLE_ID', default=None)
SECRET_ID=config('SECRET_ID') SECRET_ID=config('SECRET_ID', default=None)
AEROS_SECRET_PATH=config('AEROS_SECRET_PATH') AEROS_SECRET_PATH=config('AEROS_SECRET_PATH', default=None)
Loading…
Cancel
Save