Command line interface

The CLI is the first piece of software touched when setting up a new XMM project. It provides several commands and helpers as well as the possibility to be expanded.

xmm-admin and manage.py

Once the xmm Python package has been installed, a new executable will be available in your shell’s $PATH: xmm-admin.

This command can be run from anywhere to setup a new project, once that’s done, one should switch to using the generated manage.py interface inside of your project.

You can call this script by passing it to python or invoke it directly:

./manage.py --help

Commands

attr

Manipulate attributes in the system. Provides three sub-commands:

  • change_keys [options] <to_key> <from_key>

    Set a new attribute key and migrate all values.

  • merge_keys [options] <target_key> <keys...>

    Merge all given attributes into the first one and migrate all values.

  • set_multilingual [options] <target_key> <language_code>

    Turn multilingual field to singlelingual (–true) or vice versa, a singlelingual to a multilingual (–false).

check

Check the environment for some issues. E.g., if the correct Python, MongoDB, ElasticSearch and Redis versions are installed.

clear_cache

Clear the Redis cache.

elastic

ElasticSearch management commands. Provides three sub-commands:

  • rebuild

  • drop_indices

  • search

generate

Scaffolding commands to kickstart new code. Provides 4 sub-commands:

  • project

  • task

  • command

  • step

media

Media files management. Provides two sub-commands:

  • rebuild

  • watchdog

mongo

MongoDB management commands. Provides three sub-commands:

  • migrate

  • dump

  • restore

notify

Sends a notification.

pipeline

Run a task pipeline.

run

Runs the Flask development web server.

sentry

Provides Sentry management commands.

shell

Runs a shell in the Flask app context.

task

Task management commands. Provides three sub-commands:

  • execute

  • list

  • clean

user

User management commands. Provides five sub-commands:

  • create

  • delete

  • create_api_key

  • list

  • reset_password

websocket

Run a notification websocket server.