Commit graph

2952 commits

Author SHA1 Message Date
Yulya Artyukhina
1ff6ac3380
Set next step eta to None if escalation was paused (#2901)
# What this PR does
Set next step eta to None if escalation was paused (escalation step
"Continue escalation if num alerts > X in time window"

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

## 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-29 13:46:41 +00:00
Joey Orlando
df6f6183ec
update celerybeat task paths for recently
refactored mobile_app tasks
2023-08-29 12:39:59 +02:00
Joey Orlando
88faa11132
fix failing helm unit test by pinning
chart.appVersion in test
2023-08-29 12:01:15 +02:00
Joey Orlando
05dc8839b2
add instructions on how to run helm unit tests
plus add command to Makefile
2023-08-29 11:57:26 +02:00
Joey Orlando
cba4ccb8a9
refactor apps.mobile_app.tasks into individual task files (#2888)
# What this PR does

Closes #2722 

## 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-29 11:34:09 +02:00
Ildar Iskhakov
fee0a90e56
Merge branch 'main' into dev 2023-08-29 15:49:15 +08:00
Ildar Iskhakov
d5248534eb
Update CHANGELOG.md 2023-08-29 15:48:04 +08:00
Ildar Iskhakov
69661f1986
Switch to alpine base image (#2872)
# 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-08-29 15:03:32 +08:00
Michael Derynck
e0e1f4b021
Always update last_heartbeat_time async (#2892)
# What this PR does
If the same heartbeat is requested at a high rate it can create lock
contention when updating the timestamp in the DB. Moving to always run
update in task should free up the connection on the API server faster,
although the task might still see some lock wait time.

## Which issue(s) this PR fixes

## Checklist

- [ ] 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-29 02:19:28 +00:00
Michael Derynck
5d4f96ec96
Alerting integration use get for receiver key (#2894)
# What this PR does
Fixes an issue where OnCall could not parse Alerting configuration if
there was a route created without a receiver. The case where this comes
up is a notification policy matcher is defined for the purpose of
ignoring certain label values before continuing on to other matching
rules.

## 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)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-08-29 02:01:45 +00:00
Yulya Artyukhina
5bc7351671
Fix next step eta for silenced alert groups (#2887)
# What this PR does
Update `next_step_eta` in alert group escalation snapshot when alert
group is silenced for period

## Which issue(s) this PR fixes
Fixes the issue related to [this
one](https://github.com/grafana/oncall-private/issues/2028)

## 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>
Co-authored-by: Joey Orlando <joseph.t.orlando@gmail.com>
2023-08-28 12:13:01 +00:00
Joey Orlando
c811a2ad15
Address bug when taking a Shift Swap Request and the Slack message is not updated (#2886)
# What this PR does

Address bug when a Shift Swap Request is accepted either via the web or
mobile UI, and the Slack message is not
updated to reflect the latest state.

## 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-28 11:55:17 +02:00
Joey Orlando
d5e1e9ade2
add interactive api endpoint integration test
for accepting shift swap requests
2023-08-28 10:02:55 +02:00
Vadim Stepanov
fbfcf7b720
Prevent uWSGI from consuming too much memory (#2884)
# What this PR does

Fixes https://github.com/grafana/oncall/issues/1521 (see
https://github.com/unbit/uwsgi/issues/2299)

## 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-25 16:18:37 +00:00
Vadim Stepanov
f960e08b5b
Merge pull request #2878 from grafana/helm-release/1.3.27
Merge: Release oncall Helm chart 1.3.27
2023-08-25 17:11:15 +01:00
GitHub Actions
7c7428e59a Release oncall Helm chart 1.3.27 2023-08-25 13:51:27 +00:00
Vadim Stepanov
d96dafa309
Merge pull request #2883 from grafana/dev
Revert "Bump uwsgi from 2.0.21 to 2.0.22 in /engine" (#2882)
2023-08-25 14:48:50 +01:00
Vadim Stepanov
9764a49b1c
Revert "Bump uwsgi from 2.0.21 to 2.0.22 in /engine" (#2882)
Reverts grafana/oncall#2875
2023-08-25 14:48:05 +01:00
GitHub Actions
449fd3ce75 Release oncall Helm chart 1.3.27 2023-08-25 06:05:38 +00:00
Joey Orlando
7df9d1f1f4
v1.3.27 2023-08-25 08:04:42 +02:00
Joey Orlando
463c84dad6
Update CHANGELOG.md 2023-08-25 08:04:25 +02:00
Joey Orlando
9cdcf1cd2a
fix public docs iframe issue 2023-08-25 08:02:11 +02:00
Yulya Artyukhina
26cc044390
Correct escalation policies public api documentation (#2830)
# What this PR does
Corrects escalation_policies public api docs

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

## 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-08-25 07:59:20 +02:00
dependabot[bot]
cb2e89d312
Bump uwsgi from 2.0.21 to 2.0.22 in /engine (#2875)
Bumps [uwsgi](https://github.com/unbit/uwsgi-docs) from 2.0.21 to
2.0.22.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/unbit/uwsgi-docs/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uwsgi&package-manager=pip&previous-version=2.0.21&new-version=2.0.22)](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-08-25 07:56:43 +02:00
Joey Orlando
4581add17c
fix public docs iframe issue 2023-08-25 07:52:21 +02:00
Joey Orlando
62a5437d37
add comments to uwsgi config + tweak a few settings (#2856) 2023-08-24 21:14:47 +02:00
Matias Bordese
a17569c49c
Update ical export to track primary/overrides calendar using priority (#2871)
Related to https://github.com/grafana/oncall/issues/2778
2023-08-24 15:36:42 +00:00
Alexander Cherepanov
ec028eb9d9
Telegram long polling (#2250)
# What this PR does

Runs Telegram long polling to get updates. 
It's enabled by setting `FEATURE_TELEGRAM_LONG_POLLING_ENABLED=True`.
That will disable webhook and run separate deployment for telegram long
polling.

Telegram long polling is not very HA mode, but it does not need to
expose webhook url to internet and simplifies telegram integration.

## Which issue(s) this PR fixes

closes #561 

## 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-24 09:12:24 +02:00
Michael Derynck
5a5fb6ea8e
Status to not access grafana headers from mobile request (#2870)
# What this PR does
When accessing the status endpoint using a mobile authentication token
do not use headers that would only be available if the request came from
Grafana.

## 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)
2023-08-23 19:39:02 +00:00
Matias Bordese
2c2497e2d1
Enable shifts export endpoint for all schedule types (#2863)
Related to https://github.com/grafana/oncall/issues/2799
2023-08-23 11:07:06 -03:00
Matias Bordese
62dcdbedf2
Minor metrics dashboard updates (#2862)
- Fix oncall logo URL
- Add note about possible missing data
2023-08-23 12:14:20 +00:00
Jack Baldry
4af642083b
Add 'pr: no changelog' label because these PRs dont need to update the changelog (#2867)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
2023-08-23 11:55:55 +02:00
github-actions[bot]
4b86e6f737
Update make docs procedure (#2866)
Co-authored-by: grafanabot <bot@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
2023-08-23 09:49:42 +00:00
Ildar Iskhakov
6d75f7a213
Tune spectacular settings (#2865)
# 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-08-23 13:46:44 +08:00
Michael Derynck
7440a836da
Webhooks Public API (#2790)
# What this PR does
- Add public API for Webhooks CRUD, and GET webhook responses
- Add insight resource logs for internal and public webhook API calls
- Change public actions API to wrap Webhooks to maintain compatibility
with existing callers
 

## Which issue(s) this PR fixes

#2792 
#2793 

## 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-22 14:05:52 -06:00
Michael Derynck
0dfa882a06
Return API URL as part of status (#2791)
# What this PR does
- Provide API URL when returning status to inform plugin or mobile app
if it should be talking to a different backend in case of migration.
- Add MobileAppAuthTokenAuthentication to status endpoint so that the
app can use it.
- Split PluginAuthentication (Checks user) and BasePluginAuthentication
(Does not check user) and use BasePluginAuthentication in grafana-plugin
app when getting status.
- Removed PluginTokenVerified since it can be handled by
BasePluginAuthentication.
- Removed deprecated endpoints from grafana-plugin app. 

## 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)
2023-08-22 17:17:26 +00:00
Joey Orlando
3783aeab64
fix a few flaky e2e tests + allow running project locally via k8s/helm (#2751)
# What this PR does

- updates the GitHub Actions workflow to move the e2e tests into a
"[reusable
workflow](https://docs.github.com/en/actions/using-workflows/reusing-workflows#creating-a-reusable-workflow)"
which are run in two scenarios:
- all tests _except_ those annotated as `@expensive` are run against
`grafana/grafana:latest` on all feature branches
- all tests _including_ `@expensive` tests are run on weekdays @ 07h00
UTC, against a matrix of 6 grafana versions. Results of these builds
will be posted to `#irm-amixr-flux` Slack channel.
- local development will now be:
  ```bash
  make build-dev-images init-k8s start-k8s
  ```
- `build-dev-images` - builds the engine and UI docker images (only need
to run first time)
- `init-k8s` - creates a `kind` cluster and loads the two Docker images
onto the cluster nodes (only need to run first time)
- `start-k8s` - switches `kubectl` context to the created `kind`
cluster, and uses `helm` to deploy everything as defined in
`./dev/helm-local.yml` and `./dev/helm-local.dev.yml` (that latter file
is `.gitignored` and specific to how _you_ want your setup to look like.
Hot reloading works as before. This is the _start_ of #2381. (I've
marked these `make` commands as beta, because they've not yet been
thoroughly tested for local development).
- modifies the `helm` chart to add the concept of `oncall.devMode`,
`ui`, and ability to run oncall w/ sqlite
- `oncall.devMode` will essentially just add `volumes` and
`volumeMounts` to the various engine/migrate containers +
- `ui.enabled` + `ui.env` - create a ui container (which is needed for
hot reloading locally)
- `sqlite` - this was useful for the e2e test environments where Github
runner resources are scarce. Running `mariadb` eats up precious
resources, instead lets just use sqlite here
- fixes an issue that caused sporadic HTTP 502s from the grafana
plugin-proxy, which led to flaky tests. See [this
comment](https://github.com/grafana/oncall/pull/2751/files#diff-09040e8df192699b9c5742110ebbe8d9d5c3938cb156cc1cb99fa1c3fdee4fefR72-R77)
for more context + a link to a relevant Slack conversation. **tldr;**
there is a bug with the Grafana plugin proxy in Grafana >= v10.0.3.
Let's stop using the `latest`/`main` docker tags in our test and pin to
`10.0.2` for now
- ~~re-enables the e2e test which validates a phone number via SMS, and
asserts that we can receive an alert escalation via SMS (new Mailslurp
API Key has been added as a repo secret)~~ update: this is still blocked
by procurement, will be done in a future PR

## 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-22 19:03:29 +02:00
github-actions[bot]
2b65d27202
Merge: Release oncall Helm chart 1.3.26 (#2861)
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.26,
appVersion: v1.3.26) 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-08-22 18:33:20 +02:00
Joey Orlando
a6249fe582
v1.3.26 2023-08-22 17:19:33 +02:00
Joey Orlando
6fa2b0136c
Update CHANGELOG.md 2023-08-22 17:17:10 +02:00
Joey Orlando
dd338372ab
increase mobile app verification token TTL from 1 minute to 5 minutes (#2859)
# What this PR does

Trying to connect a mobile app emulator, following the instructions
[here](https://github.com/grafana/oncall-mobile-app#getting-started), to
a cloud stack is incredibly difficult given the 1 minute token TTL. You
need to retrieve the token from the HTTP response in your browser's
inspect panel, plug that token into the `make run` command and cross
your fingers that the emulator starts up in < 45 seconds before the
token expires.

This PR increases the verification token TTL from 1 minute to 5 minutes.

## 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-22 17:09:59 +02:00
Rares Mardare
b8a04b69aa
Users search fix (#2847)
# Changes

- Prevent duplicated call to /users on search
- Fix the issue described at #2842 where there was a concurrency issue
between the page load request and the search request

## Which issue(s) this PR fixes

Fix for https://github.com/grafana/oncall/issues/2842

## 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-22 13:30:42 +00:00
Joey Orlando
b9a9cd2659
add shift swap request demo video to public docs (#2858)
# What this PR does

Adds a demo video for Shift Swaps to the public documentation.

Closes #2832 

## 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-22 15:26:08 +02:00
Matias Bordese
cec5e6a284
Skip amazon_sns integration view test (#2849) 2023-08-21 17:06:31 -03:00
Vadim Stepanov
28eb671b59
Enable FEATURE_INBOUND_EMAIL_ENABLED by default (#2846)
# What this PR does

Sets `FEATURE_INBOUND_EMAIL_ENABLED` to `True` by default, so inbound
email integration setup is consistent with the
[docs](https://grafana.com/docs/oncall/latest/open-source/#inbound-email-setup).

## Which issue(s) this PR fixes

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

## 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-21 14:23:58 +00:00
Joey Orlando
df21be3a50
add more integration tests for integrations api (#2845) 2023-08-21 15:40:29 +02:00
Rares Mardare
9c3a344b03
Changed HTTP Endpoint to Email for inbound email integrations (#2840)
## Which issue(s) this PR fixes

#2816 

## 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-21 14:51:54 +03:00
Matias Bordese
dcf27fdb06
Merge pull request #2835 from grafana/helm-release/1.3.25
Merge: Release oncall Helm chart 1.3.25
2023-08-18 15:52:21 -03:00
GitHub Actions
e16abc8175 Release oncall Helm chart 1.3.25 2023-08-18 17:26:46 +00:00
Matias Bordese
46c5e2ebbf
Merge pull request #2833 from grafana/dev
v1.3.25
2023-08-18 14:25:24 -03:00