Observateurs
Nous prenons en charge l'utilisation de systèmes de messagerie distribués comme etcd pour garder la cohérence entre plusieurs instances de contrôle de Casbin. Ainsi, nos utilisateurs peuvent utiliser simultanément plusieurs exécuteurs Casbin pour gérer un grand nombre de demandes de vérification des permissions.
Similaire aux adaptateurs de stockage stratégiques, nous ne plaçons pas de code de surveillance dans la bibliothèque principale. Tout support pour un nouveau système de messagerie devrait être mis en œuvre en tant que observateur. Une liste complète des observateurs de Casbin est fournie ci-dessous. Toute contribution de tierce partie sur un nouvel observateur est la bienvenue, s'il vous plaît nous en informer et je vais le mettre dans cette liste:)
- Go
- Java
- Node.js
- Python
- .NET
- Ruby
- PHP
Observateur | Type de texte | Auteur | Description |
---|---|---|---|
PostgreSQL WatcherEx | Database | @IguteChung | WatcherEx for PostgreSQL |
Redis WatcherEx | Magasin KV | Casbin | WatcherEx for Redis |
Guetteur Redis | Magasin KV | @billcobbler | Observateur pour Redis |
Observateur Etcd | Magasin KV | Casbin | Observateur pour etcd |
Guetteur TiKV | Magasin KV | Casbin | Observateur pour TiKV |
Guet de Kafka | Système de messagerie | @wgarunap | Observateur pour Apache Kafka |
Observateur NATS | Système de messagerie | Solution | Observateur pour NATS |
Guetteur ZooKeeper | Système de messagerie | Grepsr | Observateur pour Apache ZooKeeper |
NATS, RabbitMQ, GCP Pub/Sub, AWS SNS & SQS, Kafka, InMemory | Système de messagerie | @rusenask | Watcher basé sur Go Cloud Dev Kit qui fonctionne avec les principaux fournisseurs de cloud et les infrastructures auto-hébergées |
Observateur de RocketMQ | Système de messagerie | @fmyxyz | Observateur pour Apache RocketMQ |
Observateur | Type de texte | Auteur | Description |
---|---|---|---|
Adaptateur Etcd | Magasin KV | @mapleafgo | Observateur pour etcd |
Guetteur Redis | Magasin KV | Casbin | Observateur pour Redis |
Guet de Kafka | Système de messagerie | Casbin | Observateur pour Apache Kafka |
Observateur | Type de texte | Auteur | Description |
---|---|---|---|
Observateur Etcd | Magasin KV | Casbin | Observateur pour etcd |
Guetteur Redis | Magasin KV | Casbin | Observateur pour Redis |
Pub/sous-observateur | Système de messagerie | Casbin | Observateur pour Google Cloud Pub/Sub |
MongoDB Change Streams Watcher | Base de données | Casbin | Watcher for MongoDB Change Streams |
Observateur de Postgres | Base de données | Matteo Collina | Observateur pour PostgreSQL |
Observateur | Type de texte | Auteur | Description |
---|---|---|---|
Observateur Etcd | Magasin KV | Casbin | Observateur pour etcd |
Guetteur Redis | Magasin KV | Casbin | Observateur pour Redis |
Redis Watcher | KV store | ScienceLogique | Watcher for Redis |
Observateur PostgreSQL | Database | Casbin | Observateur pour PostgreSQL |
Observateur | Type de texte | Auteur | Description |
---|---|---|---|
Guetteur Redis | Magasin KV | @Sbou | Observateur pour Redis |
Observateur | Type de texte | Auteur | Description |
---|---|---|---|
Guetteur Redis | Magasin KV | CasbinRuby | Observateur pour Redis |
Observateur Lapin MQ | Système de messagerie | CasbinRuby | Observateur pour LapinsMQ |
Observateur | Type de texte | Auteur | Description |
---|---|---|---|
Guetteur Redis | Magasin KV | @Tinywan | Observateur pour Redis |
format@@0 WatcherEx
Afin de prendre en charge la synchronisation incrémentale entre plusieurs instances, nous fournissons l'interface WatcherEx
. Nous espérons qu'il pourra notifier d'autres instances lorsque la politique changera, mais il n'y a actuellement aucune implémentation de WatcherEx
. Nous vous recommandons d'utiliser le répartiteur pour y parvenir.
Comparé à l'interface Watcher
, WatcherEx
peut distinguer quel type d'action de mise à jour est reçu, e. ., AddPolicy
et RemovePolicy
.
Application WatcherEx :
API | Description |
---|---|
SetUpdateCallback(func(string)) error | SetUpdateCallback sets the callback function that the watcher will call, when the policy in DB has been changed by other instances. Un callback classique est Enforcer.LoadPolicy(). |
Update() error | Update calls the update callback of other instances to synchronize their policy. Il est généralement appelé après avoir changé la politique dans DB, comme Enforcer.SavePolicy(), Enforcer.AddPolicy(), Enforcer.RemovePolicy(), etc. |
Close() | Close stops and releases the watcher, the callback function will not be called any more. |
UpdateForAddPolicy(sec, ptype string, params ...string) error | UpdateForAddPolicy calls the update callback of other instances to synchronize their policy. Il est appelé après qu'une politique est ajoutée via Enforcer.AddPolicy(), Enforcer.AddNamedPolicy(), Enforcer.AddGroupingPolicy() et Enforcer.AddNamedGroupingPolicy(). |
UpdateForRemovePolicy(sec, ptype string, params ...string) error | UPdateForRemovePolicy calls the update callback of other instances to synchronize their policy. Il est appelé après qu'une politique est supprimée par Enforcer.RemovePolicy(), Enforcer.RemoveNamedPolicy(), Enforcer.RemoveGroupingPolicy() et Enforcer.RemoveNamedGroupingPolicy(). |
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) error | UpdateForRemoveFilteredPolicy calls the update callback of other instances to synchronize their policy. Il est appelé après Enforcer.RemoveFilteredPolicy(), Enforcer.RemoveFilteredNamedPolicy(), Enforcer.RemoveFilteredGroupingPolicy() et Enforcer.RemoveFilteredNamedNamedPolicy(). |
UpdateForSavePolicy(model model.Model) error | UpdateForSavePolicy calls the update callback of other instances to synchronize their policy. Il est appelé après Enforcer.SavePolicy() |
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) error | UpdateForAddPolicies calls the update callback of other instances to synchronize their policy. Il est appelé après Enforcer.AddPolicies(), Enforcer.AddNamedPolicies(), Enforcer.AddGroupingPolicies() et Enforcer.AddNamedGroupingPolicies(). |
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) error | UpdateForRemovePolicies calls the update callback of other instances to synchronize their policy. Il est appelé après Enforcer.RemovePolicies(), Enforcer.RemoveNamedPolicies(), Enforcer.RemoveGroupingPolicies() et Enforcer.RemoveNamedGroupingPolicies(). |