New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

espresso-cli

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

espresso-cli

The command line utility for Espresso Logic

latest
Source
npmnpm
Version
1.3.3
Version published
Maintainers
1
Created
Source

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 for the given resource/table/view
    post <resource> [options]     Insert some data
    put <resource> [options]      Update some data
    delete <resource> [options]   Delete some data
    describe <resource> [options] Describe the specified resource, can be: tables[/tablename], views[/viewname], license, serverinfo

  Options:

    -h, --help     output usage information
    -V, --version  output the version number

Logon to an Espresso Logic Server

$ espresso login http://my.espressologic.com/rest/el-dev/demo/v1 -u username -p mypassword
Logging in...
This server licensed to: Espresso Logic
Login 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 demo
Defined 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  customer
demo  employee
demo  employee_picture
demo  LineItem
demo  product
demo  PurchaseOrder
demo  purchaseorder_audit
$ espresso describe tables/product

Name            Type     Size      PK
--------------  -------  --------  --
product_number  BIGINT         19  *
name            VARCHAR        50
price           DECIMAL        19
icon            BLOB        65535
full_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 (default), json or compactjson    --truncate <length>
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server

Get a single REST endpoint (compressed format)

$ espresso get employee

demo:employee/1 employee_id:1 login:sam name:Sam Yosemite
demo:employee/2 employee_id:2 login:mlittlelamb name:Mary Little-Lamb
demo:employee/3 employee_id:3 login:sconnor name:Sarah Connor
demo:employee/4 employee_id:4 login:jkim name:John Kim
demo:employee/5 employee_id:5 login:bmcmanus name:Becky McManus
etc...

GET a single REST endpoint (JSON format)

$ espresso get employee/4 -m json 
[
  {
    "@metadata": {
      "href": "http://localhost:8080/KahunaService/rest/el-local/demo/v1/demo:employee/4",
      "checksum": "A:3ed29188014675ec",
      "links": [
        {
          "href": "http://localhost:8080/KahunaService/rest/el-local/demo/v1/demo:employee_picture?filter=employee_id%20%3D%204",
          "rel": "children",
          "role": "employee_pictureList",
          "type": "http://localhost:8080/KahunaService/rest/el-local/demo/demo:employee_picture"
        },
        {
          "href": "http://localhost:8080/KahunaService/rest/el-local/demo/v1/demo:PurchaseOrder?filter=salesrep_id%20%3D%204",
          "rel": "children",
          "role": "PurchaseOrderList",
          "type": "http://localhost:8080/KahunaService/rest/el-local/demo/demo:PurchaseOrder"
        }
      ]
    },
    "employee_id": 4,
    "login": "jkim",
    "name": "John Kim"
  }
]

POST (insert) a JSON payload

$ espresso post --help

  Usage: post <resource> [options]

  Options:

    -h, --help                       output usage information
    -j, --json <json>                JSON for the data being inserted
    -f, --jsonfile <jsonfile>        Name of a file containing JSON to be inserted, or stdin to read from stdin
    -m, --format <format>            Optional: format of output, either text (default), json or compactjson
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server

$ espresso post customer -j '{ "name": "new posted record","balance": 0,"credit_limit": 9000 }'

POST for customer:
I demo:customer/new%20posted%20record name:new posted record balance:0 credit_limit:9000
Request took: 61ms - # objects touched: 1

PUT (update) a JSON Payload

$ espresso put --help

  Usage: put <resource> [options]

  Options:

    -h, --help                       output usage information
    -j, --json <json>                JSON string for the data being updated
    -f, --jsonfile <jsonfile>        Name of a file containing JSON to be updated, or stdin to read from stdin
    -m, --format <format>            Optional: format of output, either text (default), json or compactjson
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server
    
$ espresso put customer -j '{ "@metadata": {"checksum": "A:693190f461f5402e"  }, "name": "new posted record", "credit_limit": 8000  }'

PUT for customer:
U demo:customer/new%20posted%20record name:new posted record balance:0 credit_limit:8000
Request took: 42ms - # objects touched: 1

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 for the object to delete, or "override". If not specified, the object will be retrieved then deleted.
    -f, --jsonfile <jsonfile>        Optional: name of a file containing JSON to be deleted, or stdin to read from stdin
    -m, --format <format>            Optional: format of output, either text (default), json or compactjson
    -a, --serverAlias <serverAlias>  Optional: alias of the server to use if other than the current default server

espresso delete customer -k "new posted record" --checksum "A:e86aea2e0a4e74bf" 

Logout

$ espresso logout
Logout successful

Keywords

espresso

FAQs

Package last updated on 22 Jan 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts