Userstory
As user I want a single instance holding the identity of all services in my shard in order to login only once per session.
As admin I want a multi tenenant capable solution for the identity management inside the individual shards.
Is your feature request related to a problem? Please describe.
Instead of a multi-tenant architecture with a centralized database, there should be an individual, fully isolated instance ("shards") for each tenant. Every shard requires its own Identity and Access Management (IAM), for which Authelia is the perfect fit due to its small footprint and open-source nature.
To keep the resource footprint minimal per shard, we should rely entirely on the file-based backend (users_database.yml) and file-based configuration (configuration.yml) instead of SQL databases. However, managing these YAML files dynamically for thousands of separate instances currently lacks flexibility, especially when users need to be added or configuration updated on the fly without restarting the Authelia container.
Describe the solution you'd like**
We should implement a solution in order to provision shards during the process of provisioning with an authelia instance managing all the IAM related tasks inside the shard. Specifically, this entails:
- Robust Hot-Reloading: Ensure that any external changes to the
users_database.yml and configuration.yml are instantly and reliably detected and applied by Authelia without requiring a container restart.
- Standardized Minimal Shard Configuration: A streamlined, minimal boilerplate configuration specifically designed for isolated single-tenant/small-group setups.
Note: In a future follow-up request, we plan to propose or contribute a lightweight administrative API or local GUI specifically tailored for shard administrators to manage this YAML user backend directly, but the immediate need is ensuring the underlying YAML mechanics are fully dynamic and robust
Describe alternatives you've considered
- Using a centralized SQLite/PostgreSQL per shard: This creates unnecessary overhead (RAM/CPU) for instances that typically only serve 1 to 5 local users.
- Writing custom bash/Python scripts to modify the YAML files and forcefully restarting the Authelia Docker container: This disrupts active sessions and creates a poor user experience.
Userstory
As user I want a single instance holding the identity of all services in my shard in order to login only once per session.
As admin I want a multi tenenant capable solution for the identity management inside the individual shards.
Is your feature request related to a problem? Please describe.
Instead of a multi-tenant architecture with a centralized database, there should be an individual, fully isolated instance ("shards") for each tenant. Every shard requires its own Identity and Access Management (IAM), for which Authelia is the perfect fit due to its small footprint and open-source nature.
To keep the resource footprint minimal per shard, we should rely entirely on the file-based backend (
users_database.yml) and file-based configuration (configuration.yml) instead of SQL databases. However, managing these YAML files dynamically for thousands of separate instances currently lacks flexibility, especially when users need to be added or configuration updated on the fly without restarting the Authelia container.Describe the solution you'd like**
We should implement a solution in order to provision shards during the process of provisioning with an authelia instance managing all the IAM related tasks inside the shard. Specifically, this entails:
users_database.ymlandconfiguration.ymlare instantly and reliably detected and applied by Authelia without requiring a container restart.Note: In a future follow-up request, we plan to propose or contribute a lightweight administrative API or local GUI specifically tailored for shard administrators to manage this YAML user backend directly, but the immediate need is ensuring the underlying YAML mechanics are fully dynamic and robust
Describe alternatives you've considered