Commit graph

5007 commits

Author SHA1 Message Date
Matias Bordese
ae85ce3d55
Update plugin role permissions (#3145)
When the direct paging role was
[introduced](https://github.com/grafana/oncall/pull/3107), the OnCaller
role didn't keep the permission to use this feature.
Also, being an OnCaller, makes sense user can update their own
notification settings.

Related https://github.com/grafana/support-escalations/issues/7840.
2023-10-11 17:27:04 +00:00
Matias Bordese
88f9f118a3
Use partial instead of lambda when queuing ack task (#3134)
Prefer partial since it is the what the [docs
suggests](https://docs.djangoproject.com/en/4.2/topics/db/transactions/#performing-actions-after-commit).
Also because partial is evaluated immediately while lambda is evaluated
at runtime (which may be causing some issues):

```
>>> from functools import partial
>>> def foo(a, b, c):
...   print(a, b, c)
... 
>>> x = 10
>>> bar_partial = partial(foo, 1, 2, x)
>>> bar_lambda = lambda: foo(1, 2, x)
>>> x = 20
>>> bar_partial()
1 2 10
>>> bar_lambda()
1 2 20
```
2023-10-06 18:31:11 +00:00
github-actions[bot]
525c963fc6
Update make docs procedure (#3131)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-10-06 08:30:49 +00:00
GitHub Actions
821ed4af31 Release oncall Helm chart 1.3.43 2023-10-05 14:07:22 +00:00
Vadim Stepanov
40e6920e1a
Merge pull request #3126 from grafana/dev
v1.3.43
2023-10-05 15:05:17 +01:00
Vadim Stepanov
579aaade8a
v1.3.43 changelog (#3125) 2023-10-05 15:04:24 +01:00
Vadim Stepanov
1acb7018d0
Improve alert group deletion API (#3124)
# What this PR does

- Invalidate alert group cache on wipe
- Improve public API docs on alert group deletion
- Add / improve tests

## Which issue(s) this PR fixes

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

## 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-10-05 14:32:40 +01:00
Joey Orlando
dedc73dc19
Merge branch 'dev' of github.com:grafana/oncall into dev 2023-10-05 07:33:25 -04:00
Joey Orlando
e6bc9c9de1
run sms verification e2e tests
on daily github actions cron
2023-10-05 07:33:17 -04:00
Vadim Stepanov
a727450d49
Public API: Acknowledge & Resolve actions (#3108)
# What this PR does

Makes it possible to acknowledge/unacknowledge and resolve/unresolve
alert groups via public API, and makes sure these actions are reflected
properly in the alert group timeline.

## Demo

```bash
curl --request POST \
     --header "Authorization: TOKEN" \
     http://localhost:8080/api/v1/alert_groups/IQMHLV8INB24N/resolve
```

<img width="651" alt="Screenshot 2023-10-04 at 16 05 27"
src="https://github.com/grafana/oncall/assets/20116910/d4e66868-0132-4b6b-95c7-8424fced7c0b">

## Which issue(s) this PR fixes

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

## 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-10-05 09:46:48 +01:00
Matvey Kukuy
6dcd443e89
Fixing broken links in docs (#3097)
Broken links fixes.
Closes https://github.com/grafana/oncall-private/issues/2167

---------

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-10-05 11:41:31 +03:00
Matias Bordese
e8db8abb04
Merge pull request #3121 from grafana/helm-release/1.3.42
Merge: Release oncall Helm chart 1.3.42
2023-10-04 16:51:13 -03:00
GitHub Actions
03ffee1237 Release oncall Helm chart 1.3.42 2023-10-04 19:18:17 +00:00
Matias Bordese
1f725d83a8
Merge pull request #3120 from grafana/dev
v1.3.42
2023-10-04 16:16:04 -03:00
Matias Bordese
7d0594a906
Update CHANGELOG.md 2023-10-04 16:01:35 -03:00
Matias Bordese
abc0f17c70
Update schedule filter events endpoint to return additional shift info (#3110)
Related to https://github.com/grafana/oncall-private/issues/2191

This will also allow plugin to get shift name and type from the
filter_events API, without needing to get details for each involved
shift in the user's on-call summary timeline.
2023-10-04 16:47:27 +00:00
github-actions[bot]
72aea9ba62
Merge: Release oncall Helm chart 1.3.41 (#3113)
Merge this PR to `main` branch to start another [github actions
job](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release.yml)
that will release the updated version of the chart (version: 1.3.41,
appVersion: v1.3.41) into `grafana/helm-charts` helm repository.

This PR was created automatically by this [github
action](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release_pr.yml).

Co-authored-by: GitHub Actions <actions@github.com>
2023-10-04 09:04:17 -04:00
Joey Orlando
d6c015099b
unskip sms verification e2e test (#3114)
# What this PR does

Since we now have a Mailslurp account we can start running this test. At
the moment it is only run 1x daily on a GitHub Actions cron (to avoid
incurring costs; [it is
skipped](https://github.com/grafana/oncall/blob/dev/.github/workflows/linting-and-tests.yml#L317)
via a Playwright "[test annotation
filter](https://github.com/grafana/oncall/blob/dev/grafana-plugin/package.json#L14-L15)").

`MAILSLURP_API_KEY` repo secret has already been updated.

Closes #2693
2023-10-04 09:04:10 -04:00
Joey Orlando
d916d1b8ad
v1.3.41 2023-10-04 08:05:01 -04:00
Joey Orlando
728ee46b91
Update CHANGELOG.md 2023-10-04 07:57:18 -04:00
Joey Orlando
b0e0f646d8
add new 'Alert Groups Direct Paging' RBAC role (#3107)
# What this PR does

Closes #3095

https://www.loom.com/share/6c1a3e9970814f7c83d5cbd72cb5e6b5

## 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-10-03 19:28:26 -04:00
Michael Derynck
d604fa1d06
Fix action/webhook API not accepting empty/null user (#3094)
# What this PR does
Fix update calls made by terraform when user field is empty or not
present.
Should have been part of: https://github.com/grafana/oncall/pull/3053

## Which issue(s) this PR fixes
https://github.com/grafana/terraform-provider-grafana/issues/1025

## 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-10-03 14:33:05 +00:00
Andre Buryndin
d9c3d084be
feature: Hardening the Helm deployment with Redis and Postgres TLS (#3029)
# What this PR does

Short summary: this PR improves security and configuration management
for Helm deployment. Please take a look at the details below.

## Which issue(s) this PR fixes

Issues:
- Cannot explicitly define redis database (only 0 and 1 numbers are
used)
- Cannot securely use TLS for Redis (cannot set CA certificate; cannot
set client certificates)
- Cannot securely use TLS for Postgres (cannot set CA certificate;
cannot set client certificates; cannot set `verify-full` validation)
- ~~Chart option `securityContext.readOnlyRootFilesystem: true` issues
CrashLoopBack pod state~~ will be moved to new PR

## Checklist

- [x] ~~Unit, integration, and e2e (if applicable) tests updated~~ (not
required)
- [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)

- [x] Helm tests are fixed and updated
- [x] Manually verified the features:
  - [x] postgres TLS connection with `verify-full` validation
  - [x] redis TLS connection with `cert_required` validation
  - [x] redis protocol and database number controls
  - [x] all containers properly work in read-only root filesystem
- [x] all changes are backward compatible (doesn't break old
deployments)

## Changelog

- Fixed helm tests
- Added configuration options for secure TLS communication with
dependencies like Redis, MySQL, and Postgres
- ~~Added configuration option for relocating `celerybeat` database file
(read-only root filesystem issue)~~ will be moved to new PR
- Improved redis database configuration options
- Now only single redis database is used
- Added ability to mount custom volumes (with CA certificates, for
example) into Helm chart
- ~~Fixed issue with read-only root filesystem for Helm chart~~ will be
moved to new PR
- Add ability to work with Redis ACL (and AWS ElastiCache)
2023-10-03 09:25:28 -04:00
dependabot[bot]
a2c9c1f109
Bump urllib3 from 1.26.15 to 1.26.17 in /engine (#3102)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.15 to
1.26.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/releases">urllib3's
releases</a>.</em></p>
<blockquote>
<h2>1.26.17</h2>
<ul>
<li>Added the <code>Cookie</code> header to the list of headers to strip
from requests when redirecting to a different host. As before, different
headers can be set via <code>Retry.remove_headers_on_redirect</code>.
(GHSA-v845-jxx5-vc9f)</li>
</ul>
<h2>1.26.16</h2>
<ul>
<li>Fixed thread-safety issue where accessing a <code>PoolManager</code>
with many distinct origins would cause connection pools to be closed
while requests are in progress (<a
href="https://redirect.github.com/urllib3/urllib3/issues/2954">#2954</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's
changelog</a>.</em></p>
<blockquote>
<h1>1.26.17 (2023-10-02)</h1>
<ul>
<li>Added the <code>Cookie</code> header to the list of headers to strip
from requests when redirecting to a different host. As before, different
headers can be set via <code>Retry.remove_headers_on_redirect</code>.
(<code>[#3139](https://github.com/urllib3/urllib3/issues/3139)
&lt;https://github.com/urllib3/urllib3/pull/3139&gt;</code>_)</li>
</ul>
<h1>1.26.16 (2023-05-23)</h1>
<ul>
<li>Fixed thread-safety issue where accessing a <code>PoolManager</code>
with many distinct origins
would cause connection pools to be closed while requests are in progress
(<code>[#2954](https://github.com/urllib3/urllib3/issues/2954)
&lt;https://github.com/urllib3/urllib3/pull/2954&gt;</code>_)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c9016bf464"><code>c9016bf</code></a>
Release 1.26.17</li>
<li><a
href="01220354d3"><code>0122035</code></a>
Backport GHSA-v845-jxx5-vc9f (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3139">#3139</a>)</li>
<li><a
href="e63989f97d"><code>e63989f</code></a>
Fix installing <code>brotli</code> extra on Python 2.7</li>
<li><a
href="2e7a24d087"><code>2e7a24d</code></a>
[1.26] Configure OS for RTD to fix building docs</li>
<li><a
href="57181d6ea9"><code>57181d6</code></a>
[1.26] Improve error message when calling urllib3.request() (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3058">#3058</a>)</li>
<li><a
href="3c0148048a"><code>3c01480</code></a>
[1.26] Run coverage even with failed jobs</li>
<li><a
href="d94029b7e2"><code>d94029b</code></a>
Release 1.26.16</li>
<li><a
href="18e92145e9"><code>18e9214</code></a>
Use trusted publishing for PyPI</li>
<li><a
href="d25cf83bba"><code>d25cf83</code></a>
[1.26] Fix invalid test_ssl_failure_midway_through_conn</li>
<li><a
href="25cca38949"><code>25cca38</code></a>
[1.26] Fix test_ssl_object_attributes</li>
<li>Additional commits viewable in <a
href="https://github.com/urllib3/urllib3/compare/1.26.15...1.26.17">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=urllib3&package-manager=pip&previous-version=1.26.15&new-version=1.26.17)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/grafana/oncall/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 07:46:57 -04:00
Matias Bordese
508c169ab4
Update labels and add note for cloud-only integrations in docs (#3075)
Related to https://github.com/grafana/oncall/issues/2616
2023-10-02 10:14:03 -03:00
Matias Bordese
29eae9b2c6
Fix slack notification for shift end affected by taken swap (#3092)
Related to https://github.com/grafana/oncall/issues/3096
2023-10-02 12:56:07 +00:00
Matvey Kukuy
6d7fc16fbd
Tilt Docs polishing (#3090)
minor
2023-09-30 18:17:41 +00:00
Ildar Iskhakov
d2a34eb36e
Merge pull request #3080 from grafana/dev
v1.3.40
2023-09-28 17:21:25 +08:00
Ildar Iskhakov
fd45ea444b
Merge branch 'main' into dev 2023-09-28 14:41:57 +08:00
Ildar Iskhakov
9dc1125d5c
Update CHANGELOG.md 2023-09-28 14:41:15 +08:00
Ildar Iskhakov
5768decdbf
Direct paging improvements (hotfix) (#3079)
# What this PR does

Fixes https://github.com/grafana/oncall/pull/3064

## 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-09-28 13:54:30 +08:00
Ildar Iskhakov
51014735aa
WIP: Direct paging improvements (#3064)
# What this PR does
* Create Direct Paging integration (with default route) when team is
created with bulk_update
* Create notification policies when user is created with bulk_update
* If user notification policies are empty change it to Email
* Minor markup and wording improvements
* Add grafana queue to helm chart
* Remove disabled commands for redis helm chart
* Improve Dockerfile caching

## 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-09-28 03:57:49 +00:00
Michael Derynck
4c84d8adc4
Merge pull request #3077 from grafana/helm-release/1.3.39
Merge: Release oncall Helm chart 1.3.39
2023-09-27 14:09:47 -06:00
GitHub Actions
e3bd860baf Release oncall Helm chart 1.3.39 2023-09-27 19:10:58 +00:00
Michael Derynck
65bca4a792
Merge pull request #3076 from grafana/dev
Merge dev to main
2023-09-27 13:06:40 -06:00
Michael Derynck
9126f214eb
Update CHANGELOG.md
Remove repeated entry
2023-09-27 12:51:45 -06:00
Michael Derynck
cfda0c8aaa
Update CHANGELOG.md 2023-09-27 12:43:15 -06:00
Michael Derynck
ab56e53fe8
Allow deletion for removed presets (#3072)
If a webhook preset is removed from configuration while there are still
existing webhooks referencing it they will have the following behavior:

- Webhook can be viewed
- Webhook can be deleted
- Webhook cannot be modified
- Webhook will not execute

Removing a preset from configuration effectively disables all existing
webhooks referencing it while retaining their data.
2023-09-27 10:21:55 -06:00
Michael Derynck
b5a8b8b168
Add webhook presets (#2996)
# What this PR does
Add a system similar to how we select integrations when creating
webhooks so that the user has a description of what webhookds do and
does not have to write complex templates for common webhook use cases.
Presets allow us to create the contents of the webhooks in code and
define which fields are controlled by the preset. Some specifics:

- Newly created webhooks must choose between Simple, Advanced or another
predefined system
- Simple is always an escalation step and will post the entire payload
to the given URL
- Advanced is the same as no preset which is our current view where all
fields are available
- There are no changes for all existing webhooks with empty preset
fields
- Once a webhook is created with a preset the preset cannot be changed
- Fields in the webhook that are populated by code will give a
validation error if they are modified
- In the public API webhooks with presets are returned for viewing but
cannot be created or modified. This restriction is in place because the
Web UI provides the context for which fields to use with a preset. The
public API is for interacting with webhooks where all fields are
defined.

To define a preset create a file with metadata and an override function.
The metadata drives validation and what to display in the UI. There are
two functions one is connected to the pre_save hook of the Webhook model
for persistent changes, the other replaces parameters at execution time
for ephemeral changes. See the simple and advanced presets as an
example. The file must be listed in settings in
`INSTALLED_WEBHOOK_PRESETS` to be enabled at runtime..

## Which issue(s) this PR fixes

## 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)

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2023-09-27 07:22:52 -06:00
Matias Bordese
bba6eb333e
Add db indexes to user table (#3067)
Add composite indexes based on existing queries/usage, ensuring partial
index prefixes are useful too.

- `is_active` filtering is set in the default `User` manager
- most of our user queries are per `organization`
- multiple cases filter by `username` or `email` (most notably schedule
related queries, given the low-level backend ical representation)

Also rework how users are fetched from DB when getting users from
schedules ical representation (which was particularly slow when regex
filtering by required permission).

Related to https://github.com/grafana/oncall-private/issues/2163
2023-09-27 12:35:52 +00:00
Matvey Kukuy
a898835eb4 Fixing ratelimit texts 2023-09-27 14:18:00 +03:00
Matias Bordese
9ead70a4ed
Add schedules enable_web_overrides option to public API (#3062)
Related updates (to be merged afterwards):
- https://github.com/grafana/amixr-api-go-client/pull/14
- https://github.com/grafana/terraform-provider-grafana/pull/1056
2023-09-26 14:04:53 -03:00
Vadim Stepanov
cc337d1473
Add mobile app auth on integration & escalation chain endpoints (#3056) 2023-09-26 16:31:26 +01:00
Michael Derynck
2f1cc43b0e
Fix public actions endpoint to handle empty user field (#3053)
# What this PR does
Fixes a regression that was introduced when actions were remapped to new
webhooks. Validation in the serializer was making the user field no
longer accept blank and None values. This PR makes those values accepted
again.

## Which issue(s) this PR fixes
https://github.com/grafana/terraform-provider-grafana/issues/1025

## 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-09-26 14:54:41 +00:00
Rares Mardare
fbec331ae5 fixed build 2023-09-22 09:12:00 +03:00
Maxim Mordasov
85c8605ead
Unify breadcrumbs behaviour with other Grafana Apps and main core (#3003)
# What this PR does

Unify breadcrumbs behaviour with other Grafana Apps and main core

## Which issue(s) this PR fixes

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

## 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-09-21 17:31:56 +03:00
github-actions[bot]
2848836f6f
Update make docs procedure (#3048)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-09-20 16:02:27 +00:00
Matias Bordese
6896d267fb
Refactoring/optimizing some bits in schedule views (#3039)
Related to https://github.com/grafana/oncall-private/issues/2163
2023-09-20 11:49:58 +00:00
Maxim Mordasov
b67bdf79f4
Build 'When I am on-call' for web UI (#3034)
# What this PR does

Build 'When I am on-call' for web UI

## Which issue(s) this PR fixes

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

## 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-09-20 14:34:57 +03:00
Vadim Stepanov
389a887f5b
Merge pull request #3043 from grafana/helm-release/1.3.38
Merge: Release oncall Helm chart 1.3.38
2023-09-19 14:33:19 +01:00