Il y a un cas qu’on n’a pas traité pour l’instant dans les indexeurs : l’expiration d’une certification.
On pourrait tout simplement retirer la certification de l’indexeur si le but est de garder l’état au moment actuel, mais vu que l’intérêt de l’indexeur est également d’avoir un historique, on pourrait juste marquer la certification comme expirée.
Donc on pourrait compléter les champs de Cert
:
type Cert {
issuer: Identity!
receiver: Identity!
createdOn: Int!
expireOn: Int!
}
et juste regarder si expireOn
est avant ou après le bloc courant. Si on fait ça, que faire dans le cas du renouvellement d’une certification ? Si l’idée est de garder un historique, on pourrait ajouter un autre type :
type CertRenewal {
cert: Cert!
createdOn: Int!
}
et mettre à jour la date d’expiration de la certification initiale. Comme ça, pour une certification, on pourrait accéder à l’historique de ses renouvellements.
Ce serait plus pratique à utiliser que la version actuelle de l’indexeur dans laquelle une nouvelle entrée est créée pour chaque renouvellement de certification, ce qui fait qu’on doit réaliser un traitement côté client pour ne pas afficher de certification en double (la certification et son renouvellement).
Et dans ce cas par symétrie, il faut ajouter :
type CertRemoval {
cert: Cert!
deletedOn: Int!
}