mirror of
https://github.com/lldap/lldap.git
synced 2026-04-25 00:05:50 +03:00
[PR #1119] DRAFT: Initial plugin support #1133
Labels
No labels
backend
blocked
bug
cleanup
dependencies
docker
documentation
duplicate
enhancement
enhancement
frontend
github_actions
good first issue
help wanted
help wanted
integration
invalid
ldap
pull-request
question
rust
rust
tests
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/lldap-lldap#1133
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/lldap/lldap/pull/1119
Author: @broeng
Created: 2/28/2025
Status: 🔄 Open
Base:
main← Head:plugin-support📝 Commits (10+)
2b5852ehandlers: provide RequestContext with userinfo to handlers72909bacrate: adds a KeyValueStore trait with a new crate4d3614acrate: add PluginKeyValueStore with DB model87b29b7server: add migrations for PluginKeyValueStore model76a3e09plugin-engine: initial implementation of plugin support3aab826server: implementation of ServerBackendAPI for plugin engineaf9d367server: implement PluginBackendHandlerbe503dbserver: initial configuration blocks for pluginsa04b6fcserver: wire up and use PluginBackendHandlerce57c14plugins: a few sample plugin files with experiments📊 Changes
107 files changed (+8309 additions, -1038 deletions)
View changed files
📝
Cargo.lock(+753 -59)📝
Cargo.toml(+3 -0)📝
crates/domain-handlers/src/handler.rs(+24 -0)📝
crates/domain-model/src/model/mod.rs(+2 -0)➕
crates/domain-model/src/model/plugin_key_values.rs(+31 -0)📝
crates/domain-model/src/model/prelude.rs(+2 -0)📝
crates/domain/src/types.rs(+3 -3)➕
crates/key-value-store/Cargo.toml(+22 -0)➕
crates/key-value-store/src/api/error.rs(+26 -0)➕
crates/key-value-store/src/api/mod.rs(+2 -0)➕
crates/key-value-store/src/api/store.rs(+29 -0)➕
crates/key-value-store/src/lib.rs(+1 -0)➕
crates/plugin-engine/Cargo.toml(+77 -0)➕
crates/plugin-engine/plugins(+1 -0)➕
crates/plugin-engine/src/api/arguments/ldap_bind_result.rs(+21 -0)➕
crates/plugin-engine/src/api/arguments/ldap_search_result.rs(+10 -0)➕
crates/plugin-engine/src/api/arguments/mod.rs(+2 -0)➕
crates/plugin-engine/src/api/backend.rs(+70 -0)➕
crates/plugin-engine/src/api/handler.rs(+184 -0)➕
crates/plugin-engine/src/api/mod.rs(+4 -0)...and 80 more files
📄 Description
Initial work on providing support for plugins written in Lua for LLDAP.
Feel free to leave comments or suggestions. Would appreciate if any bigger structural refactorings could be done before I dig deeper in the current direction. I would suggest going on a per-commit basis when reviewing.
State:
Currently in a working state, but still very much a work in progress. Plugins can be included in the configuration, they will be initialized on start up, and all implemented listeners should be functional at this point.
Non-exhaustive TODO list:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.