[GH-ISSUE #183] Allow limited access to invited team members #129

Closed
opened 2026-02-25 23:41:17 +03:00 by kerem · 7 comments
Owner

Originally created by @danemacmillan on GitHub (Aug 1, 2018).
Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/183

I have 34 checks on this service. I've been considering adding a team member, so I tested what it would look like. I would love if there were some way to limit what checks team members could read, update, or delete. For example, if I invite this new member, I don't want them to be able to modify any of the existing 34 checks. Optionally, I would want them to modify just the checks that have a given tag or tags. Similarly, I'd want to filter what checks I see based on the team member who made them.

Originally created by @danemacmillan on GitHub (Aug 1, 2018). Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/183 I have 34 checks on this service. I've been considering adding a team member, so I tested what it would look like. I would love if there were some way to limit what checks team members could read, update, or delete. For example, if I invite this new member, I don't want them to be able to modify any of the existing 34 checks. Optionally, I would want them to modify just the checks that have a given tag or tags. Similarly, I'd want to filter what checks I see based on the team member who made them.
kerem closed this issue 2026-02-25 23:41:17 +03:00
Author
Owner

@cuu508 commented on GitHub (Jan 11, 2019):

Just a heads-up, I'm starting the work on this. My current plan is to introduce a new entity to the system, "Project". It would help the heavy users organize things, and grant more fine-grained access to their team members.

Currently, checks and channels belong to individual users. Users can invite other users to their account. "Project" would become an additional layer of organization: users could have multiple projects, and they would organize their checks in projects. Instead of inviting team members to their whole account, they would invite team members to individual projects.

A quick sketch of how the database relations would look after this is implemented (work in progress):

1547220641032

<!-- gh-comment-id:453559281 --> @cuu508 commented on GitHub (Jan 11, 2019): Just a heads-up, I'm starting the work on this. My current plan is to introduce a new entity to the system, "Project". It would help the heavy users organize things, and grant more fine-grained access to their team members. Currently, checks and channels belong to individual users. Users can invite other users to their account. "Project" would become an additional layer of organization: users could have multiple projects, and they would organize their checks in projects. Instead of inviting team members to their whole account, they would invite team members to individual projects. A quick sketch of how the database relations would look after this is implemented (work in progress): ![1547220641032](https://user-images.githubusercontent.com/661859/51043755-2763b880-15c8-11e9-8e55-87ff39e915ab.jpg)
Author
Owner

@cuu508 commented on GitHub (Feb 1, 2019):

I've now implemented the "Projects" feature. Needs UI polish here and there but I think it is in a good enough state for an initial release.

  • Users can create multiple projects within their accounts
  • Each check and each integration now belongs to a project
  • Each project has its own separate API keys
  • Each project has a separate team members list
  • Existing checks can be moved across projects, even across accounts. There's a "Transfer to Another Account" button now in "Check Details" page
  • Projects don't have check limits, but user accounts still do. For example, if an account has two projects and a check limit of 20, then the total number of checks from both projects must not exceed 20.

These changes are now also live on https://healthchecks.io.

<!-- gh-comment-id:459650936 --> @cuu508 commented on GitHub (Feb 1, 2019): I've now implemented the "Projects" feature. Needs UI polish here and there but I think it is in a good enough state for an initial release. * Users can create multiple projects within their accounts * Each check and each integration now belongs to a project * Each project has its own separate API keys * Each project has a separate team members list * Existing checks can be moved across projects, even across accounts. There's a "Transfer to Another Account" button now in "Check Details" page * Projects don't have check limits, but user accounts still do. For example, if an account has two projects and a check limit of 20, then the total number of checks from both projects must not exceed 20. These changes are now also live on https://healthchecks.io.
Author
Owner

@danemacmillan commented on GitHub (Feb 1, 2019):

This is fantastic. I've just created two additional projects (plus renamed the original default one that pre-dated "Projects").

If I understand right, I would need to create a new API key for a new project, and re-authenticate with whatever integration I previously had, right?

Additionally, there's no need to adjust any of the crons, etc, because the endpoint ID remains the same during the transfer?

One thing I immediately desire, is that I would also want a high-level overview of all Project checks. Given that Projects help the owner organizing permissions, I think anyone who has access to multiple Projects should have an option (when clicking on the logo and seeing the Project blocks) to view all of them together. That landing page behind the logo would serve as a good dashboard of sorts that could summarize up and down states, etc.

In my case, there are three distinct technology departments that I'm responsible for. One department is the Storefront, another is System, another is Warehouse. As the technology owner, I maybe want to see a high-level overview with the red-tags indicating something is down. Members of my other teams would want their distinct technology access; finally, there may be someone immediately below me who would have access to two of those three projects.

I guess ultimately I don't necessarily need to see all the checks in one long list, but having some UI indication that another Project has downed checks when I'm in another would be helpful for those at-a-glance situations.

I like the direction you've taken with Projects. This opens up some nice possibilities.

Edit:

Now that I've begun transferring checks to other Projects, I'm finding the process a bit involved. It would be nice to be able to bulk select multiple checks and choose to transfer them all at once. I'm certain you already know this, though.

Edit2:

I've transferred all the relevant checks, and integrated Pusover notifications, but now I'm wondering if Pushover is able to integrate with all of them at once. On the Pushover site, I don't see a subscription for each Project--I just see a single subscription. I don't know if it's just because that's how it lays them out, but now I'm curious.

Edit3:

I tested my question from Edit2 and Pushover does work for all three Projects. Nice!

<!-- gh-comment-id:459741781 --> @danemacmillan commented on GitHub (Feb 1, 2019): This is fantastic. I've just created two additional projects (plus renamed the original default one that pre-dated "Projects"). If I understand right, I would need to create a new API key for a new project, and re-authenticate with whatever integration I previously had, right? Additionally, there's no need to adjust any of the crons, etc, because the endpoint ID remains the same during the transfer? One thing I immediately desire, is that I would also want a high-level overview of all Project checks. Given that Projects help the owner organizing permissions, I think anyone who has access to multiple Projects should have an option (when clicking on the logo and seeing the Project blocks) to view all of them together. That landing page behind the logo would serve as a good dashboard of sorts that could summarize up and down states, etc. In my case, there are three distinct technology departments that I'm responsible for. One department is the Storefront, another is System, another is Warehouse. As the technology owner, I maybe want to see a high-level overview with the red-tags indicating something is down. Members of my other teams would want their distinct technology access; finally, there may be someone immediately below me who would have access to two of those three projects. I guess ultimately I don't necessarily need to see all the checks in one long list, but having some UI indication that another Project has downed checks when I'm in another would be helpful for those at-a-glance situations. I like the direction you've taken with Projects. This opens up some nice possibilities. **Edit:** Now that I've begun transferring checks to other Projects, I'm finding the process a bit involved. It would be nice to be able to bulk select multiple checks and choose to transfer them all at once. I'm certain you already know this, though. **Edit2:** I've transferred all the relevant checks, and integrated Pusover notifications, but now I'm wondering if Pushover is able to integrate with all of them at once. On the Pushover site, I don't see a subscription for each Project--I just see a single subscription. I don't know if it's just because that's how it lays them out, but now I'm curious. **Edit3:** I tested my question from Edit2 and Pushover does work for all three Projects. Nice!
Author
Owner

@cuu508 commented on GitHub (Feb 1, 2019):

Thanks for the feedback, @danemacmillan!

If I understand right, I would need to create a new API key for a new project, and re-authenticate with whatever integration I previously had, right?

Yes, each project has its own access keys and its own integrations.
I'm hoping that, with each project having its own integrations, people will have to manually toggle them on/off less often. For example, let's say you had two Slack integrations for #team-a and #team-b. All Team A's checks were assigned to one integration, and all Team B's checks were assigned to the other. If you create separate projects for Team A and Team B, with a single integration for each, then check integrations don't need to be tweaked any more.

Additionally, there's no need to adjust any of the crons, etc, because the endpoint ID remains the same during the transfer?

Correct.

One thing I immediately desire, is that I would also want a high-level overview of all Project checks.

I'll sleep on that and will do some experimenting.

It would be nice to be able to bulk select multiple checks and choose to transfer them all at once.

Yeah, I'm aware of this, had to do a ton of clicking myself too to move a few dozens of checks around. Not too enthusiastic about implementing batch editing feature though: it would be a niche, one-time-use feature, but complex to implement both on client and server side...

<!-- gh-comment-id:459750750 --> @cuu508 commented on GitHub (Feb 1, 2019): Thanks for the feedback, @danemacmillan! > If I understand right, I would need to create a new API key for a new project, and re-authenticate with whatever integration I previously had, right? Yes, each project has its own access keys and its own integrations. I'm hoping that, with each project having its own integrations, people will have to manually toggle them on/off less often. For example, let's say you had two Slack integrations for #team-a and #team-b. All Team A's checks were assigned to one integration, and all Team B's checks were assigned to the other. If you create separate projects for Team A and Team B, with a single integration for each, then check integrations don't need to be tweaked any more. > Additionally, there's no need to adjust any of the crons, etc, because the endpoint ID remains the same during the transfer? Correct. > One thing I immediately desire, is that I would also want a high-level overview of all Project checks. I'll sleep on that and will do some experimenting. > It would be nice to be able to bulk select multiple checks and choose to transfer them all at once. Yeah, I'm aware of this, had to do a ton of clicking myself too to move a few dozens of checks around. Not too enthusiastic about implementing batch editing feature though: it would be a niche, one-time-use feature, but complex to implement both on client and server side...
Author
Owner

@danemacmillan commented on GitHub (Feb 1, 2019):

I'm hoping that, with each project having its own integrations, people will have to manually toggle them on/off less often.

I'm literally in the process of finally sending checks to Slack because they are now Project-based. Excellent.

I'll sleep on that and will do some experimenting.

The more I think about it, I really just want to be aware of any downed checks regardless of the Project. Anyone using this service knows the anxiety of not having absolute and at-a-glance insight into their operations. The landing page could indicate up/down states in each block, and perhaps some kind of indicator over the logo that would indicate there are n checks down in other Projects. I'm just spitballing here. A long list of all projects (à la pre-Projects) combined is not necessarily what I think is the best approach.

Yeah, I'm aware of this, had to do a ton of clicking myself too to move a few dozens of checks around. Not too enthusiastic about implementing batch editing feature though: it would be a niche, one-time-use feature, but complex to implement both on client and server side...

I hear you. This really is only useful for those who are now going to leverage Projects.

<!-- gh-comment-id:459753284 --> @danemacmillan commented on GitHub (Feb 1, 2019): > I'm hoping that, with each project having its own integrations, people will have to manually toggle them on/off less often. I'm literally in the process of finally sending checks to Slack because they are now Project-based. Excellent. > I'll sleep on that and will do some experimenting. The more I think about it, I *really* just want to be aware of any downed checks regardless of the Project. Anyone using this service knows the anxiety of not having absolute and at-a-glance insight into their operations. The landing page could indicate up/down states in each block, and perhaps some kind of indicator over the logo that would indicate there are n checks down in other Projects. I'm just spitballing here. A long list of all projects (à la pre-Projects) combined is not necessarily what I think is the best approach. > Yeah, I'm aware of this, had to do a ton of clicking myself too to move a few dozens of checks around. Not too enthusiastic about implementing batch editing feature though: it would be a niche, one-time-use feature, but complex to implement both on client and server side... I hear you. This really is only useful for those who are now going to leverage Projects.
Author
Owner

@danemacmillan commented on GitHub (Feb 2, 2019):

That commit, github.com/healthchecks/healthchecks@62310a5181, greatly improves the overview. I like seeing the count in the top navigation menu as well.

<!-- gh-comment-id:459998504 --> @danemacmillan commented on GitHub (Feb 2, 2019): That commit, https://github.com/healthchecks/healthchecks/commit/62310a5181c65ec3642b36a25fdbf4b69e0da23f, greatly improves the overview. I like seeing the count in the top navigation menu as well.
Author
Owner

@cuu508 commented on GitHub (Feb 4, 2019):

I'll consider the Projects feature nominally "done" and close this issue. There's very likely more that can be done here but we can open new issues for that.

<!-- gh-comment-id:460256983 --> @cuu508 commented on GitHub (Feb 4, 2019): I'll consider the Projects feature nominally "done" and close this issue. There's very likely more that can be done here but we can open new issues for that.
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#129
No description provided.