[GH-ISSUE #894] [FEATURE REQUEST] File-only database #326

Closed
opened 2026-02-27 08:16:40 +03:00 by kerem · 1 comment
Owner

Originally created by @onedr0p on GitHub (Apr 11, 2024).
Original GitHub issue: https://github.com/lldap/lldap/issues/894

Motivation

Hi 👋🏼

I was reading over the bootstrap docs and I was wondering how cool it would be to support a file-based config without using a database. I get this would render the UI pretty much read-only but would be awesome for simple setups of lldap to not have a database and instead define users and groups in json, yaml or toml files.

Describe the solution you'd like

Allow for LLDAP to read from existing json, yaml, or toml files to manage LDAP users and groups.

Describe alternatives you've considered

Use the bootstrap docs with an ephemeral sqlite database but that architecture could be improved by this.

Additional context
Add any other context or screenshots about the feature request here.

Originally created by @onedr0p on GitHub (Apr 11, 2024). Original GitHub issue: https://github.com/lldap/lldap/issues/894 **Motivation** Hi 👋🏼 I was reading over the [bootstrap docs](https://github.com/lldap/lldap/blob/main/example_configs/bootstrap/bootstrap.md) and I was wondering how cool it would be to support a file-based config without using a database. I get this would render the UI pretty much read-only but would be awesome for simple setups of lldap to not have a database and instead define users and groups in json, yaml or toml files. **Describe the solution you'd like** Allow for LLDAP to read from existing json, yaml, or toml files to manage LDAP users and groups. **Describe alternatives you've considered** Use the [bootstrap docs](https://github.com/lldap/lldap/blob/main/example_configs/bootstrap/bootstrap.md) with an ephemeral sqlite database but that architecture could be improved by this. **Additional context** Add any other context or screenshots about the feature request here.
kerem 2026-02-27 08:16:40 +03:00
Author
Owner

@nitnelave commented on GitHub (Apr 12, 2024):

The schema of the database is intentionally not part of the API: we want to be able to modify or add things freely. In particular, the database contains more than users and groups, and even user data is sometimes stored in an unreadable format.

Moreover, the DB is queried using SQL, taking advantage of joins and filters. Reimplementing this over plain files would require us to, essentially, create an SQLite DB, apply the bootstrap script, then work as normal.

This is a pretty big effort that we don't have the resources for, and that would complicate the project and the interface. I don't think we should do it. If you think it's really necessary, then you'll have to provide a better reason than "it'd be cool!" :)
The setup with SQLite is already pretty darn simple.

<!-- gh-comment-id:2050989039 --> @nitnelave commented on GitHub (Apr 12, 2024): The schema of the database is intentionally not part of the API: we want to be able to modify or add things freely. In particular, the database contains more than users and groups, and even user data is sometimes stored in an unreadable format. Moreover, the DB is queried using SQL, taking advantage of joins and filters. Reimplementing this over plain files would require us to, essentially, create an SQLite DB, apply the bootstrap script, then work as normal. This is a pretty big effort that we don't have the resources for, and that would complicate the project and the interface. I don't think we should do it. If you think it's really necessary, then you'll have to provide a better reason than "it'd be cool!" :) The setup with SQLite is already pretty darn simple.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/lldap-lldap#326
No description provided.