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 PyPI

➤ Dernière version (stable)

pip install rightcom-py-alerts

➤ Version spécifique

pip install rightcom-py-alerts==1.0.1

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.1.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.1-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rightcom_py_alerts-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 0b2ff3b8f6356f6c7535318359c897406b5a39a5dc7d20075a52c77ab48658b6
MD5 b1c8a992d3f82a9917db852a75c24b57
BLAKE2b-256 0815b167eaeb2ff2d1403e18e4465e075bd2ac69729df863d50f8e018107eccd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rightcom_py_alerts-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9ae54f66e4a1c4041cb720e2aa75452b28332f2ad0425d6a09de2c1ab23af49b
MD5 887e85584211aaf78f5147b67b5592e7
BLAKE2b-256 01f3a93b319383933ace7e483c0a2328403e2ccb3ef54253186aeb6f33c3357f

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