Watchers
Chúng tôi hỗ trợ việc sử dụng các hệ thống truyền tin phân tán như etcd để duy trì tính nhất quán giữa nhiều phiên bản Casbin enforcer. Điều này cho phép người dùng của chúng tôi sử dụng đồng thời nhiều Casbin enforcers để xử lý một số lượng lớn yêu cầu kiểm tra quyền.
Tương tự như các bộ điều hợp lưu trữ chính sách, chúng tôi không bao gồm mã người theo dõi trong thư viện chính. Bất kỳ hỗ trợ cho một hệ thống tin nhắn mới nên được triển khai như một trình theo dõi. Danh sách đầy đủ các trình theo dõi Casbin được cung cấp dưới đây. Chúng tôi hoan nghênh bất kỳ đóng góp của bên thứ ba cho một trình theo dõi mới, vui lòng thông báo cho chúng tôi và chúng tôi sẽ thêm nó vào danh sách này:
- 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
Để hỗ trợ đồng bộ hóa tăng dần giữa nhiều phiên bản, chúng tôi cung cấp giao diện WatcherEx
. Chúng tôi hy vọng nó có thể thông báo cho các phiên bản khác khi chính sách thay đổi, nhưng hiện tại chưa có triển khai của WatcherEx
. Chúng tôi khuyến nghị bạn sử dụng bộ phân phối để đạt được điều này.
So với giao diện Watcher
, WatcherEx
có thể phân biệt loại hành động cập nhật nào được nhận, ví dụ, AddPolicy
và RemovePolicy
.
WatcherEx Apis:
API | Mô tả |
---|---|
SetUpdateCallback(func(string)) error | SetUpdateCallback thiết lập hàm callback mà watcher sẽ gọi khi chính sách trong DB được thay đổi bởi các instance khác. Một callback cổ điển là Enforcer.LoadPolicy(). |
Update() error | Update gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó thường được gọi sau khi thay đổi chính sách trong DB, như Enforcer.SavePolicy(), Enforcer.AddPolicy(), Enforcer.RemovePolicy(), v.v. |
Close() | Close dừng và giải phóng watcher, hàm callback sẽ không được gọi nữa. |
UpdateForAddPolicy(sec, ptype string, params ...string) error | UpdateForAddPolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau khi một chính sách được thêm vào thông qua Enforcer.AddPolicy(), Enforcer.AddNamedPolicy(), Enforcer.AddGroupingPolicy() và Enforcer.AddNamedGroupingPolicy(). |
UpdateForRemovePolicy(sec, ptype string, params ...string) error | UpdateForRemovePolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau khi một chính sách bị xóa bởi Enforcer.RemovePolicy(), Enforcer.RemoveNamedPolicy(), Enforcer.RemoveGroupingPolicy() và Enforcer.RemoveNamedGroupingPolicy(). |
UpdateForRemoveFilteredPolicy(sec, ptype string, fieldIndex int, fieldValues ...string) error | UpdateForRemoveFilteredPolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau khi Enforcer.RemoveFilteredPolicy(), Enforcer.RemoveFilteredNamedPolicy(), Enforcer.RemoveFilteredGroupingPolicy() và Enforcer.RemoveFilteredNamedGroupingPolicy(). |
UpdateForSavePolicy(model model.Model) error | UpdateForSavePolicy gọi hàm callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau Enforcer.SavePolicy() |
UpdateForAddPolicies(sec string, ptype string, rules ...[]string) error | UpdateForAddPolicies gọi callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau Enforcer.AddPolicies(), Enforcer.AddNamedPolicies(), Enforcer.AddGroupingPolicies() và Enforcer.AddNamedGroupingPolicies(). |
UpdateForRemovePolicies(sec string, ptype string, rules ...[]string) error | UpdateForRemovePolicies gọi callback cập nhật của các instance khác để đồng bộ hóa chính sách của họ. Nó được gọi sau Enforcer.RemovePolicies(), Enforcer.RemoveNamedPolicies(), Enforcer.RemoveGroupingPolicies() và Enforcer.RemoveNamedGroupingPolicies(). |