Originally published on strongloop.com
Happy New Year! The number of LoopBack 4 downloads in 2019 increased more than double than that in 2018. Thank you for your continuous support in using and contributing to LoopBack. We cannot do this alone and we really appreciate all the contributions from the community. In December, we were happy to have 3 community members join us as maintainers: @derdeka, dougal83 and achrinza!
As year 2020 commences, let us summarize our development activities in the last quarter of 2019.
- Migration Guide: created the outline for general runtime migration and added details on migrating Express middleware and model relations.
- Going cloud native: added extensions for observability and deployment documentation
- Authentication and authorization: enhanced the documentation and enabled token based authentication in API Explorer
- Inclusion of Related Models: completed MVP and ability to allow custom scope.
- Partition Key with Cloudant and CouchDB: added support for partitioned database
- Creating REST API from Model Classes: added the ability to generate controller from Model and Repository classes
Enriching the Migration Guide from LB3 story is our focus of this quarter and will continue to be the focus. Adding on top of the comparison between the concepts in LoopBack 3 and that in LoopBack 4, we created the skeleton on the areas that need more explanation in the migration. You can find it on our site: Migration Guide
Going Cloud Native
In the past few months, we made significant amount of enhancement in the cloud native area. Not only we added the extensions for logging, health check, tracing and metrics, we also created the deployment to Kubernetes tutorial in our shopping example application. For details, take a look at the blog post from Raymond.
Besides, the Node.js LoopBack stack provides a powerful solution to build microservices in TypeScript with LoopBack. Appsody is an open source project that makes creating cloud native applications simple. It has many cool features which are pre-configured with cloud native capabilities for Kubernetes and Knative deployments. In our detailed Appsody with LoopBack Tutorial on developing and deploying LoopBack applications, we would like to show you the possibility and potential of how these kinds of tools can work well with LoopBack of building microservices.
Authentication and Authorization
We added the support for authentication and authorization in LoopBack 4. Check out the Authentication page and the Authorization page for the latest features. Want to try out a real-world example? We updated the shopping example application to use the authentication and authorization systems to help you get familiar with it.
Also, we made some progress on the story allow users to have token-based authentication in API Explorer in Q4. Starting with a spike as the blueprint, we now added an extension point for the OpenAPI enhancers as the first brick in the wall. Check out the "Extending OpenAPI Specification" page for details. As always, we'd love to get any help from you. Here are some follow-up stories if you're interested in contributing:
- Add OpenAPI enhancer service in @loopback/rest
- Ordering the enhancers by group name for OpenAPI spec enhancer service
- Add bearer auth scheme as the default security scheme
Inclusion of Related Models
We finished the Inclusion of Related Models MVP in Q4! This addition not only simplifies querying data and reduces database calls in LoopBack 4, but it closes one feature gap between LoopBack 3 and LoopBack 4 as well.
In the past few months, we released a bunch of features such as custom scope for inclusion, and we added inclusion resolvers to lb4 relation CLI, etc. We enhanced the documentation with examples and usages along with a blog post to show how you can query data over different relations easily. Still, there are some limitations and unfinished tasks. Check Post MVP if you'd like to contribute.
Partition Key with Cloudant and CouchDB
Speaking of better performance and manageability of databases, the database that supports partitioning is one of the ideal choices. Are you considering to use databases that have the feature such as Cloudant and CouchDB with LoopBack? We now support such features in the corresponding connectors. It not only makes the query less computationally, but also reduces cost for LoopBack users using the Cloudant service on IBM Cloud. We have prepared a tutorial and documentation to help you get started! See the details and examples on the usage in Partition Databases.
Creating REST API from Model
As LoopBack 4 provides more scalability and extensibility, we ask users to create artifacts such as Model, Datasource, Repository, and Controller to start building their applications. Compared to LoopBack 3, it adds complexity and extra steps to create APIs. This story aims to improve the developer experience for those who may not need that extra flexibility.
You might wonder how simple it would be. In the spike, if you already have the database (we use MySQL in the spike) and tables set up, you can create basic CRUD APIs just through the API Explorer. For example, all you need to do is to make a POST request with a valid MySQL connection string and a list of existing tables,
then the new endpoints will be created for you.
Implementations are on the way! Feel free to try out the spike and join the discussion on GitHub :D
If you have been following us, you probably realize that we now start our planning of the milestones and roadmaps with a pull request. We think it is useful to our users to get to know our plans and possibly provide inputs in our planning stage. See our 2020 Goals and Focus and Q1 roadmap. There is also the Janurary milestone.
Previous Milestone Blogs
Check out our previously published monthly milestone blog posts in Q4 for more details:
If you want to see a 2019 summary, don't forget to check out this blog!
Call for Action
LoopBack's success depends on you. We appreciate your continuous support and engagement to make LoopBack even better and meaningful for your API creation experience. Please join us and help the project by:
- Reporting issues.
- Contributing code and documentation.
- Opening a pull request on one of our "good first issues".