flagsmith-cli
v0.2.3
Published
A CLI allowing you to fetch Flagsmith flags and output them to a file
Keywords
Readme
flagsmith-cli
Retrieve Flagsmith state from an API and store it in a file.
This CLI can be used to bake default flags into your application as part of CI/CD, this provides support for offline applications and is also advised as part of our Defensive Coding and Default Flags Documentation. An example of this can be seen here.
Populating defaultFlags in your Project
The steps to using this to provide default flags are as follows. An example of this can be found here. The main steps to achieving this are as follows:
- Install the cli
npm i flagsmith-cli --save-dev - Call the cli as part of postinstall to create a
flagsmith.jsonfile:
export FLAGSMITH_ENVIRONMENT=API_KEY
"postinstall": "flagsmith get"An example of this can be seen here.
3. In your application, import the outputted JSON and initialise the client with the json flagsmith.init({state:json, environmentID: json.environmentID})
Example:
import flagsmith from 'flagsmith'
import state from './flagsmith.json'
flagsmith.init({state, environmentID: state.environmentID})Example with React:
import state from './flagsmith.json'
ReactDOM.render(
<FlagsmithProvider options={{environmentID: state.environmentID, state}} flagsmith={flagsmith}>
<App />
</FlagsmithProvider>,
document.getElementById('root')
);Usage - Global
$ npm install -g flagsmith-cli
$ flagsmith COMMAND
running command...
$ flagsmith (--version)
flagsmith-cli/0.2.3 linux-x64 node-v24.11.1
$ flagsmith --help [COMMAND]
USAGE
$ flagsmith COMMAND
...Commands
flagsmith get [ENVIRONMENT]flagsmith help [COMMAND]flagsmith pluginsflagsmith plugins add PLUGINflagsmith plugins:inspect PLUGIN...flagsmith plugins install PLUGINflagsmith plugins link PATHflagsmith plugins remove [PLUGIN]flagsmith plugins resetflagsmith plugins uninstall [PLUGIN]flagsmith plugins unlink [PLUGIN]flagsmith plugins update
flagsmith get [ENVIRONMENT]
Retrieve flagsmith features from the Flagsmith API and output them to a file.
USAGE
$ flagsmith get [ENVIRONMENT] [-o <value>] [-a <value>] [-t <trait_key>=<trait_value>... -i <value>]
[-p] [-e flags|environment]
ARGUMENTS
[ENVIRONMENT] The flagsmith environment key to use, defaults to the environment variable FLAGSMITH_ENVIRONMENT
FLAGS
-a, --api=<value> [default: https://edge.api.flagsmith.com/api/v1/] The API URL to fetch the feature flags from
-e, --entity=<option> [default: flags] The entity to fetch, this will either be the flags or an environment document
used for [local evaluation](https://docs.flagsmith.com/clients/server-side#local-evaluation-mod
e-network-behaviour).
<options: flags|environment>
-o, --output=<value> [default: ./flagsmith.json] The file path output
-p, --pretty Prettify the output JSON
IDENTITY FLAGS
-i, --identity=<value> The identity for which to fetch feature flags
-t, --trait=<trait_key>=<trait_value>... Trait key-value pair, separated by an equals sign (=)
DESCRIPTION
Retrieve flagsmith features from the Flagsmith API and output them to a file.
EXAMPLES
$ flagsmith get <ENVIRONMENT_API_KEY>
$ FLAGSMITH_ENVIRONMENT=abc123... flagsmith get
$ FLAGSMITH_ENVIRONMENT=ser.abc123... flagsmith get -e environment
$ flagsmith get -o ./my-file.json
$ flagsmith get -a https://flagsmith.example.com/api/v1/
$ flagsmith get -i flagsmith_identity
$ flagsmith get -i flagsmith_identity -t my_trait_key=some_trait_value -t other_trait=other_value
$ flagsmith get -pSee code: src/commands/get/index.ts
flagsmith help [COMMAND]
Display help for flagsmith.
USAGE
$ flagsmith help [COMMAND...] [-n]
ARGUMENTS
[COMMAND...] Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for flagsmith.See code: @oclif/plugin-help
flagsmith plugins
List installed plugins.
USAGE
$ flagsmith plugins [--json] [--core]
FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ flagsmith pluginsSee code: @oclif/plugin-plugins
flagsmith plugins add PLUGIN
Installs a plugin into flagsmith.
USAGE
$ flagsmith plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into flagsmith.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the FLAGSMITH_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the FLAGSMITH_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ flagsmith plugins add
EXAMPLES
Install a plugin from npm registry.
$ flagsmith plugins add myplugin
Install a plugin from a github url.
$ flagsmith plugins add https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ flagsmith plugins add someuser/somepluginflagsmith plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ flagsmith plugins inspect PLUGIN...
ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ flagsmith plugins inspect mypluginSee code: @oclif/plugin-plugins
flagsmith plugins install PLUGIN
Installs a plugin into flagsmith.
USAGE
$ flagsmith plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into flagsmith.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the FLAGSMITH_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the FLAGSMITH_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ flagsmith plugins add
EXAMPLES
Install a plugin from npm registry.
$ flagsmith plugins install myplugin
Install a plugin from a github url.
$ flagsmith plugins install https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ flagsmith plugins install someuser/somepluginSee code: @oclif/plugin-plugins
flagsmith plugins link PATH
Links a plugin into the CLI for development.
USAGE
$ flagsmith plugins link PATH [-h] [--install] [-v]
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ flagsmith plugins link mypluginSee code: @oclif/plugin-plugins
flagsmith plugins remove [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ flagsmith plugins remove [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ flagsmith plugins unlink
$ flagsmith plugins remove
EXAMPLES
$ flagsmith plugins remove mypluginflagsmith plugins reset
Remove all user-installed and linked plugins.
USAGE
$ flagsmith plugins reset [--hard] [--reinstall]
FLAGS
--hard Delete node_modules and package manager related files in addition to uninstalling plugins.
--reinstall Reinstall all plugins after uninstalling.See code: @oclif/plugin-plugins
flagsmith plugins uninstall [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ flagsmith plugins uninstall [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ flagsmith plugins unlink
$ flagsmith plugins remove
EXAMPLES
$ flagsmith plugins uninstall mypluginSee code: @oclif/plugin-plugins
flagsmith plugins unlink [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ flagsmith plugins unlink [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ flagsmith plugins unlink
$ flagsmith plugins remove
EXAMPLES
$ flagsmith plugins unlink mypluginflagsmith plugins update
Update installed plugins.
USAGE
$ flagsmith plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.See code: @oclif/plugin-plugins
flagsmith get [ENVIRONMENT]
Retrieve flagsmith features from the Flagsmith API and output them to a file.
USAGE
$ flagsmith get [ENVIRONMENT] [-o <value>] [-a <value>] [-t
<value> -i <value>] [-p] [-e flags|environment]
ARGUMENTS
ENVIRONMENT The flagsmith environment key to use, defaults to the environment
variable FLAGSMITH_ENVIRONMENT
FLAGS
-a, --api=<value> [default: https://edge.api.flagsmith.com/api/v1/] The
API URL to fetch the feature flags from
-e, --entity=<option> [default: flags] The entity to fetch, this will either
be the flags or an environment document used for [local
evaluation](https://docs.flagsmith.com/clients/server-s
ide#local-evaluation-mode-network-behaviour).
<options: flags|environment>
-o, --output=<value> [default: ./flagsmith.json] The file path output
-p, --pretty Prettify the output JSON
IDENTITY FLAGS
-i, --identity=<value> The identity for which to fetch
feature flags
-t, --trait=<trait_key>=<trait_value>... Trait key-value pair, separated by
an equals sign (=)
DESCRIPTION
Retrieve flagsmith features from the Flagsmith API and output them to a file.
EXAMPLES
$ flagsmith get <ENVIRONMENT_API_KEY>
$ FLAGSMITH_ENVIRONMENT=abc123... flagsmith get
$ FLAGSMITH_ENVIRONMENT=ser.abc123... flagsmith get -e environment
$ flagsmith get -o ./my-file.json
$ flagsmith get -a https://flagsmith.example.com/api/v1/
$ flagsmith get -i flagsmith_identity
$ flagsmith get -i flagsmith_identity -t my_trait_key=some_trait_value -t other_trait=other_value
$ flagsmith get -pSee code: dist/commands/get/index.ts
flagsmith help [COMMANDS]
Display help for flagsmith.
USAGE
$ flagsmith help [COMMANDS] [-n]
ARGUMENTS
COMMANDS Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for flagsmith.