Welcome back to the “Community Q&A Monthly Digest”, in which we highlight some of the questions and answers in our LoopBack Slack community here.

Question: Has anyone implemented Casbin on a brand new project? or is there a good tutorial for lb4? I need to have some rbac / roles system in an app.. or what would you suggest to achieve that?

Answer: We have an access control example uses casbin, see the access-control-migration example and its tutorial. The logic on casbin side is only a prototype, the example mainly shows the integration between casbin and LoopBack authorization system.


Question: I am new to LoopBack and so far I really like what it has to offer. I was wondering if anyone knows of a good online course to learn LoopBack. I have worked through the basic tutorials found in the documentation, but I find it easier to listen and follow along to videos.

Answer: Recently one of our community member posts a YouTube tutorial for LoopBack 4 beginners. There is another series of educational videos on a LoopBack introduction and installation.

From our side, there are a few recent videos on our StrongLoop YouTube channel and we’re trying to add more. Hope it helps.


Question: I am trying to disable the openapi.json from showing in my loopback 4 application and its not working. I was able to disable the explorer. Any ideas?

Answer: You can use openApiSpec: {disabled: true} in index.ts. i.e.

const config = {
    rest: {
      //..
      openApiSpec: {
        disabled: true
        //..
      },
    },
  };

Question: Does Loopback 4 support extracting cookies from the header? Currently I had to integrate Express server to achieve this.

Answer: You can use express middleware like http://expressjs.com/en/resources/middleware/cookie-parser.html see how to use middleware in https://loopback.io/doc/en/lb4/Express-middleware.html.


Question: Is there a quick way to generate timestamp? Like at the model level generated:true?

Answer: I recommend to use defaultFn set to one of the following string values:

  • “guid”: generate a new globally unique identifier (GUID) using the computer MAC address and current time (UUID version 1).
  • “uuid”: generate a new universally unique identifier (UUID) using the computer MAC address and current time (UUID version 1).
  • “uuidv4”: generate a new universally unique identifier using the UUID version 4 algorithm.
  • “now”: use the current date and time as returned by new Date()

See also https://github.com/strongloop/loopback/issues/292 and https://loopback.io/doc/en/lb4/Model.html#property-decorator.

It would be great to capture these options in our TypeScript definitions, see https://github.com/strongloop/loopback-next/blob/ae6427322451c914ae54f44dbb656981e7fbbb81/packages/repository/src/model.ts#L34-L42.


Question: Can I use MongoDB update operators in LoopBack apps? How can I enable it?

Answer: Yes, except comparison and logical operators, the mongo connector also supports MongoDB update operators such as max, rename, etc. You will need to set the flag allowExtendedOperators to true in the datasource configuration. You can find details and examples at MongoDB connector - update operators.


Interested to Join our Slack Workspace?

Simply click this invitation link to join. You can also find more channel details here: https://github.com/strongloop/loopback-next/issues/5048.