vacuum icon indicating copy to clipboard operation
vacuum copied to clipboard

schema function behavior inconsistent with equivalent spectral rule

Open rspurgeon opened this issue 1 year ago • 1 comments

Attempting to use the schema function to validate an entire input file (non-OAS).

Given

❯ vacuum version
0.9.15
❯ spectral --version
6.11.1

rules.yaml

rules:
  check-only-consumers:
    description: "Ensure only consumer entities in state files"
    given: "$"
    severity: error
    then:
      function: schema
      functionOptions:
        schema:
          type: "object"
          properties:
            consumers: 
              type: "array"
          additionalProperties: false

consumers.yaml

consumers:
- username: mortgage-consumer-0
  custom_id: mortgage-consumer-0

consumers-bad.yaml

consumers:
- username: mortgage-consumer-0
  custom_id: mortgage-consumer-0
services:
  enabled: true

Spectral lint of consumers.yaml:

No results with a severity of 'error' found!

and for consumers-bad.yaml

 1:1  error  check-only-consumers  Ensure only consumer entities in state files

✖ 1 problem (1 error, 0 warnings, 0 infos, 0 hints)

the vacuum CLI reports no issues on either file:

INFO: Linting file 'consumers.yaml' against 1 rules:


Linting passed, A perfect score! well done!%

or

INFO: Linting file 'consumers-bad.yaml' against 1 rules:


Linting passed, A perfect score! well done!%

rspurgeon avatar May 01 '24 00:05 rspurgeon

This happens in my case as well. I have a similar usecase and I realized discrepancy between spectral and vacuum. Any idea @daveshanley?

buraksekili avatar Feb 19 '25 16:02 buraksekili

Addressed in v0.17.11

daveshanley avatar Aug 30 '25 04:08 daveshanley