Minimal, strongly-typed Go client for FreeIPA (https://freeipa.readthedocs.io/en/ipa-4-11/api/index.html)[JSON-RPC API], implementing a few user_* methods but aim to cover every methods.
It implement authentication using username/password and keep session into a cookie jar.
rpc.go contains a minimal JSON-RPC wrapper that is used to implement every other RPC. All RPCs follow a consistent pattern: one file per command, typed request options and results, versioned with VERSION.
I wanted to build something around FreeIPA without using ipalib or other Python libraries. Usually, libraries like these miss some useful attributes returned by FreeIPA. That's why I will carefully review and implement every single method I need, without relying on generated code from the documentation or LLMs.