Commit graph

24 commits

Author SHA1 Message Date
Matias Bordese
98b187acd9 Add support for daily/by-day and custom interval 2022-11-02 16:12:16 -03:00
Matias Bordese
241283959a Enable daily/by-day shifts option for web schedules 2022-11-02 16:12:16 -03:00
Vadim Stepanov
e67d3519fe
Restore email notifications (#621)
* remove email verification related code

* remove email verification related code

* remove sendgrid callback

* remove sendgrid related code

* remove sendgrid related code

* rename sendgrid app to email

* remove email from built-in channels

* remove email from built-in channels

* remove email from built-in channels

* add email backend: https://github.com/grafana/oncall/pull/50

* add email templater

* add email templater

* convert md to html

* add email settings to live settings

* use task to send email, handle some exceptions to create logs

* remove ERROR_NOTIFICATION_MAIL_DELIVERY_FAILED usage

* add email limit logic

* fix tests

* add docs

* remove old email templates

* remove old email templates

* add template_fields to messaging backend

* add messaging backends templates to public api

* add comment for deprecated fields

* fix test

* fix tests

* disable email by default

* don't retry on SMTPException and TimeoutError

* add tests

* bring email back to public api docs

* return ERROR_NOTIFICATION_MAIL_LIMIT_EXCEEDED

* make template_fields tuple

* build_subject_and_title -> build_subject_and_message

* add one more comment about template deprecation

* use 8 as backend id

* add comment about gaierror and BadHeaderError

* add comment on importing in notify_user_async

* edit oss docs
2022-10-19 12:32:56 +01:00
Ben Sully
e36757b293
Allow non-JSON custom webhook templates, provided they render as valid JSON (#639)
* Allow non-JSON custom webhook templates, provided they render as valid JSON

Previously, both the provided template _and_ the rendered template had
to be valid JSON in order for validation to pass. This was unnecessarily
restrictive: really, only the rendered template needs to be valid JSON.
It also disallowed using templates such as:

    {
      "labels": {{ alert_payload.labels | tojson }}
    }

even though this would be valid JSON after rendering.

This commit relaxes the validation of custom webhook templates so that
they don't need to be valid JSON, provided that the rendered template
_is_ valid JSON. This is checked using a dummy dictionary of render
params, which use a constant string for the `alert_group_id` field
and a `defaultdict(dict)` for the `alert_payload` field. This should
permit templates like the one above, but still deny templates such as

    {
      "labels": {{ alert_payload.labels }}
    }

which would otherwise fail later if `labels` is not valid JSON.

This should resolve #638.

* Use defaultdict(str) instead of defaultdict(lambda: "")

* Add missing comment to resolution note validation code

* Update validation of resolution notes in public API, too

* Add extra test cases for JSON webhook templates endpoint of public API
2022-10-19 12:32:21 +01:00
Joey Orlando
9f3f691ea4
Feat 549 - add telegram permalink to alert groups http response (#551)
* rename AlertGroup.permalink to slack_permalink

* add telegram key to alert_groups permalinks object in public API response
2022-09-28 16:59:57 +02:00
Michael Derynck
accee4ebbe
Use create_engine_url to add prefix to previous/next links (#553)
* Use create_engine_url to add prefix to previous/next links

* Remove override of get_paginated_response since it is unchanged from parent

* More concise override

* Make both overrides behave the same

* add test for public API alert groups pagination

Co-authored-by: Vadim Stepanov <vadimkerr@gmail.com>
2022-09-23 10:45:28 +01:00
Joey Orlando
e16064c6ba
#539 - add slack permalink to alert group public API response (#543)
* add .python-version to .gitignore

* add .nvmrc to frontend

Also update DEVELOPER.md to mention optionally using nvm

* update DEVELOPER.md to reflect running successfully locally

* markdown autoformatter styling changes

* add slack permalink to alertgroup public api http response

* update changelog

* address PR comments

- rename permalink to permalinks in alert group public api seralizer
- add permalinks property to AlertGroup model
- update public api alert groups test
- update alertgroups public documentation to include permalinks property

* add default DEBUG = True in dev.py settings
2022-09-22 15:17:17 +02:00
Matias Bordese
2da2cfff56 Fix shifts/schedule teams validation on schedule creation 2022-09-09 12:24:07 -03:00
Vadim Stepanov
a1b1b83fd1
Optimize alert group list view (#299)
* Revert "Revert "Alert list view & caching rework (#216)""

This reverts commit 730dccc3

* Revert "fix AlertGroupClassicMarkdownRenderer"

This reverts commit 82e53d8e0c513feb8aaef332fc1d3800e90538fc.

* optimize alert group list view

* optimize alert group list view
2022-07-27 14:14:59 +03:00
Julia
24cfd3686a fix tests 2022-07-18 13:29:01 +03:00
Julia
a4c481a1ff Add rotation_start field to shifts public api endpoint, fix tests 2022-07-18 12:59:50 +03:00
Matias Bordese
b5e624e2ed
Merge pull request #196 from grafana/matiasb-web-schedule-backend-1
Initial web schedule model and serializers. Add override shift type.
2022-07-08 14:27:01 -03:00
Matias Bordese
d18d78a48f Disable web schedule create/update from public API 2022-07-08 12:03:18 -03:00
Matias Bordese
835fdaa3b7 Do not allow override shifts in calendar schedules 2022-07-07 14:38:22 -03:00
Julia
3b53543e73 Update tests for routes in public api 2022-07-07 16:34:01 +03:00
Julia
06b6980832 Merge branch 'dev' into update-route-public-endpoint 2022-07-07 12:16:23 +03:00
Matias Bordese
a153d283e4 Initial web schedule model and serializers. Add override shift type. 2022-07-05 12:41:55 -03:00
Julia
f95edaed19 Update tests for routes 2022-06-29 14:11:40 +03:00
Matias Bordese
c8b8449afc Add UNTIL support for shifts recurrence rules 2022-06-28 11:21:36 -03:00
Matias Bordese
0d12671015 List all users in public users endpoint 2022-06-22 14:46:23 -03:00
Julia
a4d9bc99a8 Rename field webhook to url for outgoing webhook public api endpoint, update tests 2022-06-21 12:53:22 +03:00
Julia
43bc8c2fe5 Add tests for outgoing webhooks public api endpoint 2022-06-17 15:41:46 +03:00
Matias Bordese
0e26568857 Remove demo token related code/logic 2022-06-09 09:16:10 -03:00
Michael Derynck
6b40f95033 World, meet OnCall!
Co-authored-by: Eve832 <eve.meelan@grafana.com>
    Co-authored-by: Francisco Montes de Oca <nevermind89x@gmail.com>
    Co-authored-by: Ildar Iskhakov <ildar.iskhakov@grafana.com>
    Co-authored-by: Innokentii Konstantinov <innokenty.konstantinov@grafana.com>
    Co-authored-by: Julia <ferril.darkdiver@gmail.com>
    Co-authored-by: maskin25 <kengurek@gmail.com>
    Co-authored-by: Matias Bordese <mbordese@gmail.com>
    Co-authored-by: Matvey Kukuy <motakuk@gmail.com>
    Co-authored-by: Michael Derynck <michael.derynck@grafana.com>
    Co-authored-by: Richard Hartmann <richih@richih.org>
    Co-authored-by: Robby Milo <robbymilo@fastmail.com>
    Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
    Co-authored-by: Vadim Stepanov <vadimkerr@gmail.com>
    Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
2022-06-03 08:09:47 -06:00