Skip to content

Components object does not support x- specification extensions #376

Open

Description

@jlacivita

The spec for Components object says:

This object MAY be extended with Specification Extensions.

However, the schema does not allow for this:

    "components": {
      "title": "components",
      "type": "object",
      "properties": {
        "schemas": {
          "title": "schemaComponents",
          "type": "object",
          "patternProperties": {
            "[0-z]+": {
              "$ref": "#/definitions/JSONSchema"
            }
          }
        },
        "links": {
          "title": "linkComponents",
          "type": "object",
          "patternProperties": {
            "[0-z]+": {
              "$ref": "#/definitions/linkObject"
            }
          }
        },
        "errors": {
          "title": "errorComponents",
          "type": "object",
          "patternProperties": {
            "[0-z]+": {
              "$ref": "#/definitions/errorObject"
            }
          }
        },
        "examples": {
          "title": "exampleComponents",
          "type": "object",
          "patternProperties": {
            "[0-z]+": {
              "$ref": "#/definitions/exampleObject"
            }
          }
        },
        "examplePairings": {
          "title": "examplePairingComponents",
          "type": "object",
          "patternProperties": {
            "[0-z]+": {
              "$ref": "#/definitions/examplePairingObject"
            }
          }
        },
        "contentDescriptors": {
          "title": "contentDescriptorComponents",
          "type": "object",
          "patternProperties": {
            "[0-z]+": {
              "$ref": "#/definitions/contentDescriptorObject"
            }
          }
        },
        "tags": {
          "title": "tagComponents",
          "type": "object",
          "patternProperties": {
            "[0-z]+": {
              "$ref": "#/definitions/tagObject"
            }
          }
        }
      }
    }

Is this a bug, or a copy/paste error in the spec?

Supporting x- extensions in the components object would be quite useful for storing specific types of reusable objects that are domain-specific.

Activity

  1. github-actions commented on Mar 16, 2023

    @github-actions

    Welcome to OpenRPC! Thank you for taking the time to create an issue. Please review the guidelines

  2. BelfordZ commented on Jul 6, 2023

    @BelfordZ
    Member

    That makes a lot of sense to me, thanks for the suggestion.

    do you want to make a PR / issue on meta-schema?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions