APIDevTools / swagger-parser

Swagger 2.0 and OpenAPI 3.0 parser/validator
https://apitools.dev/swagger-parser
MIT License
1.09k stars 154 forks source link

Bundling issue with Microsoft SecurityInsight service #195

Open ClementMindflow opened 2 years ago

ClementMindflow commented 2 years ago

When bundling the Microsoft Azure Security Insight specification some resolved external references are invalid:

Here is the CloudError object definition inside this spec:

"CloudError": {
      "x-ms-external": true,
      "properties": {
        "error": {
          "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorResponse",
          "description": "The error object of the CloudError response"
        }
      },
      "type": "object",
      "description": "An error response for a resource management request."
    }

I've double checked and the specified path is correct.

Here is the same object after bundling:

"CloudError": {
  "x-ms-external": true,
  "properties": {
    "error": {
      "$ref": "#/definitions/CloudError/properties/error/properties/details/items",
      "description": "The error object of the CloudError response"
    }
  },
  "type": "object", 
  "description": "An error response for a resource management request."
}

The new $ref is invalid as there is no details property within that object and the ErrorResponse does not appear in the bundled file.

I'm using @apidevtools/swagger-parser 10.0.3

And here are the options passed when bundling:

SwaggerParser.bundle(inputFile, {
    validate: {
      spec: false,
      schema: false,
    },
  })
fab-mindflow commented 2 years ago

Hey, any hint on how to fix this?

ClementMindflow commented 2 years ago

Does anyone already faced that issue ?