daveshanley / vacuum

vacuum is the worlds fastest OpenAPI 3, OpenAPI 2 / Swagger linter and quality analysis tool. Built in go, it tears through API specs faster than you can think. vacuum is compatible with Spectral rulesets and generates compatible reports.
https://quobix.com/vacuum
MIT License
577 stars 48 forks source link

Node lookup timeout exceeded when using custom rule with pattern function #502

Open bravenut opened 4 months ago

bravenut commented 4 months ago

Hi,

When using the following custom rule definition:

  properties-camelCase:
    description: Properties should be camel case
    severity: warn
    message: "Properties should be camel case"
    given: $..properties[*]~
    then:
      function: pattern
      functionOptions:
        match: "^(@?[a-z0-9][A-Z0-9]{0,1}(ID)?)+$"

I'm getting the following error on validating one of my OpenAPI specs (I can't provide it here but will try to figure out a minimal example, if possible and needed): Screenshot from 2024-05-29 14-09-32

The OAS is quite large, I can imagine that it takes quite some time to evaluate the rule. Is there a way to fix it, e.g. some configuration to increase the node lookup timeout?

Cheers

daveshanley commented 4 months ago

Hi,

Yes this is a firebreak to prevent run-away lookups. This issue actually lives in libopenapi and there is an open item to make this particular timeout configurable.

https://github.com/pb33f/libopenapi/issues/251