Commit graph

504 commits

Author SHA1 Message Date
Ildar Iskhakov
fd19dd422a
Use periodic task for heartbeats (#2723)
# What this PR does

## Which issue(s) this PR fixes

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
Co-authored-by: Michael Derynck <michael.derynck@grafana.com>
2023-08-10 02:25:00 +00:00
Matias Bordese
a1a9e0c33c
Handle ical schedule import with duplicated event UIDs (#2760) 2023-08-07 13:11:46 +00:00
Vadim Stepanov
424b2b80f8
Add backend support for push notification sounds with custom extensions (#2759)
# What this PR does

Instead of always adding `.aiff` or `.mp3` at the end of notification
sound names depending on the platform (iOS vs Android), add them only if
no extension is present already. This should make it possible to use
sounds with custom extensions.

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-08-07 09:55:17 +00:00
Matias Bordese
bb9f647608
Filter out untaken swaps from final schedule and shift notifications (#2748)
Avoid creating (or notifying) about potential event splits resulting
from untaken swap requests.
2023-08-04 17:43:54 +00:00
Maxim Mordasov
8412282569
merge final schedule in as less lines as possible (#2649)
# What this PR does

Merge final schedule in less rows

## Which issue(s) this PR fixes

[Final schedule shifts should lay in one
line](https://github.com/grafana/oncall/issues/1665)

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-08-04 14:46:54 +00:00
Maxim Mordasov
8641349714
Shift Swap Requests - build out web UI changes (#2694)
# What this PR does

Shift Swap Requests - build out web UI changes

## Which issue(s) this PR fixes

https://github.com/grafana/oncall/issues/2593

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-08-04 13:33:11 +00:00
Matias Bordese
d0c5357600
Do not show override shortcut when web overrides are disabled (#2745)
Fixes https://github.com/grafana/oncall/issues/2387
2023-08-04 12:09:12 +00:00
Vadim Stepanov
6f3c62e05f
Add stack slug to organization options for direct paging (#2743)
# What this PR does

Adds stack slug to organization options for `/escalate` (a single
Grafana org might have multiple stacks).

<img width="514" alt="Screenshot 2023-08-03 at 14 24 58"
src="https://github.com/grafana/oncall/assets/20116910/4a43867d-6f6e-4050-a30e-204aeaded663">

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-08-03 14:36:07 +01:00
Yulya Artyukhina
0494afac85
Update schedule slack notifications (#2710)
# What this PR does

Update schedule slack notifications to use schedule final events instead
of getting events from iCal

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-08-03 12:38:01 +00:00
Joey Orlando
767d2c493b
Update CHANGELOG.md 2023-08-03 06:33:39 -04:00
Innokentii Konstantinov
bb97bdde2d
Fix contact point auto-creation (#2721) 2023-08-02 20:13:47 +08:00
Vadim Stepanov
c855258018
Add mobile app push notifications for shift swap requests (#2717)
# What this PR does

Adds mobile app push notifications for shift swap requests.

## Which issue(s) this PR fixes

https://github.com/grafana/oncall/issues/2630

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-08-02 12:26:45 +01:00
Matias Bordese
2bc5c28777
Skip past due swap requests when calculating events (#2718) 2023-08-01 19:27:44 +00:00
Matias Bordese
289573effe
Fix swap requests event filter limits (#2716) 2023-08-01 20:19:46 +02:00
Matias Bordese
26921fc67a
Fix final_events datetime filtering when splitting override (#2715) 2023-08-01 15:32:51 +00:00
Innokentii Konstantinov
945cbba18b Update CHANGELOG.md 2023-08-01 12:20:12 +08:00
Innokentii Konstantinov
1ccb9d6979
AlertManager v2 (#2643)
Introduce AlertManager v2 integration with improved internal behaviour

it's using grouping from AlertManager, not trying to re-group alerts on
OnCall side.
Existing AlertManager and Grafana Alerting integrations are marked as
Legacy with options to migrate them manually now or be migrated
automatically after DEPRECATION DATE(TBD).
Integration urls and public api responses stay the same both for legacy
and new integrations.

---------

Co-authored-by: Rares Mardare <rares.mardare@grafana.com>
Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2023-08-01 12:18:52 +08:00
Matias Bordese
09e4a4d378
Add list shifts for swap request endpoint (#2697)
Example request/response:

`GET /api/internal/v1/shift_swaps/SSR3FJC9H3HZCHT/shifts`

```
{
	"events": [
		{
			"all_day": false,
			"start": "2023-08-01T00:00:00Z",
			"end": "2023-08-01T03:00:00Z",
			"users": [
				{
					"display_name": "testing",
					"email": "testing",
					"pk": "UWJWIN8MQ1GYL",
					"avatar_full": "http://localhost:3000/avatar/ae2b1fca515949e5d54fb22b8ed95575",
					"swap_request": {
						"pk": "SSR3FJC9H3HZCHT"
					}
				}
			],
			"missing_users": [],
			"priority_level": 1,
			"source": "web",
			"calendar_type": 0,
			"is_empty": false,
			"is_gap": false,
			"is_override": false,
			"shift": {
				"pk": "OK9SS5YP42XRG"
			}
		},
		{
			"all_day": false,
			"start": "2023-08-01T03:00:00Z",
			"end": "2023-08-02T00:00:00Z",
			"users": [
				{
					"display_name": "testing",
					"email": "testing",
					"pk": "UWJWIN8MQ1GYL",
					"avatar_full": "http://localhost:3000/avatar/ae2b1fca515949e5d54fb22b8ed95575",
					"swap_request": {
						"pk": "SSR3FJC9H3HZCHT"
					}
				}
			],
			"missing_users": [],
			"priority_level": 1,
			"source": "web",
			"calendar_type": 0,
			"is_empty": false,
			"is_gap": false,
			"is_override": false,
			"shift": {
				"pk": "OK9SS5YP42XRG"
			}
		}
	]
}
```
2023-07-31 15:13:35 -03:00
Joey Orlando
065f9aea7f
Update CHANGELOG.md 2023-07-31 10:28:50 -04:00
Lukas Steiner
e1598d7c20
add option for sidecar containers in helm chart (#2650)
# What this PR does
Adds support for defining extra containers which run as sidecar
alongside the celery and engine containers

## Which issue(s) this PR fixes

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-31 10:28:08 -04:00
Vadim Stepanov
f7a8c54766
Update CHANGELOG.md 2023-07-31 14:29:00 +01:00
Rares Mardare
71ae1d3ff6
Fix for mobile verification (#2692)
# What this PR does

## Which issue(s) this PR fixes

https://github.com/grafana/oncall/issues/2687

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-31 15:48:18 +03:00
Matias Bordese
000372f24a
Add filter_shift_swaps endpoint to schedules API (#2684)
Example request/response

`GET
/api/internal/v1/schedules/SVV8E9JGLLR9T/filter_shift_swaps/?date=2023-07-22&days=9`

```
{
	"shift_swaps": [
		{
			"id": "SSR1QJ93UNCUPC4",
			"created_at": "2023-07-27T12:55:32.188232Z",
			"updated_at": "2023-07-28T13:28:08.027124Z",
			"status": "taken",
			"schedule": "SVV8E9JGLLR9T",
			"swap_start": "2023-07-24T21:00:00.000000Z",
			"swap_end": "2023-08-04T03:00:00.000000Z",
			"description": null,
			"beneficiary": "UWJWIN8MQ1GYL",
			"benefactor": "UVSKHRA4YU328"
		}
	]
}
```
2023-07-31 11:41:37 +00:00
Nelson
fc8191c7db
Helm - Twilio validation make auth fields optional (#2674)
# What this PR does
When configuring twilio auth only the provided values are templated. 

## Which issue(s) this PR fixes
https://github.com/grafana/oncall/issues/2654

## Checklist

- [X] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
Co-authored-by: Joey Orlando <joseph.t.orlando@gmail.com>
2023-07-31 08:25:30 +00:00
Michael Derynck
f201fd2be2
Paginate calls to get instances from gcom (#2669)
# What this PR does
GCOM now has many more instances returned than in the past. Paginate
these calls instead of getting all at once.

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-28 21:19:27 +00:00
Matias Bordese
ddd98e0c3f
Apply shift swap requests to schedule events (#2677)
Reflect swap requests details in schedule events.
2023-07-28 18:53:27 +00:00
Vadim Stepanov
c5ec4093b2
Update CHANGELOG.md 2023-07-28 18:34:21 +01:00
Vadim Stepanov
97757f570e
Fix alerts.0028 migration for SQLite (#2680)
# What this PR does

Fixes an issue with
[alerts.0028](f77a54b518/engine/apps/alerts/migrations/0028_drop_alertreceivechannel_restricted_at.py)
migration failing on SQLite with the following error:
`sqlite3.OperationalError: near "DROP": syntax error`.

The issue is fixed by updating the SQLite version from `3.27.2` to
`3.40.1` (SQLite `3.35.0` introduced native support for dropping columns
as per this [SO answer](https://stackoverflow.com/a/66399224)).

However, I couldn't find an easy way to independently update SQLite,
since it's bundled into Python's standard library.
Updating the Docker image to use the latest Debian stable release fixes
the issue as it already comes with SQLite `3.40.1` out of the box. So
this PR effectively bumps the Debian version from 10 to 12, and bumps
the Python version from `3.11.3` to `3.11.4`.

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-28 18:29:00 +01:00
Matias Bordese
3ff6e0e492
Refactoring schedule final events (#2651)
Update `list_users_to_notify_from_ical` to use schedule final events
2023-07-28 11:59:33 +00:00
Ildar Iskhakov
9ab43cea11
Update CHANGELOG.md 2023-07-28 14:00:56 +08:00
Alexander Cherepanov
6334c4181a
fix: post to Telegram ChatOps channel option is not showing in the integration page (#2498)
# What this PR does
Fix Post to Telegram ChatOps channel option is not showing in the
integration page.

Problem has been introduced by [this
PR](https://github.com/grafana/oncall/pull/2147/files)

## Which issue(s) this PR fixes
closes https://github.com/grafana/oncall/issues/2486

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)

---------

Co-authored-by: Rares Mardare <rares.mardare@grafana.com>
2023-07-27 13:40:31 +00:00
Vadim Stepanov
55299995f7
Fix "Continue escalation if >X alerts per Y minutes" escalation step (#2636)
# What this PR does

Fixes a faulty escalation step "Continue escalation if >X alerts per Y
minutes".

## Which issue(s) this PR fixes

https://github.com/grafana/oncall/issues/895

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-26 13:33:24 +01:00
Vadim Stepanov
faa7099297
Direct paging: page if acked or silenced, show warning when resolved (#2639)
# What this PR does

The current implementation of the direct paging feature doesn't page
additional responders if the alert group is acknowledged, silenced, or
resolved, and doesn't show any warnings for such cases.
This PR makes so that adding responders for silenced & acknowledged
alert groups actually pages the selected user / schedule. For resolved
alert groups, a warning message will be shown both in web UI and Slack.

## Which issue(s) this PR fixes

Related to https://github.com/grafana/oncall/issues/2442

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-26 13:25:26 +01:00
Ildar Iskhakov
c73d0f385a
Remove checks that slow down plugin load and cause "Initializing plugin..." (#2624)
# What this PR does

* Removes "Initializing plugin.." message during load
* Removes black screen when plugin loads
* Removes wait for syncs between OnCall and Grafana
* Deprecates GET /status, POST /sync, GET /sync in favour of single POST
/status

## Which issue(s) this PR fixes

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-26 10:57:57 +00:00
Matias Bordese
5341a7ea5b
Revert "Refactoring schedule final events for reusability" (#2642)
Reverts grafana/oncall#2625

Found a small issue, reverting for now until the problem is fixed not to
block other changes
2023-07-25 17:37:33 -03:00
Matias Bordese
95723583aa
Refactoring schedule final events for reusability (#2625)
First step towards reusing `schedule.final_events` where current /
upcoming schedule shifts information is needed (eg. escalations, shift
notifications, etc)
2023-07-25 18:45:50 +00:00
Joey Orlando
eaa20712f0
Update CHANGELOG.md 2023-07-25 12:18:14 -04:00
Joey Orlando
7675719911
Update CHANGELOG.md 2023-07-25 12:16:36 -04:00
Maxim Mordasov
af9d5c935b
Maxim/bring heartbeats back to UI (#2550)
# What this PR does

Bring heartbeats back to UI

## Which issue(s) this PR fixes

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2023-07-25 09:24:54 +00:00
Joey Orlando
f16df03279
support comma and space delimited grafana feature_toggles (#2623)
## Which issue(s) this PR fixes

See the following threads for more context on the issue this PR
addresses:
- https://raintank-corp.slack.com/archives/CRUKW54N5/p1690068395450819
- https://raintank-corp.slack.com/archives/C036J5B39/p1690183217162019

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-25 02:39:39 -04:00
Yulia Shanyrova
49972c2139
Alert with information has been added to chatOPs tab (#2566)
# What this PR does
If FEATURES Slack and Telegram are not enabled for OSS, User will see
nothing at the chatops tab. Alert has been added for this situation
## Which issue(s) this PR fixes
https://github.com/grafana/oncall/issues/1735

---------

Co-authored-by: Rares Mardare <rares.mardare@grafana.com>
2023-07-24 15:38:23 +03:00
Joey Orlando
3d708767dc
add rbac_permissions to current-user response + rbac_enabled to current-org response (#2611)
# What this PR does

unblocks https://github.com/grafana/oncall-mobile-app/issues/152

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-21 11:38:58 -04:00
Michael Derynck
2b2483981f
Update CHANGELOG.md 2023-07-21 09:16:49 -06:00
Vadim Stepanov
1d6767ae74
Remove unnecessary team checks (#2606)
# What this PR does

Removes unnecessary team checks enforced by public API, as they seem to
be outdated and not aligned with the web UI and docs.

From public
[docs](https://grafana.com/docs/oncall/latest/user-and-team-management/#manage-teams-in-grafana-oncall):
> Resources from different teams can be connected with one another. For
instance, you can create an integration in one team, set up multiple
routes for the integration, and utilize escalation chains from other
teams. Users, schedules, and outgoing webhooks from other teams can also
be included in the escalation chain.

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-21 15:55:57 +01:00
Vadim Stepanov
29d532e40d
Improve APIs for creating/updating direct paging integrations (#2603)
# What this PR does

- Disallow creating direct paging integrations for a team that already
has one + make sure this constraint is also enforced on update
- Refactor some direct paging API parts to be more reusable & simple
- Add tests

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-21 10:01:58 +00:00
Ildar Iskhakov
3ba321cdd8
Add filter integrations by type (#2609)
# What this PR does

## Which issue(s) this PR fixes

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-21 14:59:05 +08:00
Michael Derynck
773deba243
Check original webhook for sensitive fields when copying (#2608)
# What this PR does
When a webhook is being copied if it contains a password or
authorization header reference the original webhook to get this data
since it has been masked in the input data.

## Which issue(s) this PR fixes
Fixes #2604 

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-20 21:23:33 +00:00
Joey Orlando
67393dd2ba
allowing storing/updating time_zone in mobile app user settings table (#2601)
# What this PR does

closes #2450 

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-20 14:12:54 -04:00
Vadim Stepanov
ed6389ca8f
Update direct paging docs (#2600)
# What this PR does

Updates public docs on direct paging after introducing numerous changes
to the feature.

## Preview


https://github.com/grafana/oncall/assets/20116910/f141e8b1-ac2c-455c-81f8-9c62c4c75234


## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-20 15:57:00 +01:00
Vadim Stepanov
fa1ca0dfa6
Fix Slack direct paging issue when there are >100 schedules (#2594)
# What this PR does

Fix Slack direct paging issue when there are >100 schedules.

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-19 13:52:05 +00:00