Files
ansiblings/cubes/user/edit
Benjamin Diedrichsen 587ff2cf47
Publish snapshot / snapshot (push) Failing after 1m58s
Add release pipeline and upgrade toolchain to TypeScript 7
Publishing infrastructure
- Three Gitea workflows: ci.yml (PRs, non-main pushes), publish-snapshot.yml
  (main -> Gitea under dist-tag @main) and release.yml (tags -> Gitea + npmjs)
- Tag-driven releases as <package-dir>-v<version>; the manifest stays the
  source of truth and release.yml refuses to run if tag and manifest disagree
- Every publish is idempotent: each step checks the registry first, so a run
  that fails on the second registry can simply be re-run
- Hard coverage gate (85% branches) shared by CI, the pre-push hook and local
  runs, since the thresholds live in vitest.config.ts rather than a CI flag
- README.PUBLISH.md documents the whole mechanism

Toolchain
- TypeScript 7 native compiler; drop tsgo and ts-node, use tsx for dev runs
- Biome 1.9 -> 2.x, Vitest 1 -> 4, zod 3 -> 4, inquirer 8 -> 14, pnpm 11.17.0
- Replace inquirer-checkbox-plus-prompt, which is peer-capped at inquirer <9,
  with enquirer's AutoComplete; the CubeSelection contract is unchanged
- Stand in for zod 4's removed z.AnyZodObject with a local AnyObjectSchema

Repo hygiene
- Stop tracking dist/; ignore coverage/, *.tsbuildinfo, .npmrc* and release.json
- Drop package-lock.json in favour of pnpm-lock.yaml

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 15:17:14 +02:00
..
2026-07-27 13:09:00 +02:00
2026-07-27 13:09:00 +02:00

user:edit

Modify an existing user's password or group membership

Purpose

This cube allows you to update existing user accounts on the target system. It can be used to change passwords, add users to new groups (like docker or sudo), or revoke group memberships.

What This Cube Does

  1. Identifies the existing user on the target system
  2. Updates the user's password if PASSWORD is provided
  3. Adds the user to the groups specified in GROUPS
  4. Removes the user from the groups specified in GROUPS_ABSENT

Configuration

Variable Type Description Required
USER string The username of the account to modify Yes
PASSWORD string New password for the user No
GROUPS string Comma-separated list of groups to ADD (e.g., docker,sudo) No
GROUPS_ABSENT string Comma-separated list of groups to REMOVE No

Dependencies

  • apt/essentials: Standard system utilities.

Usage

Changing a Password

nopy install user:edit --env USER=myuser --env PASSWORD=newsecurepassword

Adding a User to the Docker Group

nopy install user:edit --env USER=myuser --env GROUPS=docker

Revoking Sudo Access

nopy install user:edit --env USER=myuser --env GROUPS_ABSENT=sudo

Security Notes

  • When setting passwords via the CLI, they may be visible in your shell history. Consider using a session file or interactive prompts for sensitive values.
  • Changing your own user's groups or password may require a re-login to take full effect.