LDAP directory management utility
  • TypeScript 99.1%
  • HTML 0.6%
  • SCSS 0.3%
Find a file
2026-05-15 03:55:47 +01:00
html fixes 2026-05-15 03:55:47 +01:00
.gitignore initial commit - has working support for connecting to a LDAP server and listing its contents 2026-05-11 22:52:53 +01:00
package-lock.json warnings for different ldap impls 2026-05-14 20:29:17 +01:00
package.json tidy up 2026-05-13 01:49:42 +01:00
README.md tidy up 2026-05-13 01:49:42 +01:00
tsconfig.json starting on schema parsing logic 2026-05-13 03:12:40 +01:00

bfx Director

is a LDAP directory management utility written as a web application in TypeScript. It connects directly to a LDAP server (without a backend, but a proxy service will be required as the web does not allow direct TCP connections), and allows you to manage a LDAP directory & schemas in a visual way.

Status

The main features that are currently implemented are:

  • Connect to an LDAP server & bind DN
  • View entries in a tree structure
  • View entry attributes
  • Parse LDAP schemas
  • Edit entry attributes
  • Add/remove entries
  • View/edit schema
  • Connect via a TCP -> WebSocket proxy (e.g. websockify)
  • Connect via Tailscale
  • Connect directly (via browser extension or Electron app)

Development

git clone https://git.boxfox.es/boxfox.es/director.git
cd director
npm install
npm run dev
# Server running at http://localhost:1234

You'll also need to set up a proxy to allow the web application to connect to your LDAP server. You can use novnc's websockify for this: ./run 3899 ldap.in.boxfox.es:389, and then you can enter ws://localhost:3899 in the Host: field when connecting.

Coding conventions

  • Object getters that subscribe to a signal (i.e. read the .value attribute), should be indicated by a name that ends with a $ symbol. This is a convention that indicates reading this property will have a side effect of of making the current reactive context (if available) be re-evaluated when this value changes
    • This is sitll subject to needing to consider if this is a good idea - we will see.