Dashboard module

As our teams are no longer in fixed offices, I would like to define a teams dashboard maybe on my user of the dashboard user and then inject it into the dashboards of the members of this team.

I talked to the @moreamazingnick at the “Icinga Camp Berlin 2023” after his talk about GitHub - moreamazingnick/icingaweb2-module-scaffoldbuilder about using this as a starting point and some Ideas on how to implement this.

I considered GitHub - Thomas-Gelf/icingaweb2-module-enforceddashboard but it would rob users of there custom dashboards.

Global dashlets available? inspired me to plan on writing this module.

Any ideas, hints or requirements to make this as generally useful as possible?

hi dominik, I have done some research and think I have got an appropriate solution for this cause.
my attempt would be the following:

  • use one or mutliple user for dashboard creation
  • create some relationship using an IniRepository, (owner of dashboard, usernames, usergroups)
  • Copy and adapt behaviour Dashboard.php and DashboardController from IcingaWeb2
  • change the loading behavour of the modules dashboards inside your adaptiation
  • load the dashboard user according to the mapping in the IniRepository

You could also take a look here and maybe test it if it suits your needs. Though, while it looks abandoned it is still something we’d like to finish, so your feedback is valuable!

If you have trouble testing it, we’d also assist! (Here, or there)

Ehrm, the linked PR was even more outdated. I’ve updated the link.

Thanks for the link.

I had a quick look without installing and I haven’t seen a way to define a team dashboard and map it to a Icingaweb2 role.

It was to much code and I didn’t see any documentation in the pull request to answer this question.

Is there a way to define a dashboard and attach it to all members of a role?
Is it possible to attach N dashboards per role or can a user get N dashboards from N roles?

Oh, my bad. Sharing isn’t implemented there. We planned it, but this PR only represents the basic functionality at the moment. (user dashboards only)