oncall-engine/engine/apps/webhooks
Innokentii Konstantinov 9628bdc51f
Webhook labels (#3383)
This PR add labels for webhooks. 
1. Make webhook "labelable" with ability to filter by labels.
2. Add labels to the webhook payload. It contain new field webhook with
it's name, id and labels. Field integration and alert_group has a
corresponding label field as well. See example of a new payload below:
```
{
    "event": {
        "type": "escalation"
    },
    "user": null,
    "alert_group": {
        "id": "IRFN6ZD31N31B",
        "integration_id": "CTWM7U4A2QG97",
        "route_id": "RUE7U7Z46SKGY",
        "alerts_count": 1,
        "state": "firing",
        "created_at": "2023-11-22T08:54:55.178243Z",
        "resolved_at": null,
        "acknowledged_at": null,
        "title": "Incident",
        "permalinks": {
            "slack": null,
            "telegram": null,
            "web": "http://grafana:3000/a/grafana-oncall-app/alert-groups/IRFN6ZD31N31B"
        },
        "labels": {
            "severity": "critical"
        }
    },
    "alert_group_id": "IRFN6ZD31N31B",
    "alert_payload": {
        "message": "This alert was sent by user for demonstration purposes"
    },
    "integration": {
        "id": "CTWM7U4A2QG97",
        "type": "webhook",
        "name": "hi - Webhook",
        "team": null,
        "labels": {
            "hello": "world",
            "severity": "critical"
        }
    },
    "notified_users": [],
    "users_to_be_notified": [],
    "webhook": {
        "id": "WHAXK4BTC7TAEQ",
        "name": "test",
        "labels": {
            "hello": "kesha"
        }
    }
}
```

I feel that there is an opportunity to make code cleaner - remove all
label logic from serializers, views and utils to models or dedicated
LabelerService and introduce Labelable interface with something like
label_verbal, update_labels methods. However, I don't want to tie
webhook labels with a refactoring.

---------

Co-authored-by: Dominik <dominik.broj@grafana.com>
2023-11-22 11:17:41 +00:00
..
migrations Add webhook presets (#2996) 2023-09-27 07:22:52 -06:00
models Add webhook presets (#2996) 2023-09-27 07:22:52 -06:00
presets Allow deletion for removed presets (#3072) 2023-09-27 10:21:55 -06:00
tasks Webhook labels (#3383) 2023-11-22 11:17:41 +00:00
tests Webhook labels (#3383) 2023-11-22 11:17:41 +00:00
__init__.py shift swap requests model + CRUD endpoints (#2597) 2023-07-21 19:35:19 +00:00
apps.py Webhooks trigger tasks on alert group events (#1533) 2023-03-13 21:19:22 +00:00
listeners.py apps.get_model -> import (#2619) 2023-07-25 09:43:23 +00:00
signals.py Add users_to_be_notified to new webhooks payload (#1798) 2023-04-20 16:13:48 +00:00
utils.py Webhook labels (#3383) 2023-11-22 11:17:41 +00:00