Skip to content

FusionAuth/fusionauth-node-cli

Repository files navigation

FusionAuth CLI

The FusionAuth CLI is a command line tool for interacting with FusionAuth. It is written in Typescript and is available as an NPM package.

Requirements

Installation & usage

To install and use @fusionauth/cli, run the following commands:

npm i @fusionauth/cli;
npx fusionauth --help;

You can install it globally for ease of use from anywhere, but global installations can potentially lead to conflicts and are not recommended:

npm i -g @fusionauth/cli;
fusionauth --help;

Currently, the CLI supports the following commands:

  • Common config check
    • fusionauth check:common-config - Checks to make sure common configuration settings are set.
  • Emails
    • fusionauth email:download - Download a specific template or all email templates from a FusionAuth server.
    • fusionauth email:duplicate - Duplicate an email template locally.
    • fusionauth email:html-to-text - Convert HTML email templates to text, where the text template is missing.
    • fusionauth email:upload - Upload a specific template or all email templates to a FusionAuth server.
    • fusionauth email:watch - Watch the email template directory and upload changes to a FusionAuth server.
    • fusionauth email:create - Create a new email template locally. Fake user generation
    • fusionauth import:generate - Generate JSON for importing fake users for testing.
  • Lambdas
    • fusionauth lambda:update - Update a lambda on a FusionAuth server.
    • fusionauth lambda:delete - Delete a lambda from a FusionAuth server.
    • fusionauth lambda:retrieve - Download a lambda from a FusionAuth server.
  • Messages
    • fusionauth message:download - Download a specific message template or all message templates from a FusionAuth server.
    • fusionauth message:upload - Upload a specific message template or all message templates to a FusionAuth server.
  • Themes
    • fusionauth theme:download - Download a theme from a FusionAuth server.
    • fusionauth theme:upload - Upload a theme to a FusionAuth server.
    • fusionauth theme:watch - Watch a theme directory and upload changes to a FusionAuth server.

Instead of supplying the API key with the -k option on every command, you can set the FUSIONAUTH_API_KEY environment variable. The same goes for the host URL option -h, which can be set with the FUSIONAUTH_HOST environment variable.

The download and retrieve commands will succeed even if there are no templates or lambdas to retrieve.

Questions and support

If you have a question or support issue regarding this client library, we'd love to hear from you.

If you have a paid edition with support included, please open a ticket in your account portal. Learn more about paid editions here.

Otherwise, please post your question in the community forum.

Releasing

  1. Run the release script from the main branch:
./scripts/release.sh patch  # or minor, major
  1. Create a Pull Request from the release branch to main.

  2. After the PR is merged, tag the release, make sure they match:

./scripts/tag-release.sh <version>  # e.g., 1.2.3
  1. The GitHub Action will automatically build and publish to npm when the tag is pushed.

Contributing

Bug reports and pull requests are welcome on GitHub.

To build this library locally:

git clone https://github.com/FusionAuth/fusionauth-node-cli &&
cd fusionauth-node-cli;
npm install &&
npm run build;

# now you can use it
npx fusionauth -h;

To see examples of use: https://fusionauth.io/docs/extend/code/lambdas/testing

Troubleshooting

If you run this multiple times in a row against a local instance, the number of admin users may be incorrect until you re-index. See this issue for more.

License

This code is available as open source under the terms of the Apache v2.0 License.

Packages

No packages published

Contributors 11