Vai al contenuto

Architettura

Stack

  • Backend: Python + Flask + Flask-AppBuilder
  • ORM: SQLAlchemy
  • DB principale: MySQL/MariaDB
  • Coda async: Celery + Redis
  • Object storage: MinIO (S3 compatibile)
  • Frontend admin: template FAB custom
  • Servizio web: Gunicorn (systemd)

Pattern applicativi

  • Multi-tenant a livello applicativo (tenant_key) con control plane centralizzato.
  • Moduli organizzati in app/modules/* con views/modelli dedicati.
  • Menu e visibilita controllati da:
  • ruolo (Admin, super admin),
  • contesto host (control plane vs tenant host),
  • policy menu.

Flusso runtime

  1. richiesta HTTP entra su Gunicorn;
  2. risoluzione tenant/context da host;
  3. controlli sicurezza FAB + policy menu;
  4. query ORM/SQL filtrate per tenant quando richiesto;
  5. eventuali job asincroni inviati a Celery.

Deploy target

  • safeops-web.service per app web
  • safeops-celery.service worker
  • safeops-celery-beat.service scheduler