Watchers
Kami mendukung penggunaan sistem perpesanan terdistribusi seperti etcd untuk mempertahankan konsistensi antara beberapa instance enforcer Casbin. Hal ini memungkinkan pengguna kami untuk secara bersamaan menggunakan beberapa enforcer Casbin untuk menangani sejumlah besar permintaan pemeriksaan izin.
Mirip dengan adaptor penyimpanan kebijakan, kami tidak menyertakan kode pengamat dalam pustaka utama. Setiap dukungan untuk sistem pesan baru harus diimplementasikan sebagai pengamat. Daftar lengkap pengamat Casbin diberikan di bawah ini. Kami menyambut kontribusi pihak ketiga untuk pengamat baru, harap beri tahu kami dan kami akan menambahkannya ke dalam daftar ini:
- 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
Untuk mendukung sinkronisasi inkremental antara beberapa instance, kami menyediakan antarmuka WatcherEx
. Kami berharap dapat memberi tahu instance lain ketika kebijakan berubah, tetapi saat ini belum ada implementasi WatcherEx
. Kami menyarankan Anda menggunakan dispatcher untuk mencapai hal ini.
Dibandingkan dengan antarmuka Watcher
, WatcherEx
dapat membedakan jenis tindakan pembaruan yang diterima, misalnya, AddPolicy
dan RemovePolicy
.
API WatcherEx:
API | Deskripsi |
---|---|
SetUpdateCallback(func(string)) error | SetUpdateCallback menetapkan fungsi callback yang akan dipanggil oleh pengamat, ketika kebijakan di DB telah diubah oleh instance lain. Callback klasik adalah Enforcer.LoadPolicy(). |
Update() error | Update memanggil callback pembaruan dari instance lain untuk menyinkronkan kebijakan mereka. Biasanya dipanggil setelah mengubah kebijakan di DB, seperti Enforcer.SavePolicy(), Enforcer.AddPolicy(), Enforcer.RemovePolicy(), dll. |
Tutup() | Tutup menghentikan dan melepaskan pengamat, fungsi callback tidak akan dipanggil lagi. |
UpdateForAddPolicy(sec, ptype string, params ...string) error | UpdateForAddPolicy memanggil callback pembaruan dari instance lain untuk menyinkronkan kebijakan mereka. Fungsi ini dipanggil setelah kebijakan ditambahkan melalui Enforcer.AddPolicy(), Enforcer.AddNamedPolicy(), Enforcer.AddGroupingPolicy(), dan Enforcer.AddNamedGroupingPolicy(). |
UpdateForRemovePolicy(sec, ptype string, params ...string) error | UpdateForRemovePolicy memanggil callback pembaruan dari instance lain untuk menyinkronkan kebijakan mereka. Fungsi ini dipanggil setelah kebijakan dihapus oleh Enforcer.RemovePolicy(), Enforcer.RemoveNamedPolicy(), Enforcer.RemoveGroupingPolicy(), dan Enforcer.RemoveNamedGroupingPolicy(). |
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) error | UpdateForRemoveFilteredPolicy memanggil callback pembaruan dari instance lain untuk menyinkronkan kebijakan mereka. Fungsi ini dipanggil setelah Enforcer.RemoveFilteredPolicy(), Enforcer.RemoveFilteredNamedPolicy(), Enforcer.RemoveFilteredGroupingPolicy(), dan Enforcer.RemoveFilteredNamedGroupingPolicy(). |
UpdateForSavePolicy(model model.Model) error | UpdateForSavePolicy memanggil callback pembaruan dari instance lain untuk menyinkronkan kebijakan mereka. Ini disebut setelah Enforcer.SavePolicy() |
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) error | UpdateForAddPolicies memanggil callback pembaruan dari instance lain untuk menyinkronkan kebijakan mereka. Ini disebut setelah Enforcer.AddPolicies(), Enforcer.AddNamedPolicies(), Enforcer.AddGroupingPolicies(), dan Enforcer.AddNamedGroupingPolicies(). |
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) error | UpdateForRemovePolicies memanggil callback pembaruan dari instance lain untuk menyinkronkan kebijakan mereka. Ini disebut setelah Enforcer.RemovePolicies(), Enforcer.RemoveNamedPolicies(), Enforcer.RemoveGroupingPolicies(), dan Enforcer.RemoveNamedGroupingPolicies(). |