Commit graph

3092 commits

Author SHA1 Message Date
Pēteris Caune
61bdd975e8
Add "(stops working Oct 2024)" note to the old MS Teams integration 2024-07-18 10:27:51 +03:00
Pēteris Caune
9ebab5d317
Rename illustrations to bust cached versions 2024-07-18 10:27:49 +03:00
Pēteris Caune
9660bc293c
Update hc.lib.s3 to retry failed requests *one time* 2024-07-17 17:26:49 +03:00
Pēteris Caune
ce5d9bcf56
Re-enable S3 retries 2024-07-17 17:04:33 +03:00
Pēteris Caune
e83f60cc0b
Implement Implement MS Teams Workflows integration
We already have a MS Teams integration but MS Teams is discontinuing
the incoming webhook feature used by this integration:

https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/

MS Teams now recommends to use Workflows to post messages
via webhook. MS Teams does not provide backwards compatibility or
an upgrade path for existing integrations.

This commit adds a new "msteamsw" integration which uses MS Teams
Workflows to post notifications. It also updates the instructions
and illustrations in the "Add MS Teams Integration" page.

cc: #1024
2024-07-17 13:35:17 +03:00
Pēteris Caune
1877a8324f
Disable S3 API request retries
urrlib3's default number of retries is 3.
If requests to the S3 API are timing out, the retries usually
don't help, but a 10-second timeout turns into 10*3=30 seconds
of python code being blocked.
2024-07-12 03:09:21 +03:00
Pēteris Caune
70c5be5c4b
Fix type warning 2024-07-11 17:45:51 +03:00
Pēteris Caune
1b695c6970
Improve performance of loading ping body previews
Defer loading body_raw, instead load its first 150 bytes
as "body_raw_preview". This reduces both network I/O to database,
and disk I/O on the database host if the database contains large
request bodies.

cc: #1023
2024-07-11 17:38:25 +03:00
Pēteris Caune
3e5080d9eb
Remove Ping.body field 2024-07-11 16:34:18 +03:00
Pēteris Caune
997154e3b0
Remove usages of Ping.body 2024-07-11 16:17:21 +03:00
Pēteris Caune
daaee30c88
Add data migration to move Check.body -> Check.body_raw
We used "body" to store request body as text.
In 2022 we added "body_raw" and started to use it to store request
body as bytes.

In python code we currently need to inspect both fields,
because the data could be in "body" (for old pings) or in
"body_raw" (for newer pings). My plan is to eventually get rid
of the "body" field, and have "body_raw" only. This data migration
is a step towards that: for any Ping objects that have non-empty
"body" field, it moves the data to the "body_raw" field. After
applying this migration, the "body" field should be empty (empty
string or null) for all Ping objects.
2024-07-11 14:38:36 +03:00
Pēteris Caune
bc8fb90fed
Update Check.ping() to use select_for_update()
Without it, on MariaDB, concurrent pings can lead to a deadlock.
This results in OperationalError and HTTP 500 response to the client.

cc: #1023
2024-07-10 19:50:39 +03:00
Pēteris Caune
cc51d2bd79
Bump Django to 5.0.7 2024-07-10 14:13:07 +03:00
Pēteris Caune
3da7cf6027
Bump package versions 2024-07-08 19:59:52 +03:00
Pēteris Caune
b3de36d15c
Reorder system checks in hc.api.apps 2024-07-04 11:32:28 +03:00
Pēteris Caune
23f3256abc
Rename and clean up the apprise system check 2024-07-04 11:28:58 +03:00
Pēteris Caune
cf619bc68b
Fix hc.api.transports to not alter settings.APPRISE_ENABLED setting.
Instead, make it set a local `have_apprise` variable, and use
it in the hc.api.transports.Apprise class.

If hc.api.transports sets APPRISE_ENABLED to False,
then the apprise system check in hc.api.apps will not see the
original value and therefore will not run.
2024-07-04 11:28:16 +03:00
Rajesh Kumar
57459b0375
Show warning if apprise is enabled but apprise package is not installed (#1021)
* fix: show warning if apprise is enabled and not installed in environment

* renamed appraise check register

* revert back changes in transport for apprise
2024-07-04 11:12:05 +03:00
Pēteris Caune
3fbe8d52f0
Document criteria for accepting new integrations in CONTRIBUTING 2024-07-02 10:19:48 +03:00
Pēteris Caune
8d0930c4b9
Fix unclosed sockets in statsd tests 2024-06-27 11:03:29 +03:00
Pēteris Caune
b5eced26cf
Fix migrations for Django 5.1 2024-06-27 10:20:27 +03:00
Pēteris Caune
324fa10ce7
Fix Check.lock_and_delete() to gracefully handle already deleted check 2024-06-20 15:57:53 +03:00
Viktor Szépe
9a44ef1571 Fix typos 2024-06-20 15:41:42 +03:00
Pēteris Caune
17d01ee6e2
Update changelog for release 2024-06-20 15:15:29 +03:00
Pēteris Caune
1a5ca45d09
Fix InvalidResponseError() initialization parameters 2024-06-20 15:15:14 +03:00
Pēteris Caune
9dbd961beb
Add test case for InvalidResponseError handling 2024-06-20 15:11:42 +03:00
Pēteris Caune
475bdff87d
Add handling for minio.InvalidResponseError exceptions 2024-06-18 23:50:11 +03:00
Pēteris Caune
44b163cc52
Fix JS formatting 2024-06-17 14:14:36 +03:00
NKETIAH53
0874ced368 format dates in logs to include year unless they are from current year
fixes: #1008
2024-06-17 14:07:18 +03:00
Pēteris Caune
e007f75a70
Bump package versions 2024-06-17 10:48:53 +03:00
Pēteris Caune
b2c5e91c70
Implement legacy -> canonical timezone conversion
There are three related changes:

* Removed legacy timezones from hc.lib.tz.all_timezones
* Added data migration to update existing Check.tz values
* For backwards compatibility, added code to automatically
  replace a legacy timezone with a canonical timezone when a
  legacy timezone is passed to an API call

I used the timezone mapping on
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
2024-06-14 12:55:57 +03:00
Pēteris Caune
52f2b534a6
Fix API to accept Europe/Kiev but save it as Europe/Kyiv 2024-06-13 15:23:27 +03:00
Pēteris Caune
c5bd666faf
Add data migration to update timezone "Europe/Kiev" to "Europe/Kyiv" 2024-06-13 15:03:51 +03:00
Pēteris Caune
5584c2cd21
Fix copy/pasting error 2024-06-12 09:46:58 +03:00
Pēteris Caune
3b081c3c83
Rearrange docs navigation 2024-06-11 21:38:15 +03:00
Pēteris Caune
037499f33a
Add Docs / Pinging / Network Routers 2024-06-11 21:00:34 +03:00
Pēteris Caune
24e5e83bbc
Update Ping Details dialog to also show formatted datetimes
Fixes: #975
2024-05-29 15:43:06 +03:00
Pēteris Caune
7ef18cd706
Fix type warning and upgrade django-stubs-ext 2024-05-27 15:59:18 +03:00
Pēteris Caune
d56105e670
Update Slack integration to use channel name as the integration name
Fixes: #1003
2024-05-27 15:54:30 +03:00
Pēteris Caune
410b56baef
Fix type hints for django-stubs 5.0.1 2024-05-27 14:35:32 +03:00
Pēteris Caune
12bd59b2c1
Add system hostname logging in hc.logs.Handler 2024-05-24 13:58:18 +03:00
Pēteris Caune
0f8b6ca4c6
Re-enable strict type checking 2024-05-21 14:22:56 +03:00
dependabot[bot]
4d6884e20f
Bump aiosmtpd from 1.4.5 to 1.4.6 (#1002)
Bumps [aiosmtpd](https://github.com/aio-libs/aiosmtpd) from 1.4.5 to 1.4.6.
- [Release notes](https://github.com/aio-libs/aiosmtpd/releases)
- [Changelog](https://github.com/aio-libs/aiosmtpd/blob/master/release.py)
- [Commits](https://github.com/aio-libs/aiosmtpd/compare/v1.4.5...v1.4.6)

---
updated-dependencies:
- dependency-name: aiosmtpd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 14:18:28 +03:00
Pēteris Caune
26a57343b1
Add a data migration to fill null api_notification.code values
Using model's default didn't quite work, as Django tried to use
the same UUID for all rows.
2024-05-17 10:43:46 +03:00
Pēteris Caune
d486d2db14
Add uniqueness constraint to api_notification.code
This is primarily to make notification lookups by code efficient.
We look up notifications by code in hc.api.views.boundces.

This field has a default value (uuid.uuid4), so any null values
will be filled with random UUIDs during migration.
2024-05-17 10:30:01 +03:00
Pēteris Caune
a8bd589c87
Move the Ansible collection under API Wrappers 2024-05-10 17:14:02 +03:00
Pēteris Caune
5202938b9c
Update log entry template to show body before UA 2024-05-10 16:09:13 +03:00
Pēteris Caune
582e7dcfb1
Add andrewthetechie/py-healthchecks.io in the 3rd party resources page 2024-05-10 11:23:06 +03:00
Pēteris Caune
1bdfbac775
Fix Sign In page to hide "Email Link" option if SMTP is not configured
Fixes: #922
2024-05-10 11:04:21 +03:00
Pēteris Caune
da90d33d38
Fix a bug in the log page that caused log events to sometimes load twice 2024-05-10 10:27:40 +03:00