Freeipa/group
@shrug/freeipa/groupv2026.07.17.1
01README
Manage FreeIPA user & host groups over the JSON-RPC API: snapshot the inventory, generic user-group CRUD (groupShow/groupAdd/groupMod/groupDel) plus a desired-state groupSync reconcile, ensure the FreeRADIUS radius-vlan- group pair, and add/remove members — idempotent and auditable, with a confirm-guarded delete.
02Models
@shrug/freeipa/groupv2026.07.17.1group.ts
fn groupFind()
Snapshot user groups (group_find) and host groups (hostgroup_find), including membership.
fn groupShow(cn: string)
Snapshot a single user group by cn (group_show, read-only).
| Argument | Type | Description |
|---|---|---|
| cn | string | User-group common name to fetch |
fn groupAdd(cn: string)
Create a user group (group_add). Writes the created group state on success; audits both paths. Optional idempotent flag treats an existing group as a no-op.
| Argument | Type | Description |
|---|---|---|
| cn | string | User-group common name |
fn groupMod(cn: string)
Modify a user group (group_mod). Writes the updated group state on success; audits both paths.
| Argument | Type | Description |
|---|---|---|
| cn | string | User-group common name to modify |
fn groupDel(cn: string)
Delete a user group (group_del). Requires confirm:true; audits both paths. Optional idempotent flag treats an already-absent group as success.
| Argument | Type | Description |
|---|---|---|
| cn | string | User-group common name to delete |
fn groupSync(cn: string)
Reconcile a user group to a desired spec: create it if absent (group_add), otherwise group_mod only the drifted attributes (description/gid + extra options). Idempotent — a converged group issues no IPA writes. Membership is out of scope (see groupAddMember/groupRemoveMember). Writes the converged group state on success; audits both paths, and the audit response lists the `changes` made.
| Argument | Type | Description |
|---|---|---|
| cn | string | User-group common name to reconcile |
fn ensureVlanGroup(vlanId: number)
Idempotently ensure the FreeRADIUS radius-vlan-<id> group exists as BOTH an ipausergroup (group_add) and an ipahostgroup (hostgroup_add). Swallows DuplicateEntry so re-runs are safe.
| Argument | Type | Description |
|---|---|---|
| vlanId | number | VLAN id to steer onto |
fn groupAddMember(cn: string)
Add members to a group in one call. kind=user -> group_add_member (user:[...]); kind=host -> hostgroup_add_member (host:[...]). Surfaces IPA's `failed` structure in the audit response.
| Argument | Type | Description |
|---|---|---|
| cn | string | Target group common name |
fn groupRemoveMember(cn: string)
Remove members from a group in one call. kind=user -> group_remove_member (user:[...]); kind=host -> hostgroup_remove_member (host:[...]). Surfaces IPA's `failed` structure in the audit response.
| Argument | Type | Description |
|---|---|---|
| cn | string | Target group common name |
Resources
groups(infinite)— User-group + host-group inventory snapshot
group(infinite)— Snapshot of a single user group (parsed row + raw entry)
vlanGroup(infinite)— State of a radius-vlan-<id> group pair (user + host) after ensure
attempt(infinite)— Audit record of a mutation attempt (request + result/error + timestamp). Written on both success and failure.
03Previous Versions
2026.07.11.1
2026.07.10.1
04Stats
A
100 / 100
Downloads
0
Archive size
24.5 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned
Repository
https://github.com/shrugpw/swamp-freeipa05Platforms
06Labels