diff --git a/apps/docs/content/docs/de/execution/api.mdx b/apps/docs/content/docs/de/execution/api.mdx
index b67765e65af..459a235e2f1 100644
--- a/apps/docs/content/docs/de/execution/api.mdx
+++ b/apps/docs/content/docs/de/execution/api.mdx
@@ -251,32 +251,78 @@ Rufen Sie Ausführungsdetails einschließlich des Workflow-Zustandsschnappschuss
-## Webhook-Abonnements
+## Benachrichtigungen
-Erhalten Sie Echtzeitbenachrichtigungen, wenn Workflow-Ausführungen abgeschlossen werden. Webhooks werden über die Sim-Benutzeroberfläche im Workflow-Editor konfiguriert.
+Erhalten Sie Echtzeit-Benachrichtigungen, wenn Workflow-Ausführungen abgeschlossen sind, per Webhook, E-Mail oder Slack. Benachrichtigungen werden auf Workspace-Ebene von der Protokollseite aus konfiguriert.
### Konfiguration
-Webhooks können für jeden Workflow über die Benutzeroberfläche des Workflow-Editors konfiguriert werden. Klicken Sie auf das Webhook-Symbol in der Kontrollleiste, um Ihre Webhook-Abonnements einzurichten.
+Konfigurieren Sie Benachrichtigungen von der Protokollseite aus, indem Sie auf die Menütaste klicken und "Benachrichtigungen konfigurieren" auswählen.
-
-
-
+**Benachrichtigungskanäle:**
+- **Webhook**: Senden Sie HTTP POST-Anfragen an Ihren Endpunkt
+- **E-Mail**: Erhalten Sie E-Mail-Benachrichtigungen mit Ausführungsdetails
+- **Slack**: Posten Sie Nachrichten in einen Slack-Kanal
-**Verfügbare Konfigurationsoptionen:**
+**Workflow-Auswahl:**
+- Wählen Sie bestimmte Workflows zur Überwachung aus
+- Oder wählen Sie "Alle Workflows", um aktuelle und zukünftige Workflows einzubeziehen
+
+**Filteroptionen:**
+- `levelFilter`: Zu empfangende Protokollebenen (`info`, `error`)
+- `triggerFilter`: Zu empfangende Auslösertypen (`api`, `webhook`, `schedule`, `manual`, `chat`)
+
+**Optionale Daten:**
+- `includeFinalOutput`: Schließt die endgültige Ausgabe des Workflows ein
+- `includeTraceSpans`: Schließt detaillierte Ausführungs-Trace-Spans ein
+- `includeRateLimits`: Schließt Informationen zum Ratenlimit ein (Sync/Async-Limits und verbleibende)
+- `includeUsageData`: Schließt Abrechnungszeitraum-Nutzung und -Limits ein
+
+### Alarmregeln
+
+Anstatt Benachrichtigungen für jede Ausführung zu erhalten, konfigurieren Sie Alarmregeln, um nur bei erkannten Problemen benachrichtigt zu werden:
+
+**Aufeinanderfolgende Fehler**
+- Alarm nach X aufeinanderfolgenden fehlgeschlagenen Ausführungen (z.B. 3 Fehler in Folge)
+- Wird zurückgesetzt, wenn eine Ausführung erfolgreich ist
+
+**Fehlerrate**
+- Alarm, wenn die Fehlerrate X% in den letzten Y Stunden überschreitet
+- Erfordert mindestens 5 Ausführungen im Zeitfenster
+- Wird erst nach Ablauf des vollständigen Zeitfensters ausgelöst
+
+**Latenz-Schwellenwert**
+- Alarm, wenn eine Ausführung länger als X Sekunden dauert
+- Nützlich zum Erkennen langsamer oder hängender Workflows
+
+**Latenz-Spitze**
+- Alarm, wenn die Ausführung X% langsamer als der Durchschnitt ist
+- Vergleicht mit der durchschnittlichen Dauer über das konfigurierte Zeitfenster
+- Erfordert mindestens 5 Ausführungen, um eine Baseline zu etablieren
+
+**Kostenschwelle**
+- Alarmierung, wenn eine einzelne Ausführung mehr als $X kostet
+- Nützlich, um teure LLM-Aufrufe zu erkennen
+
+**Keine Aktivität**
+- Alarmierung, wenn innerhalb von X Stunden keine Ausführungen stattfinden
+- Nützlich zur Überwachung geplanter Workflows, die regelmäßig ausgeführt werden sollten
+
+**Fehlerzählung**
+- Alarmierung, wenn die Fehleranzahl X innerhalb eines Zeitfensters überschreitet
+- Erfasst die Gesamtfehler, nicht aufeinanderfolgende
+
+Alle Alarmtypen beinhalten eine Abklingzeit von 1 Stunde, um Benachrichtigungsspam zu vermeiden.
+
+### Webhook-Konfiguration
+
+Für Webhooks stehen zusätzliche Optionen zur Verfügung:
- `url`: Ihre Webhook-Endpunkt-URL
-- `secret`: Optionales Geheimnis für die HMAC-Signaturverifizierung
-- `includeFinalOutput`: Die endgültige Ausgabe des Workflows in die Nutzlast einschließen
-- `includeTraceSpans`: Detaillierte Ausführungs-Trace-Spans einschließen
-- `includeRateLimits`: Informationen zum Ratelimit des Workflow-Besitzers einschließen
-- `includeUsageData`: Nutzungs- und Abrechnungsdaten des Workflow-Besitzers einschließen
-- `levelFilter`: Array von Log-Ebenen, die empfangen werden sollen (`info`, `error`)
-- `triggerFilter`: Array von Auslösertypen, die empfangen werden sollen (`api`, `webhook`, `schedule`, `manual`, `chat`)
-- `active`: Webhook-Abonnement aktivieren/deaktivieren
+- `secret`: Optionales Geheimnis für HMAC-Signaturverifizierung
-### Webhook-Nutzlast
+### Payload-Struktur
-Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim eine POST-Anfrage an Ihre Webhook-URL:
+Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim die folgende Payload (über Webhook POST, E-Mail oder Slack):
```json
{
@@ -327,17 +373,17 @@ Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim eine POST-Anfrage a
### Webhook-Header
-Jede Webhook-Anfrage enthält diese Header:
+Jede Webhook-Anfrage enthält diese Header (nur Webhook-Kanal):
- `sim-event`: Ereignistyp (immer `workflow.execution.completed`)
- `sim-timestamp`: Unix-Zeitstempel in Millisekunden
-- `sim-delivery-id`: Eindeutige Lieferungs-ID für Idempotenz
-- `sim-signature`: HMAC-SHA256-Signatur zur Verifizierung (falls Secret konfiguriert)
-- `Idempotency-Key`: Identisch mit der Lieferungs-ID zur Erkennung von Duplikaten
+- `sim-delivery-id`: Eindeutige Zustell-ID für Idempotenz
+- `sim-signature`: HMAC-SHA256-Signatur zur Verifizierung (falls Geheimnis konfiguriert)
+- `Idempotency-Key`: Gleich wie Zustell-ID zur Erkennung von Duplikaten
### Signaturverifizierung
-Wenn Sie ein Webhook-Secret konfigurieren, überprüfen Sie die Signatur, um sicherzustellen, dass der Webhook von Sim stammt:
+Wenn Sie ein Webhook-Geheimnis konfigurieren, überprüfen Sie die Signatur, um sicherzustellen, dass der Webhook von Sim stammt:
@@ -414,7 +460,7 @@ Fehlgeschlagene Webhook-Zustellungen werden mit exponentiellem Backoff und Jitte
- Maximale Versuche: 5
- Wiederholungsverzögerungen: 5 Sekunden, 15 Sekunden, 1 Minute, 3 Minuten, 10 Minuten
-- Jitter: Bis zu 10% zusätzliche Verzögerung, um Überlastungen zu vermeiden
+- Jitter: Bis zu 10% zusätzliche Verzögerung, um Überlastung zu vermeiden
- Nur HTTP 5xx und 429 Antworten lösen Wiederholungen aus
- Zustellungen haben ein Timeout nach 30 Sekunden
@@ -424,15 +470,15 @@ Fehlgeschlagene Webhook-Zustellungen werden mit exponentiellem Backoff und Jitte
## Best Practices
-1. **Polling-Strategie**: Verwenden Sie beim Abfragen von Logs die cursorbasierte Paginierung mit `order=asc` und `startDate`, um neue Logs effizient abzurufen.
+1. **Polling-Strategie**: Verwende bei der Abfrage von Logs eine cursor-basierte Paginierung mit `order=asc` und `startDate`, um neue Logs effizient abzurufen.
-2. **Webhook-Sicherheit**: Konfigurieren Sie immer ein Webhook-Secret und überprüfen Sie Signaturen, um sicherzustellen, dass Anfragen von Sim stammen.
+2. **Webhook-Sicherheit**: Konfiguriere immer ein Webhook-Secret und überprüfe Signaturen, um sicherzustellen, dass Anfragen von Sim stammen.
-3. **Idempotenz**: Verwenden Sie den `Idempotency-Key`Header, um doppelte Webhook-Zustellungen zu erkennen und zu behandeln.
+3. **Idempotenz**: Verwende den `Idempotency-Key`Header, um doppelte Webhook-Zustellungen zu erkennen und zu behandeln.
-4. **Datenschutz**: Standardmäßig werden `finalOutput` und `traceSpans` von den Antworten ausgeschlossen. Aktivieren Sie diese nur, wenn Sie die Daten benötigen und die Datenschutzauswirkungen verstehen.
+4. **Datenschutz**: Standardmäßig werden `finalOutput` und `traceSpans` aus den Antworten ausgeschlossen. Aktiviere diese nur, wenn du die Daten benötigst und die Datenschutzauswirkungen verstehst.
-5. **Rate-Limiting**: Implementieren Sie exponentielles Backoff, wenn Sie 429-Antworten erhalten. Überprüfen Sie den `Retry-After`Header für die empfohlene Wartezeit.
+5. **Rate-Limiting**: Implementiere exponentielles Backoff, wenn du 429-Antworten erhältst. Überprüfe den `Retry-After`Header für die empfohlene Wartezeit.
## Rate-Limiting
@@ -443,7 +489,7 @@ Die API implementiert Rate-Limiting, um eine faire Nutzung zu gewährleisten:
- **Team-Plan**: 60 Anfragen pro Minute
- **Enterprise-Plan**: Individuelle Limits
-Informationen zum Rate-Limit sind in den Antwort-Headern enthalten:
+Rate-Limit-Informationen sind in den Antwort-Headern enthalten:
- `X-RateLimit-Limit`: Maximale Anfragen pro Zeitfenster
- `X-RateLimit-Remaining`: Verbleibende Anfragen im aktuellen Zeitfenster
- `X-RateLimit-Reset`: ISO-Zeitstempel, wann das Zeitfenster zurückgesetzt wird
@@ -495,7 +541,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
-## Beispiel: Verarbeitung von Webhooks
+## Beispiel: Verarbeiten von Webhooks
```javascript
import express from 'express';
diff --git a/apps/docs/content/docs/de/execution/logging.mdx b/apps/docs/content/docs/de/execution/logging.mdx
index 7a004c28a58..d8b38ff9b80 100644
--- a/apps/docs/content/docs/de/execution/logging.mdx
+++ b/apps/docs/content/docs/de/execution/logging.mdx
@@ -147,4 +147,4 @@ Der Snapshot bietet:
- Erfahren Sie mehr über die [Kostenberechnung](/execution/costs), um die Preisgestaltung von Workflows zu verstehen
- Erkunden Sie die [externe API](/execution/api) für programmatischen Zugriff auf Protokolle
-- Richten Sie [Webhook-Benachrichtigungen](/execution/api#webhook-subscriptions) für Echtzeit-Warnungen ein
\ No newline at end of file
+- Richten Sie [Benachrichtigungen](/execution/api#notifications) für Echtzeit-Warnungen per Webhook, E-Mail oder Slack ein
\ No newline at end of file
diff --git a/apps/docs/content/docs/es/execution/api.mdx b/apps/docs/content/docs/es/execution/api.mdx
index 05571db1512..35007d87bc6 100644
--- a/apps/docs/content/docs/es/execution/api.mdx
+++ b/apps/docs/content/docs/es/execution/api.mdx
@@ -251,32 +251,78 @@ Recupera detalles de ejecución incluyendo la instantánea del estado del flujo
-## Suscripciones a webhooks
+## Notificaciones
-Recibe notificaciones en tiempo real cuando se completan las ejecuciones de flujos de trabajo. Los webhooks se configuran a través de la interfaz de usuario de Sim en el editor de flujos de trabajo.
+Recibe notificaciones en tiempo real cuando se completan las ejecuciones de flujos de trabajo a través de webhook, correo electrónico o Slack. Las notificaciones se configuran a nivel de espacio de trabajo desde la página de Registros.
### Configuración
-Los webhooks pueden configurarse para cada flujo de trabajo a través de la interfaz de usuario del editor de flujos de trabajo. Haz clic en el icono de webhook en la barra de control para configurar tus suscripciones a webhooks.
+Configura las notificaciones desde la página de Registros haciendo clic en el botón de menú y seleccionando "Configurar notificaciones".
-
-
-
+**Canales de notificación:**
+- **Webhook**: Envía solicitudes HTTP POST a tu punto de conexión
+- **Correo electrónico**: Recibe notificaciones por correo con detalles de la ejecución
+- **Slack**: Publica mensajes en un canal de Slack
-**Opciones de configuración disponibles:**
-- `url`: URL del punto final de tu webhook
+**Selección de flujos de trabajo:**
+- Selecciona flujos de trabajo específicos para monitorear
+- O elige "Todos los flujos de trabajo" para incluir los flujos actuales y futuros
+
+**Opciones de filtrado:**
+- `levelFilter`: Niveles de registro a recibir (`info`, `error`)
+- `triggerFilter`: Tipos de disparadores a recibir (`api`, `webhook`, `schedule`, `manual`, `chat`)
+
+**Datos opcionales:**
+- `includeFinalOutput`: Incluir la salida final del flujo de trabajo
+- `includeTraceSpans`: Incluir trazas detalladas de la ejecución
+- `includeRateLimits`: Incluir información de límites de tasa (límites sincrónicos/asincrónicos y restantes)
+- `includeUsageData`: Incluir uso y límites del período de facturación
+
+### Reglas de alerta
+
+En lugar de recibir notificaciones por cada ejecución, configura reglas de alerta para ser notificado solo cuando se detecten problemas:
+
+**Fallos consecutivos**
+- Alerta después de X ejecuciones fallidas consecutivas (por ejemplo, 3 fallos seguidos)
+- Se reinicia cuando una ejecución tiene éxito
+
+**Tasa de fallos**
+- Alerta cuando la tasa de fallos supera el X% durante las últimas Y horas
+- Requiere un mínimo de 5 ejecuciones en la ventana de tiempo
+- Solo se activa después de que haya transcurrido la ventana de tiempo completa
+
+**Umbral de latencia**
+- Alerta cuando cualquier ejecución tarda más de X segundos
+- Útil para detectar flujos de trabajo lentos o bloqueados
+
+**Pico de latencia**
+- Alerta cuando la ejecución es X% más lenta que el promedio
+- Compara con la duración promedio durante la ventana de tiempo configurada
+- Requiere un mínimo de 5 ejecuciones para establecer una línea base
+
+**Umbral de costo**
+- Alerta cuando una sola ejecución cuesta más de $X
+- Útil para detectar llamadas costosas a LLM
+
+**Sin actividad**
+- Alerta cuando no ocurren ejecuciones dentro de X horas
+- Útil para monitorear flujos de trabajo programados que deberían ejecutarse regularmente
+
+**Recuento de errores**
+- Alerta cuando el recuento de errores excede X dentro de una ventana de tiempo
+- Rastrea errores totales, no consecutivos
+
+Todos los tipos de alertas incluyen un período de enfriamiento de 1 hora para evitar el spam de notificaciones.
+
+### Configuración de webhook
+
+Para webhooks, hay opciones adicionales disponibles:
+- `url`: La URL de tu endpoint webhook
- `secret`: Secreto opcional para verificación de firma HMAC
-- `includeFinalOutput`: Incluir la salida final del flujo de trabajo en la carga útil
-- `includeTraceSpans`: Incluir intervalos de seguimiento de ejecución detallados
-- `includeRateLimits`: Incluir información del límite de tasa del propietario del flujo de trabajo
-- `includeUsageData`: Incluir datos de uso y facturación del propietario del flujo de trabajo
-- `levelFilter`: Array de niveles de registro a recibir (`info`, `error`)
-- `triggerFilter`: Array de tipos de disparadores a recibir (`api`, `webhook`, `schedule`, `manual`, `chat`)
-- `active`: Habilitar/deshabilitar la suscripción al webhook
-### Carga útil del webhook
+### Estructura de carga útil
-Cuando se completa la ejecución de un flujo de trabajo, Sim envía una solicitud POST a tu URL de webhook:
+Cuando se completa la ejecución de un flujo de trabajo, Sim envía la siguiente carga útil (vía webhook POST, correo electrónico o Slack):
```json
{
@@ -325,9 +371,9 @@ Cuando se completa la ejecución de un flujo de trabajo, Sim envía una solicitu
}
```
-### Cabeceras de webhook
+### Encabezados de webhook
-Cada solicitud de webhook incluye estas cabeceras:
+Cada solicitud de webhook incluye estos encabezados (solo canal webhook):
- `sim-event`: Tipo de evento (siempre `workflow.execution.completed`)
- `sim-timestamp`: Marca de tiempo Unix en milisegundos
@@ -416,15 +462,15 @@ Las entregas de webhook fallidas se reintentan con retroceso exponencial y fluct
- Retrasos de reintento: 5 segundos, 15 segundos, 1 minuto, 3 minutos, 10 minutos
- Fluctuación: Hasta un 10% de retraso adicional para prevenir el efecto de manada
- Solo las respuestas HTTP 5xx y 429 activan reintentos
-- Las entregas agotan el tiempo de espera después de 30 segundos
+- Las entregas agotan el tiempo después de 30 segundos
- Las entregas de webhook se procesan de forma asíncrona y no afectan al rendimiento de ejecución del flujo de trabajo.
+ Las entregas de webhook se procesan de forma asíncrona y no afectan el rendimiento de ejecución del flujo de trabajo.
## Mejores prácticas
-1. **Estrategia de sondeo**: Al sondear registros, utiliza paginación basada en cursor con `order=asc` y `startDate` para obtener nuevos registros de manera eficiente.
+1. **Estrategia de sondeo**: Cuando consultes registros, utiliza paginación basada en cursores con `order=asc` y `startDate` para obtener nuevos registros de manera eficiente.
2. **Seguridad de webhook**: Siempre configura un secreto de webhook y verifica las firmas para asegurar que las solicitudes provienen de Sim.
@@ -432,23 +478,23 @@ Las entregas de webhook fallidas se reintentan con retroceso exponencial y fluct
4. **Privacidad**: Por defecto, `finalOutput` y `traceSpans` están excluidos de las respuestas. Habilítalos solo si necesitas los datos y comprendes las implicaciones de privacidad.
-5. **Limitación de tasa**: Implementa retroceso exponencial cuando recibas respuestas 429. Consulta la cabecera `Retry-After` para conocer el tiempo de espera recomendado.
+5. **Limitación de tasa**: Implementa retroceso exponencial cuando recibas respuestas 429. Verifica la cabecera `Retry-After` para conocer el tiempo de espera recomendado.
## Limitación de tasa
-La API implementa limitación de tasa para garantizar un uso justo:
+La API implementa limitación de tasa para asegurar un uso justo:
- **Plan gratuito**: 10 solicitudes por minuto
- **Plan Pro**: 30 solicitudes por minuto
- **Plan Team**: 60 solicitudes por minuto
- **Plan Enterprise**: Límites personalizados
-La información del límite de tasa se incluye en los encabezados de respuesta:
-- `X-RateLimit-Limit`: Máximo de solicitudes por ventana
+La información de límite de tasa se incluye en las cabeceras de respuesta:
+- `X-RateLimit-Limit`: Solicitudes máximas por ventana
- `X-RateLimit-Remaining`: Solicitudes restantes en la ventana actual
-- `X-RateLimit-Reset`: Marca de tiempo ISO cuando se reinicia la ventana
+- `X-RateLimit-Reset`: Marca de tiempo ISO cuando la ventana se reinicia
-## Ejemplo: Sondeo para nuevos registros
+## Ejemplo: Sondeo de nuevos registros
```javascript
let cursor = null;
diff --git a/apps/docs/content/docs/es/execution/logging.mdx b/apps/docs/content/docs/es/execution/logging.mdx
index 2b1705770b2..98e4ff34cd0 100644
--- a/apps/docs/content/docs/es/execution/logging.mdx
+++ b/apps/docs/content/docs/es/execution/logging.mdx
@@ -147,4 +147,4 @@ La instantánea proporciona:
- Aprende sobre [Cálculo de costos](/execution/costs) para entender los precios de los flujos de trabajo
- Explora la [API externa](/execution/api) para acceso programático a los registros
-- Configura [notificaciones por Webhook](/execution/api#webhook-subscriptions) para alertas en tiempo real
\ No newline at end of file
+- Configura [Notificaciones](/execution/api#notifications) para alertas en tiempo real vía webhook, correo electrónico o Slack
\ No newline at end of file
diff --git a/apps/docs/content/docs/fr/execution/api.mdx b/apps/docs/content/docs/fr/execution/api.mdx
index 7503218f420..5be2b7a29fb 100644
--- a/apps/docs/content/docs/fr/execution/api.mdx
+++ b/apps/docs/content/docs/fr/execution/api.mdx
@@ -251,32 +251,78 @@ Récupérer les détails d'exécution, y compris l'instantané de l'état du wor
-## Abonnements aux webhooks
+## Notifications
-Recevez des notifications en temps réel lorsque les exécutions de workflow sont terminées. Les webhooks sont configurés via l'interface utilisateur Sim dans l'éditeur de workflow.
+Recevez des notifications en temps réel lorsque les exécutions de flux de travail sont terminées via webhook, e-mail ou Slack. Les notifications sont configurées au niveau de l'espace de travail depuis la page Logs.
### Configuration
-Les webhooks peuvent être configurés pour chaque workflow via l'interface utilisateur de l'éditeur de workflow. Cliquez sur l'icône webhook dans la barre de contrôle pour configurer vos abonnements aux webhooks.
+Configurez les notifications depuis la page Logs en cliquant sur le bouton menu et en sélectionnant "Configurer les notifications".
-
-
-
+**Canaux de notification :**
+- **Webhook** : envoi de requêtes HTTP POST à votre point de terminaison
+- **E-mail** : réception de notifications par e-mail avec les détails d'exécution
+- **Slack** : publication de messages dans un canal Slack
-**Options de configuration disponibles :**
-- `url` : URL de votre endpoint webhook
-- `secret` : Secret optionnel pour la vérification de signature HMAC
-- `includeFinalOutput` : Inclure la sortie finale du workflow dans la charge utile
-- `includeTraceSpans` : Inclure les intervalles de trace d'exécution détaillés
-- `includeRateLimits` : Inclure les informations de limite de débit du propriétaire du workflow
-- `includeUsageData` : Inclure les données d'utilisation et de facturation du propriétaire du workflow
-- `levelFilter` : Tableau des niveaux de journal à recevoir (`info`, `error`)
-- `triggerFilter` : Tableau des types de déclencheurs à recevoir (`api`, `webhook`, `schedule`, `manual`, `chat`)
-- `active` : Activer/désactiver l'abonnement webhook
+**Sélection de flux de travail :**
+- Sélectionnez des flux de travail spécifiques à surveiller
+- Ou choisissez "Tous les flux de travail" pour inclure les flux actuels et futurs
-### Charge utile du webhook
+**Options de filtrage :**
+- `levelFilter` : niveaux de journalisation à recevoir (`info`, `error`)
+- `triggerFilter` : types de déclencheurs à recevoir (`api`, `webhook`, `schedule`, `manual`, `chat`)
-Lorsqu'une exécution de workflow est terminée, Sim envoie une requête POST à votre URL webhook :
+**Données optionnelles :**
+- `includeFinalOutput` : inclure le résultat final du flux de travail
+- `includeTraceSpans` : inclure les traces détaillées d'exécution
+- `includeRateLimits` : inclure les informations de limite de débit (limites synchrones/asynchrones et restantes)
+- `includeUsageData` : inclure l'utilisation et les limites de la période de facturation
+
+### Règles d'alerte
+
+Au lieu de recevoir des notifications pour chaque exécution, configurez des règles d'alerte pour être notifié uniquement lorsque des problèmes sont détectés :
+
+**Échecs consécutifs**
+- Alerte après X exécutions échouées consécutives (par exemple, 3 échecs d'affilée)
+- Réinitialisation lorsqu'une exécution réussit
+
+**Taux d'échec**
+- Alerte lorsque le taux d'échec dépasse X % au cours des Y dernières heures
+- Nécessite un minimum de 5 exécutions dans la fenêtre
+- Ne se déclenche qu'après l'écoulement complet de la fenêtre temporelle
+
+**Seuil de latence**
+- Alerte lorsqu'une exécution prend plus de X secondes
+- Utile pour détecter les flux de travail lents ou bloqués
+
+**Pic de latence**
+- Alerte lorsque l'exécution est X % plus lente que la moyenne
+- Compare à la durée moyenne sur la fenêtre temporelle configurée
+- Nécessite un minimum de 5 exécutions pour établir une référence
+
+**Seuil de coût**
+- Alerte lorsqu'une seule exécution coûte plus de X €
+- Utile pour détecter les appels LLM coûteux
+
+**Aucune activité**
+- Alerte lorsqu'aucune exécution ne se produit pendant X heures
+- Utile pour surveiller les workflows programmés qui devraient s'exécuter régulièrement
+
+**Nombre d'erreurs**
+- Alerte lorsque le nombre d'erreurs dépasse X dans une fenêtre temporelle
+- Suit le total des erreurs, pas les erreurs consécutives
+
+Tous les types d'alertes incluent un temps de récupération d'une heure pour éviter le spam de notifications.
+
+### Configuration du webhook
+
+Pour les webhooks, des options supplémentaires sont disponibles :
+- `url` : l'URL de votre point de terminaison webhook
+- `secret` : secret optionnel pour la vérification de signature HMAC
+
+### Structure de la charge utile
+
+Lorsqu'une exécution de workflow se termine, Sim envoie la charge utile suivante (via webhook POST, e-mail ou Slack) :
```json
{
@@ -325,15 +371,15 @@ Lorsqu'une exécution de workflow est terminée, Sim envoie une requête POST à
}
```
-### En-têtes de webhook
+### En-têtes webhook
-Chaque requête webhook inclut ces en-têtes :
+Chaque requête webhook inclut ces en-têtes (canal webhook uniquement) :
-- `sim-event` : Type d'événement (toujours `workflow.execution.completed`)
-- `sim-timestamp` : Horodatage Unix en millisecondes
+- `sim-event` : type d'événement (toujours `workflow.execution.completed`)
+- `sim-timestamp` : horodatage Unix en millisecondes
- `sim-delivery-id` : ID de livraison unique pour l'idempotence
-- `sim-signature` : Signature HMAC-SHA256 pour vérification (si un secret est configuré)
-- `Idempotency-Key` : Identique à l'ID de livraison pour la détection des doublons
+- `sim-signature` : signature HMAC-SHA256 pour vérification (si un secret est configuré)
+- `Idempotency-Key` : identique à l'ID de livraison pour la détection des doublons
### Vérification de signature
@@ -408,14 +454,14 @@ Si vous configurez un secret webhook, vérifiez la signature pour vous assurer q
-### Politique de réessai
+### Politique de nouvelle tentative
Les livraisons de webhook échouées sont réessayées avec un backoff exponentiel et du jitter :
- Nombre maximum de tentatives : 5
-- Délais de réessai : 5 secondes, 15 secondes, 1 minute, 3 minutes, 10 minutes
+- Délais de nouvelle tentative : 5 secondes, 15 secondes, 1 minute, 3 minutes, 10 minutes
- Jitter : jusqu'à 10 % de délai supplémentaire pour éviter l'effet de horde
-- Seules les réponses HTTP 5xx et 429 déclenchent des réessais
+- Seules les réponses HTTP 5xx et 429 déclenchent de nouvelles tentatives
- Les livraisons expirent après 30 secondes
@@ -424,15 +470,15 @@ Les livraisons de webhook échouées sont réessayées avec un backoff exponenti
## Bonnes pratiques
-1. **Stratégie de polling** : lors de l'interrogation des logs, utilisez la pagination basée sur curseur avec `order=asc` et `startDate` pour récupérer efficacement les nouveaux logs.
+1. **Stratégie de polling** : Lors du polling des logs, utilisez la pagination basée sur curseur avec `order=asc` et `startDate` pour récupérer efficacement les nouveaux logs.
-2. **Sécurité des webhooks** : configurez toujours un secret webhook et vérifiez les signatures pour vous assurer que les requêtes proviennent de Sim.
+2. **Sécurité des webhooks** : Configurez toujours un secret de webhook et vérifiez les signatures pour vous assurer que les requêtes proviennent de Sim.
-3. **Idempotence** : utilisez l'en-tête `Idempotency-Key` pour détecter et gérer les livraisons de webhook en double.
+3. **Idempotence** : Utilisez l'en-tête `Idempotency-Key` pour détecter et gérer les livraisons de webhook en double.
-4. **Confidentialité** : par défaut, `finalOutput` et `traceSpans` sont exclus des réponses. Activez-les uniquement si vous avez besoin des données et comprenez les implications en matière de confidentialité.
+4. **Confidentialité** : Par défaut, `finalOutput` et `traceSpans` sont exclus des réponses. Activez-les uniquement si vous avez besoin des données et comprenez les implications en matière de confidentialité.
-5. **Limitation de débit** : implémentez un backoff exponentiel lorsque vous recevez des réponses 429. Vérifiez l'en-tête `Retry-After` pour connaître le temps d'attente recommandé.
+5. **Limitation de débit** : Implémentez un backoff exponentiel lorsque vous recevez des réponses 429. Vérifiez l'en-tête `Retry-After` pour connaître le temps d'attente recommandé.
## Limitation de débit
@@ -443,12 +489,12 @@ L'API implémente une limitation de débit pour garantir une utilisation équita
- **Plan Équipe** : 60 requêtes par minute
- **Plan Entreprise** : Limites personnalisées
-Les informations de limite de débit sont incluses dans les en-têtes de réponse :
+Les informations de limitation de débit sont incluses dans les en-têtes de réponse :
- `X-RateLimit-Limit` : Nombre maximum de requêtes par fenêtre
- `X-RateLimit-Remaining` : Requêtes restantes dans la fenêtre actuelle
- `X-RateLimit-Reset` : Horodatage ISO indiquant quand la fenêtre se réinitialise
-## Exemple : Interrogation pour nouveaux journaux
+## Exemple : Polling pour nouveaux logs
```javascript
let cursor = null;
diff --git a/apps/docs/content/docs/fr/execution/logging.mdx b/apps/docs/content/docs/fr/execution/logging.mdx
index 5fad37bc281..1f6927e5779 100644
--- a/apps/docs/content/docs/fr/execution/logging.mdx
+++ b/apps/docs/content/docs/fr/execution/logging.mdx
@@ -147,4 +147,4 @@ L'instantané fournit :
- Découvrez le [Calcul des coûts](/execution/costs) pour comprendre la tarification des workflows
- Explorez l'[API externe](/execution/api) pour un accès programmatique aux journaux
-- Configurez les [notifications Webhook](/execution/api#webhook-subscriptions) pour des alertes en temps réel
\ No newline at end of file
+- Configurez les [Notifications](/execution/api#notifications) pour des alertes en temps réel par webhook, e-mail ou Slack
\ No newline at end of file
diff --git a/apps/docs/content/docs/ja/execution/api.mdx b/apps/docs/content/docs/ja/execution/api.mdx
index 1ddf67c1d37..b90c325d934 100644
--- a/apps/docs/content/docs/ja/execution/api.mdx
+++ b/apps/docs/content/docs/ja/execution/api.mdx
@@ -251,32 +251,78 @@ SimダッシュボードのユーザーセッティングからAPIキーを生
-## Webhookサブスクリプション
+## 通知
-ワークフロー実行が完了したときにリアルタイム通知を受け取ります。WebhookはSim UIのワークフローエディタで設定されます。
+ワークフローの実行が完了したときに、Webhook、メール、またはSlackを通じてリアルタイム通知を受け取ることができます。通知はログページからワークスペースレベルで設定されます。
### 設定
-Webhookは、ワークフローエディタUIを通じて各ワークフローに設定できます。コントロールバーのWebhookアイコンをクリックして、Webhookサブスクリプションを設定します。
+ログページからメニューボタンをクリックし、「通知を設定する」を選択して通知を設定します。
-
-
-
+**通知チャネル:**
+- **Webhook**: エンドポイントにHTTP POSTリクエストを送信
+- **メール**: 実行詳細を含むメール通知を受信
+- **Slack**: Slackチャンネルにメッセージを投稿
-**利用可能な設定オプション:**
-- `url`: WebhookエンドポイントURL
-- `secret`: HMAC署名検証用のオプションシークレット
-- `includeFinalOutput`: ペイロードにワークフローの最終出力を含める
+**ワークフロー選択:**
+- 監視する特定のワークフローを選択
+- または「すべてのワークフロー」を選択して現在および将来のワークフローを含める
+
+**フィルタリングオプション:**
+- `levelFilter`: 受信するログレベル (`info`, `error`)
+- `triggerFilter`: 受信するトリガータイプ (`api`, `webhook`, `schedule`, `manual`, `chat`)
+
+**オプションデータ:**
+- `includeFinalOutput`: ワークフローの最終出力を含める
- `includeTraceSpans`: 詳細な実行トレーススパンを含める
-- `includeRateLimits`: ワークフロー所有者のレート制限情報を含める
-- `includeUsageData`: ワークフロー所有者の使用状況と請求データを含める
-- `levelFilter`: 受信するログレベルの配列 (`info`, `error`)
-- `triggerFilter`: 受信するトリガータイプの配列 (`api`, `webhook`, `schedule`, `manual`, `chat`)
-- `active`: Webhookサブスクリプションの有効化/無効化
+- `includeRateLimits`: レート制限情報(同期/非同期の制限と残り)を含める
+- `includeUsageData`: 請求期間の使用状況と制限を含める
+
+### アラートルール
+
+すべての実行について通知を受け取る代わりに、問題が検出された場合にのみ通知されるようにアラートルールを設定できます:
+
+**連続失敗**
+- X回連続して実行が失敗した後にアラート(例:3回連続の失敗)
+- 実行が成功すると、リセットされます
+
+**失敗率**
+- 過去Y時間の失敗率がX%を超えた場合にアラート
+- ウィンドウ内で最低5回の実行が必要
+- 完全な時間ウィンドウが経過した後にのみトリガーされます
+
+**レイテンシーしきい値**
+- 実行がX秒以上かかった場合にアラート
+- 遅いまたは停止しているワークフローを検出するのに役立ちます
+
+**レイテンシースパイク**
+- 実行が平均よりX%遅い場合にアラート
+- 設定された時間ウィンドウでの平均所要時間と比較
+- ベースラインを確立するために最低5回の実行が必要
+
+**コスト閾値**
+- 単一の実行コストが$Xを超えた場合にアラート
+- 高価なLLM呼び出しを検出するのに役立つ
+
+**アクティビティなし**
+- X時間以内に実行がない場合にアラート
+- 定期的に実行されるべきスケジュールされたワークフローの監視に役立つ
+
+**エラー数**
+- 時間枠内でエラー数がXを超えた場合にアラート
+- 連続ではなく、総エラー数を追跡
+
+すべてのアラートタイプには、通知スパムを防ぐための1時間のクールダウンが含まれています。
+
+### Webhook設定
+
+Webhookの場合、追加オプションが利用可能です:
+- `url`:WebhookエンドポイントURL
+- `secret`:HMAC署名検証用のオプションシークレット
-### Webhookペイロード
+### ペイロード構造
-ワークフロー実行が完了すると、SimはWebhook URLにPOSTリクエストを送信します:
+ワークフロー実行が完了すると、Simは以下のペイロードを送信します(webhook POST、メール、またはSlackを介して):
```json
{
@@ -327,17 +373,17 @@ Webhookは、ワークフローエディタUIを通じて各ワークフロー
### Webhookヘッダー
-各Webhookリクエストには以下のヘッダーが含まれます:
+各Webhookリクエストには以下のヘッダーが含まれます(Webhookチャンネルのみ):
-- `sim-event`: イベントタイプ(常に `workflow.execution.completed`)
-- `sim-timestamp`: ミリ秒単位のUnixタイムスタンプ
-- `sim-delivery-id`: べき等性のための一意の配信ID
-- `sim-signature`: 検証用のHMAC-SHA256署名(シークレットが設定されている場合)
-- `Idempotency-Key`: 重複検出のための配信IDと同じ値
+- `sim-event`:イベントタイプ(常に`workflow.execution.completed`)
+- `sim-timestamp`:ミリ秒単位のUnixタイムスタンプ
+- `sim-delivery-id`:べき等性のための一意の配信ID
+- `sim-signature`:検証用のHMAC-SHA256署名(シークレットが設定されている場合)
+- `Idempotency-Key`:重複検出のための配信IDと同じ
### 署名検証
-Webhookシークレットを設定した場合、署名を検証してWebhookがSimからのものであることを確認してください:
+Webhookシークレットを設定した場合、署名を検証してWebhookがSimからのものであることを確認します:
@@ -412,21 +458,21 @@ Webhookシークレットを設定した場合、署名を検証してWebhookが
失敗したWebhook配信は指数バックオフとジッターを使用して再試行されます:
-- 最大試行回数: 5回
-- リトライ間隔: 5秒、15秒、1分、3分、10分
-- ジッター: 最大10%の追加遅延(サンダリングハード問題を防ぐため)
+- 最大試行回数:5回
+- リトライ遅延:5秒、15秒、1分、3分、10分
+- ジッター:サンダリングハード問題を防ぐために最大10%の追加遅延
- HTTP 5xxと429レスポンスのみがリトライをトリガー
- 配信は30秒後にタイムアウト
- Webhook配信は非同期で処理され、ワークフロー実行のパフォーマンスには影響しません。
+ Webhook配信は非同期で処理され、ワークフロー実行のパフォーマンスに影響しません。
## ベストプラクティス
-1. **ポーリング戦略**: ログをポーリングする場合、`order=asc`と`startDate`を使用したカーソルベースのページネーションを使用して、新しいログを効率的に取得してください。
+1. **ポーリング戦略**: ログをポーリングする場合、`order=asc`と`startDate`を使用したカーソルベースのページネーションを利用して、新しいログを効率的に取得してください。
-2. **Webhookセキュリティ**: 常にWebhookシークレットを設定し、署名を検証してリクエストがSimからのものであることを確認してください。
+2. **Webhookセキュリティ**: 常にWebhookシークレットを設定し、署名を検証して、リクエストがSimからのものであることを確認してください。
3. **べき等性**: `Idempotency-Key`ヘッダーを使用して、重複するWebhook配信を検出し処理してください。
@@ -445,7 +491,7 @@ APIは公平な使用を確保するためにレート制限を実装してい
レート制限情報はレスポンスヘッダーに含まれています:
- `X-RateLimit-Limit`: ウィンドウあたりの最大リクエスト数
-- `X-RateLimit-Remaining`: 現在のウィンドウで残りのリクエスト数
+- `X-RateLimit-Remaining`: 現在のウィンドウで残っているリクエスト数
- `X-RateLimit-Reset`: ウィンドウがリセットされるISOタイムスタンプ
## 例:新しいログのポーリング
@@ -495,7 +541,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
-## 例:ウェブフックの処理
+## 例:Webhookの処理
```javascript
import express from 'express';
diff --git a/apps/docs/content/docs/ja/execution/logging.mdx b/apps/docs/content/docs/ja/execution/logging.mdx
index e7d7c81bc7e..23e6539fe3d 100644
--- a/apps/docs/content/docs/ja/execution/logging.mdx
+++ b/apps/docs/content/docs/ja/execution/logging.mdx
@@ -145,6 +145,6 @@ Simは異なるワークフローとユースケースに対応する2つの補
## 次のステップ
-- ワークフロー価格設定を理解するための[コスト計算](/execution/costs)について学ぶ
+- ワークフローの価格設定を理解するための[コスト計算](/execution/costs)について学ぶ
- プログラムによるログアクセスのための[外部API](/execution/api)を探索する
-- リアルタイムアラート用の[Webhookによる通知](/execution/api#webhook-subscriptions)を設定する
\ No newline at end of file
+- webhook、メール、またはSlackによるリアルタイムアラートのための[通知](/execution/api#notifications)を設定する
\ No newline at end of file
diff --git a/apps/docs/content/docs/zh/execution/api.mdx b/apps/docs/content/docs/zh/execution/api.mdx
index f65b4e5f035..3df09d944a6 100644
--- a/apps/docs/content/docs/zh/execution/api.mdx
+++ b/apps/docs/content/docs/zh/execution/api.mdx
@@ -251,32 +251,78 @@ curl -H "x-api-key: YOUR_API_KEY" \
-## Webhook 订阅
+## 通知
-在工作流执行完成时获取实时通知。Webhook 可通过 Sim UI 的工作流编辑器进行配置。
+通过 webhook、电子邮件或 Slack 获取工作流执行完成的实时通知。通知在工作区级别从日志页面进行配置。
### 配置
-可以通过工作流编辑器 UI 为每个工作流配置 Webhook。点击控制栏中的 Webhook 图标以设置 Webhook 订阅。
+通过点击菜单按钮并选择“配置通知”从日志页面配置通知。
-
-
-
+**通知渠道:**
+- **Webhook**:向您的端点发送 HTTP POST 请求
+- **电子邮件**:接收包含执行详情的电子邮件通知
+- **Slack**:向 Slack 频道发送消息
-**可用配置选项:**
-- `url`:您的 Webhook 端点 URL
-- `secret`:用于 HMAC 签名验证的可选密钥
-- `includeFinalOutput`:在负载中包含工作流的最终输出
+**工作流选择:**
+- 选择特定的工作流进行监控
+- 或选择“所有工作流”以包含当前和未来的工作流
+
+**过滤选项:**
+- `levelFilter`:接收的日志级别(`info`,`error`)
+- `triggerFilter`:接收的触发类型(`api`,`webhook`,`schedule`,`manual`,`chat`)
+
+**可选数据:**
+- `includeFinalOutput`:包含工作流的最终输出
- `includeTraceSpans`:包含详细的执行跟踪跨度
-- `includeRateLimits`:包含工作流所有者的速率限制信息
-- `includeUsageData`:包含工作流所有者的使用和计费数据
-- `levelFilter`:接收的日志级别数组(`info`, `error`)
-- `triggerFilter`:接收的触发类型数组(`api`, `webhook`, `schedule`, `manual`, `chat`)
-- `active`:启用/禁用 Webhook 订阅
+- `includeRateLimits`:包含速率限制信息(同步/异步限制和剩余)
+- `includeUsageData`:包含计费周期的使用情况和限制
+
+### 警报规则
+
+与其为每次执行接收通知,不如配置警报规则,仅在检测到问题时收到通知:
+
+**连续失败**
+- 在 X 次连续失败执行后发出警报(例如,连续 3 次失败)
+- 当执行成功时重置
+
+**失败率**
+- 当失败率在过去 Y 小时内超过 X% 时发出警报
+- 需要窗口内至少 5 次执行
+- 仅在整个时间窗口结束后触发
+
+**延迟阈值**
+- 当任何执行时间超过 X 秒时发出警报
+- 用于捕捉缓慢或挂起的工作流
+
+**延迟峰值**
+- 当执行时间比平均值慢 X% 时发出警报
+- 与配置时间窗口内的平均持续时间进行比较
+- 需要至少 5 次执行以建立基线
+
+**成本阈值**
+- 当单次执行成本超过 $X 时发出警报
+- 用于捕捉高成本的 LLM 调用
+
+**无活动**
+- 当 X 小时内没有执行发生时发出警报
+- 用于监控应定期运行的计划工作流
+
+**错误计数**
+- 当错误计数在某个时间窗口内超过 X 时发出警报
+- 跟踪总错误数,而非连续错误
+
+所有警报类型都包括 1 小时的冷却时间,以防止通知过多。
+
+### Webhook 配置
+
+对于 webhooks,可用以下附加选项:
+- `url`:您的 webhook 端点 URL
+- `secret`:用于 HMAC 签名验证的可选密钥
-### Webhook 负载
+### 负载结构
-当工作流执行完成时,Sim 会向您的 Webhook URL 发送一个 POST 请求:
+当工作流执行完成时,Sim 会发送以下负载(通过 webhook POST、电子邮件或 Slack):
```json
{
@@ -325,9 +371,9 @@ curl -H "x-api-key: YOUR_API_KEY" \
}
```
-### Webhook 请求头
+### Webhook 头信息
-每个 webhook 请求都包含以下请求头:
+每个 webhook 请求都包含以下头信息(仅限 webhook 渠道):
- `sim-event`:事件类型(始终为 `workflow.execution.completed`)
- `sim-timestamp`:以毫秒为单位的 Unix 时间戳
@@ -410,7 +456,7 @@ curl -H "x-api-key: YOUR_API_KEY" \
### 重试策略
-失败的 webhook 交付会使用指数退避和抖动进行重试:
+失败的 webhook 交付将使用指数退避和抖动进行重试:
- 最大尝试次数:5
- 重试延迟:5 秒、15 秒、1 分钟、3 分钟、10 分钟
@@ -424,15 +470,15 @@ curl -H "x-api-key: YOUR_API_KEY" \
## 最佳实践
-1. **轮询策略**:在轮询日志时,使用基于游标的分页与 `order=asc` 和 `startDate` 高效获取新日志。
+1. **轮询策略**:在轮询日志时,使用基于游标的分页与 `order=asc` 和 `startDate` 来高效获取新日志。
-2. **Webhook 安全性**:始终配置 webhook 密钥并验证签名以确保请求来自 Sim。
+2. **Webhook 安全性**:始终配置一个 webhook 密钥并验证签名,以确保请求来自 Sim。
-3. **幂等性**:使用 `Idempotency-Key` 请求头检测并处理重复的 webhook 交付。
+3. **幂等性**:使用 `Idempotency-Key` 标头检测并处理重复的 webhook 交付。
-4. **隐私**:默认情况下,`finalOutput` 和 `traceSpans` 不包含在响应中。仅在需要这些数据并了解隐私影响时启用它们。
+4. **隐私**:默认情况下,`finalOutput` 和 `traceSpans` 会从响应中排除。仅在需要这些数据并了解隐私影响时启用它们。
-5. **速率限制**:当收到 429 响应时,实施指数退避。检查 `Retry-After` 请求头以获取推荐的等待时间。
+5. **速率限制**:当收到 429 响应时,实施指数退避。检查 `Retry-After` 标头以获取推荐的等待时间。
## 速率限制
@@ -443,7 +489,7 @@ API 实现了速率限制以确保公平使用:
- **团队计划**:每分钟 60 次请求
- **企业计划**:自定义限制
-速率限制信息包含在响应头中:
+速率限制信息包含在响应标头中:
- `X-RateLimit-Limit`:每个窗口的最大请求数
- `X-RateLimit-Remaining`:当前窗口中剩余的请求数
- `X-RateLimit-Reset`:窗口重置时的 ISO 时间戳
@@ -495,7 +541,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
-## 示例:处理 Webhooks
+## 示例:处理 Webhook
```javascript
import express from 'express';
diff --git a/apps/docs/content/docs/zh/execution/logging.mdx b/apps/docs/content/docs/zh/execution/logging.mdx
index 1c56e9aa3a8..62285c57af3 100644
--- a/apps/docs/content/docs/zh/execution/logging.mdx
+++ b/apps/docs/content/docs/zh/execution/logging.mdx
@@ -146,5 +146,5 @@ Sim 提供了两种互补的日志界面,以适应不同的工作流和使用
## 下一步
- 了解 [成本计算](/execution/costs) 以理解工作流定价
-- 探索 [外部 API](/execution/api) 以进行编程日志访问
-- 设置 [Webhook 通知](/execution/api#webhook-subscriptions) 以获取实时警报
\ No newline at end of file
+- 探索 [外部 API](/execution/api) 以编程方式访问日志
+- 设置 [通知](/execution/api#notifications) 以通过 webhook、电子邮件或 Slack 接收实时警报
\ No newline at end of file
diff --git a/apps/docs/i18n.lock b/apps/docs/i18n.lock
index 99242954189..3ac592fc537 100644
--- a/apps/docs/i18n.lock
+++ b/apps/docs/i18n.lock
@@ -4488,7 +4488,7 @@ checksums:
content/29: 1a98ac22faecc543d8f2d4065023e774
content/30: fa0c9faaa2ffef89fb19f70e271912c3
content/31: c2cef2688104adaf6641092f43d4969a
- content/32: ebdbef07196127ef2c7ba23491f62578
+ content/32: 16ae245dc265324548e4b7f443b57d71
0334b7b88d5f6e736984d25a5913ce74:
meta/title: 30c54e4dc4ce599b87d94be34a8617f5
content/0: c2b41859d63a751682f0d9aec488e581
@@ -4639,43 +4639,57 @@ checksums:
content/31: 620d49f6fa198176bf6e59685e246e2c
content/32: 736aa604a0310410baaf7723027d3cdb
content/33: 3304a33dfb626c6e2267c062e8956a9d
- content/34: 3d833eb8f8e6bd1feebea1cb6c388309
- content/35: f4e933e28b226f3b5b35d1401d4a8649
+ content/34: 1dcfad686ae5b282bc1666e422d3a05c
+ content/35: 852efbf14e8f30db0806cd41b90812ac
content/36: 95ec79465a3a0d67bf1eaf0ef0574b71
- content/37: a995cdc6044f9b6745b7fc7e3a0d6d79
- content/38: 4a6b924e56225096e27be99282e0924d
- content/39: 9a32a035dfbb07c1daec8939fcec70fd
- content/40: ffd9a3c7a121a6a22758a7efc9af55b9
- content/41: 8bece06923c42ca045eaffc282b8a0e6
- content/42: 68926c22cd421a38f0fb4e51eb68dca5
- content/43: f29cfb9cfcc3e4eb4bd63c0c4aa78832
- content/44: d27a1d4f71d599ebf7b0dd6f748a5e04
- content/45: c378967adfff8419115144415d96f47c
- content/46: 44383ae82f1d6e0e0bb70bfc4dc558d6
- content/47: c681ed9371c4285112b6cf0c75a14d90
- content/48: 7c872ba10b1a7bd9aa66f965b8aa35c0
- content/49: c6ae2bcbff69a19c7bf2a50de79a6d45
- content/50: cbfe1ade60934bcf4914255350760e4f
- content/51: 42b378d3e7ee5b53893f4aed2df7371e
- content/52: 3304a33dfb626c6e2267c062e8956a9d
- content/53: 7d213c6776c3a2c9094cec87ff25b533
- content/54: 4abd5155d278bf5a8e313c464cc232c7
- content/55: 54d9518f5153dfc440daaeb4c30aa236
- content/56: a577d5715cc0369536eed19cb5a4e6ad
- content/57: b2a4a0c279f47d58a2456f25a1e1c6f9
- content/58: 4f0ae0ea5cd3920a1f5a4a4cc42c3e10
- content/59: 25545e546719f2dce0e3865aef7a5f1f
- content/60: b3253e17dc54f4092bffb91d55ac5afa
- content/61: c13873edfa750ce6caa155ef2f3f1883
- content/62: 0bc07e36a42f7e25d5426b6a9deaac02
- content/63: 017c829dd54fde20fa9fac7712342236
- content/64: ceba97287cca68b1291142a38175d6d8
- content/65: 02072ea1e956490139dbe8bbb0bc3e16
- content/66: 44871834b9cb423a9978843c08623979
- content/67: 0b22ed8a7e64005c666505c48e09f715
- content/68: 494dcadaea5e62eddd599700511ecee5
- content/69: 8332b16a0bf7a4c862f5104e9ffeb98d
- content/70: 90e2f984a874a8f954ddfd127ec8178a
+ content/37: fc5f5a62b8d58cabbb3e26f1da4fb174
+ content/38: 361f583959e1599ed744b8bb076d7a63
+ content/39: 34ce28c18ded945e0ed7adc2fea7a767
+ content/40: cbfe3780725022693dbe8bca77166ebf
+ content/41: 6e6eca3194853de1383060f28e62428e
+ content/42: ab22182e07b366a5ad8aeaa4cd33c98b
+ content/43: 9757cdca1f88b3501ab320067ffc69f5
+ content/44: a9766f789c10b20e7616a89977913461
+ content/45: 93fcde5246eed5fbbda2c38499991caa
+ content/46: 74075c0a46913bfb13c5677706a6add1
+ content/47: ec9cca1ed40ff37ecbbd9079ff7e20b8
+ content/48: 568646d11f867050de7dc098c172cbdb
+ content/49: 602e3ba652a74c425b233faa001fd885
+ content/50: 0dd6137b756a3b6c9c68adc89bda4766
+ content/51: 827b9be3e2fbc0bff1157cbdfbd9cebd
+ content/52: e991745d67395e34fe24acbec325163c
+ content/53: 5712e5497ca7e787d96c18eec0c70715
+ content/54: 8265f9e2c583cdaa2428440263dd5456
+ content/55: be210009a4f28628db2583119b604dee
+ content/56: 68926c22cd421a38f0fb4e51eb68dca5
+ content/57: f29cfb9cfcc3e4eb4bd63c0c4aa78832
+ content/58: c47dd793baa3187e133d27545832e474
+ content/59: c378967adfff8419115144415d96f47c
+ content/60: 44383ae82f1d6e0e0bb70bfc4dc558d6
+ content/61: c681ed9371c4285112b6cf0c75a14d90
+ content/62: 7c872ba10b1a7bd9aa66f965b8aa35c0
+ content/63: c6ae2bcbff69a19c7bf2a50de79a6d45
+ content/64: cbfe1ade60934bcf4914255350760e4f
+ content/65: 42b378d3e7ee5b53893f4aed2df7371e
+ content/66: 3304a33dfb626c6e2267c062e8956a9d
+ content/67: 7d213c6776c3a2c9094cec87ff25b533
+ content/68: 4abd5155d278bf5a8e313c464cc232c7
+ content/69: 54d9518f5153dfc440daaeb4c30aa236
+ content/70: a577d5715cc0369536eed19cb5a4e6ad
+ content/71: b2a4a0c279f47d58a2456f25a1e1c6f9
+ content/72: 4f0ae0ea5cd3920a1f5a4a4cc42c3e10
+ content/73: 25545e546719f2dce0e3865aef7a5f1f
+ content/74: b3253e17dc54f4092bffb91d55ac5afa
+ content/75: c13873edfa750ce6caa155ef2f3f1883
+ content/76: 0bc07e36a42f7e25d5426b6a9deaac02
+ content/77: 017c829dd54fde20fa9fac7712342236
+ content/78: ceba97287cca68b1291142a38175d6d8
+ content/79: 02072ea1e956490139dbe8bbb0bc3e16
+ content/80: 44871834b9cb423a9978843c08623979
+ content/81: 0b22ed8a7e64005c666505c48e09f715
+ content/82: 494dcadaea5e62eddd599700511ecee5
+ content/83: 8332b16a0bf7a4c862f5104e9ffeb98d
+ content/84: 90e2f984a874a8f954ddfd127ec8178a
0e322683b6d10e9fa8c9a17ff15a5fb1:
meta/title: a912b3c7fb996fefccb182cf5c4a3fbc
content/0: e1f8d4b13687e7d73b5b5fbb4cb6142d