Grafana: [Demande de fonctionnalité] Extension du modÚle d'organisation pour inclure les (sous-)groupes d'utilisateurs et de tableaux de bord

CrĂ©Ă© le 3 mai 2016  Â·  3Commentaires  Â·  Source: grafana/grafana

Fond

Source de données : InfluxDB, potentiellement PostgreSQL pour les données changeant peu fréquemment.

Cette demande de fonctionnalité est une extension générale des discussions qui se déroulent dans :

2132, #2777, #1611

Il est basé sur le post slack : Grafana Cloud Hosting Best Practices que j'ai créé le 20.04.2016 dans le canal grafana sur raintank.slack.com .

Pour les curieux :
Pour savoir ce qu'est un systÚme hors réseau ou hybride, veuillez consulter ce document trÚs accessible :

SystÚmes électriques hybrides basés sur les énergies renouvelables (source : Alliance for Rural Electrification )

Le défi

Vous trouverez ci-dessous un exemple de l'un de mes cas d'utilisation Grafana les plus complexes.

├── Off-Grid manufacturer 1
│   └── Technical staff
│   └── Finance staff
│   └── Investors
│   └── Public (i.e. demo dashboards)
│   │
│   └── Plant hire company 1.1
│   │   ├── Finance staff
│   │   ├── Technical staff
│   │   └── Investors
│   │   └── Public (i.e. demo dashboards)
│   │   │
│   │   └── Building company 1.1.1
│   │   │   ├── Technical staff
│   │   │   ├── Finance staff
│   │   │   └── Investors
│   │   │   └── Public (i.e. demo dashboards)
│   │   .
│   │   .
│   │   └── Building company 1.1.n
│   .
│   .
│   └── Plant hire company 1.n
.
.
└── Off-Grid manufacturer n

Notez que je dois traiter non seulement avec plusieurs organisations, mais aussi avec plusieurs organisations Ă  quelques niveaux de profondeur.

Dans Off-Grid manufacturer 1 il y a 5 groupes d'utilisateurs différents, à savoir :

‱ Personnel technique
‱ Personnel des finances
‱ Investisseurs
‱ Publique
‱ Clients (c.-Ă -d. sociĂ©tĂ©s de location de plantes ; essentiellement une sous-organisation)

Chacun de ces groupes a des besoins trĂšs diffĂ©rents en termes de visualisation des donnĂ©es et il serait fantastique de pouvoir configurer des tableaux de bord par dĂ©faut applicables Ă  chaque groupe. Certains groupes, comme les techniciens, je veux accorder un accĂšs complet pour crĂ©er leurs propres tableaux de bord et pouvoir tout reprĂ©senter graphiquement. Le groupe public que je veux verrouiller complĂštement alors que tous les autres groupes se situent quelque part entre ces deux extrĂȘmes. Je ne veux pas que les groupes se mĂȘlent ou aient accĂšs les uns aux autres aux tableaux de bord ou aux sources de donnĂ©es.

Off-Grid manufacturer 1 doit pouvoir accĂ©der Ă  toutes les donnĂ©es de toutes les entreprises en dessous, tandis que Plant hire company 1.1 doit pouvoir accĂ©der Ă  toutes les entreprises en dessous mais pas aux donnĂ©es d'une autre location d'usine entreprises au mĂȘme niveau que lui ou toute organisation au-dessus de lui.

Un exemple un peu extrĂȘme je sais, mais c'est ma rĂ©alitĂ© !

La demande de fonctionnalité

Pour simplifier l'accĂšs au tableau de bord, il serait formidable d'avoir des groupes d'utilisateurs et des groupes de tableaux de bord au sein des organisations et de pouvoir accorder des droits de visualisation/modification aux tableaux de bord pour chaque utilisateur ou groupe d'utilisateurs. Des sous-groupes (ou sous-organisations) avec la possibilitĂ© d'attribuer des rĂŽles d'administrateur Ă  certains utilisateurs au sein d'un groupe particulier, avec ces droits d'administrateur limitĂ©s Ă  ce sous-groupe (ou sous-organisation), seraient Ă©galement utiles 😈

Si vous deviez dessiner une seule organisation, cela ressemblerait à ceci :

users     :  u1   u2    u3   u4   u5 |
              \ /    \ /     /   /   |
               |      |     /   /    |
user      :   ug1    ug2   /   /     |
groups    :    |   /  |   /   /      |
               |  /   |  /   /       |>- organisation
               | /    | /   /        |
dashboard :   dg1    dg2   /         |
groups    :    |      |   /          |
              / \    / \ /           |
dashboards:  d1 d2  d3 d4            |
                                   --

Noter:

  • L'utilisateur 1 ( u1 ), via le groupe d'utilisateurs 1 ( ug1 ), n'a accĂšs qu'aux tableaux de bord 1 & 2 ( d1 & d2 ).
  • L'utilisateur 2 ( u2 ) appartient aux deux groupes d'utilisateurs et a donc accĂšs aux 4 tableaux de bord.
  • Tout utilisateur appartenant au groupe d'utilisateurs 2 ( ug2 ) a accĂšs aux deux groupes de tableaux de bord et a donc Ă©galement accĂšs aux 4 tableaux de bord.
  • L'utilisateur 4 ( u4 ) appartient directement au groupe de tableaux de bord 2 ( dg2 ), et non via un groupe d'utilisateurs.
  • L'utilisateur 5 ( u5 ) n'a que l'autorisation d'afficher le tableau de bord 4 ( d4 ). D'aprĂšs ce que je comprends, est-ce le modĂšle d'autorisation actuel en place au sein des organisations ?

Une organisation avec plusieurs sous-organisations ressemblerait à ceci :

                                  | sub-users     :  su1 su2  su3 su4
                                  |                    \ /     \ /  
                                  |                     |       |   
             sub-organisation 1 -<| sub-user      :    sug1    sug2 
            /                     | groups        :     |  \    |   
organisation                      |                     |   \   |   
            \                     |                     |    \  |  
     sub-organisation 2           | sub-dashboard :    sdg1    sdg2  
                                  | groups        :     |       |   
                                  |                    / \     /  \  
                                  | sub-dashboards:  sd1   sd2    sd3
                                   --

Noter:

  • le sous-tableau de bord 2 ( sd2 ) appartient aux deux groupes de sous-tableau de bord et est donc accessible aux 4 utilisateurs.
  • sub-organisation 1 n'a pas accĂšs aux donnĂ©es appartenant Ă  sub-organisation 2 ou aux donnĂ©es appartenant Ă  organisation , sauf les siennes.

Scénarios réels

Voici un scénario d'utilisation pour brosser un tableau de la façon dont j'imagine que cela fonctionne dans la réalité :

J'ai un client, Off-Grid manufacturer 1 , qui construit et vend des systÚmes hors réseau à des sociétés de location de centrales, qui à leur tour les louent à des sociétés de construction qui ont besoin d'électricité sur leurs chantiers (remarque : 4 niveaux d'organisation).

Off-Grid manufacturer 1 acquiert un nouveau client, Plant hire company 1.2 , qui souhaite surveiller tous les systÚmes hors réseau qu'ils achÚtent auprÚs de Off-Grid manufacturer 1 . Plant hire company 1.2 a deux clients, Building companies 1.2.1 & 1.2.2 , qui souhaitent gérer leurs propres droits d'accÚs utilisateur.

Off-Grid manufacturer 1 a créé un ensemble standard de tableaux de bord pour chaque systÚme hors réseau auquel ils souhaitent donner accÚs à tous leurs clients.

Exemple d'organisations administrantes :

  • Je crĂ©e une nouvelle organisation appelĂ©e Off-Grid manufacturer 1
  • Je crĂ©e un seul utilisateur au sein de cette organisation et lui accorde des droits d'administrateur.

    Exemple d'administration de groupes :

  • L'utilisateur administrateur de l'organisation Off-Grid manufacturer 1 crĂ©e 2 tableaux de bord.

    • Tableau de bord 1 : affiche des chiffres financiers sensibles pour les comptables
    • Tableau de bord 2 : affiche la tension de la batterie pour les techniciens
  • L'utilisateur administrateur crĂ©e un nouveau groupe appelĂ© "Finances" et lui accorde l'accĂšs au tableau de bord 1.
  • L'utilisateur administrateur crĂ©e un nouveau groupe appelĂ© "Techniciens" et lui accorde l'accĂšs au tableau de bord 2.

    Exemple d'administration des utilisateurs :

  • L'utilisateur admin de l'organisation Off-Grid manufacturer 1 crĂ©e un nouvel utilisateur (par exemple finance_user_1 ).

  • finance_user_1 est ajoutĂ© au groupe "Finances" (ils ont un accĂšs immĂ©diat au tableau de bord 1)

    Administrateurs de sous-groupe/sous-organisation

  • L'utilisateur administrateur de l'organisation Off-Grid manufacturer 1 crĂ©e un nouveau groupe ou sous-organisation (par exemple hire_company_1.2 ).

  • L'utilisateur admin crĂ©e un nouvel utilisateur appelĂ© hire_company_1.2_admin .
  • hire_company_1.2_admin peut :

    • crĂ©er de nouveaux utilisateurs (qui sont automatiquement limitĂ©s au groupe hire_company_1.2 .

    • crĂ©er des groupes de sous-utilisateurs

    • affecter des sous-utilisateurs Ă  des groupes de sous-utilisateurs

    • crĂ©er des tableaux de bord

    • crĂ©er des groupes de sous-tableau de bord

    • affecter des tableaux de bord Ă  des groupes de sous-tableaux de bord

typfeature-request

Commentaire le plus utile

Je suggérerais également d'isoler les sources de données et de laisser les administrateurs des groupes gérer les leurs en toute sécurité.

Tous les 3 commentaires

Je suggérerais également d'isoler les sources de données et de laisser les administrateurs des groupes gérer les leurs en toute sécurité.

Proposition de groupes de tableau de bord et d'un modÚle d'autorisations : https://github.com/grafana/grafana/issues/1611#issuecomment -287742633

fait en v5 via les dossiers Teams & Dashboard

Cette page vous a été utile?
0 / 5 - 0 notes