CLI: ara API client

Installing ara provides an ara command line interface client in order to query API servers from shell scripts or from the terminal.

ara

$ ara --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

ara expire

Note

This command requires write privileges. You can read more about read and write permissions here.

$ ara expire --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# Return which objects would be expired by ommitting --confirm
ara expire

# Expire running objects without updates faster than the default
ara expire --hours 4 --confirm

ara playbook list

$ ara playbook list --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Query a running API server for the 10 latest failed playbooks:

ara playbook list --client http \
  --server https://demo.recordsansible.org \
  --status failed \
  --limit 10

Get a list of playbooks matching a partial path and order the results by duration using the default offline API client:

ara playbook list --path="playbooks/site.yaml" --order=duration

Get a list of playbooks and format the results as json or yaml instead of pretty tables:

ara playbook list -f json
ara playbook list -f yaml

ara playbook show

$ ara playbook show --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Show details about a playbook from a running API server and format the result in json:

ara playbook show --client http --server https://demo.recordsansible.org 1 -f json

Show details about a playbook from a local installation using the default offline API client and format the result in yaml:

ara playbook show 1 -f yaml

ara playbook delete

Note

This command requires write privileges. You can read more about read and write permissions here.

$ ara playbook delete --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

ara playbook metrics

$ ara playbook metrics --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# Return metrics about more than the last 1000 playbooks
ara playbook metrics --limit 10000

# Return playbook metrics in json or csv
ara playbook metrics -f json
ara playbook metrics -f csv

# Return metrics about playbooks matching a (full or partial) path
ara playbook metrics --path site.yml

# Return metrics for playbooks matching a label
ara playbook metrics --label "check:False"

# Return additional metrics without truncating paths
ara playbook metrics --long

# Aggregate metrics by playbook path (default), name, by ansible version or by controller
ara playbook metrics --aggregate name
ara playbook metrics --aggregate ansible_version
ara playbook metrics --aggregate controller

ara playbook prune

Pruning keeps the database size in check and the performance optimal by deleting older playbooks.

Unused disk space can be reclaimed after pruning depending on your database backend, for example:

It is recommended to run this command inside a task scheduler (such as cron) since the server does not run this command automatically.

Note

This command requires write privileges. You can read more about read and write permissions here.

$ ara playbook prune --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# Return which playbooks would be deleted by ommitting --confirm
ara playbook prune

# Different retention for successful, unsuccessful and expired playbooks
ara playbook prune --status ok --days 30 --confirm
ara playbook prune --status failed --days 90 --confirm
ara playbook prune --status expired --days 3 --confirm

# Different retention based on labels
ara playbook prune --label dev --days 7 --confirm
ara playbook prune --label prod --days 90 --confirm

# Different retention based on name or path
ara playbook prune --name demo --days 7
ara playbook prune --path /home/jenkins --days 14

# Delete more than 200 playbooks per command execution
ara playbook prune --limit 9000 --confirm

ara play list

$ ara play list --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# List the top 25 longest plays
ara play list --order=-duration --limit 25

# List plays matching a name (full or partial)
ara play list --name apache

# List the plays for a specific playbook and format the result in json
ara play list --playbook 1 -f json

ara play show

$ ara play show --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# Show a specific play and format the results as json
ara play show 9001 -f json

ara play delete

Note

This command requires write privileges. You can read more about read and write permissions here.

$ ara play delete --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

ara host list

$ ara host list --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Note

From the perspective of ARA, each host is unique to a playbook run. Their records contain the Ansible host facts as well as their stats for a particular playbook run.

Examples:

# List the latest 25 host results
ara host list --limit 25

# List host records for a specific host name
ara host list --name localhost

# List all the host results for a specific playbook and format the result in json
ara host list --playbook 1 -f json

# Only return hosts with or without unreachable task results
ara host list --with-unreachable
ara host list --without-unreachable

# Only return hosts with or without changed task results
ara host list --with-changed
ara host list --without-changed

# Only return hosts with or without failed task results
ara host list --with-failed
ara host list --without-failed

ara host show

$ ara host show --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Note

From the perspective of ARA, each host is unique to a playbook run. Their records contain the Ansible host facts as well as their stats for a particular playbook run.

Return stats for a specified host as well as a link to the playbook report it is involved in:

ara host show 1

Include host facts as well formatted in json:

# Facts do not render well in the default pretty table format
ara host show 1 --with-facts -f json

ara host delete

Note

This command requires write privileges. You can read more about read and write permissions here.

$ ara host delete --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

ara host metrics

$ ara host metrics --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# Return metrics about more than the last 1000 hosts
ara host metrics --limit 10000

# Return host metrics in json or csv
ara host metrics -f json
ara host metrics -f csv

# Return metrics for hosts matching a name
ara host metrics --name localhost

# Return metrics for hosts involved in a specific playbook
ara host metrics --playbook 9001

# Return metrics only for hosts with changed, failed or unreachable results
ara host metrics --with-changed
ara host metrics --with-failed
ara host metrics --with-unreachable

# Return metrics only for hosts without changed, failed or unreachable results
ara host metrics --without-changed
ara host metrics --without-failed
ara host metrics --without-unreachable

ara record list

$ ara record list --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# List records for a specific key
ara record list --key log_url

# List records for a specific playbook
ara record list --playbook 9001

ara record show

$ ara record show --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# Show a specific record and format the results as json
ara record show 9001 -f json

ara record delete

$ ara record delete --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

ara result list

$ ara result list --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Return the 10 most recent failed results:

ara result list --status failed --limit 10

Return the 15 results with the highest duration for a specific playbook:

ara result list --playbook 389 --order=-duration --limit 15

ara result show

$ ara result show --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Return detailed information about a specific result:

ara result show 9001

Return detailed information about a specific result, including formatted content:

ara result show 9001 --with-content -f json

ara result delete

Note

This command requires write privileges. You can read more about read and write permissions here.

$ ara result delete --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

ara task list

$ ara task list --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Note

ara doesn’t have the concept of roles but it is possible to search for them by path, for example: ara task list --path "roles/install_apache"

Role names are included in the task names and it is possible to search for role-specific tasks there as well: ara task list --name install_apache.

Examples:

# Return the top 25 longest running tasks
ara task list --order=-duration --limit 25

# Return tasks from a specific playbook
ara task list --playbook 9001

# Return tasks for the package action
ara task list --action package

# Return tasks matching a path (partial or full)
ara task list --path="roles/install_apache"

# Return tasks matching a name (partial or full)
ara task list --name install_apache

ara task show

$ ara task show --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Return detailed information about a specific task:

ara task show 9001

ara task delete

Note

This command requires write privileges. You can read more about read and write permissions here.

$ ara task delete --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

ara task metrics

$ ara task metrics --help
Traceback (most recent call last):
  File "/usr/bin/ara", line 6, in <module>
    from ara.cli.base import main
  File "/usr/lib/python3.10/site-packages/ara/cli/base.py", line 9, in <module>
    from cliff.app import App
  File "/usr/lib/python3.10/site-packages/cliff/app.py", line 25, in <module>
    from cliff import _argparse
  File "/usr/lib/python3.10/site-packages/cliff/_argparse.py", line 18, in <module>
    from autopage import argparse
ModuleNotFoundError: No module named 'autopage'

Examples:

# Return metrics about more than the last 1000 tasks
ara task metrics --limit 10000

# Return task metrics in json or csv
ara task metrics -f json
ara task metrics -f csv

# Don't truncate paths and include additional task status fields
ara task metrics --long

# Return metrics about tasks from a specific playbook
ara task metrics --playbook 9001

# Return metrics for tasks matching a (full or partial) path
ara task metrics --path ansible-role-foo

# Only return metrics about a specific action
ara task metrics --action package

# Return metrics for tasks matching a name
ara task metrics --name apache

# Return metrics about the longest tasks and then sort them by total duration
ara task metrics --order=-duration --sort-column duration_total

# Aggregate metrics by task name rather than action
ara task metrics --aggregate name

# Aggregate metrics by task file rather than action
ara task metrics --aggregate path

CLI: ara-manage (django API server)

ara-manage is a command provided by ARA when the API server dependencies are installed.

It is an alias to the python manage.py command interface provided by Django and they can be used interchangeably if you are running ARA from source.

Note

Django comes with a lot of built-in commands and they are not all used or relevant in the context of ARA so they might not be exposed, tested or documented.

This documentation provides information about commands which we think are relevant.

If you do not find a command documented here, you can find more information about it in the Django documentation.

Please feel free to send a patch if we’re missing anything !

ara-manage

$ ara-manage --help
[ara] No setting found for SECRET_KEY. Generating a random key...
[ara] Creating data & configuration directory: /builddir/.ara/server
[ara] Writing default settings to /builddir/.ara/server/settings.yaml
[ara] Using settings file: /builddir/.ara/server/settings.yaml

Type 'ara-manage help <subcommand>' for help on a specific subcommand.

Available subcommands:

[api]
    prune

[auth]
    changepassword
    createsuperuser

[contenttypes]
    remove_stale_contenttypes

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

[rest_framework]
    generateschema

[sessions]
    clearsessions

[staticfiles]
    collectstatic
    findstatic
    runserver

[ui]
    generate

ara-manage prune

Warning

ara-manage prune has been replaced by ara playbook prune in ara 1.5. It will be removed in ara 1.6.

Used to delete playbooks that are older than a specified amount of days.

$ ara-manage prune --help
[ara] Using settings file: /builddir/.ara/server/settings.yaml
usage: ara-manage prune [-h] [--client CLIENT] [--endpoint ENDPOINT]
                        [--username USERNAME] [--password PASSWORD]
                        [--insecure] [--timeout TIMEOUT] [--days DAYS]
                        [--confirm] [--version] [-v {0,1,2,3}]
                        [--settings SETTINGS] [--pythonpath PYTHONPATH]
                        [--traceback] [--no-color] [--force-color]
                        [--skip-checks]

Deletes playbooks from the database based on their age

options:
  -h, --help            show this help message and exit
  --client CLIENT       API client to use for the query: 'offline' or 'http'
                        (default: 'offline')
  --endpoint ENDPOINT   API endpoint to use for the query (default:
                        'http://127.0.0.1:8000')
  --username USERNAME   API username to use for the query (default: None)
  --password PASSWORD   API password to use for the query (default: None)
  --insecure            Disables SSL certificate validation
  --timeout TIMEOUT     Timeout for API queries (default: 10)
  --days DAYS           Delete playbooks started this many days ago (default:
                        31)
  --confirm             Confirm deletion of playbooks, otherwise runs without
                        deleting any playbook
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.
  --skip-checks         Skip system checks.

ara-manage changepassword

Change the password for a user.

Relevant when working with authentication.

$ ara-manage changepassword --help
[ara] Using settings file: /builddir/.ara/server/settings.yaml
usage: ara-manage changepassword [-h] [--database DATABASE] [--version]
                                 [-v {0,1,2,3}] [--settings SETTINGS]
                                 [--pythonpath PYTHONPATH] [--traceback]
                                 [--no-color] [--force-color]
                                 [username]

Change a user's password for django.contrib.auth.

positional arguments:
  username              Username to change password for; by default, it's the
                        current username.

options:
  -h, --help            show this help message and exit
  --database DATABASE   Specifies the database to use. Default is "default".
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.

ara-manage createsuperuser

Superusers are relevant when setting up authentication.

$ ara-manage createsuperuser --help
[ara] Using settings file: /builddir/.ara/server/settings.yaml
usage: ara-manage createsuperuser [-h] [--username USERNAME] [--noinput]
                                  [--database DATABASE] [--email EMAIL]
                                  [--version] [-v {0,1,2,3}]
                                  [--settings SETTINGS]
                                  [--pythonpath PYTHONPATH] [--traceback]
                                  [--no-color] [--force-color] [--skip-checks]

Used to create a superuser.

options:
  -h, --help            show this help message and exit
  --username USERNAME   Specifies the login for the superuser.
  --noinput, --no-input
                        Tells Django to NOT prompt the user for input of any
                        kind. You must use --username with --noinput, along
                        with an option for any other required field.
                        Superusers created with --noinput will not be able to
                        log in until they're given a valid password.
  --database DATABASE   Specifies the database to use. Default is "default".
  --email EMAIL         Specifies the email for the superuser.
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.
  --skip-checks         Skip system checks.

ara-manage makemigrations

Generally used to generate new SQL migrations after modifying the database model files.

$ ara-manage makemigrations --help
[ara] Using settings file: /builddir/.ara/server/settings.yaml
usage: ara-manage makemigrations [-h] [--dry-run] [--merge] [--empty]
                                 [--noinput] [-n NAME] [--no-header] [--check]
                                 [--version] [-v {0,1,2,3}]
                                 [--settings SETTINGS]
                                 [--pythonpath PYTHONPATH] [--traceback]
                                 [--no-color] [--force-color] [--skip-checks]
                                 [app_label ...]

Creates new migration(s) for apps.

positional arguments:
  app_label             Specify the app label(s) to create migrations for.

options:
  -h, --help            show this help message and exit
  --dry-run             Just show what migrations would be made; don't
                        actually write them.
  --merge               Enable fixing of migration conflicts.
  --empty               Create an empty migration.
  --noinput, --no-input
                        Tells Django to NOT prompt the user for input of any
                        kind.
  -n NAME, --name NAME  Use this name for migration file(s).
  --no-header           Do not add header comments to new migration file(s).
  --check               Exit with a non-zero status if model changes are
                        missing migrations.
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.
  --skip-checks         Skip system checks.

ara-manage migrate

Runs SQL migrations.

They need to be run at least once before the API server can start.

$ ara-manage migrate --help
[ara] Using settings file: /builddir/.ara/server/settings.yaml
usage: ara-manage migrate [-h] [--noinput] [--database DATABASE] [--fake]
                          [--fake-initial] [--plan] [--run-syncdb] [--check]
                          [--version] [-v {0,1,2,3}] [--settings SETTINGS]
                          [--pythonpath PYTHONPATH] [--traceback] [--no-color]
                          [--force-color] [--skip-checks]
                          [app_label] [migration_name]

Updates database schema. Manages both apps with migrations and those without.

positional arguments:
  app_label             App label of an application to synchronize the state.
  migration_name        Database state will be brought to the state after that
                        migration. Use the name "zero" to unapply all
                        migrations.

options:
  -h, --help            show this help message and exit
  --noinput, --no-input
                        Tells Django to NOT prompt the user for input of any
                        kind.
  --database DATABASE   Nominates a database to synchronize. Defaults to the
                        "default" database.
  --fake                Mark migrations as run without actually running them.
  --fake-initial        Detect if tables already exist and fake-apply initial
                        migrations if so. Make sure that the current database
                        schema matches your initial migration before using
                        this flag. Django will only check for an existing
                        table name.
  --plan                Shows a list of the migration actions that will be
                        performed.
  --run-syncdb          Creates tables for apps without migrations.
  --check               Exits with a non-zero status if unapplied migrations
                        exist.
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.
  --skip-checks         Skip system checks.

ara-manage runserver

Runs the embedded development server.

Note

Good for small scale usage.

Consider deploying with a WSGI application server and a web server for production use.

$ ara-manage runserver --help
[ara] Using settings file: /builddir/.ara/server/settings.yaml
usage: ara-manage runserver [-h] [--ipv6] [--nothreading] [--noreload]
                            [--nostatic] [--insecure] [--version]
                            [-v {0,1,2,3}] [--settings SETTINGS]
                            [--pythonpath PYTHONPATH] [--traceback]
                            [--no-color] [--force-color]
                            [addrport]

Starts a lightweight Web server for development and also serves static files.

positional arguments:
  addrport              Optional port number, or ipaddr:port

options:
  -h, --help            show this help message and exit
  --ipv6, -6            Tells Django to use an IPv6 address.
  --nothreading         Tells Django to NOT use threading.
  --noreload            Tells Django to NOT use the auto-reloader.
  --nostatic            Tells Django to NOT automatically serve static files
                        at STATIC_URL.
  --insecure            Allows serving static files even if DEBUG is False.
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.

ara-manage generate

Generates a static version of the built-in reporting web interface.

Note

Good for small scale usage but inefficient and contains a lot of small files at a large scale.

$ ara-manage generate --help
[ara] Using settings file: /builddir/.ara/server/settings.yaml
usage: ara-manage generate [-h] [--version] [-v {0,1,2,3}]
                           [--settings SETTINGS] [--pythonpath PYTHONPATH]
                           [--traceback] [--no-color] [--force-color]
                           [--skip-checks]
                           path

Generates a static tree of the web application

positional arguments:
  path                  Path where the static files will be built in

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.
  --skip-checks         Skip system checks.