'Loopback 4 auto generated model with required id failing validation

I'm using an automated script that runs an auto-generation model using lb4 cli. Looks like validation expects id to be provided, but swagger missing it in its schema. Why I can't see the id property in swagger?

PLEASE NOTE! I don't want to modify manually my models

lb4 model activity --dataSource DS --table activity

Created model:

export class Activity extends Entity {
  @property({
    type: 'string',
    required: true,
    id: 1,
    postgresql: {
      columnName: 'id',
      dataType: 'uuid',
      dataLength: null,
      dataPrecision: null,
      dataScale: null,
      nullable: 'NO',
    },
  })
  id: string;
...
}

When I run the swagger tool and try to POST new activity, it missing the id field and returns the following error:

{
  "error": {
    "statusCode": 422,
    "name": "ValidationError",
    "message": "The `Activity` instance is not valid. Details: `id` can't be blank (value: undefined).",
    "details": {
      "context": "Activity",
      "codes": {
        "id": [
          "presence"
        ]
      },
      "messages": {
        "id": [
          "can't be blank"
        ]
      }
    }
  }
}

If I add a property id manually, then it throws a validation error:

{
  "error": {
    "statusCode": 422,
    "name": "UnprocessableEntityError",
    "message": "The request body is invalid. See error object `details` property for more info.",
    "code": "VALIDATION_FAILED",
    "details": [
      {
        "path": "",
        "code": "additionalProperties",
        "message": "must NOT have additional properties",
        "info": {
          "additionalProperty": "id"
        }
      }
    ]
  }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source