Skip to content

dictybase-docker/arangoadmin

Repository files navigation

arangoadmin

CLI for managing databases and users in ArangoDB.

Table of Contents

Build & Run

From Source

Requires Go 1.24+.

git clone https://github.com/dictybase-docker/arangoadmin.git
cd arangoadmin
go build -o arangoadmin ./cmd/arangoadmin/
./arangoadmin [global options] <subcommand> [options]

Docker

docker build -t arangoadmin .
docker run --rm arangoadmin <subcommand> [options]

The container entrypoint is the binary — pass the subcommand directly after the image name:

docker run --rm arangoadmin ensure-user \
  --user myuser \
  --password secret \
  --host arangodb.internal

For multi-arch builds:

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t arangoadmin .

Global Options

These apply to all subcommands.

Flag Default Env var Description
--host arangodb $ARANGODB_SERVICE_HOST ArangoDB host address
--port 8529 $ARANGODB_SERVICE_PORT ArangoDB port
--log-level info Log level (debug, info, warn, error)
--log-format json Log format (json or text)
--is-secure false Connect via TLS

Subcommands

ensure-user

Create a user if it does not exist, or update the user's password according to the configured policy.

arangoadmin ensure-user [options]
Flag Short Required Default Description
--user -u yes ArangoDB username
--password --pw yes Password for the user
--admin-user --au no root Admin user for authentication
--admin-password --ap no Admin password
--password-policy no never When to update the password: never (set on creation only), if-provided (update when a non-empty value is given), always (overwrite on every run)

Binary:

./arangoadmin ensure-user \
  --host localhost \
  --user myuser \
  --password secret \
  --admin-password adminpass \
  --password-policy if-provided

Docker:

docker run --rm arangoadmin ensure-user \
  --host localhost \
  --user myuser \
  --password secret \
  --admin-password adminpass \
  --password-policy if-provided

ensure-database

Create a database if it does not exist. No-op if the database is already present.

arangoadmin ensure-database [options]
Flag Short Required Default Description
--database --db yes Database name
--admin-user --au no root Admin user for authentication
--admin-password --ap no Admin password

Binary:

./arangoadmin ensure-database \
  --host localhost \
  --database mydb \
  --admin-password adminpass

Docker:

docker run --rm arangoadmin ensure-database \
  --host localhost \
  --database mydb \
  --admin-password adminpass

ensure-grant

Set a user's access level on a database, creating the grant if it does not exist or updating it if it differs.

arangoadmin ensure-grant [options]
Flag Short Required Default Description
--user -u yes ArangoDB username
--database --db yes Database name
--admin-user --au no root Admin user for authentication
--admin-password --ap no Admin password
--grant -g no rw Access level: rw (read-write), ro (read-only), none

Binary:

./arangoadmin ensure-grant \
  --host localhost \
  --user myuser \
  --database mydb \
  --grant ro \
  --admin-password adminpass

Docker:

docker run --rm arangoadmin ensure-grant \
  --host localhost \
  --user myuser \
  --database mydb \
  --grant ro \
  --admin-password adminpass

Quick Reference

Command Required flags Optional flags Purpose
ensure-user --user, --password --admin-user, --admin-password, --password-policy Create or update a user
ensure-database --database --admin-user, --admin-password Create a database if missing
ensure-grant --user, --database --admin-user, --admin-password, --grant Set user access on a database

About

cli to manage database,user and collection in arangodb

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors