{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"scorecardclassic","__idx":0},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scorecardClassic"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Deprecated configuration"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scorecard"]}," property is deprecated."," ","Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scorecardClassic"]}," instead."," ","The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scorecard"]}," property continues to work with a deprecation warning."]}]},{"$$mdtype":"Tag","name":"ConfigOptionRequirements","attributes":{"products":["Reef","Realm"],"plans":["Pro","Enterprise","Enterprise+"]},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add and create sets of rules and test your API description files against them."," ","With these rules you can maintain quality across your existing APIs and ensure that newly-added or updated APIs match your criteria."," ","An API scorecard can include multiple sets of rules, corresponding to different quality levels."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"options","__idx":1},"children":["Options"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["levels"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#level-object"},"children":["Level Object"]},"]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List of levels to score against."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["targets"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#target-object"},"children":["Target Object"]},"]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provide custom ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["minimumLevel"]}," for specific targets."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["teamMetadataProperty"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#team-metadata-object"},"children":["Team Metadata Object"]},"]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provide custom team label and team metadata property."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ignore"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provide a list of files or directories to skip when calculating scorecard."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["fromProjectUrl"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["VS Code extension only."]}," ","Validates your local OpenAPI files against scorecard rules defined in your Reunite project."," ","You can get the URL by opening your project in Reunite and copying the full URL from the browser."," ","The URL must use HTTPS and must be from a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redocly.com"]}," domain."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"level-object","__idx":2},"children":["Level Object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["name"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Name of the level."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["extends"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Inherit configurations."," ","In case of conflict, priority goes to configurations further down the list."," ","Finally, explicit declarations inline takes precedence over configurations inherited through the extends feature."," ","Built-in configurations include recommended and minimal."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["rules"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/configuration/rules"},"children":["Rule Object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Change the severity level of any rules in your extended configurations."," ","Some rules may also receive additional configurations."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"target-object","__idx":3},"children":["Target Object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["minimumLevel"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The minimum level refers to a level using the name defined in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["levels"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["where"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#where-object"},"children":["Where Object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Specify which API descriptions to apply the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["minimumLevel"]}," to."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["rules"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/configuration/rules"},"children":["Rule Object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customize rules for the target."," ","Useful for disabling rules based on the metadata."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"where-object","__idx":4},"children":["Where Object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["metadata"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#where-metadata-object"},"children":["Where Metadata Object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Specify which API descriptions to apply the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["minimumLevel"]}," to based on the metadata."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"where-metadata-object","__idx":5},"children":["Where Metadata Object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["(name of metadata key)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Specify the exact value of the metadata key to match against."," ","Also supports ISO 8601 date range."," ","Specify a string with a leading and trailing slash to match against a regex."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example","__idx":6},"children":["Example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"where:\n  metadata:\n    title: 'My API'\n    version: '/^1\\\\.0\\\\.*/'\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"team-metadata-object","__idx":7},"children":["Team Metadata Object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["property"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The property name to use for the team name."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["label"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The label to use for the team name."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["default"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The default team name to use when the property is not found."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"examples","__idx":8},"children":["Examples"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redocly.yaml"]}," file configuration adds three levels to the project's API scorecard: Baseline, Silver, and Gold:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","data-title":"redocly.yaml","header":{"title":"redocly.yaml","controls":{"copy":{}}},"source":"scorecardClassic:\n  levels:\n    - name: Baseline\n      extends:\n        - ./api-ruleset-baseline.yaml\n    - name: Silver\n      extends:\n        - ./api-ruleset-silver.yaml\n    - name: Gold\n      extends:\n        - ./api-ruleset-gold.yaml\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following sample ruleset configuration file is for the Baseline level and applies the ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/rules/minimal"},"children":["Redocly minimal ruleset"]}," and adds a few additional ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/rules/built-in-rules"},"children":["built-in rules"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","data-title":"api-ruleset-baseline.yaml","header":{"title":"api-ruleset-baseline.yaml","controls":{"copy":{}}},"source":"extends:\n  - minimal\nrules:\n  no-ambiguous-paths: error # This rule enforces paths to match only one PathItem entry, including template variables\n  no-invalid-schema-examples: error # This rule enforces schema examples to match their declared types\n  spec-strict-refs: error # This rule enforces $refs to reference elements in the component section\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following sample ruleset configuration is for the Silver level."," ","It applies the ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/rules/minimal"},"children":["Redocly minimal ruleset"]},", adds a few additional ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/rules/built-in-rules"},"children":["built-in rules"]},", and a few additional ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli/configuration/rules"},"children":["configurable rules"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","data-title":"api-ruleset-silver.yaml","header":{"title":"api-ruleset-silver.yaml","controls":{"copy":{}}},"source":"extends:\n  - minimal\nrules:\n  no-ambiguous-paths: error # This rule enforces paths match only one PathItem entry, including template variables\n  no-invalid-schema-examples: error # This rule enforces schema examples to match their declared types\n  spec-strict-refs: error # This rule enforces $refs to reference elements in the component section\n  paths-kebab-case: error # This rule enforces all paths to be written using kebab case\n  rule/operationId-casing: # The following configurable three rules enforce camel case for operation ids, parameters, and schema properties\n    subject:\n      type: Operation\n      property: operationId\n    assertions:\n      casing: camelCase\n  rule/parameter-casing:\n    subject:\n      type: Parameter\n    assertions:\n      casing: camelCase\n  rule/schema-properties-casing:\n    subject:\n      type: Schema\n      property: properties\n    assertions:\n      casing: camelCase\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following sample ruleset configuration is for the Gold level:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","data-title":"api-ruleset-gold.yaml","header":{"title":"api-ruleset-gold.yaml","controls":{"copy":{}}},"source":"extends:\n  - minimal\nrules:\n  no-ambiguous-paths: error # This rule enforces paths match only one PathItem entry, including template variables\n  no-invalid-schema-examples: error # This rule enforces schema examples to match their declared types\n  spec-strict-refs: error # This rule enforces $refs to reference elements in the component section\n  paths-kebab-case: error # This rule enforces all paths to be written using kebab case\n  rule/operationId-casing: # The following configurable three rules enforce camel case for operation ids, parameters, and schema properties\n    subject:\n      type: Operation\n      property: operationId\n    assertions:\n      casing: camelCase\n  rule/parameter-casing:\n    subject:\n      type: Parameter\n    assertions:\n      casing: camelCase\n  rule/schema-properties-casing:\n    subject:\n      type: Schema\n      property: properties\n    assertions:\n      casing: camelCase\n  rule/headers-include-example: # The following two configurable rules enforce that headers and parameters include examples\n    subject:\n      type: Header\n    assertions:\n      requireAny:\n        - example\n        - examples\n  rule/params-must-include-examples:\n    subject:\n      type: Parameter\n    assertions:\n      requireAny:\n        - example\n        - examples\n      mutuallyExclusive:\n        - example\n        - examples\n  rule/operation-security-defined: # This configurable rule enforces the security property of the Paths Operation OpenAPI node type is defined\n    subject:\n      type: Operation\n      property: security\n    where:\n      - subject:\n          type: Paths\n        assertions:\n          defined: true\n    assertions:\n      defined: true\n    message: \"Property `security` must be defined\"\n  rule/terms-url: # This configurable rule enforces the terms of service property of the Info OpenAPI node type is defined\n    subject:\n      type: Info\n      property: termsOfService\n    assertions:\n      defined: true\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ignore-example","__idx":9},"children":["Ignore example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To ignore a specific file from the scorecard calculation, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openapi.yaml"]},", use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ignore"]}," property:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"scorecardClassic:\n  ignore:\n    - openapi.yaml\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To ignore a directory, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["catalog/"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"scorecardClassic:\n  ignore:\n    - catalog/*\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To ignore every file with a specific extension, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".yaml"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"scorecardClassic:\n  ignore:\n    - \"**/*.yaml\"\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"fromprojecturl-example","__idx":10},"children":["fromProjectUrl example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To enable the ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://marketplace.visualstudio.com/items?itemName=Redocly.openapi-vs-code"},"children":["Redocly OpenAPI VS Code extension"]}," to validate your local API descriptions against remote scorecard rules:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"scorecardClassic:\n  fromProjectUrl: https://app.cloud.redocly.com/org/my-org/project/my-project\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"resources","__idx":11},"children":["Resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/realm/reunite/project/lint"},"children":["API linting"]}]}," - Understand the Lint deployment step, what the scorecard displays, how to access reports, and the scorecard's role in API quality management"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/realm/reunite/project/configure-classic-scorecard"},"children":["Configure classic scorecard"]}]}," - Add Redocly built-in or custom rulesets to the classic scorecard for comprehensive API quality assessment and tracking"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/realm/config/openapi"},"children":["OpenAPI reference"]}]}," - Customize the behavior and appearance of integrated API documentation for comprehensive scorecard integration"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/realm/config/catalog-classic"},"children":["Catalog reference"]}]}," - Configure a classic version of the API catalog with different customization options for effective scorecard management"]}]}]},"frontmatter":{"products":["Reef","Realm"],"plans":["Pro","Enterprise","Enterprise+"],"description":"Add and create sets of rules and test your API description files against them."},"tagList":["admonition","configOptionRequirements","table"],"title":"scorecardClassic","lastModified":"2026-10-01T23:00:57.000Z"}