Docs

Espresso 
is designed to save you time.  It creates a fully-defined REST/JSON service by just connecting to your database, after which you can use the Live Browser (UI) and the default RESTful API.   Watch it on the right.

Then use the Espresso Designer to add security and logic as required.  Server-side JavaScript is supported for integrating enterprise data, complex logic, etc.   Explore the videos in the table below.

Designed to save time, as follows:
  • avoid tedious and repetitive code by expressing business and security logic using simple business-oriented expressions.
  • zero configuration files
  • zero generated code
  • schema changes active immediately.
  • requires no changes or code generation as your schema evolves
  • immediate master/detail maintenance application
 
Getting Started suggestions are provided here.  The Quick Ref provides a useful list of basic information.




Database







You begin by connecting to your database, in the cloud or on-premise.  Espresso scans your schema to discover Base / View Tables and Procedures.  It then creates a Default API and UI for all these objects.  

There is no code generation - your Default API stays in sync with Schema changes.  See here for information regarding firewalls.

Once connected, meaningful elements of your system are operational:
  • Live API: Your Tables, Views, and Procedures are available as a RESTful API with no further work.  You can immediately test in in the RESTlab.  This REST API can be extended to enforce security and logic as shown below.  

  • Live Browser: a multi-table User Interface, using Live API for database access.


Live Browser





Live Browser is a user interface built directly from your schema.  It uses HTML5, CSS and JavaScript, so runs well on desktops and tablets.  It's a great way to view data for existing systems, regardless of their architecture, and for the data maintenance app you never seem to have time to build.

It is layered over Live API and Live Logic, so enforces your logic and security.  This enables you to use it to test your API, and for "back office" production apps.

Live Browser is a multi-table application with (see these features in action at left):
  • Multi-table application interfaces derived from your parent/child relationships, including master/detail forms (e.g., customer and orders) and "drill down" navigation (order and items)
  • Filtering on multiple fields, with paginated scrolling
  • Automatic Joins, so you see Product Names, not numbers
  • Row Sharing, so you can send the current Form Row to colleagues
  • Update Services, including updatable grids, lookups, and Live Logic integration
  • Authoring, to control which attributes are displayed and their formats, and skinning.


Live API





Your default REST End Points are the Tables and Stored Procedures (if any) in your database.  Define Resources for Custom Multi-Table End Points by selecting tables (joins provided automatically).  Custom Resources provide:
  • Document-oriented JSON results, aliased / projected columns, etc

  • SQL automation, including filters and join automation for related data

  • Resource Types enable custom SQL or JavaScript for external databases and application integration (see this particularly interesting example).
Extend this API with fine-grained row/column Security, based on user role authentication.  Security is based on API Keys, obtained like this.


Live Logic




 Business logic is the set of multi-table computations, validations, and actions (e.g., auditing, cloning, sending mail etc) performed during an update (PUT, POST, and DELETE).

Live Logic provides meaningful time savings for adding complex logic for new systems / subsystems (e.g., new tables).  Live Logic consists of:
  • Reactive Expressions - JavaScript expressions that declare how table columns are derived  (e.g, see the customer balance rule), and how tables are validated in response to update requests.
Reactive means the system automatically adjusts data when referenced data is changed (e.g, the balance is reduced when the order is paid).
  • Server-side Java Script - the system builds an Object Model with attribute/object accessors, persistence, and events for insert, update and delete.
To learn more:
  • First Look - Explore the logic in Espresso Logic Demo
  • Tutorial - Explore Espresso Logic Sample for complex examples (e.g. Bill of Materials), and logic patterns


https://sites.google.com/a/espressologic.com/site/docs/live-data.png

Espresso Components

Espresso consists of a Logic consists of a Espresso Designer, used via your Browser to specify your database location, your API, your logic (rules), and your security settings. 

The Espresso Server stores these settings, and enforces them in the course of responding to REST retrieval / update requests for your data. 

Espresso is a service, so there's nothing to install or configure.