kourou
The CLI that helps you manage your Kuzzle instances.
:warning: This project is currently in beta and breaking changes may occur until the 1.0.0
Usage
$ npm install -g kourou
$ kourou COMMAND
running command...
$ kourou (-v|--version|version)
kourou/0.10.0 linux-x64 node-v12.16.1
$ kourou --help [COMMAND]
USAGE
$ kourou COMMAND
...
Connect and authenticate to Kuzzle API
Commands that needs to send requests to Kuzzle API can specify the Kuzzle server address and authentication informations.
By command line:
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--username=username [default: anonymous] Kuzzle user
--password=password Kuzzle user password
--ssl [default: true for port 443] Use SSL to connect to Kuzzle
By environment variables:
KUZZLE_HOST [default: localhost] Kuzzle server host
KUZZLE_PORT [default: 7512] Kuzzle server port
KUZZLE_USERNAME [default: anonymous] Kuzzle user
KUZZLE_PASSWORD Kuzzle user password
KUZZLE_SSL Use SSL to connect to Kuzzle
Commands
kourou api-key:create USER
Creates a new API Key for a user
USAGE
$ kourou api-key:create USER
ARGUMENTS
USER User kuid
OPTIONS
-d, --description=description (required) API Key description
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--expire=expire [default: -1] API Key validity
--help show CLI help
--id=id API Key unique ID
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/api-key/create.ts
kourou api-key:delete USER ID
Deletes an API key.
USAGE
$ kourou api-key:delete USER ID
ARGUMENTS
USER User kuid
ID API Key unique ID
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--help show CLI help
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
EXAMPLE
kourou vault:delete sigfox-gateway 1k-BF3EBjsXdvA2PR8x
See code: src/commands/api-key/delete.ts
kourou api-key:search USER
Lists a user's API Keys.
USAGE
$ kourou api-key:search USER
ARGUMENTS
USER User kuid
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--filter=filter Filter to match the API Key descriptions
--help show CLI help
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/api-key/search.ts
kourou collection:export INDEX COLLECTION
Exports a collection (JSONL format)
USAGE
$ kourou collection:export INDEX COLLECTION
ARGUMENTS
INDEX Index name
COLLECTION Collection name
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--batch-size=batch-size [default: 2000] Maximum batch size (see limits.documentsFetchCount config)
--editor Open an editor (EDITOR env variable) to edit the query before sending
--help show CLI help
--password=password Kuzzle user password
--path=path Dump root directory (default: index name)
--query=query [default: {}] Only dump documents matching the query (JS or JSON format)
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
EXAMPLES
kourou collection:export nyc-open-data yellow-taxi
kourou collection:export nyc-open-data yellow-taxi --query '{ term: { city: "Saigon" } }'
See code: src/commands/collection/export.ts
kourou collection:import PATH
Imports a collection
USAGE
$ kourou collection:import PATH
ARGUMENTS
PATH Dump directory path
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--batch-size=batch-size [default: 200] Maximum batch size (see limits.documentsWriteCount config)
--collection=collection If set, override the collection destination name
--help show CLI help
--index=index If set, override the index destination name
--no-mappings Skip collection mappings
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/collection/import.ts
kourou document:create INDEX COLLECTION
Creates a document
USAGE
$ kourou document:create INDEX COLLECTION
ARGUMENTS
INDEX Index name
COLLECTION Collection name
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--body=body [default: {}] Document body in JS or JSON format. Will be read from STDIN if available
--help show CLI help
--id=id Optional document ID
--password=password Kuzzle user password
--replace Replaces the document if it already exists
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
EXAMPLES
kourou document:create iot sensors --body '{network: "sigfox"}'
kourou document:create iot sensors < document.json
See code: src/commands/document/create.ts
kourou document:get INDEX COLLECTION ID
Gets a document
USAGE
$ kourou document:get INDEX COLLECTION ID
ARGUMENTS
INDEX Index name
COLLECTION Collection name
ID Document ID
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--help show CLI help
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/document/get.ts
kourou document:search INDEX COLLECTION
Searches for documents
USAGE
$ kourou document:search INDEX COLLECTION
ARGUMENTS
INDEX Index name
COLLECTION Collection name
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--editor Open an editor (EDITOR env variable) to edit the request before sending
--from=from Optional offset
--help show CLI help
--password=password Kuzzle user password
--query=query [default: {}] Query in JS or JSON format.
--scroll=scroll Optional scroll TTL
--size=size Optional page size
--sort=sort [default: {}] Sort in JS or JSON format.
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
EXAMPLES
kourou document:search iot sensors --query '{ term: { name: "corona" } }'
kourou document:search iot sensors --editor
See code: src/commands/document/search.ts
kourou es:get INDEX ID
Gets a document from ES
USAGE
$ kourou es:get INDEX ID
ARGUMENTS
INDEX ES Index name
ID Document ID
OPTIONS
-h, --host=host [default: localhost] Elasticsearch server host
-p, --port=port [default: 9200] Elasticsearch server port
--help show CLI help
See code: src/commands/es/get.ts
kourou es:insert INDEX
Inserts a document directly into ES (will replace if exists)
USAGE
$ kourou es:insert INDEX
ARGUMENTS
INDEX ES Index name
OPTIONS
-h, --host=host [default: localhost] Elasticsearch server host
-p, --port=port [default: 9200] Elasticsearch server port
--body=body [default: {}] Document body in JSON
--help show CLI help
--id=id Document ID
See code: src/commands/es/insert.ts
kourou es:list-index
Lists available ES indexes
USAGE
$ kourou es:list-index
OPTIONS
-g, --grep=grep Match output with pattern
-h, --host=host [default: localhost] Elasticsearch server host
-p, --port=port [default: 9200] Elasticsearch server port
--help show CLI help
See code: src/commands/es/list-index.ts
kourou help [COMMAND]
display help for kourou
USAGE
$ kourou help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help
kourou index:export INDEX
Exports an index (JSONL format)
USAGE
$ kourou index:export INDEX
ARGUMENTS
INDEX Index name
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--batch-size=batch-size [default: 2000] Maximum batch size (see limits.documentsFetchCount config)
--help show CLI help
--password=password Kuzzle user password
--path=path Dump directory (default: index name)
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/index/export.ts
kourou index:import PATH
Imports an index
USAGE
$ kourou index:import PATH
ARGUMENTS
PATH Dump directory or file
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--batch-size=batch-size [default: 200] Maximum batch size (see limits.documentsWriteCount config)
--help show CLI help
--index=index If set, override the index destination name
--no-mappings Skip collections mappings
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/index/import.ts
kourou instance:logs
Displays the logs of a running Kuzzle
USAGE
$ kourou instance:logs
OPTIONS
-f, --follow Follow log output
-i, --instance=instance Kuzzle instance name
See code: src/commands/instance/logs.ts
kourou instance:spawn
Spawn a new Kuzzle instance
USAGE
$ kourou instance:spawn
OPTIONS
-v, --version=version [default: 2] Core-version of the instance to spawn
--check Check prerequisite before running Kuzzle
--help show CLI help
See code: src/commands/instance/spawn.ts
kourou profile:export
Exports profiles
USAGE
$ kourou profile:export
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--help show CLI help
--password=password Kuzzle user password
--path=path [default: profiles] Dump directory
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/profile/export.ts
kourou profile:import PATH
Imports profiles
USAGE
$ kourou profile:import PATH
ARGUMENTS
PATH Dump file
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--help show CLI help
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/profile/import.ts
kourou query CONTROLLER:ACTION
Executes an API query
USAGE
$ kourou query CONTROLLER:ACTION
ARGUMENTS
CONTROLLER:ACTION Controller and action (eg: "server:now")
OPTIONS
-a, --arg=arg Additional argument. Repeatable. (e.g. "-a refresh=wait_for")
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--body=body [default: {}] Request body in JS or JSON format. Will be read from STDIN if available.
--editor Open an editor (EDITOR env variable) to edit the request before sending
--help show CLI help
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
EXAMPLES
kourou query document:get --arg index=iot --arg collection=sensors --arg _id=sigfox-42
kourou query collection:create --arg index=iot --arg collection=sensors --body '{dynamic: "strict"}'
kourou query admin:loadMappings < mappings.json
echo '{name: "Aschen"}' | kourou query document:create --arg index=iot --arg collection=sensors
See code: src/commands/query.ts
kourou role:export
Exports roles
USAGE
$ kourou role:export
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--help show CLI help
--password=password Kuzzle user password
--path=path [default: roles] Dump directory
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/role/export.ts
kourou role:import PATH
Import roles
USAGE
$ kourou role:import PATH
ARGUMENTS
PATH Dump file
OPTIONS
-h, --host=host [default: localhost] Kuzzle server host
-p, --port=port [default: 7512] Kuzzle server port
--help show CLI help
--password=password Kuzzle user password
--ssl Use SSL to connect to Kuzzle
--username=username [default: anonymous] Kuzzle username (local strategy)
See code: src/commands/role/import.ts
kourou vault:add SECRETS-FILE KEY VALUE
Adds an encrypted key to a secrets file
USAGE
$ kourou vault:add SECRETS-FILE KEY VALUE
ARGUMENTS
SECRETS-FILE Encrypted secrets file
KEY Path to the key (lodash style)
VALUE Value to encrypt
OPTIONS
--vault-key=vault-key Kuzzle Vault Key (or KUZZLE_VAULT_KEY)
See code: src/commands/vault/add.ts
kourou vault:encrypt FILE
Encrypts an entire file.
USAGE
$ kourou vault:encrypt FILE
ARGUMENTS
FILE File containing unencrypted secrets
OPTIONS
-f, --force Overwrite the output file if it already exists
-o, --output-file=output-file Output file (default: <file>.enc.json)
--vault-key=vault-key Kuzzle Vault Key (or KUZZLE_VAULT_KEY)
See code: src/commands/vault/encrypt.ts
kourou vault:show SECRETS-FILE KEY
Prints an encrypted key.
USAGE
$ kourou vault:show SECRETS-FILE KEY
ARGUMENTS
SECRETS-FILE Encrypted secrets file
KEY Path to the key (lodash style)
OPTIONS
--vault-key=vault-key Kuzzle Vault Key (or KUZZLE_VAULT_KEY)
See code: src/commands/vault/show.ts
kourou vault:test SECRETS-FILE
Tests if an encrypted secrets file can be decrypted.
USAGE
$ kourou vault:test SECRETS-FILE
ARGUMENTS
SECRETS-FILE Encrypted secrets file
OPTIONS
--vault-key=vault-key Kuzzle Vault Key (or KUZZLE_VAULT_KEY)
See code: src/commands/vault/test.ts
Where does this weird name comes from?
We liked the idea that this CLI is like a launchpad for the Kuzzle rocket. The place where you launch and pilot your Kuzzle instance. The place where the European Space Agency launches their rockets is in the country near the city of Kourou, in French Guiana, so we liked the idea that the Kuzzle rockets would take off from there.