Sha256: f4de37432d4a3b39c9da7d83269d5c2cacfb71409492d2045be3ddd30813e8d7

Contents?: true

Size: 1.9 KB

Versions: 5

Compression:

Stored size: 1.9 KB

Contents

RBMK
====
[//]: # (DESCRIPTION START)
This is a rather simple Ruby LDAP server that proxies operations upstream but
at the same time provides a facility to invoke your code at certain points in
the operation runtime. This may help to accomodate for some clients that
are not smart enough to implement the logic you need themselves.
LDAP is very rigid and static in its nature and although OpenLDAP provides some
very helpful overlays, it is far from enough.
[//]: # (DESCRIPTION STOP)

☢ CAUTION ☢
-----------
Like its name suggests, `rbmk` is somewhat powerful, but is not very stable.
Expect random meltdowns! Please, **NEVER** run it as superuser. LDAP gems
that it uses are surprisingly feature-rich, but are not quite polished yet.
This user does not have the time to rewrite them and does not consider it
a huge problem. Remember, the best architecture is not the one that never fails,
but is instead the one that can handle failures gracefully.

LIMITATIONS
-----------
* This proxy is read-only, by design.
* This script does not detach from its terminal, again by design.
* Only simple binds, at least until I actually need SASL myself.
* No TLS for now, but maybe someday.
* Only tested with MRI 2.2, but will likely work with anything 1.9+.
* Well, maybe not anything, as it uses [ruby-ldap](https://github.com/bearded/ruby-ldap) (a C extension).

INSTALL
-------
`gem install rbmk`, simple as that.

RUN
---
As this script is not a daemon, you have two easy options besides anything
you may invent yourself:
* use any supervisor that are plenty nowadays: `supervisord`, `bluepill` etc.
* or just run it inside a `tmux` session and leave it there.

USAGE
-----
`rbmk FILENAME`, where *FILENAME* is a configuration file.

CONFIGURATION
-------------
Upon its invocation `rbmk` evals its first argument and thus is configured
by your Ruby code inside that file. Please refer to `examples/rbmk.rb` for
an example configuration file.

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rbmk-0.1.1 README.md
rbmk-0.1.0 README.md
rbmk-0.1.0.i README.md
rbmk-0.1.0.g README.md
rbmk-0.1.0.f README.md