Commit graph

52 commits

Author SHA1 Message Date
Vadim Stepanov
cd770e85ea
Catch DoesNotExist in post_slack_rate_limit_message (#1067) 2023-01-03 17:44:56 +00:00
Matias Bordese
9931105cc2 Add additional logging info for slack API event endpoint requests 2022-12-12 15:41:48 -03:00
Joey Orlando
9e598385f4
Add RBAC Support (#777)
* Modify plugin.json to support RBAC role registration

* defines 26 new custom roles in plugin.json. The main roles are:

- Admin: read/write access to everything in OnCall
- Reader: read access to everything in OnCall
- OnCaller : read access to everything in OnCall + edit access to Alert Groups and Schedules
- <object-type> Editor: read/write access to everything related to <object-type>
- <object-type> Reader: read access for <object-type>
- User Settings Admin: read/write access to all user's settings, not just own settings. This is in comparison to User Settings Editor which can only read/write own settings

* update changelog and documentation (#686)

* implement RBAC for OnCall backend

This commit refactors backend authorization. It trys to use RBAC authorization if the org's grafana instance supports it, otherwise it falls back to basic role authorization.

* update RBAC backend tests

* add tests for RBAC changes
- run backend tests as matrix where RBAC is enabled/disabled. When RBAC is enabled, the permissions granted are read from the role grants in the frontend's plugin.json file (instead of relying what we specify in RBACPermission.Permissions)
- remove --reuse-db --nomigrations flags from engine/tox.ini
- minor autoformatting changes to docker-compose-developer.yml

* remove --ds=settings.ci-test from pytest CI command

DJANGO_SETTINGS_MODULE is already specified as an env var so this is just unecessary duplication

* update gitignore

* update github action job name for "test"

* RBAC frontend changes

* refactors the use of basic roles (ex. Viewer, Editor, Admin) use RBAC permissions (when supported), or falling back to basic roles when RBAC is not supported.

- updates the UserAction enum in grafana-plugin/src/state/userAction.ts. Previously this was hardcoded to a list of strings that were being returned by the OnCall API. Now the values here correspond to the permissions in plugin.json (plus a fallback role)

* changes per Gabriel's comments:
- get rid of group attribute in rbac roles
- remove displayName role attribute
- remove hidden role attribute
- add back role to includes section

* don't try to update user timezone if they don't have permission
2022-11-29 09:41:56 +01:00
Yulya Artyukhina
5b62060e41
Merge pull request #836 from grafana/fix-warning-popup-on-slack-slash-command
Fix warning pop-up on action in slack for disconnected user
2022-11-21 11:51:59 +01:00
Innokentii Konstantinov
f5fd3dd76b Fixes to clean_slack_channel_leftovers 2022-11-16 18:23:49 +08:00
Innokentii Konstantinov
f9a9c1d978
Cleanup on deletion/archivation of slack channel (#822)
* Cleanup on deletion/archivation of slack channel

* Bulk update of organizations, filter channel filters by org

* Optimize org bulk update
2022-11-16 17:56:05 +08:00
Julia
cc028783bb Change warning window text 2022-11-14 12:34:05 +01:00
Julia
7438464052 Add warning pop-up on action in slack if user is not connected to OnCall 2022-11-11 10:38:24 +01:00
Innokentii Konstantinov
9c550af721
Support of oncall-gw (#741)
* Draft support of oncall-gw

* Clean up

* Create oncall connector on org create in gcom

* Naming fixes

* Rework oncall-gateway package. \nMove it from apps.

* Fix typo
2022-11-08 14:43:22 +08:00
Ildar Iskhakov
001a760be7
Update manual_incident.py 2022-11-01 17:23:29 +08:00
Yulia Shanyrova
6b65fc7278 Merge branch 'dev' into 637-telegram-installation-redesign 2022-10-31 12:21:40 +01:00
Ben Sully
6ef687061c
Remove 'emoji' property from Slack markdown blocks in resolution notes (#702)
I'm seeing this error in the logs:

> invalid additional property: emoji [json-pointer:/blocks/0/text]

It looks like the 'emoji' argument is not supported when type: mrkdwn.
This PR removes that property in the same place that the change
to mrkdwn was made - see [this
PR](https://github.com/grafana/oncall/pull/646).
2022-10-24 16:15:04 +01:00
Ildar Iskhakov
1bf75d601d
Merge pull request #646 from grafana/slack-resolution-note-formatting
Use markdown formatting for web based resolution notes
2022-10-24 19:22:12 +08:00
Yulia Shanyrova
fbc672b2d1 Merge branch '318-slack-installation-ux' into 637-telegram-installation-redesign 2022-10-19 13:49:05 +02: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
def8b35e74
Use markdown formatting for web based resolution notes
We would like to include some more sophisticated content in our
resolution notes (specifically URLs), so need the resolution notes to be
rendered as Markdown for this.

This PR changes _all_ resolution note text blocks to be markdown, but
perhaps it would be better to allow the caller to specify that they
would prefer markdown to plain text (this would also allow backwards
compatibility). Let me know if you'd prefer that and I can try and
figure it out!
2022-10-12 13:05:16 +01:00
Yulia Shanyrova
06a5b5570a Slack integration redesign. Changed the message from backend as well 2022-10-11 11:35:51 +02:00
toro_ponz
a8a88f5c00 remove wasted condition check. 2022-10-03 18:54:56 +09:00
toro_ponz
2355fa3a3c fix failure of "Format Alert" button on Slack. 2022-10-02 06:56:13 +09:00
Michael Derynck
a1c3ba330d Format 2022-09-30 10:26:47 -06:00
Michael Derynck
6dde87afde Message format 2022-09-30 10:16:03 -06:00
Michael Derynck
7d9d239452 Catch exception for when oncall user is out of sync with slack user 2022-09-30 10:14:39 -06: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
Maxim Mordasov
9330b89101
Schedules alpha fixes (#541)
* schedule alpha major fixes

* Fix shift update for web schedules

* Fix priority level regex, fix getting shifts without duration

* Fix shift update for web schedules

* Fix tests for shift update

* Fix priority level test

* schedule alpha fixes

* add final schedule click handler

* fix date time picker

* fix utc timzeonr time picker

* fix utc time data

* dont use user timezone on start

Co-authored-by: Julia <ferril.darkdiver@gmail.com>
2022-09-21 11:19:59 +01:00
Michael Derynck
c8fc19b402 Use stack-slug instead of org-title 2022-09-06 13:45:34 -06:00
Michael Derynck
50dc7d6240 Handle a exceptions on some retrying tasks 2022-09-01 11:39:47 -06:00
Michael Derynck
1d3cb8761e
Merge pull request #461 from grafana/fix-slack-message-blocks
Remove unused footer/duplicate block_id from post message to channel
2022-09-01 07:40:46 -06:00
Vadim Stepanov
5f69350679
Handle JSONDecodeError for outgoing webhooks (#460) 2022-09-01 14:36:34 +01:00
Michael Derynck
5ad172f704 Remove unused footer/duplicate block_id from post message to channel 2022-09-01 07:29:57 -06: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
Ildar Iskhakov
762c681ebf
Merge pull request #323 from grafana/167-slack-notification-not-displaying
Fix slack notifications not displaying properly
2022-08-23 18:03:12 +03:00
Ildar Iskhakov
2ddc20b1f3 Remove excessive usage of attachments 2022-08-09 21:50:22 +03:00
Ildar Iskhakov
4e16767eaa Cleanup unused code 2022-08-04 13:37:15 +03:00
Ildar Iskhakov
d036864d9a Fix resolution notes bug 2022-08-04 12:27:08 +03:00
Michael Derynck
3c1716a2fb Lint 2022-08-02 15:26:17 -06:00
Michael Derynck
7cee7d4bce Use blocks instead of attachments so text is used for fallback instead of repeating 2022-08-02 15:24:13 -06:00
Michael Derynck
23c1f9a744 Use text fallback field in all places where attachments and blocks are used 2022-08-02 11:50:38 -06: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
Vadim Stepanov
0985cb4cb5
Rollback alert group list rework (#269)
* Revert "Alert list view & caching rework (#216)"

This reverts commit 16bbfbbe

* fix AlertGroupClassicMarkdownRenderer
2022-07-21 15:23:02 +01:00
Michael Derynck
d8931cb05f
Use formatted UTC time for fallback in slack message (#225)
* Use formatted UTC time for fallback in slack message

* Lint
2022-07-18 07:55:05 -06:00
Vadim Stepanov
16bbfbbe73
Alert list view & caching rework (#216)
* remove cache usage in AlertGroupView

* remove CustomSearchFilter

* remove caching for alerts

* remove readonly db setup

* render templates on alert creation

* serialize only necessary fields on alert groups list

* optimize AlertGroupListSerializer

* return on-demand templating for alerts

* return on-demand templating for alert groups

* use CursorPaginator

* remove templating on alert create

* pass alert to AlertGroupWebRenderer

* alert_count -> alerts_count

* make sql joins after pagination

* add migration

* bring alert.save() back

* fix tests

* fix tests

* fix tests

* add perpage query param

* add cursor pagination to incidents page

* remove cached_render_for_web usage

* post merge fix

* keep cursor

* lint

* remove get_alert_groups_and_days_for_previous_same_period

* fix pagination on navigate

* refine search_fields on AlertGroupView

Co-authored-by: Maxim <hello.makson@gmail.com>
Co-authored-by: Maxim <maxim.mordasov@grafana.com>
2022-07-14 15:19:25 +01:00
Michael Derynck
fc97a4e3de Merge dev 2022-07-12 15:45:59 -06:00
Michael Derynck
74a32c444a Use utility function to create URLs 2022-07-12 15:42:20 -06:00
Innokentii Konstantinov
37187ef18a
Manual incidents for all teams (#194)
* Fix creation of manual incident via submenu

* Remove legacy finish_configuration_attachments

* Add manual incidents for all teams

* Fix manual incident creation from slash command

* Fix slack title template

* Get rid of migration
2022-07-12 12:56:27 +04:00
Matias Bordese
f38e79f41f Limit number of slack messages in resolution notes popup 2022-07-07 16:36:04 -03:00
Matvey Kukuy
63a4f0ea25
Merge pull request #6 from grafana/docs-refresh-before-oss
OSS Docs refresh
2022-06-13 16:00:02 +03:00
Matvey Kukuy
34e94ce823 Slack polishing & docs 2022-06-13 15:33:56 +03:00
Ildar Iskhakov
c2c503788b
Merge pull request #37 from grafana/refactor-integrations
Refactor integrations
2022-06-13 12:15:58 +03:00
Ildar Iskhakov
f81227a2d1 Fix linting 2022-06-13 11:43:24 +03:00
Matias Bordese
0e26568857 Remove demo token related code/logic 2022-06-09 09:16:10 -03:00