Skip to content
Snippets Groups Projects
Commit f36fcb4e authored by Bastien DUMONT's avatar Bastien DUMONT :angel:
Browse files

feat: add grdf tier direct doc

parent 92d3f127
No related branches found
No related tags found
1 merge request!62feat: add grdf tier direct doc
......@@ -53,6 +53,7 @@
"numerique",
"openshift",
"Openshift",
"QQOQCCP",
"Scaleway",
"synaaps",
"timestep",
......
......@@ -18,7 +18,7 @@ If you're a new developer tasked to work on this project, please get acquainted
Ecolyo contains multiple repositories, you can find them [here](https://forge.grandlyon.com/web-et-numerique/factory/llle_project).
It heavily rely on konnectors to work, check our [konnector documentation](../konnectors/index.md).
It heavily rely on konnectors to work, check our [konnector documentation](/docs/konnectors/0-index.md).
## Mockups
......
# Konnectors
---
slug: introduction
---
# Introduction
Konnectors are scripts that import data from a web service and put those data into cozy. Each konnector is an independent application managed by the cozy home application.
......@@ -6,7 +10,7 @@ Ecolyo uses data from 3 web services :
- Enedis
- Grdf
- Eau du grand lyon (EGL)
- Eau du grand Lyon (EGL)
All the konnectors are configured to retrieve user's data as far as 3 years back.
Some variation have to be considered :
......
docs/konnectors/grdf-consents.png

107 KiB

docs/konnectors/grdf-mail.png

50.3 KiB

# GRDF Tier Direct
Le connecteur GRDF Tier Direct prends place dans un contexte ou le parcours [Client Connect](./grdf.md) se complexifie et rends l'accès à la donnée trop compliqué pour nos utilisateurs.
Le parcours **"Tier Direct"**, initialement réservé aux tiers, vise à déléguer cette complexité en laissant la gestion du périmètre et dates de consentement au tier (Métropole de Lyon).
## Processus détaillé
:::tip Récapitulatif
1. L'utilisateur renseigne ses informations dans Ecolyo
2. Sa volonté d'accéder à ses données est enregistrée dans le backoffice
3. Son consentement est créé/consulté chez GRDF
4. La récupération des données est effectué
:::
### 1. Parcours utilisateur
Le parcours utilisateur est défini sur les [maquettes](https://www.figma.com/file/3cnoMNGpwB9KLtsf19RKDC/Ecolyo-%5BMaquettes%5D?node-id=4484%3A19229&mode=dev).
### 2. Preuve de consentement backoffice
Afin de prendre la responsabilité de déclarer des consentements pour nos utilisateurs, nous devons collecter la *preuve* que nous avons l’autorisation de l'utilisateur. Ce processus est réalisé grâce au parcours d'onboarding de l'application.
Un appel API est ensuite réalisé à notre serveur backoffice. Cet appel est enregistré et sert notamment de **preuve** lors des contrôles effectués par GRDF.
:::note
`https://ecolyo-agent-rec.apps.grandlyon.com/api/grdf`
:::
### 3. Création du consentement GRDF
:::info Pré-requis
- Numéro de PCE
- Nom
- Adresse
- Code postal
- Email
:::
#### Création d'un droit accès
Méthode PUT sur la route `https://api.grdf.fr/adict/v2/pce/:id_pce/droit_acces`
L'appel de cette route envoie un **email** à l'adresse renseignée. Cet email requiert une action de l'utilisateur afin qu'il *accepte/refuse* la demande générée.
:::warning Délai d'envoi d'email
L'email envoyé par GRDF est envoyé par batch de 15 minutes tous les quarts d'heures.
Exemple : Un utilisateur créé sa demande à 9h31. Il va recevoir son mail à 9h45.
:::
![alt text](./grdf-mail.png)
#### Status des droits accès (consentements)
Un utilisateur peut avoir plusieurs consentements. Chaque consentement peut avoir différents état *(voir schéma GRDF)*
![grdf consents](./grdf-consents.png)
Le connecteur se base sur l'état des consentement pour l'accès à la donnée.
:::tip Accès à la donnée
L'accès à la donnée est réalisable avec le status **"Active"**
:::
:::danger Révocation
La révocation se traduit par une action explicite de l'utilisateur. C'est à dire lorsque l'utilisateur clique sur "Refuser" dans l'interface GRDF.
Cette action va marquer le consentement comme **"Révoquée"**
❌ Cette action va notamment **bloquer** la création d'un nouveau consentement. Pour débloquer cette revocation, il faut contacter le support GRDF.
:::
:::note État "à revérifier"
QQOQCCP
> En cas de changement de données contractuelles, un Droit d'accès se met à l'état **"A revérifier"** pendant quelques jours, le temps de procéder à une mise à jour.
>
> C'est un processus automatique, vous n'aurez rien à intervenir ou lancer un autre appel. Au bout de quelques jours au plus, le Droit d'accès revient automatiquement à l'état "Active" si le Titulaire est toujours le même, ou "Obsolète" si le Titulaire a changé.
>
> Par contre, si l'état "A revérifier" est bloqué pendant un temps anormalement long (plusieurs semaines au moins), il faut nous prévenir pour analyse & correction.
:::
:::note État "Obsolète" :
QQOQCCP
> Il est tout à fait possible de refaire immédiatement une nouvelle déclaration après que le Droit d'accès soit passé à **"Obsolète"**. Cela vaut aussi pour un Droit d'accès à l'état "Refusé".
>
> Seul l'état "Révoqué" entraîne le blocage de déclaration.
:::
## Liens
### [Schéma logique de connexion Whimsical](https://whimsical.com/grdf-tech-3jhKdqn7gG7dhbbvykQHJS)
### [Documentation fonctionnelle GRDF](https://sites.grdf.fr/web/portail-api-grdf-adict/documentation_fonctionnelle)
### [Support GRDF](https://sites.grdf.fr/web/portail-api-grdf-adict/support2)
## Divers
### FAQ
#### Client Connect + Tier Direct
Si une personne **possède un consentement client connect**, elle n'a pas besoin de créer un nouveau consentement Tier Direct, elle peut accéder à sa donnée
#### Erreurs 429
En raison des quotas stipulés dans l'atelier technique et fonctionnel, il arrive que des requêtes échouent et renvoient une erreur non métier `error : { reasons: [], details: { msgId: 'Id-262fca65f174f4019691ee56' } }` ce type de retour se produit dans les [cas d'erreurs **429**](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/grdf-konnector/-/issues/17#note_118439).
#### PCE inconnus
En raison d'un problème lié à client connect, il arrive parfois de consulter des droits d'accès d'autre PCE sur le mail de validation.
#### BAS
GRDF dispose d'un Bac À Sable pour réaliser des tests. Au moment des développements du connecteur, ce BAS est statique et ne reflète pas l'environnement de production et reste trop statique pour être utilisé.
#### Contrat échu
Pouvez-vous nous confirmer qu'il est impossible (blocage technique opéré de votre côté) d'ouvrir un consentement sur un contrat expiré ?
> Effectivement, quand on essaie d'ouvrir un Droit d'accès sur un compteur mis hors service (c'est à dire qu'il n'y a aucun Contrat gaz dessus), on reçoit le message d'erreur "Le Contrat de fourniture est échu".
>
> Il n'est donc pas possible d'ouvrir le Droit d'accès sur un compteur mis hors service, nos systèmes le bloquent automatiquement.
#### Données historiques
Est-il possible, sur un contrat expiré, de consulter les données historiques (jusqu'à la date d'expiration du contrat) ?
> Au moment où le Compteur a été mis hors service (c'est à dire que le Contrat est résilié) alors que le Tiers dispose encore d'un Droit d'accès sur ce compteur, alors l'accès deviendra automatiquement obsolète et il n'est plus possible de consulter toute donnée, que ce soit le suivi ou l'historique.
>
> Il faut que le Droit d'accès soit à l'état "actif" afin de récupérer les Consommations, que ce soit le suivi ou l'historique.
#### Changement de titulaire
En résumé, quels risques/conflits dans la récupération des données existe-t-il (et sont pris en charge de votre côté) lors du changement de titulaire de PCE (= Situation : changement de locataire par exemple)
> Le changement de Titulaire se traduit par la mise hors service puis la remise en service du compteur.
Dès que nos systèmes détectent une mise hors service du compteur, alors ils couperont tout accès aux données. En langage "ADICT", l'état du Droit d'accès passera automatiquement de "Active" à "Obsolète".
>
> De plus, si on essaie de refaire un nouveau Droit d'accès après le changement de Titulaire, on aura certes l'accès aux consommations du nouveau Titulaire mais l'historique des consommations sera automatiquement limité à la date de Mise en Service du compteur.
>
> Ainsi les Consommations de l'ancien Titulaire ne seront plus accessibles.
>
> Une autre risque mais qui n'est pas de notre côté est que les Fournisseurs doivent faire correctement leur déclaration de changement de Fournisseur.
> En effet, il peut arriver qu'un Fournisseur fasse la déclaration de changement de Titulaire au lieu d'un Changement de Fournisseur alors que le Titulaire est bien toujours le même.
>
> Dans ce cas, nos systèmes ont noté le changement de Titulaire alors que c'est faux et limitent automatiquement l'historique à la date de ce changement (empêchant ainsi le Titulaire d'accéder à l'historique plus loin)
# Grdf Adict Konnector
# GRDF Adict Konnector
This konnector fetches consumption measures from Grdf Adict API. This is an Oauth Konnector, meaning the authentication performed to access all data is made following an Oauth2 protocol.
You can clone the project [here](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/grdf-adict-konnector).
......
# Launch a konnector on local
# Working with konnectors locally
## Cozy resources
......@@ -14,7 +14,7 @@ Simply launch it by typing:
`yarn standalone`
This command will create a **konnector-dev-config.json** file if it was not in your project folder before.
This file needs to hold all the information transmitted by the cozy stack when the konnector runs by default
This file needs to hold all the information transmitted by the cozy stack when the konnector runs by default
- baseUrl
- apiAuthKey
......
# Description
This section of documentation refers to the Oauth protocols working hand in hand with our custom proxy and the cozy-stack.
To fully understand its whereabouts, you should also look at the [enedis konnector](/docs/konnectors/enedis/) and [grdf konnector](/docs/konnectors/grdf/) documentation.
To fully understand its whereabouts, you should also look at the [enedis konnector](/docs/konnectors/enedis.md) and [grdf konnector](/docs/konnectors/grdf.md) documentation.
![gitlab](/img/gitlab-logo.svg) [proxy](https://forge.grandlyon.com/pocs/cozy/cozy-oauth-proxy)
......@@ -28,7 +28,7 @@ You can create manually the document by entering these parameters for each konne
<table>
<thead>
<tr class='header'>
<tr class="header">
<th>Name</th>
<th>Description</th>
</tr>
......
......@@ -70,7 +70,7 @@ const config: Config = {
// },
{ to: '/docs/ecolyo/', label: 'Ecolyo' },
{ to: '/docs/ecolyo-agent/', label: 'Ecolyo Agent' },
{ to: '/docs/konnectors', label: 'Konnectors' },
{ to: '/docs/konnectors/introduction', label: 'Konnectors' },
{ to: '/docs/getting-started/setup', label: 'Getting started' },
{
type: 'dropdown',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment