loopbackio / loopback-next

LoopBack makes it easy to build modern API applications that require complex integrations.
https://loopback.io
Other
4.96k stars 1.07k forks source link

Wish list of LoopBack Next extensions #512

Closed raymondfeng closed 3 years ago

raymondfeng commented 7 years ago

A list of potential extensions for LoopBack Next.

Add a 👍 reaction to any of the comments below if you are interested in seeing these features / extensions

mrmodise commented 5 years ago
  1. Authorisation headers in GraphQL mutation and queries.
  2. Reading session information headers.
mhmnemati commented 5 years ago
  1. Built-in models
  • User/Team/Organization
  • Application
  • AccessToken

User, Group, Role, Permission models was added on loopback-authorization-extension

consultantcraig commented 5 years ago

A visual builder/app inspector to develop, modify and debug a Loopback4 app. ARC, but more functionality API Connect Developer Toolkit, but without the IBM account tie-in. Node-RED, but for Loopback :)

I'd like to add an idea for some low-hanging but powerful fruit: There's a great visual model builder I'm using called GenMyModel.com (free for solo use). You can export your data model as .xmi file. And I've just convinced one of my clients to let me re-create their back end with lb4. Would be nice if I could feed the .xmi to loopback and it would auto-scaffold everything in one command including lb4 model, controllers, and database. Then I can just go and tweak the routing and functionality as needed. I might build that extension myself if I get time in a few months.

bajtos commented 5 years ago

I'd like to add an idea for some low-hanging but powerful fruit: There's a great visual model builder I'm using called GenMyModel.com (free for solo use). You can export your data model as .xmi file. And I've just convinced one of my clients to let me re-create their back end with lb4. Would be nice if I could feed the .xmi to loopback and it would auto-scaffold everything in one command including lb4 model, controllers, and database. Then I can just go and tweak the routing and functionality as needed. I might build that extension myself if I get time in a few months.

Thank you @consultantcraig for posting this idea. Our CLI tool can be invoked in a non-interactive headless mode where answers from prompts are supplied via a JSON file. I think it should be possible to build a tool you have described using this feature.

I can also imagine adding a new command to the CLI that will accept a single JSON file with a list of commands & their arguments to run. With such command in place, your .xmi converter can be simple - just convert .xmi into JSON input expected by LB4 CLI.

Having said that, I don't think we will have bandwidth to make these CLI improvements ourselves in the near future. However, we are happy to help you along the way if you decide to contribute it yourself.

ddsultan commented 5 years ago

Schematics support with the CLI like in Angular CLI

ghguy commented 5 years ago

SLC ARC with visual builder like version 3. Not command line based like apic discover.

ibmjm commented 4 years ago

Left and Inner Joins on queries. Perhaps just use GraphQL with something like Join Monster to generate smart SQL behind the scenes.

I'd also like a simple solution to modelling a database table which doesn't have a typical primary key (e.g. a column named id). I often have to build applications that read data from an IW that was designed more for management reports, where the tables use "real data" columns for their primary key. A simple example could be an order view/table where the order number is the primary key, or a product table where the part number (or SKU) is the PK. Or a list of employees where w3 ID is the PK. It's a common scenario when an application needs to interface to a database that's owned by a third-party.

Similarly, there are times when I want to include data within one LB4 model that is sourced from more than one table in the database layer. Sample use case: an Inventory model, where I would like to include the product description from the Product table along with the inventory data.

kchraniuk commented 4 years ago

Better documentation with more useful examples about WebSocket e.g: https://github.com/strongloop/loopback-next/issues/4044

aaamitsingh commented 4 years ago

Messaging connectors and bridge: strong-pubsub strong-pubsub-bridge strong-pubsub-connection-mqtt

Code-Crash commented 4 years ago
  1. S3 bucket datasource to handle file object related operations.
  2. Elastic Search datasource extension.
  3. Lambda functions supports extensions (development/deployment using loopback extensions)
samarpanB commented 3 years ago

Merging #509 into this issue so that we have all extension wish list in one place

Cross posting #509 (comment) from @MartinCerny-awin .

20 in the original post

Audit Log

Log changes performed on models. It would help to keep track of who used, created or changed an entity and the point in time this happened.

The same model that is being audited would be created with added properties mentioned in what should be stored section. This model will get updated when audit action happens.

When should audit happen (taken from #2872)

  1. We give users the option which RESTfull endpoint (or which model) they want to have the audit middleware active for. Or introducing exceptions option which makes the middleware active for all endpoints except the ones mentioned in exceptions
  2. We give them option which req.methods they want to have this middleware active for... I think it does not make sense to have this middleware active for req.method == 'GET' since this middleware would become a bottleneck of the application and you would not get that useful information either.

What should be stored

  • Model properites
  • Created timestamp
  • Modified timestamp
  • HTTP method
  • Path
  • User Id

We created this extension few months back. I hope it caters to the list of requirements. If not, please feel free to raise a feature request. We'll try to add that soon. https://www.npmjs.com/package/@sourceloop/audit-log