Commit graph

47 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
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
920a863262
Revert "Alert group search by title (#466)" (#479)
This reverts commit f1f4303825.
2022-09-05 11:44:22 +01:00
Vadim Stepanov
f1f4303825
Alert group search by title (#466)
* use web title template to render alert group verbose name

* remove group_verbose_name from tests

* clean up group_verbose_name

* remove verbose_name from API & plugin

* verbose_name migration

* update verbose name on web title template change

* use long queue for updating verbose name

* use first alert for updating verbose name

* improve batch_ids
2022-09-05 10:05:19 +01:00
Innokentii Konstantinov
356aa336ad
Remove auto-recreating logic for UserNotificationPolicy (#414)
* Remove auto-recreating logic for UserNotificationPolicy

It's removed to get rid of select_for_update on User on each notify_user_task

* Fix and add tests

* remove get_user_policies method
2022-08-26 13:46:50 +05:00
Innokentii Konstantinov
4765c9b07c
Insight logs (#348)
* Entity events insight logs

* Insight logging

* Fix event for updating templates

* Format fixes

* Remove organization_log_type.py

* Simplify signature of chatops_insight_log

* insight logs formatting

* Add possibility to enable all insight logging via DynamicSetting

* Fixes

* Style fixes

* Add migration

* Fix migration
2022-08-24 12:04:44 +05: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
f7b3563600 Update serializers for oncall shifts 2022-07-18 15:23:15 +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
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
Matias Bordese
d18d78a48f Disable web schedule create/update from public API 2022-07-08 12:03:18 -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
3b53543e73 Update tests for routes in public api 2022-07-07 16:34:01 +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
f95edaed19 Update tests for routes 2022-06-29 14:11:40 +03: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
Innokentii Konstantinov
9bdf4288a0
Fix support of public users api in sync_users_with_cloud (#139)
* Fix support of public API

* Style fixes
2022-06-23 18:17:07 +04: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
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
Innokentii Konstantinov
48bfe86d62
Add cloud connection statuses on user page (#34)
* Add cloud connection statuses on user page

* Add fixes for oncall hobby docker-compose installation

* Fix for links and for cloud user status at User settings

* Delete cloud api token on cloud disconnect

* Merge branch 'dev' into cloud_connection_statuses_on_user_page

* Fix cloud statuses for users

* Fix usagestats service

* Fix phone verification message in users table

* added request after syncing user

* Add endpoint to create CloudHeartbeat and polish code

* Fix imports

* Check token and heartbeat setting in setup_hertbeat_integration

* Add macthed_users_count in cloud users

* Sync users on token change

* Fix query param

* Fix tests

* Heartbit button logic, tab width fix, coount users fix

* Solve problem of existent cloud heartbeat integration

* Solve problem of existent cloud heartbeat integration 2

* Solve problem of existent cloud heartbeat integration 3

* fix build

* build fix, styles for env variables description

Co-authored-by: Ildar Iskhakov <ildar.iskhakov@grafana.com>
Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
2022-06-13 16:29:08 +04:00
Matias Bordese
0e26568857 Remove demo token related code/logic 2022-06-09 09:16:10 -03:00
Innokentii Konstantinov
3fae0c9ff2 Fix always error message for cloud notifications 2022-06-09 15:48:43 +04:00
Innokentii Konstantinov
94af30b8bb
Fixes and logging to debug cloud notifications (#31) 2022-06-09 15:11:30 +04:00
Innokentii Konstantinov
4818fd801c Small improvements 2022-06-09 12:47:22 +04:00
Innokentii Konstantinov
af06d6491b Add info throttler 2022-06-08 18:25:58 +04:00
Innokentii Konstantinov
e277534f32 Sync only admins and editors 2022-06-08 17:31:55 +04:00
Matias Bordese
f68d3f2146 Plug in sms/phone cloud notifications 2022-06-03 14:59:43 -03:00
Innokentii Konstantinov
0cdd2d7b8b First touch on grafana cloud notifications 2022-06-03 19:47:25 +04: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