Balea

This project is a fork of Balea. The foundational basis and the magnificent idea are due to the team behind Xabaril. 🙌

Motivation

The following key points describe the underlying vision behind this fork.

  • Standardization of models (e.g. Delegation, Permission, Policy, Role, Subject)

  • Well-defined store interfaces, in order to provide common CRUD operations.

  • Decoupled authorization logic. Authorization behavior is defined in the core library, so stores only deal with IO operations.

  • Enable the use of authorization concerns from the application logic through abstractions.

New features

Some subsequent benefits turned out to be low hanging fruits.

  • The configuration store has been replaced by the in-memory store. However, it can be populated from the configuration.

  • The EntityFramework store has been improved to allow extensibility and customization of the DbContext.

  • The HTTP store has been rewritten to be fully compliant with the new store interfaces.

  • Endpoint provisioning has been included to allow exposing an HTTP store server using minimal API.

  • Blazor samples have been generated to provide common GUI templates.

Other changes

The code base received additional enhancements.

  • Decompling of Abstractions/Core/AspNetCore packages.

  • Common data seeding strategy across different stores.

  • Improved tests to use theorems for the different schemas and stores.

  • Adoption of TestContainers.