foxx-cli
CLI for managing and developing ArangoDB Foxx services.
foxx-cli is a standalone tool for the shell that can be used to talk to
ArangoDB servers to manage
Foxx services.
To learn more about Foxx, see the
official ArangoDB Foxx documentation.
:warning: NOTE: foxx-cli is not yet ready for production use. This is a
development release. Please come back later. For details see
the project roadmap. :warning:
Table of Contents
Install
foxx-cli runs on Node.js and can be installed with
yarn:
yarn global add foxx-cli
Or with npm:
npm install --global foxx-cli
Note: using yarn you can also run foxx-cli from your project's
devDependencies
:
yarn add --dev foxx-cli
yarn foxx help
If you're using a recent version of npm you can also use npx:
npx -p foxx-cli foxx help
Usage
After you've installed foxx-cli, you should be able to use the foxx
program. You can learn more about the different commands foxx
supports by
using the --help
flag.
foxx --help
You can also use the --help
flag with commands to learn more about them, e.g.:
foxx install --help
foxx server --help
foxx server list --help
Special files
manifest.json
The manifest.json
or manifest file contains a service's meta-information. For
more information on the manifest format, see the
official ArangoDB documentation.
The directory containing a service's manifest.json
file is called the root
directory of the service.
foxxignore
If you want to exclude files from the service bundle that will uploaded to
ArangoDB you can create a file called .foxxignore
in the root directory of
your service. Each line should specify one pattern you wish to ignore:
-
Patterns starting with !
will be treated as an explicit whitelist. Paths
matching these patterns will not be ignored even if they would match any of
the other patterns.
Example: !index.js
will override any pattern matching a file called
index.js
.
-
Patterns starting with /
will only match paths relative to the service's
root directory.
Example: /package.json
will not match node_modules/joi/package.json
.
-
Patterns ending with /
will match a directory and any files inside of it.
Example: node_modules/
will exclude all node_modules
directories and
all of their contents.
-
A single *
(glob) will match zero or more characters (even dots) in a file
or directory name.
Example: .*
will match any files and directories with a name starting
with a dot.
-
A double **
(globstar) will match zero or more levels of nesting.
Example: hello/**/world
will match hello/world
, hello/foo/world
,
hello/foo/bar/world
, and so on.
-
Patterns starting with #
are considered comments and will be ignored.
For more details on the pattern matching behaviour, see the documentation of the
minimatch module (with the dot
flag
enabled).
If no .foxxignore
file is present in the service's root directory the
following patterns will be ignored automatically: .git/
, .svn/
, .hg/
,
*.swp
, .DS_Store
.
Should you need to include files that match these patterns for some reason, you
can override this list by creating an empty .foxxignore
file.
You can also create a .foxxignore
file in the current directory using the
ignore
command:
foxx ignore
foxx ignore --force
To add individual patterns to the .foxxignore
file just pass them as
additional arguments:
foxx ignore .git/ .svn/
foxx ignore '*.swp'
foxxrc
If you define servers using the server
commands, a .foxxrc
file will be
created in your $HOME
directory, which is typically one of the following
paths:
This file contains sections for each server which may contain server credentials
should you decide to save them.
Contribute
Feel free to dive in!
Open an issue or submit PRs.
All JavaScript code should conform to standard coding
style.
This README conforms to the
standard-readme specification.
License
The Apache License, Version 2.0. For more information, see the accompanying
LICENSE file.