Skip to main content

SDK Python pour la gestion des alertes via Parse Server

Project description

Alert SDK Python

License: Internal

SDK Python pour la gestion des alertes via Parse Server avec traitement asynchrone BullMQ. Il permet de mettre en queue la création d'alertes et de consulter leur statut par utilisateur ou par alerte.

📋 Table des matières

✨ Caractéristiques

  • Création d'alertes via queue BullMQ (traitement asynchrone)
  • Référence unique ref (nanoid) retournée immédiatement après mise en queue
  • Assignation automatique aux utilisateurs du département Technical Support et/ou rôle admin
  • Récupération des statuts d'alertes (par utilisateur ou par ref d'alerte)
  • Authentification par api_key
  • Modèles typés avec dataclasses
  • Gestion centralisée des erreurs
  • Compatible Parse Server

✅ Prérequis

  • Python 3.8+ (Python 3.12 recommandé)
  • Parse Server opérationnel avec les Cloud Functions requises
  • Worker BullMQ actif pour le traitement des alertes en queue
  • Accès API :
    • SERVER_URL
    • API_KEY

📦 Installation

⚠️ Sur Ubuntu/Debian récents, l'installation de packages Python doit se faire dans un environnement virtuel (venv).

1️⃣ Installer le support venv (si nécessaire)

sudo apt update
sudo apt install -y python3.12-venv

2️⃣ Créer et activer un environnement virtuel

python3 -m venv venv
source venv/bin/activate

Le prompt doit afficher (venv).

3️⃣ Mettre à jour les outils Python

pip install --upgrade pip setuptools wheel

4️⃣ Installer le SDK depuis GitLab

➤ Branche principale (stable)

pip install git+https://gitlab.rightcomtech.com/tech-support/packages/rightcom-py-alerts.git

➤ Branche spécifique

pip install git+https://gitlab.rightcomtech.com/tech-support/packages/rightcom-py-alerts.git@feature/initial-sdk

5️⃣ Vérifier l'installation

python -c "from alert_sdk import AlertClient; print('SDK OK')"

Résultat attendu :

SDK OK

⚙️ Configuration

Variables d'environnement (recommandé)

Créer un fichier .env :

ALERT_SERVER_URL=https://hontogbo.rightcom.com/rightfocusboard-api
ALERT_API_KEY=votre_api_key

Configuration directe

from alert_sdk import AlertClient

client = AlertClient(
    server_url="https://hontogbo.rightcom.com/rightfocusboard-api",
    api_key="votre_api_key"
)

🚀 Utilisation

from alert_sdk import AlertClient

client = AlertClient(
    server_url="https://hontogbo.rightcom.com/rightfocusboard-api",
    api_key="votre_api_key"
)

Créer une alerte

⚡ La création passe par une queue BullMQ. La réponse est immédiate avec une ref unique (nanoid). La création réelle de l'alerte et la notification des utilisateurs sont traitées de façon asynchrone par le worker.

from alert_sdk import AlertClient, ValidationError, APIError

client = AlertClient(
    server_url="https://hontogbo.rightcom.com/rightfocusboard-api",
    api_key="votre_api_key"
)

try:
    response = client.create_alert(
        titre="Incident serveur critique",
        description="Le serveur de production ne répond plus",
        severite="critique",
        statut="active",
        categorie="système",
        source="monitoring-system",
        details="CPU: 100%, Memory: 95%, Disk: 80%",
        tags=["production", "serveur", "urgent"]
    )

    print(f"✅ Alerte mise en queue : {response.ref}")
    # response.ref      → identifiant unique nanoid (disponible immédiatement)
    # response.success  → True si bien mise en queue
    # ⚠️ response.notifiedUsers n'existe plus (traitement asynchrone)

except ValidationError as e:
    print(f"❌ Erreur de validation : {e}")
except APIError as e:
    print(f"❌ Erreur API : {e}")

Récupérer les statuts d'alertes

Alertes d'un utilisateur

statuses = client.get_user_alert_status(user_id="4I58EibC55")

for status in statuses:
    read_status = "✓ Lue" if status.isRead else "✗ Non lue"
    print(f"{status.alert.titre} [{read_status}]")
    print(f"  Sévérité: {status.alert.severite}")
    print(f"  Ref: {status.alert.ref}")
    print(f"  Créée le: {status.createdAt}")

Statuts d'une alerte via sa ref

statuses = client.get_user_alert_status(alert_ref="votre-ref-nanoid-ici")

for status in statuses:
    print(status.user.email, status.isRead)

Tous les statuts

statuses = client.get_user_alert_status()

for status in statuses:
    print(status.user.email, status.alert.ref, status.isRead)

📚 API Reference

AlertClient(
    server_url: str,
    api_key: str,
    timeout: int = 30
)

create_alert()

Paramètre Type Obligatoire Description
titre str Titre de l'alerte
description str Description de l'alerte
severite str critique | élevée | moyenne | faible | info
statut str active | résolue | en_cours | ignorée (défaut: active)
categorie str système | sécurité | performance | réseau | application | autre
source str Source de l'alerte
details str Détails supplémentaires
tags list[str] Liste de tags

Retourne : CreateAlertResponse(success: bool, ref: str)

get_user_alert_status()

Paramètre Type Description
user_id str Filtrer par ID utilisateur Parse
alert_ref str Filtrer par ref nanoid de l'alerte

Retourne : List[UserAlertStatus]

⚠️ Gestion des erreurs

from alert_sdk import ValidationError, APIError, AuthenticationError, AlertSDKError
Exception Description
ValidationError Paramètres manquants ou invalides
AuthenticationError api_key manquante ou invalide
APIError Erreur retournée par l'API
AlertSDKError Erreur générique du SDK

🧪 Tests

cd examples
python3 usage_example.py

📝 Changelog

v2.0.0

  • Intégration BullMQ : création d'alertes asynchrone via queue
  • alertId remplacé par ref (nanoid) dans CreateAlertResponse
  • alert_id remplacé par alert_ref dans get_user_alert_status()
  • Suppression de notifiedUsers (traitement asynchrone)
  • Ajout du champ ref sur le modèle Alert
  • Remplacement de app_id / master_key / session_token par api_key

v1.0.0

  • Première version stable
  • Création d'alertes
  • Lecture des statuts
  • Support Master Key / Session Token

📄 Licence

Licence Internal — voir le fichier LICENSE pour plus de détails.

👤 Auteur

ODOUNHEWOU Véronique 📧 veronique@rightcom.com

🔗 https://gitlab.rightcomtech.com/veronique

Made with ❤️ by Véronique ODOUNHEWOU

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rightcom_py_alerts-1.0.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rightcom_py_alerts-1.0.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file rightcom_py_alerts-1.0.0.tar.gz.

File metadata

  • Download URL: rightcom_py_alerts-1.0.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for rightcom_py_alerts-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2e08a581bdfb49d15bec424f9a86a9b78c4809afdc2dacf3b17f22280960e6c4
MD5 ae3017ee664f14055fbb24b1c9973bd5
BLAKE2b-256 1476af153a4963f07f0e790383247b9ce1d937c0b582d654ed57eaa6de09bdd3

See more details on using hashes here.

File details

Details for the file rightcom_py_alerts-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rightcom_py_alerts-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7937b071ed5a48c35333be4fb239030d15c5390f84688a5f89d25019db34467a
MD5 93eaf12fe37546207cca6a2621e77e98
BLAKE2b-256 7a46335c5de00aea941ba9e4300d15525cc8f181909e490b33400b2af46ba3fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page