- A comprehensive CLI
- A yeoman generator
- A model query language
The CLI
One of the major enhancements in this release is the support of a CLI. Previously there had been a smattering of scripts that were accessible from various entry points. This made individual usage quite simple, but discovery was fairly complicated. Enter in the extensible CLI.
Every module in the framework now has the ability to declare extensions to the CLI. All are fully documented at in the documentation site. The initial CLI rollout contains:
- clean - Remove compilation cache
- compile - Pre-compile application for performance
- run - Run specific @Application class
- test - Execute tests
- email-template - Generate/Test email templates
- swagger-client - Generate swagger client
The Yeoman Generator
Additionally, the original path of using a starter project only went so far. In a desire to allow for more customization and a guided path to project initialization, the framework now supports a yeoman generator. The primary features of this are to establish a RESTful application with a model based backend (mongo/elasticsearch).
Model Query Language
In addition to the normal model support, we have rolled out a query language that will allow for expressive queries, primarily intended for the end user. The goal is to model this off a standard query language like SQL. This will be only for querying, but should enable some interesting functionality.
Future Roadmap
In addition to the finished features, there are quite a few interesting features currently in development.Lambda/Serverless Support
Currently we are building out support for AWS Lambda in the Rest framework. This will allow for user to package their RESTful applications as a series of lambda functions, established with routes defined in cloud formation configurations.
Additionally, the goal is to support deployment as well. This feature dovetails with new CLI compile feature to be able to precompile all the needed code for a minimal deployment.
Additionally, the goal is to only include the needed modules per controller to minimize the lambda size.
Enhanced Elasticsearch Support
Provide the ability to leverage more specific functionality of elasticsearch, like aggregations and full text searching.
SQL Support for Model
Slightly farther down the roadmap is the ability to support SQL as a Model backend. The current goal is to leverage sequeulize for handling the primary functionality of mapping objects to database queries.