JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q42257F
  • License MIT

Opinionated and convenient OpenSearch CLI

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@andreafspeziale/os-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    OpenSearch Logo Nest Logo

    OpenSearch CLI built in Nest,
    a progressive Node.js framework for building efficient and scalable server-side applications.

    NPM Version Package License Release Status

    Installation

    The Official opensearch-cli is also available

    npm

    npm install -g @andreafspeziale/os-cli

    yarn

    yarn global add @andreafspeziale/os-cli

    pnpm

    pnpm add -g @andreafspeziale/os-cli

    docker

    docker pull andreafspeziale/os-cli
    docker run --rm --env-file .env andreafspeziale/os-cli

    If using a local (docker) OpenSearch image like the one included in the docker-compose file be sure to set correctly the network option and OS_HOST env variable (OS_HOST=http://opensearch:9200) in the above command (docker run --rm --env-file .env --network os-cli_default andreafspeziale/os-cli)

    If using the dockerized CLI and you need to use your json payloads as inputs you'll need to mount the folder into the CLI execution context (e.g docker run --rm --env-file .env -v ./recipes:/opt/os-cli/recipes --network os-cli_default andreafspeziale/os-cli d q -i books -f recipes/query.json)

    How to use?

    Quickstart

    To taste the CLI very quickly using npx or after installing it you can spawn OpenSearch locally by using the docker-compose file included in the repository:

    • git clone git@github.com:andreafspeziale/os-cli.git
    • cd os-cli
    • docker compose up -d
    • export OS_CONNECTION_METHOD=local
    • npx @andreafspeziale/os-cli i l or os-cli i l

    Like the docker-compose file there are also some recipes included in the repository:

    • npx @andreafspeziale/os-cli i cr -i books -f ./recipes/create-index.json or os-cli i cr -i books -f ./recipes/create-index.json
    • npx @andreafspeziale/os-cli d cr -i books -f ./recipes/create-documents.json or os-cli d cr -i books -f ./recipes/create-documents.json
    • npx @andreafspeziale/os-cli d q -i books -f ./recipes/query.json or os-cli d q -i books -f ./recipes/query.json

    Configuration

    For proxy mode check aws-sigv4-proxy

    The CLI leverages environment variables in order to set connection and logging options just once.

    Name Required Default Description Values
    OS_HOST when OS_CONNECTION_METHOD is NOT local or proxy http://localhost:(9200 or 8080) OpenSearch connection host -
    OS_CONNECTION_METHOD Yes - How you want to connect to OpenSearch [local, proxy, serviceAccount, credentials]
    AWS_REGION only when OS_CONNECTION_METHOD is NOT local or proxy - OpenSearch AWS connection region -
    AWS_ROLE_ARN only when OS_CONNECTION_METHOD is serviceAccount - AWS role ARN for assume role connection -
    AWS_WEB_IDENTITY_TOKEN_FILE only when OS_CONNECTION_METHOD is serviceAccount - AWS web identity token file -
    AWS_ACCESS_KEY_ID only when OS_CONNECTION_METHOD is credentials - AWS access key id for canonical connection -
    AWS_SECRET_ACCESS_KEY only when OS_CONNECTION_METHOD is credentials - AWS secret access key for canonical connection -
    LOGGER_LEVEL No debug Which logs will be displayed [silent, error, warn, info, http, verbose, debug]
    LOGGER_PRETTY No true Boolean to enable/disable logs formatting true, false
    LOGGER_REDACT No '' Removed specified words from logs -

    For a docker local OpenSearch instance all you need to do is:

    export OS_CONNECTION_METHOD=local

    Instead for a canonical AWS connection method a receipt along with your values would be:

    export OS_HOST=
    export OS_CONNECTION_METHOD=credentials
    export AWS_REGION=
    export AWS_ACCESS_KEY_ID=
    export AWS_SECRET_ACCESS_KEY=

    Development

    After cloning the repository:

    • cd os-cli
    • cp ./env/.env.development ./env
    • docker compose up -d
    • pnpm install

    I personally prefer build in a terminal window and run the compiled version in a separate one like so:

    • pnpm build --watch
    • pnpm start:prod or node dist/os-cli.js

    Stay in touch

    License

    os-cli MIT licensed.