EspressoCLI
A Node.js command-line tool to access Espresso Logic REST API and Logic services. Refer to online documentation of creating and using Espresso Logic REST API
Installation
- Make sure node.js is installed
- Install using
npm
by running the following:
$ npm install -g espresso-cli
Note: on Unix and Mac, you will probably need to run this with sudo because of file permissions:
$ sudo npm install -g espresso-cli
Windows: Please note that, on Windows, npm install
will create an executable
called espresso
in your
<node_modules>/.bin
directory. If this directory is not in your PATH
, you will probably
want to fix that, otherwise you'll have to specify the full path to the executable.
Features
- Log in once per server, stay "logged in" for the lifetime of the API key
- Can call GET, POST, PUT and DELETE
- Can read/write objects from/to file or stdin (suitable for pipe work!)
Command Line Service
$ espresso --help Usage: espresso \[options] [command] Commands: login [options] Login to an Espresso Logic server logout [options] Logout from the current server, or a specific server use <alias> Use the specified server by default status Show the current server, and any defined server aliases get <resource> [options] Retrieve some data
Logon to an Espresso Logic Server
$ espresso login http://my.espressologic.com/rest/el-dev/demo/v1 -u username -p mypasswordLogging in...This server licensed to: Espresso LogicLogin successful, API key will expire on: 2014-11-18T15:03:37.342Z
See which Espresso server (if any) you are logged into
$ espresso status You are currently logged in to server: https://eval.espressologic.com/rest/acme/demo/v1 as user demoDefined aliases:┌───────┬───────────────────────────────────────────────────────────┬───────┐│ Alias │ Server │ User │├───────┼───────────────────────────────────────────────────────────┼───────┤│ hr │ https://acme.my.espressologic.com/rest/acme/hr/v2 │ hradm │├───────┼───────────────────────────────────────────────────────────┼───────┤│ demo │ https://eval.espressologic.com/rest/acme/demo/v1 │ demo │└───────┴───────────────────────────────────────────────────────────┴───────┘
DESCRIBE a system resource
This can return information about all tables, or one specific table, or all views/one specific view, or get information about the server or the server's license. The possible values for the resource are:
- tables
- tables/<table-name>
- views
- views/<view-name>
- license
- serverinfo
$ espresso describe tables DB Table---- -------------------demo customerdemo employeedemo employee_picturedemo LineItemdemo productdemo PurchaseOrderdemo purchaseorder_audit
$ espresso describe tables/product Name Type Size PK-------------- ------- -------- --product_number BIGINT 19 *name VARCHAR 50price DECIMAL 19icon BLOB 65535full_image BLOB 16777215
GET
Usage: get <resource> [options] Options: -h, --help output usage information -k, --pk <pk> Optional: primary key of the object to retrieve -f, --filter <filter> Optional: filter, e.g. "balance<1000" -s, --sort <sort> Optional: sorting order, e.g. "balance,name desc" -z, --pagesize <pagesize> Optional: up to how many rows to return per level -m, --format <format> Optional: format of output, either text , json or compactjson --truncate <length> -a, --serverAlias <serverAlias> Optional: alias of the server to use
Get a single REST endpoint (compressed format)
$ espresso get employee demo:employee/1 employee_id:1 login:sam name:Sam Yosemitedemo:employee/2 employee_id:2 login:mlittlelamb name:Mary Little-Lambdemo:employee/3 employee_id:3 login:sconnor name:Sarah Connordemo:employee/4 employee_id:4 login:jkim name:John Kimdemo:employee/5 employee_id:5 login:bmcmanus name:Becky McManusetc...
GET a single REST endpoint (JSON format)
$ espresso get employee/4 -m json [ ]
POST (insert) a JSON payload
$ espresso post --help Usage: post <resource> [options] Options: -h, --help output usage information -j, --json <json> JSON
PUT (update) a JSON Payload
$ espresso put --help Usage: put <resource> [options] Options: -h, --help output usage information -j, --json <json> JSON string
DELETE a REST resource
$ espresso delete --help Usage: delete <resource> [options] Options: -h, --help output usage information -k, --pk <pk> Primary key of the object to delete --checksum <checksum> Optional: checksum
Logout
$ espresso logoutLogout successful