Metadata-Version: 2.4
Name: ldapsm
Version: 1.0.0
Summary: CLI tool to manage OpenLDAP schema snippets under cn=config
Author: Kevin Veen-Birkenbach
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-ldap>=3.4
Dynamic: license-file

# LDAP Schema Manager 🛠️
[![GitHub Sponsors](https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-blue?logo=github)](https://github.com/sponsors/kevinveenbirkenbach) [![Patreon](https://img.shields.io/badge/Support-Patreon-orange?logo=patreon)](https://www.patreon.com/c/kevinveenbirkenbach) [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20me%20a%20Coffee-Funding-yellow?logo=buymeacoffee)](https://buymeacoffee.com/kevinveenbirkenbach) [![PayPal](https://img.shields.io/badge/Donate-PayPal-blue?logo=paypal)](https://s.veen.world/paypaldonate)

A Python-based CLI tool for managing OpenLDAP schema snippets under `cn=config`, allowing you to create or update schema entries—including custom `olcAttributeTypes` and `olcObjectClasses`—via LDAPI.

## 🚀 Installation (PyPI)

```bash
python3 -m pip install --upgrade pip
python3 -m pip install ldapsm
```

### System dependencies (required for python-ldap)

`python-ldap` requires OpenLDAP development headers and SASL/SSL libraries.

Debian / Ubuntu:

```bash
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
  gcc python3-dev libldap2-dev libsasl2-dev libssl-dev
```

Arch Linux:

```bash
sudo pacman -S --needed gcc openldap
```

## 📝 Usage

After installation, run:

```bash
ldapsm --help
```

### Example

```bash
ldapsm \
  -s ldapi:/// \
  -D "" \
  -W "" \
  -n nextcloud \
  -a "( 1.3.6.1.4.1.99999.1 NAME 'nextcloudQuota' DESC 'Quota for Nextcloud' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )" \
  -c "( 1.3.6.1.4.1.99999.2 NAME 'nextcloudUser' DESC 'Auxiliary class for Nextcloud attributes' AUXILIARY MAY ( nextcloudQuota ) )"
```

## 📖 Help

For detailed usage and options, run:

```bash
ldapsm --help
```


## 🛡️ Contributing

Contributions, issues, and feature requests are welcome! Feel free to check [issues](https://github.com/kevinveenbirkenbach/ldap-schema-manager/issues).

## 📜 License

This project is licensed under the MIT License.

---

**Author:** [Kevin Veen-Birkenbach](https://www.veen.world/)
