Monedula
monedula-acl-rbac-converter docs menu

monedula-acl-rbac apply

Create RBAC bindings in MDS from plan.json. Usage and flags for monedula-acl-rbac apply.

Reference 4 of 29

Reference for monedula-acl-rbac-converter v0.10.0

Updated 2 October 2026

On this page
usage
monedula-acl-rbac apply [flags]

Create the RBAC role bindings described in plan.json by calling MDS. Idempotent: bindings already present in MDS are skipped. Concurrent writers are blocked via a per-run-directory lockfile.

Mutating. Requires either --confirm on the command line or an interactive 'yes' typed at the TTY prompt. Use --dry-run first to preview the MDS calls without writing.

Output and behaviour flags worth knowing: --format text|json structured summary on stdout --apply-parallelism N concurrent MDS writes (default 4) --mds-max-retries N retry transient failures (default 3; 0 disables) --progress per-binding progress on stderr (default: on when stderr is a TTY)

Auth (any one of): --mds-token-file FILE pre-fetched bearer token --mds-user + --mds-password-file exchange via /security/1.0/authenticate cached token from a prior 'auth login' (auto-discovered)

Example: monedula-acl-rbac apply \ --plan runs/.../plan.json \ --mds-url https://mds.example.com \ --mds-token-file ~/.confluent/token \ --confirm

Outputs: apply.log (every MDS call + result). --dry-run additionally writes would-apply.log with the request bodies that would have been sent.

This command can change external state. Check the flags that gate it before running it against production.

Flags

FlagTypeDefaultDescription
--planstring Path to plan.json
--dry-runbool Preview the MDS API calls without mutating
--confirmbool Confirm the mutation
--apply-parallelismint 4 Concurrent MDS writes
--force-unlockbool Clear a stale lockfile
--progressbool Print per-binding progress to stderr (default: on when stderr is a TTY)
--formatstring text Summary output format on stdout (text|json)
--mds-urlstring MDS base URL (required)
--mds-ca-certstring Path to a PEM CA bundle for MDS TLS
--mds-client-certstring Path to a PEM client certificate for mTLS to MDS
--mds-client-keystring Path to a PEM client key for mTLS to MDS
--mds-insecure-skip-verifybool Skip TLS certificate verification
--mds-userstring MDS username
--mds-password-filestring Path to a file containing the MDS password
--mds-token-filestring Path to a pre-fetched MDS bearer token file
--cache-tokenbool Persist the resolved token to the user config dir
--mds-max-retriesint 3 Retry transient MDS failures (5xx, 429, connection reset) up to N additional times after the initial call; pass 0 to disable retries
--run-dirstring Explicit run directory
--outstring Output path; parent dir becomes the run dir

Global flags

FlagTypeDefaultDescription
--log-formatstringtextLog output format (text|json); set MONEDULA_ACL_RBAC_LOG_FORMAT to override the default.
--log-levelstringinfoLog level (debug|info|warn|error); set MONEDULA_ACL_RBAC_LOG_LEVEL to override the default.

Examples

examples
monedula-acl-rbac apply --plan runs/2026-05-21T10-00-00Z/plan.json --mds-url https://mds.example.com --mds-token-file ~/.confluent/token --dry-run
monedula-acl-rbac apply --plan runs/2026-05-21T10-00-00Z/plan.json --mds-url https://mds.example.com --mds-token-file ~/.confluent/token --confirm

Exit codes

CodeMeaning
0Success.
1Usage error: missing required flag, malformed argument, or unknown subcommand.
4External system error: MDS unreachable or refusing the credentials. Errors the CLI does not classify also exit 4, for example a run-directory lock held by another apply, or a stale lock not cleared with --force-unlock.
5Destructive operation refused by a guardrail, or a guardrail check reports unhealthy state.