Licences : servir vos propres clients
Une licence représente l'un de vos clients au sein de votre projet. Chaque licence possède ses propres utilisateurs, ses propres options et ses propres sites, de sorte que votre client peut voir et gérer ce qui lui appartient sans accéder au reste de votre projet. Vous gérez les licences dans Connect ou via la Public API.
Avant de commencer
- Vous disposez du rôle
project_managersur le projet, oucontainer_adminsur l'organisation. Consultez Rôles et autorisations. - Vous avez accès à Connect, ainsi qu'à la CLI
funconnectée ou à un jeton pour la Public API. - Vous connaissez votre
<project-id>.
Fonctionnement
Project
├── License type "Parking" declares the options its licenses carry
│ ├── capacity Number required
│ └── is_covered True/False default false
│
├── License "Downtown garage" of type Parking
│ ├── options capacity = 450, is_covered = true
│ ├── meta_data free-form JSON
│ ├── users license_manager, license_viewer
│ └── sites ──▶ zones
└── License "North lot" of type Parking
- Un type de licence appartient à un projet et déclare des champs d'option. Chaque champ possède un nom (utilisé par les appelants de l'API), une étiquette (affichée dans Connect), un type (Texte, Nombre ou Vrai/Faux), ainsi que, facultativement, une valeur par défaut et un indicateur de caractère obligatoire.
- Une licence est constituée d'un nom, d'une valeur par champ d'option de son type et d'un objet
meta_datalibre. Vos applications les lisent pour déterminer à quoi un client a droit. - Les utilisateurs d'une licence n'ont pas besoin d'appartenir au projet. C'est ainsi que vous donnez au personnel d'un client l'accès à sa licence, et à rien d'autre.
1. Définir un type de licence
Dans Connect, ouvrez les paramètres de votre projet et accédez à License types. Créez un type et ajoutez ses champs d'option. Si vous ajoutez un champ ultérieurement, chaque licence existante de ce type reçoit ce champ avec sa valeur par défaut.
2. Créer une licence
Dans Connect, accédez à Licenses et sélectionnez Create License. Vous pouvez aussi utiliser l'API, avec l'ID du type de licence et une entrée par champ d'option :
fun api v2 licenses create-license --project-id <project-id> --body '{
"name": "Downtown garage",
"license_type_id": <license-type-id>,
"options": [
{"license_option_field_id": <capacity-field-id>, "value": 450},
{"license_option_field_id": <is-covered-field-id>, "value": true}
],
"meta_data": {"customer_ref": "ACME-001"}
}'
Une option obligatoire doit avoir une valeur non vide et non nulle. Listez les licences avec fun api v2 licenses list-licenses --project-id <project-id> : chacune comprend son license_type et ses options avec field_id, field_name et value.
3. Inviter les utilisateurs de votre client
Deux rôles s'appliquent à une licence :
| Rôle | Peut |
|---|---|
license_manager |
Lire et modifier la licence, et gérer les utilisateurs de celle-ci ainsi que de tous les sites qui en dépendent |
license_viewer |
Consulter la licence, rien de plus |
Invitez un utilisateur par e-mail. container_item_id est l'ID de la licence :
fun api v2 licenses-users-invitations create-license-invitation \
--project-id <project-id> --license-id <license-id> --body '{
"name": "Jane Doe",
"email": "jane.doe@example.com",
"role_id": <license-manager-role-id>,
"container_item_id": <license-id>,
"options": {},
"redirect_url": "https://app.example.com/",
"custom_message": "Welcome to your parking dashboard."
}'
L'utilisateur reçoit un e-mail et arrive sur redirect_url après s'être connecté. Consultez Rôles et autorisations pour les statuts d'invitation et la manière de trouver un role_id.
4. Ajouter des sites
Les sites sont les emplacements de votre client. Dans Connect, ouvrez la licence, sélectionnez Sites, puis New Site, et saisissez un nom et une adresse. Les sites peuvent être divisés en zones (étages, pièces, niveaux de parking), chacune avec son propre plan 2D.
5. Donner accès à un seul site
Pour donner accès à un seul site, invitez la personne sur ce site :
fun api v2 sites-users-invitations create-site-invitation \
--project-id <project-id> --license-id <license-id> --site-id <site-id> --body '{
"name": "Sam Lee",
"email": "sam.lee@example.com",
"role_id": <role-id>,
"container_item_id": <site-id>,
"options": {},
"redirect_url": "https://app.example.com/"
}'
Un gestionnaire de licence, un gestionnaire de projet et un administrateur d'organisation peuvent tous gérer les utilisateurs d'un site, chacun à son propre niveau.
Restreindre les personnes pouvant rejoindre
Dans Connect, un projet, une licence ou un site peut porter une politique d'utilisateurs : une liste de domaines d'e-mail autorisés, et l'indication que les comptes doivent se connecter avec Google, Microsoft ou l'un ou l'autre. Une licence ne peut pas être plus permissive que son projet.
Étapes suivantes
- Référence de l'API dans Swagger UI : Licenses, Licenses: Users/Invitations, Sites: Users/Invitations
- Rôles et autorisations
- Alertes : les alertes peuvent être résolues par licence avec
fun api v1 alert resolve-alert-by-license-and-alert-id. - Interroger vos données avec Insight
- Glossaire