Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calling for Contributors on LB Extensions #647

Closed
dhmlau opened this issue Oct 13, 2017 · 39 comments
Closed

Calling for Contributors on LB Extensions #647

dhmlau opened this issue Oct 13, 2017 · 39 comments

Comments

@dhmlau
Copy link
Member

dhmlau commented Oct 13, 2017

As you might know already, we're wrapping up on the LoopBack4 Core Beta release.  We are now calling out to our LB community users (especially @strongloop/loopback-next) to develop LB extensions!
 

How it works

Tell us

Let us know which extension you'd like to build.  Here is the wish list voted by the community: #512.
Examples of LB extensions:
- Authentication: https://github.com/strongloop/loopback-next/tree/master/packages/authentication
- Log extension: https://github.com/strongloop/loopback4-example-log-extension (currently in dev branch)

Build it

One of the LB project maintainers will be assigned to you to walk you through the whole journey of creating an extension from the beginning till the end.

Get recognized

We'll broadcast your work in our web site and social media!
 
For more information about LoopBack 4, please refer to: http://loopback.io/doc/en/lb4.

Extension Descriptions Developers LB4 Maintainer
GraphQL Component to provide GraphQL Endpoint for Models. #656 @virkt25 , @mpicard, @beeman, Help Welcome Taranveer (@virkt25)
gRPC #675 @jonathan-casarrubias, @VMois @raymondfeng or @bajtos
API Explorer #559 @ssh24 @b-admike
MQTT MQTT transport #710 @akashjarad, @negrero TBD

References

@dhmlau dhmlau changed the title Calling for Extension Developers Calling for Contributors on LB Extensions Oct 13, 2017
@mpicard
Copy link

mpicard commented Oct 17, 2017

@dhmlau I'd be happy to work on a graphQL extension

@dhmlau dhmlau mentioned this issue Oct 17, 2017
3 tasks
@dhmlau
Copy link
Member Author

dhmlau commented Oct 17, 2017

@mpicard , thanks! I've created this issue to track any discussion.
#656

@jonathan-casarrubias
Copy link

Hey @dhmlau I would like to contribute on the number 2 of the list

  1. Transports/protocols
    WebSocket
    MQTT
    gRPC (HTTP2 & ProtoBuffer3)

@VMois
Copy link

VMois commented Oct 20, 2017

Hey @dhmlau and @jonathan-casarrubias. If it's possible I want to help with number 2 of the wish list.

@dhmlau
Copy link
Member Author

dhmlau commented Oct 20, 2017

@jonathan-casarrubias, @VMois , Thanks for your interests! Any particular one you'd like to work on? MQTT? gRPC?

cc @raymondfeng

@VMois
Copy link

VMois commented Oct 20, 2017

My proposal is to start work on gRPC. Why? It adds an ability to create fast and reliable distributive systems. What do you think about it @jonathan-casarrubias?
cc @dhmlau @raymondfeng

@jonathan-casarrubias
Copy link

+1 on gRPC as first priority

@jonathan-casarrubias
Copy link

@dhmlau What would be the next steps for this?

@dhmlau
Copy link
Member Author

dhmlau commented Oct 25, 2017

@jonathan-casarrubias @VMois , I just created an issue to track the gRPC extension. #675.

@bajtos has done a spike before, you might want to take a look at this: #582

@akashjarad
Copy link

@dhmlau @jonathan-casarrubias i would like to work on MQTT extensions.

@bajtos
Copy link
Member

bajtos commented Nov 8, 2017

@akashjarad awesome! I added you to the table at the top, created https://github.com/strongloop/loopback4-extension-mqtt and gave you write permissions to that repository.

I am afraid we don't have the documentation for server/transport authors ready yet, but see the following resources for help:

@valdepeace
Copy link

@dhmlau @jonathan-casarrubias @akashjarad hi, I am interested in extension mqtt could I make some contribution?

@dhmlau
Copy link
Member Author

dhmlau commented Nov 10, 2017

@negrero , definitely! We've created this issue #710 with some info. Currently we're heads down in the coming release, there might not be much activities from our side yet, but feel free to continue the discussion in there.

@kattsushi
Copy link

Hey @dhmlau I would like to contribute on extension for Socket.io / WebSockets

@jonathan-casarrubias
Copy link

@negrero @kattsushi I think you guys can inspire your self by reviewing the REST and gRPC Components

@kjdelisle
Copy link
Contributor

@jonathan-casarrubias Don't forget that there's now a simple toy example of how to make your own server here: https://github.com/strongloop/loopback4-example-rpc-server

@jonathan-casarrubias
Copy link

@kjdelisle that is cool, that would made things easier when I started the gRPC one, but I'm glad I was able to get into the same page by reverse engineering the core and the rest

I think that is a great example as well, well done

@kattsushi
Copy link

@jonathan-casarrubias sure! i will check out thx!

@m3hari
Copy link
Contributor

m3hari commented Nov 17, 2017

@dhmlau @ssh24 @b-admike you I would like to work on the API Explorer. where should I start? is there any work in progress?

@bajtos
Copy link
Member

bajtos commented Nov 21, 2017

I would like to work on the API Explorer. where should I start? is there any work in progress?

@m3hari Nice! Adding support for API explorer is a bit tricky. Let's move this discussion to #749 please.

@kattsushi
Copy link

hi @dhmlau @bajtos @jonathan-casarrubias howdy guys!, i've been following this issue #119 and i would like to collaborate in this feature from beginning with an extension that provides feat to some controller or method in loopback-next maybe with Socket.io or WebSocket, im trying to figure out yet how works, but already i started working on it.

Cheers!

@bajtos
Copy link
Member

bajtos commented Dec 8, 2017

i've been following this issue #119 and i would like to collaborate in this feature from beginning with an extension that provides feat to some controller or method in loopback-next maybe with Socket.io or WebSocket, im trying to figure out yet how works, but already i started working on it.

@kattsushi thank you for chiming in, could you please cross-post your comment in #119? I think @jskrzypek may be interested to join your effort too.

@privateOmega
Copy link

@dhmlau I would like to contribute to the project.

@dhmlau
Copy link
Member Author

dhmlau commented Jan 16, 2018

@privateOmega , thanks for your interest. Anything in particular that you're interested in for extensions? You can also look at the wish list in here for inspiration.

@privateOmega
Copy link

@dhmlau Mongodb connector sounds nice, if that's a good one for a beginner to start with.

@bajtos
Copy link
Member

bajtos commented Jan 18, 2018

@privateOmega Our current plan is to keep using the existing loopback-connector-mongodb. You can check its issue tracker to see if any of the open issues catch your attention. There are also MongoDB-related issues reported in the main LoopBack repository (mongo and mongodb), many of them will be probably relevant to loopback-next too.

@privateOmega
Copy link

privateOmega commented Jan 18, 2018

@bajtos Thanks for the pointers. Will look into those.

@privateOmega
Copy link

privateOmega commented Jan 18, 2018

@bajtos @dhmlau Has anyone started with Offline first synchronization which was mentioned by @bajtos in #512 ? I think that would be a good start.

@mustafa-yilmaz-zz
Copy link

mustafa-yilmaz-zz commented Feb 4, 2018

@dhmlau If newbies are also accepted, I would really love to contribute to 5.Built-in Models . Thanks.

@bajtos
Copy link
Member

bajtos commented Feb 6, 2018

@privateOmega

Has anyone started with Offline first synchronization which was mentioned by @bajtos in #512 ? I think that would be a good start.

I am not sure if we have built enough foundation yet to support Offline first synchronization in LoopBack 4, but I guess there is no harm in experimenting in this area. Could you please open a new issue to track the work and discussion around this feature?

If newbies are also accepted, I would really love to contribute to 5.Built-in Models . Thanks.

We are welcoming all contributions! Which built-in models are you interested in most? I see three more or less independent categories there:

  • AccessToken as the core model for authentication and authorization
  • Application to enable features like OAuth scopes, push notification, etc.
  • User/Team/Organization for ACL-based authorization

@raymondfeng what's your vision for these built-in models? What would be the best first model to start working one?

@mustafa-yilmaz-zz
Copy link

@bajtos @raymondfeng

Which built-in models are you interested in most?

If I am 100% free to choose, it would be the "application model" but I would prefer to be guided for the most appropriate start point.

@raymondfeng
Copy link
Contributor

@mustafa-yilmaz Personally I would like see models to help identity and authorization:

  • ClientApplication: represents the client app (modeled after oAuth2)
  • User/Team/Organization: hierarchical user management (modeled after github entities)
  • Role: abstraction for a group of users
  • AccessToken: represents claims and permissions
  • Scope: abstraction for a group of protected resources

One key is to define the minimal number of properties for each model so that the core authentication/authorization can work. Other properties should be extended by applications or mixins.

@dhmlau dhmlau removed the non-DP3 label Aug 23, 2018
@elv1s
Copy link
Contributor

elv1s commented Sep 26, 2018

LB4 extensions can extend controllers, but is there an analogous way to extend models? I'm specifically looking to add a encrypt: true property to models in LB4? Similar to:
strongloop/loopback#1260

Thanks!

@bajtos
Copy link
Member

bajtos commented Oct 5, 2018

LB4 extensions can extend controllers, but is there an analogous way to extend models? I'm specifically looking to add a encrypt: true property to models in LB4? Similar to:
strongloop/loopback#1260

In LB4, models are mostly behavior-less object holding data. CRUD manipulations are provided by repositories.

To persist certain properties in an encrypted form, you can create a custom EntityCrudRepository implementation that will modify the data sent to/received from the backing PersistedModel instance. See DefaultCrudRepository#toEntity. I can imagine LB4 can add fromEntity too, so that classes inheriting from DefaultCrudRepository have a nice extension point where to modify both serialization and deserialization.

The solution described above is based on what we have now, it is not necessarily the best design. To be honest, we haven't considered this extensibility aspect yet.

@samarpanB
Copy link
Contributor

Hello @bajtos , I would like to contribute on an extension for Soft Deletes referred here. Can you guide me where/how to start ?

@bajtos
Copy link
Member

bajtos commented Jun 24, 2019

I would like to contribute on an extension for Soft Deletes referred here. Can you guide me where/how to start ?

@samarpanB lovely! Let me check with the rest of the team what would be the best place where to host the extension code. I'll do my best to get back to you by the end of this week.

@samarpanB
Copy link
Contributor

@bajtos I have already created this extension and its available as a separate npm package. Here it is - https://github.com/sourcefuse/loopback4-soft-delete. Let me know if you want this to be moved into some centralized location for loopback community.

@stale
Copy link

stale bot commented Jun 20, 2020

This issue has been marked stale because it has not seen activity within six months. If you believe this to be in error, please contact one of the code owners, listed in the CODEOWNERS file at the top-level of this repository. This issue will be closed within 30 days of being stale.

@stale stale bot added the stale label Jun 20, 2020
@stale
Copy link

stale bot commented Jul 20, 2020

This issue has been closed due to continued inactivity. Thank you for your understanding. If you believe this to be in error, please contact one of the code owners, listed in the CODEOWNERS file at the top-level of this repository.

@stale stale bot closed this as completed Jul 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests