Watchers
نحن ندعم استخدام أنظمة الرسائل الموزعة مثل etcd للحفاظ على الاتساق بين عدة نماذج من مطبق القواعد Casbin. هذا يسمح لمستخدمينا باستخدام عدة نماذج من مطبق القواعد Casbin بالتزامن للتعامل مع عدد كبير من طلبات التحقق من الأذونات.
مشابهًا لمحولات تخزين السياسات، نحن لا نضمن كود المراقب في المكتبة الرئيسية. يجب تنفيذ أي دعم لنظام رسائل جديد كمراقب. قائمة كاملة بمراقبي Casbin متوفرة أدناه. نرحب بأي مساهمات من طرف ثالث لمراقب جديد، يرجى إعلامنا وسنضيفه إلى هذه القائمة:
- Go
- Java
- Node.js
- Python
- .NET
- Ruby
- PHP
Watcher | Type | Author | Description |
---|---|---|---|
PostgreSQL WatcherEx | Database | @IguteChung | WatcherEx for PostgreSQL |
Redis WatcherEx | KV store | Casbin | WatcherEx for Redis |
Redis Watcher | KV store | @billcobbler | Watcher for Redis |
Etcd Watcher | KV store | Casbin | Watcher for etcd |
TiKV Watcher | KV store | Casbin | Watcher for TiKV |
Kafka Watcher | Messaging system | @wgarunap | Watcher for Apache Kafka |
NATS Watcher | Messaging system | Soluto | Watcher for NATS |
ZooKeeper Watcher | Messaging system | Grepsr | Watcher for Apache ZooKeeper |
NATS, RabbitMQ, GCP Pub/Sub, AWS SNS & SQS, Kafka, InMemory | Messaging System | @rusenask | Watcher based on Go Cloud Dev Kit that works with leading cloud providers and self-hosted infrastructure |
NATS, RabbitMQ, GCP Pub/Sub, AWS SNS & SQS, Kafka, InMemory | Messaging System | @bartventer | WatcherEx based on Go Cloud Dev Kit that works with leading cloud providers and self-hosted infrastructure |
RocketMQ Watcher | Messaging system | @fmyxyz | Watcher for Apache RocketMQ |
Watcher | Type | Author | Description |
---|---|---|---|
Etcd Adapter | KV store | @mapleafgo | Watcher for etcd |
Redis Watcher | KV store | Casbin | Watcher for Redis |
Lettuce-Based Redis Watcher | KV store | Casbin | Watcher for Redis based on Lettuce) |
Kafka Watcher | Messaging system | Casbin | Watcher for Apache Kafka |
Watcher | Type | Author | Description |
---|---|---|---|
Etcd Watcher | KV store | Casbin | Watcher for etcd |
Redis Watcher | KV store | Casbin | Watcher for Redis |
Pub/Sub Watcher | Messaging system | Casbin | Watcher for Google Cloud Pub/Sub |
MongoDB Change Streams Watcher | Database | Casbin | Watcher for MongoDB Change Streams |
Postgres Watcher | Database | @mcollina | Watcher for PostgreSQL |
Watcher | Type | Author | Description |
---|---|---|---|
Etcd Watcher | KV store | Casbin | Watcher for etcd |
Redis Watcher | KV store | Casbin | Watcher for Redis |
Redis Watcher | KV store | ScienceLogic | Watcher for Redis |
Redis Async Watcher | KV store | @kevinkelin | Watcher for Redis |
PostgreSQL Watcher | Database | Casbin | Watcher for PostgreSQL |
RabbitMQ Watcher | Messaging system | Casbin | Watcher for RabbitMQ |
Watcher | Type | Author | Description |
---|---|---|---|
Redis Watcher | KV store | @Sbou | Watcher for Redis |
Watcher | Type | Author | Description |
---|---|---|---|
Redis Watcher | KV store | CasbinRuby | Watcher for Redis |
RabbitMQ Watcher | Messaging system | CasbinRuby | Watcher for RabbitMQ |
Watcher | Type | Author | Description |
---|---|---|---|
Redis Watcher | KV store | @Tinywan | Watcher for Redis |
WatcherEx
من أجل دعم التزامن التدريجي بين عدة نماذج، نحن نوفر واجهة WatcherEx
. نأمل أن يمكنها إعلام النماذج الأخرى عندما تتغير السياسة، ولكن حاليًا لا يوجد تنفيذ لـ WatcherEx
. نوصي باستخدام المرسل لتحقيق ذلك.
مقارنة بواجهة Watcher
، يمكن لـ WatcherEx
التمييز بين نوع عملية التحديث المستلمة، مثل AddPolicy
و RemovePolicy
.
واجهات برمجة تطبيقات WatcherEx:
واجهة برمجة التطبيقات | الوصف |
---|---|
SetUpdateCallback(func(string)) error | SetUpdateCallback يضبط وظيفة الرجوع التي سيتم استدعاؤها من قبل المراقب، عندما تتغير السياسة في قاعدة البيانات بواسطة نماذج أخرى. مثال على وظيفة الرجوع هو Enforcer.LoadPolicy(). |
Update() error | Update يستدعي وظيفة التحديث للنماذج الأخرى لمزامنة سياستهم. عادة ما يتم استدعاؤه بعد تغيير السياسة في قاعدة البيانات، مثل Enforcer.SavePolicy()، Enforcer.AddPolicy()، Enforcer.RemovePolicy()، إلخ. |
Close() | Close يوقف ويطلق المراقب، ولن يتم استدعاء وظيفة الرجوع بعد الآن. |
UpdateForAddPolicy(sec, ptype string, params ...string) error | UpdateForAddPolicy يستدعي وظيفة التحديث للنماذج الأخرى لمزامنة سياستهم. يتم استدعاؤه بعد إضافة سياسة عبر Enforcer.AddPolicy()، Enforcer.AddNamedPolicy()، Enforcer.AddGroupingPolicy() و Enforcer.AddNamedGroupingPolicy(). |
UpdateForRemovePolicy(sec, ptype string, params ...string) error | UPdateForRemovePolicy يستدعي وظيفة التحديث للنماذج الأخرى لمزامنة سياستهم. يتم استدعاؤه بعد إزالة سياسة بواسطة Enforcer.RemovePolicy()، Enforcer.RemoveNamedPolicy()، Enforcer.RemoveGroupingPolicy() و Enforcer.RemoveNamedGroupingPolicy(). |
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) error | UpdateForRemoveFilteredPolicy يستدعي وظيفة التحديث للنماذج الأخرى لمزامنة سياستهم. يتم استدعاؤه بعد Enforcer.RemoveFilteredPolicy()، Enforcer.RemoveFilteredNamedPolicy()، Enforcer.RemoveFilteredGroupingPolicy() و Enforcer.RemoveFilteredNamedGroupingPolicy(). |
UpdateForSavePolicy(model model.Model) error | UpdateForSavePolicy يستدعي وظيفة التحديث للنماذج الأخرى لمزامنة سياستهم. يتم استدعاؤه بعد Enforcer.SavePolicy() |
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) error | UpdateForAddPolicies يستدعي وظيفة التحديث للنماذج الأخرى لمزامنة سياستهم. يتم استدعاؤه بعد Enforcer.AddPolicies()، Enforcer.AddNamedPolicies()، Enforcer.AddGroupingPolicies() و Enforcer.AddNamedGroupingPolicies(). |
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) error | UpdateForRemovePolicies يستدعي وظيفة التحديث للنماذج الأخرى لمزامنة سياستهم. يتم استدعاؤه بعد Enforcer.RemovePolicies()، Enforcer.RemoveNamedPolicies()، Enforcer.RemoveGroupingPolicies() و Enforcer.RemoveNamedGroupingPolicies(). |