- Name: sociometry
- Project Name: Casbin.NET and Casdoor .NET SDK
- Organization: Casbin
- Mentors: Sagilio, Yang Luo
Casbin is an authorization library that supports access control models like ACL, RBAC, ABAC. Originally written in Golang, and Casbin.NET is the Dotnet implementation. Casbin.NET v2 is going to release, and it will provide excellent performance, flexible scalability and more imaginative and exciting features. In addition, the ecosystem of it could be enhanced.
Casdoor is an Identity Access Management and Single-Sign-On platform based on Casbin, and Casdoor .NET SDK is also a part of Casbin.NET ecosystem.
Project Ideas are as follows:
- Improve the unit tests and benchmarks.
- Add more features.
- Enhance the ecosystem of Casbin.NET.
Getting started with the project began with getting familiar with unit tests and benchmarks. After reading some codes, I found that the unit test coverage is not that high, so I added some unit tests and benchmarks, especially tested some exception cases. After that, a series of functions and unit tests related to the missing Update APIs were added. In order to cooperate with Redis Watcher, WatcherMessage was also added to deliver messages.
They are part of the ecosystem to be enhanced, and Redis Adapter and Redis Watcher were developed during this period. The Redis Adapter allows Casbin.NET to store policies into and read from Redis. The Redis Watcher supports distributed message watching using Redis. Now that Casbin.NET has changed a lot (a lot of features have been added), the existing EFCore Adapter has been modified.
Getting started with Casdoor .NET SDK began with getting familiar with some of the SDK's interfaces, and later I added some interfaces to it. During this period, I also developed some examples. These examples show the basic functions of Casdoor, which is helpful for users to get started quickly.
During the development process, I also read some codes of other repositories in the Casbin community. I found a error-prone bug and submitted an issue. It has now been resolved.
# | Title | Status |
---|---|---|
#253 | chore: Use semantic pull request in GitHub Action | |
#265 | test: Add new unit tests for management APIs | |
#266 | test: Add new benchmarks for management APIs | |
#267 | feat: Add UpdatePolicy and UpdatePolicies APIs | |
#271 | test: Add 5 multi-threading test cases for ReadWritePolicyManager | |
#275 | feat: Add WatcherMessage for watchers |
# | Title | Status |
---|---|---|
#60 | fix: Upgrade to net6 and 7 | |
#61 | feat: Migrate to Casbin.NET 2.0.0-preview |
# | Title | Status |
---|---|---|
#1 | feat: Redis adapter using list | |
#2 | chore: Add workflows for CI | |
#7 | chore: Fix CI failure when packing packages | |
#8 | feat: Add UpdatePolicy(ies) Functions |
# | Title | Status |
---|---|---|
#1 | feat: Add WatcherEx Apis and Unittests |
# | Title | Status |
---|---|---|
#29 | feat: Add apis for User and Model | |
#30 | feat: Add apis for Application and Organization |
# | Title | Status |
---|---|---|
#2 | feat: Add a Winform example | |
#5 | fix: Support net5-windows | |
#6 | docs: Add README-zh-cn |
# | Title | Status |
---|---|---|
#2 | feat: Add ConsoleApp and MvcApp samples | |
#4 | fix: Update options and README.md |
# | Title | Status |
---|---|---|
#1039 | [Bug] Using less newPolicies to update oldPolices will cause a panic |
Here are a few things which can be done in the future:
-
Improve the docs for Casbin.NET v2 as it has changed a lot compared to v1
-
Improve the docs for Redis Adapter and Redis Watcher, especially the usage of
WaterEx
interfaces in detail -
Enhance the ecology of Casbin.NET further.
I have planned to work on these issues after the final evaluations are completed successfully and keep contributing to the project and the community.
I would like to thank my mentors sagilio and hsluoyz who have been guiding, helping and encouraging me since I started the project. I would also like to thank the Casbin community where I have learned a lot over the past few months.