Commit graph

26 commits

Author SHA1 Message Date
Michael Derynck
25826690a8 Use common environment for templates 2022-11-05 00:31:51 -06:00
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
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
Julia
f7b3563600 Update serializers for oncall shifts 2022-07-18 15:23:15 +03:00
Julia
a4c481a1ff Add rotation_start field to shifts public api endpoint, fix tests 2022-07-18 12:59:50 +03:00
Julia
1893b784e8 Update oncall shifts public api endpoint 2022-07-18 12:36:26 +03:00
Julia
d8a3206130 Add oncall shift endpoint to internal api 2022-07-12 13:59:17 +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
Julia
a0f3c22e88 Small correction for boolean checks 2022-07-08 12:05:59 +03:00
Matias Bordese
835fdaa3b7 Do not allow override shifts in calendar schedules 2022-07-07 14:38:22 -03:00
Julia
9ba3f5a9bb Update public endpoint for routes
- Add abilities to enable/disable notification in different messangers
2022-07-07 16:31:25 +03:00
Julia
06b6980832 Merge branch 'dev' into update-route-public-endpoint 2022-07-07 12:16:23 +03:00
Matias Bordese
87fda3caf6 Use shift public key in events 2022-07-06 15:47:21 -03:00
Matias Bordese
a153d283e4 Initial web schedule model and serializers. Add override shift type. 2022-07-05 12:41:55 -03:00
Innokentii Konstantinov
77d27648d5 Add possibility to modify default route on integration create 2022-07-05 14:23:09 +04:00
Julia
5f87f83b2b Update public endpoint for routes
- Add field for telegram
- Add support for messaging backends
2022-06-29 14:05:02 +03:00
Matias Bordese
c8b8449afc Add UNTIL support for shifts recurrence rules 2022-06-28 11:21:36 -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
f04f4eaa3f Update public endpoint for outgoing webhooks
- Add abilities to create, update and delete outgoing webhooks by public api endpoint
2022-06-17 15:35:53 +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