Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Surface a schema assertion on bodies for rule runner #2672

Merged
merged 5 commits into from
Jan 24, 2024

Conversation

niclim
Copy link
Contributor

@niclim niclim commented Jan 19, 2024

🍗 Description

What does this PR do? Anything folks should know?

Ended up changing this PR to emit schema facts on any schema. Previously, we had body facts (on root body nodes) and property facts (on keys of objects) but this missed out on polymorphic items and array items.

Schema now triggers on all of the above cases and includes context related data depending on where the schema originated from (including required and key for fields). See example

  {
    "location": {
      "conceptualLocation": {
        "context": {
          "key": "code",
          "required": false,
          "type": "field",
        },
        "inResponse": {
          "body": {
            "contentType": "application/json",
          },
          "statusCode": "200",
        },
        "jsonSchemaTrail": [
          "code",
        ],
        "method": "post",
        "path": "/pet/{petId}/uploadImage",
      },
      "conceptualPath": [
        "operations",
        "/pet/{}/uploadImage",
        "post",
        "responses",
        "200",
        "application/json",
        "code",
      ],
      "jsonPath": "/paths/~1pet~1{petId}~1uploadImage/post/responses/200/content/application~1json/schema/properties/code",
      "kind": "schema",
    },
    "value": {
      "flatSchema": {
        "format": "int32",
        "type": "integer",
      },
    },
  },

Keeping the old field and body facts in for backwards compatibility, but I think schema can be used for all future rule cases since it asserts on the schema object.

📚 References

Links to relevant docs (Notion, Twist, GH issues, etc.), if applicable.

👹 QA

How can other humans verify that this PR is correct?

@niclim niclim changed the title Emit field facts on polymorphic and array items Surface a schema assertion on bodies for rule runner Jan 23, 2024
@niclim niclim marked this pull request as ready for review January 24, 2024 14:29
@niclim niclim added this pull request to the merge queue Jan 24, 2024
Merged via the queue into main with commit 88740ec Jan 24, 2024
3 checks passed
@niclim niclim deleted the trigger-facts-on-polymorphic-and-array branch January 24, 2024 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants