[GH-ISSUE #790] Global integrations #554

Closed
opened 2026-02-25 23:42:51 +03:00 by kerem · 3 comments
Owner

Originally created by @kiler129 on GitHub (Feb 4, 2023).
Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/790

Overview

While playing with HealthChecks I noticed that integrations need to be set-up per project. When using projects as project-per-site this becomes cumbersome, especially when something needs to change in integrations.

Perfect world solution

It would be great if a concept of "linked"/"global" integrations could be implemented. That way one can setup integration once and share it across projects. I didn't look into the database, but I suspect integrations are linked to the project and projects are owned by users. In such a case introducing global integrations can create a lot of headaches with permissions checking.

Alternative solution

Introducing a concept of a parent project, that only contains list of integrations would probably be easier. Then, every child project with parent project set will execute all integrations from itself AND parent project. The only complexity I see is with transferring ownership: in such case user should probably be asked "do you want to copy parent project integrations?".

WDYT?

Originally created by @kiler129 on GitHub (Feb 4, 2023). Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/790 ## Overview While playing with HealthChecks I noticed that integrations need to be set-up per project. When using projects as project-per-site this becomes cumbersome, especially when something needs to change in integrations. ## Perfect world solution It would be great if a concept of "linked"/"global" integrations could be implemented. That way one can setup integration once and share it across projects. I didn't look into the database, but I suspect integrations are linked to the project and projects are owned by users. In such a case introducing global integrations can create a lot of headaches with permissions checking. ## Alternative solution Introducing a concept of a parent project, that only contains list of integrations would probably be easier. Then, every child project with parent project set will execute all integrations from itself AND parent project. The only complexity I see is with transferring ownership: in such case user should probably be asked "do you want to copy parent project integrations?". WDYT?
kerem closed this issue 2026-02-25 23:42:51 +03:00
Author
Owner

@cuu508 commented on GitHub (Feb 21, 2023):

How many projects, and how many integrations per project are you working with?

<!-- gh-comment-id:1438186936 --> @cuu508 commented on GitHub (Feb 21, 2023): How many projects, and how many integrations per project are you working with?
Author
Owner

@kiler129 commented on GitHub (Feb 21, 2023):

How many projects, and how many integrations per project are you working with?

Currently evaluating it in my home lab, which uses 3 projects (home, a dedicated server, offsite backup) with 2 integrations each (email + telegram). However, in my enterprise environment if implemented that would be a few dozen of projects with 2-3 integrations each. Treating projects as physical locations offers a nice compartmentalization for the NOC view and brings a nice feature: if an internet connection is down for the site I will see multiple checks failing but all of them will be isolated to a single project. That way I know it's most likely not that the server room burned down (hopefully ;)) but probably the whole location lost internet access.

A sensible scenario with shared integration would be to have:

  • a global downtime notification set-up for e.g. Slack for all sites [shared]
  • an email notification for all locations [shared]
  • an email notification to on-site person [per-project]

Now, when the responsibility changes or some infra change is happening I don't need to go to every single project and change the integration - I can go to the parent project/global integrations and simply change it in one place.

<!-- gh-comment-id:1438814420 --> @kiler129 commented on GitHub (Feb 21, 2023): > How many projects, and how many integrations per project are you working with? Currently evaluating it in my home lab, which uses 3 projects (home, a dedicated server, offsite backup) with 2 integrations each (email + telegram). However, in my enterprise environment if implemented that would be a few dozen of projects with 2-3 integrations each. Treating projects as physical locations offers a nice compartmentalization for the NOC view and brings a nice feature: if an internet connection is down for the site I will see multiple checks failing **but** all of them will be isolated to a single project. That way I know it's most likely not that the server room burned down (hopefully ;)) but probably the whole location lost internet access. A sensible scenario with shared integration would be to have: - a global downtime notification set-up for e.g. Slack for all sites [shared] - an email notification for all locations [shared] - an email notification to on-site person [per-project] Now, when the responsibility changes or some infra change is happening I don't need to go to every single project and change the integration - I can go to the parent project/global integrations and simply change it in one place.
Author
Owner

@cuu508 commented on GitHub (Feb 22, 2023):

There's one existing feature that may perhaps work for your described use case: in the Account Settings > Email Reports you can enable ongoing hourly or daily email reminders when any checks are down. Unlike the integrations you set up in projects, these reminders are account-wide – you will get notified about checks in any and all projects you have access to. These reminders would arrive with a delay though – after a check goes down, you would get a "x checks are still down" reminder only an hour later.

If all projects have the same or almost the same 2-3 integrations, you could also put the checks in a single project, and compartmentalize them using tags.

Regarding the enterprise environment, are you considering implementing Healthchecks there? I'd be hesitant to add any new features and add complexity, unless there is a concrete and clear need from multiple users. And even then it's often ultimately a "no" – adding a feature that helps 1% of users but makes the service worse (harder to use due to UI clutter, bugs caused by the extra complexity, other potential features blocked by design decisions, ...) for 99% users, it's probably not worth it.

<!-- gh-comment-id:1439613594 --> @cuu508 commented on GitHub (Feb 22, 2023): There's one existing feature that may perhaps work for your described use case: in the Account Settings > Email Reports you can enable ongoing hourly or daily email reminders when any checks are down. Unlike the integrations you set up in projects, these reminders are account-wide – you will get notified about checks in any and all projects you have access to. These reminders would arrive with a delay though – after a check goes down, you would get a "x checks are still down" reminder only an hour later. If all projects have the same or almost the same 2-3 integrations, you could also put the checks in a single project, and compartmentalize them using tags. Regarding the enterprise environment, are you considering implementing Healthchecks there? I'd be hesitant to add any new features and add complexity, unless there is a concrete and clear need from multiple users. And even then it's often ultimately a "no" – adding a feature that helps 1% of users but makes the service worse (harder to use due to UI clutter, bugs caused by the extra complexity, other potential features blocked by design decisions, ...) for 99% users, it's probably not worth it.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/healthchecks#554
No description provided.