### Valid example objects Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/spec-example-values.md Examples of configurations that correctly use fields within example objects. ```yaml components: examples: ValidDataValue: dataValue: name: John Doe ValidSerializedValue: serializedValue: '{"name":"John Doe"}' ValidExternalValue: externalValue: https://example.com/user-example.json ``` -------------------------------- ### Correct Paths Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-ambiguous-paths.md This example demonstrates correctly defined paths that do not present ambiguity. ```yaml paths: '/electronics/{id}': $ref: "./paths/example.yaml" '/books/{id}': $ref: "./paths/example.yaml" ``` -------------------------------- ### Install Dependencies Source: https://github.com/redocly/redocly-cli/blob/main/CONTRIBUTING.md Run this command in the repository root after forking to install project dependencies. ```bash npm install # or npm i ``` -------------------------------- ### Correct Parameter Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-invalid-parameter-examples.md This example shows a valid parameter example where the 'example' value ('ella') conforms to the 'maxLength' constraint (10) defined in the schema. ```yaml paths: /results: get: summary: Search Chess Results operationId: searchChessResult parameters: - name: username in: query schema: type: string maxLength: 10 description: Value to query the chess results against usernames example: ella ``` -------------------------------- ### File with New Examples Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/decorators/media-type-examples-override.md This YAML file contains new examples that will be used to override the existing ones. ```yaml GetMuseumHoursResponseExampleShort: summary: Short-term opening hours value: - date: '2023-09-11' timeOpen: '09:00' timeClose: '18:00' - date: '2023-09-12' timeOpen: '09:00' timeClose: '18:00' GetMuseumHoursResponseExampleClosed: summary: The museum is closed value: [] ``` -------------------------------- ### Start local preview server Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/preview.md Starts a local preview server for your Redocly project. Use this to develop your project locally before deployment. ```bash redocly preview ``` ```bash redocly preview --product=revel ``` ```bash redocly preview --product=reef --plan=pro ``` ```bash redocly preview --product=reef --plan=pro --project-dir=./my-docs-project --port=4001 ``` -------------------------------- ### Overriding Examples for an Operation Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/decorators/media-type-examples-override.md This example demonstrates how to use the `media-type-examples-override` decorator to replace the default `application/json` example for the `getMuseumHours` operation with examples defined in a separate file (`./opening-hours-examples.yaml`). The `remove-unused-components` decorator is also used to clean up the bundle by removing the overwritten example from the components section. ```APIDOC ## GET /museum-hours ### Description Retrieves the operating hours for the museum. ### Method GET ### Endpoint /museum-hours ### Responses #### Success Response (200) - **content** (object) - The response body content. - **application/json** (object) - **schema** (object) - The schema for the response body. - **examples** (object) - Examples of the response body. - **GetMuseumHoursResponseExampleShort** (object) - **summary**: Short-term opening hours - **value**: Array of daily hours objects. - **GetMuseumHoursResponseExampleClosed** (object) - **summary**: The museum is closed - **value**: An empty array. ### Request Example (No request body for GET request) ### Response Example #### Success Response (200) ```json [ { "date": "2023-09-11", "timeOpen": "09:00", "timeClose": "18:00" }, { "date": "2023-09-12", "timeOpen": "09:00", "timeClose": "18:00" } ] ``` ``` -------------------------------- ### Configuration for Overriding Examples Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/decorators/media-type-examples-override.md This configuration specifies that the examples in `./opening-hours-examples.yaml` should override the default examples for the `getMuseumHours` operation's `200` response with `application/json` content type. ```yaml decorators: remove-unused-components: on media-type-examples-override: operationIds: getMuseumHours: responses: '200': application/json: ./opening-hours-examples.yaml ``` -------------------------------- ### Correct $ref example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/common/no-unresolved-refs.md An example where the $ref correctly points to an existing component. ```yaml components: schemas: Car: type: object properties: color: type: string tires: $ref: '#/components/schemas/Tire' Tire: type: object properties: name: type: string size: type: string ``` -------------------------------- ### Correct Server Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-server-example-com.md This example shows a correct server URL, using a valid mock server domain, which adheres to the rule's requirements. ```yaml servers: - url: https://swift-squirrel.remockly.com description: Mock server ``` -------------------------------- ### Correct schema example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-invalid-schema-examples.md An example where the provided example value matches the defined schema type. ```yaml components: schemas: Car: type: object properties: color: type: string example: red ``` -------------------------------- ### Example configuration for rule enforcement Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/array-parameter-serialization.md A minimal configuration example setting the rule to error severity for query parameters. ```yaml rules: array-parameter-serialization: severity: error in: - query ``` -------------------------------- ### Correct Components Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-unused-components.md This example demonstrates a correct API definition where all defined components are referenced, satisfying the no-unused-components rule. ```yaml openapi: 3.1.0 paths: /customers: $ref: '#/components/pathItems/customers' components: pathItems: customers: # ... ``` -------------------------------- ### OpenAPI Specification Example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/bundle/bundle-remove-unused-components-from-config/oas3-without-option/without-remove-unused-components-snapshot.txt An example OpenAPI 3.1.0 specification defining paths, components, schemas, and examples. ```yaml openapi: 3.1.0 paths: /store/order: post: operationId: storeOrder responses: '400': content: application/json: schema: $ref: '#/components/schemas/ref' components: parameters: x: name: x examples: Order: value: quantity: 1 shipDate: '2018-10-19T16:46:45Z' status: placed complete: false schemas: ApiResponse: type: object properties: code: type: integer format: int32 ref: type: string requestBodies: UserArray: content: application/json: schema: type: array description: List of user object required: true responses: Unauthorized: description: Unauthorized access, invalid credentials was used headers: Location: schema: type: string headers: Rate-Limit-Limit: description: The number of allowed requests in the current period schema: type: integer ``` -------------------------------- ### Install Snapshot Version Source: https://github.com/redocly/redocly-cli/blob/main/CONTRIBUTING.md Use this command to install an experimental version of the Redocly CLI from the NPM registry under the 'snapshot' tag. ```bash npm install @redocly/cli@snapshot ``` -------------------------------- ### Incorrect Server Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-server-example-com.md This example demonstrates an incorrect server URL that uses 'example.com', which is disallowed by the rule. ```yaml servers: - url: https://example.com description: Example server ``` -------------------------------- ### Example Ignore File Content Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/lint.md An example of a `.redocly.lint-ignore.yaml` file, showing how to specify problems to ignore for specific API descriptions and rules. ```yaml # This file instructs Redocly's linter to ignore the rules contained for specific parts of your API. # See https://redocly.com/docs/cli/ for more information. museum-with-errors.yaml: struct: - '#/paths/~1museum-hours/get/operationIds' - '#/paths/~1museum-hours/get/responses/200/require' operation-operationId: - '#/paths/~1museum-hours/get/operationId' ``` -------------------------------- ### Example Linting Output Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/quickstart.md This is an example of the output from the `redocly lint` command, showing a warning for a server URL that points to example.com. ```text validating openapi-starter/openapi/openapi.yaml... [1] openapi-starter/openapi/openapi.yaml:72:10 at #/servers/1/url Server `url` should not point to example.com or localhost. 70 | default: www 71 | description: Your tenant id 72 | - url: https://example.com/api/v1 73 | paths: 74 | '/users/{username}': Warning was generated by the no-server-example.com rule. openapi-starter/openapi/openapi.yaml: validated in 109ms Woohoo! Your API description is valid. πŸŽ‰ You have 1 warning. ``` -------------------------------- ### Install Redocly CLI locally Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/installation.md Use npm to install the latest version of the CLI globally or in your project. ```bash npm i @redocly/cli@latest ``` -------------------------------- ### Correct path example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-path-trailing-slash.md An example of a path definition that complies with the rule. ```yaml paths: /customers: $ref: ./paths/customers.yaml ``` -------------------------------- ### AsyncAPI Specification Example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/bundle/async3/snapshot.txt An example of an AsyncAPI 3.0.0 specification for an Account Service. It defines user signup events and their payloads. ```yaml asyncapi: 3.0.0 info: title: Account Service version: 1.0.0 description: This service is in charge of processing user signups channels: userSignedup: address: user/signedup messages: UserSignedUp: UserSignedUp: payload: type: object properties: displayName: type: string description: Name of the user email: type: string format: email description: Email of the user operations: sendUserSignedup: action: send channel: $ref: '#/channels/userSignedup' messages: - UserSignedUp: payload: type: object properties: displayName: type: string description: Name of the user email: type: string format: email description: Email of the user components: messages: UserSignedUp: UserSignedUp: payload: type: object properties: displayName: type: string description: Name of the user email: type: string format: email description: Email of the user ``` -------------------------------- ### Example of Prefixed Component Names Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/join.md This example demonstrates how component names are prefixed with version numbers (e.g., '1.0.0_') when using the `--prefix-components-with-info-prop` option. ```yaml components: schemas: 1.0.0_BuyMuseumTicketsRequest: description: Request payload used for purchasing museum tickets. type: object properties: ticketType: $ref: '#/components/schemas/1.0.0_TicketType' eventId: description: >- Unique identifier for a special event. Required if purchasing tickets for the museum's special events. $ref: '#/components/schemas/1.0.0_1.0.0_EventId' ticketDate: description: Date that the ticket is valid for. $ref: '#/components/schemas/1.0.0_1.0.0_Date' email: $ref: '#/components/schemas/1.0.0_Email' phone: $ref: '#/components/schemas/1.0.0_Phone' required: - ticketType - ticketDate - email 1.2.0_BuyMuseumTicketsRequest: description: Request payload used for purchasing museum tickets. type: object properties: ticketType: $ref: '#/components/schemas/1.2.0_TicketType' eventId: description: >- Unique identifier for a special event. Required if purchasing tickets for the museum's special events. $ref: '#/components/schemas/1.2.0_1.2.0_EventId' ticketDate: description: Date that the ticket is valid for. $ref: '#/components/schemas/1.2.0_1.2.0_Date' email: $ref: '#/components/schemas/1.2.0_Email' phone: $ref: '#/components/schemas/1.2.0_Phone' required: - ticketType - ticketDate - email ``` -------------------------------- ### Correct License Object Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/info-license.md An example of an OpenAPI object correctly including license information with a name. ```yaml info: license: name: Apache 2.0 ``` -------------------------------- ### Correct struct example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/common/struct.md An example of an API document that satisfies the struct rule requirements. ```yaml openapi: 3.0.0 info: title: Ultra API version: 1.0.0 paths: {} ``` -------------------------------- ### Install Redocly CLI Globally Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/preview.md Install Redocly CLI globally using `npm install -g @redocly/cli@latest`. This helps avoid npx cache-related issues by making the `redocly` command available system-wide. ```bash npm install -g @redocly/cli@latest ``` -------------------------------- ### Generated Arazzo file content Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/generate-arazzo.md This is an example of the content generated by the `generate-arazzo` command. It serves as a starting point and requires further extension to be a functional test file. ```yaml arazzo: 1.0.1 info: title: Warp API version: 1.0.0 sourceDescriptions: - name: warp type: openapi url: https://warp-single-sidebar.redocly.app/_spec/apis/index.yaml workflows: - workflowId: post-timelines-workflow steps: - stepId: post-timelines-step operationId: $sourceDescriptions.warp.createTimeline successCriteria: - condition: $statusCode == 201 - workflowId: get-timelines-workflow steps: - stepId: get-timelines-step operationId: $sourceDescriptions.warp.listTimelines successCriteria: - condition: $statusCode == 200 - workflowId: delete-timeline-{timeline_id}-workflow steps: - stepId: delete-timeline-{timeline_id}-step operationId: $sourceDescriptions.warp.deleteTimeline successCriteria: - condition: $statusCode == 204 - workflowId: post-travels-workflow steps: - stepId: post-travels-step operationId: $sourceDescriptions.warp.timeTravel successCriteria: - condition: $statusCode == 200 - workflowId: post-items-workflow steps: - stepId: post-items-step operationId: $sourceDescriptions.warp.registerItem successCriteria: - condition: $statusCode == 200 - workflowId: post-events-workflow steps: - stepId: post-events-step operationId: $sourceDescriptions.warp.manipulateEvent successCriteria: - condition: $statusCode == 200 - workflowId: post-anchors-workflow steps: - stepId: post-anchors-step operationId: $sourceDescriptions.warp.setAnchor successCriteria: - condition: $statusCode == 201 - workflowId: post-paradox-checks-workflow steps: - stepId: post-paradox-checks-step operationId: $sourceDescriptions.warp.checkParadox successCriteria: - condition: $statusCode == 200 - workflowId: get-monitor-timeline-workflow steps: - stepId: get-monitor-timeline-step operationId: $sourceDescriptions.warp.monitorTimeline successCriteria: - condition: $statusCode == 200 ``` -------------------------------- ### Incorrect Path Example (splitIntoWords Enabled) Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-http-verbs-in-paths.md Illustrates an incorrect path '/getCustomers' that violates the 'no-http-verbs-in-paths' rule when 'splitIntoWords' is enabled, as 'get' is recognized as a distinct word. ```yaml paths: /getCustomers: $ref: ./paths/customer.yaml ``` -------------------------------- ### Redocly CLI Bundling Example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/bundle/bundle-arazzo-valid-test-description/snapshot.txt Demonstrates the output of the Redocly CLI when bundling an OpenAPI specification file. ```bash bundling museum.yaml... πŸ“¦ Created a bundle for museum.yaml at stdout ms. ``` -------------------------------- ### GitHub Actions for Arazzo linting Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/guides/lint-arazzo.md Integrate Arazzo linting into your CI pipeline using GitHub Actions. This example configures a workflow to checkout code, set up Node.js, install Redocly CLI, and run linting with the `github-actions` format for pull request annotations. ```yaml name: Validate museum Arazzo descriptions on: [pull_request] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up node uses: actions/setup-node@v4 - name: Install Redocly CLI run: npm install -g @redocly/cli@latest - name: Run linting run: redocly lint arazzo/*yaml --format=github-actions ``` -------------------------------- ### Incorrect Parameter Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-invalid-parameter-examples.md This example demonstrates an invalid parameter example where the 'example' value ('ThisUsernameIsTooLong') exceeds the 'maxLength' defined in the schema (15). ```yaml paths: /results: get: summary: Search Chess Results operationId: searchChessResult parameters: - name: username in: query schema: type: string maxLength: 15 description: Value to query the chess results against usernames example: ThisUsernameIsTooLong ``` -------------------------------- ### Invalid Schema Example: Number Type Mismatch in Examples Array Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-schema-examples-oas3.1-error/snapshot.txt This example demonstrates an invalid schema example within an 'examples' array. An integer '25' is provided for a property that expects a string. The error is highlighted at line 41. ```yaml 40 | - test 41 | - 25 | ^^ ``` -------------------------------- ### Incorrect Schema Example - Missing Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/scalar-property-missing-example.md This schema is considered incorrect by the rule because the 'email' property, which is a scalar type (string), lacks an 'example' or 'examples' field. ```yaml schemas: User: type: object properties: email: description: User email address type: string format: email ``` -------------------------------- ### Incorrect Example Object - Violates Rule Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-example-value-and-externalValue.md This example demonstrates an incorrect 'examples' object where both 'value' and 'externalValue' are present for the same example ('foo' and 'bar'), violating the OpenAPI specification. ```yaml requestBody: content: application/json: schema: $ref: '#/components/schemas/Address' examples: foo: summary: A foo example value: { foo: bar } externalValue: https://example.org/examples/foo-example.xml bar: summary: A bar example value: { bar: baz } externalValue: https://example.org/examples/bar-example.xml ``` -------------------------------- ### Build API Docs Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/build-docs.md Builds Redoc into an HTML file. Specify the API description file or alias. ```bash redocly build-docs ``` ```bash redocly build-docs --output=custom.html ``` ```bash redocly build-docs --theme.openapi.disableSearch ``` ```bash redocly build-docs --template custom.hbs ``` ```bash redocly build-docs -t custom.hbs --templateOptions.metaDescription "Page meta description" ``` -------------------------------- ### Correct Request Mime Type Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/request-mime-type.md This example demonstrates a correct OpenAPI path using 'application/json' for a request body, aligning with the configured allowed mime types. ```yaml paths: /customers/{id}: post: requestBody: content: application/json: # ... ``` -------------------------------- ### Correct onSuccess Actions Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/arazzo/step-onSuccess-unique.md Demonstrates a valid 'onSuccess' list where all actions are unique, including direct calls and references. ```yaml workflows: - workflowId: get-museum-hours description: This workflow demonstrates how to get the museum opening hours and buy tickets. steps: - stepId: get-museum-hours operationId: museum-api.getMuseumHours successCriteria: - condition: $statusCode == 200 onSuccess: - name: call-crud-events workflowId: events-crud type: goto - name: second-call-crud-events workflowId: events-crud type: goto - reference: $components.successActions.notify - reference: $components.successActions.report ``` -------------------------------- ### Configure media-type-examples-override Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/decorators/media-type-examples-override.md Define operation IDs and map them to files containing example content for request bodies or responses. This configuration replaces the existing 'examples' section for the specified media type and operation. ```yaml decorators: media-type-examples-override: operationIds: updateSpecialEvent: request: application/json: ./private-event-examples.yaml getMuseumHours: responses: '200': application/json: ./opening-hours-examples.yaml ``` -------------------------------- ### Specify Product for Preview Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/preview.md Use the `--product` option to specify the product package for the preview. If not provided, Redocly CLI attempts to guess from `package.json` or defaults to `realm`. ```bash redocly preview --product=revel ``` -------------------------------- ### Correct Example Object - Complies with Rule Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-example-value-and-externalValue.md This example shows a correct 'examples' object where each example ('foo' and 'bar') uses either 'value' or 'externalValue', but not both, adhering to the OpenAPI specification. ```yaml requestBody: content: application/json: schema: $ref: '#/components/schemas/Address' examples: foo: summary: A foo example value: { foo: bar } bar: summary: A bar example externalValue: https://example.org/examples/address-example.xml ``` -------------------------------- ### Incorrect Media Type Example (Additional Property) Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-invalid-media-type-examples.md This example is incorrect because it includes an 'color' property, which is not defined in the schema and 'allowAdditionalProperties' is set to false. ```yaml post: requestBody: content: application/json: schema: type: object properties: make: type: string model: type: string year: type: integer examples: tesla: summary: Red Tesla value: make: Tesla model: Y year: 2022 color: red ``` -------------------------------- ### Example Missing Required writeOnly Property Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-read-write-only-with-composition/snapshot.txt This example demonstrates an OpenAPI example that is missing the required `password` property, which is marked as `writeOnly`. Ensure all `writeOnly` properties are included in examples for request bodies. ```yaml name: Doe email: test@example.com phone: '1234567890' ``` -------------------------------- ### Correct parameters list example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/arazzo/parameters-unique.md A valid configuration showing unique parameters within a workflow. ```yaml workflows: - workflowId: get-museum-hours parameters: - in: header name: Authorization value: Basic Og== - in: header name: X-Forwarded-For value: 1.2.3.4 ``` -------------------------------- ### Incorrect schema example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-invalid-schema-examples.md An example where the provided example value (a number) conflicts with the defined schema type (string). ```yaml components: schemas: Car: type: object properties: color: type: string example: 3.14 ``` -------------------------------- ### Per-API Configuration Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/configuration/apis.md Demonstrates how to define root-level decorators and override them for a specific API. Per-API settings take precedence over global ones. ```yaml decorators: filter-in: property: x-products value: - Core plugin/change-title: title: All APIs extraProperty: This property will be ignored at the per-API level. apis: storefront: decorators: plugin/change-title: title: Storefront APIs ``` -------------------------------- ### Preview Documentation Locally Source: https://github.com/redocly/redocly-cli/blob/main/CONTRIBUTING.md Run this command from the `docs/` folder to preview your documentation changes locally. The preview is typically accessible at http://localhost:4000. ```bash redocly preview ``` -------------------------------- ### Invalid writeOnly property in response example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-read-write-only/snapshot.txt This example is flagged because the 'password' property, designated as writeOnly, appears in a response body example. ```yaml invalid_writeOnly_in_response: value: id: testId name: Doe password: testPassword ``` -------------------------------- ### Display command help Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/index.md Use the --help flag to view documentation for any Redocly CLI command. ```bash npx @redocly/cli@latest lint --help ``` -------------------------------- ### OpenAPI Schema Example Validation Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/validate-schema-formats/snapshot.txt This example demonstrates an invalid schema example that violates the `oneOf` rule. The `no-invalid-schema-examples` rule flags such discrepancies. ```yaml - '2000-01-01' # correct - monthly # correct - wrong ``` -------------------------------- ### Example Respect Test Output Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/respect.md Demonstrates the typical output format when running Respect tests, including passed steps, checks, and a summary. ```bash Running workflow warp.arazzo.yaml / missionLostInvention βœ“ POST /anchors - step setAnchorToCurrentTime Β Β Β Β βœ“ status code check (Response code 201 matches one of description codes: [201, 409]) Β Β Β Β βœ“ content-type check Β Β Β Β βœ“ schema check βœ“ POST /timelines - step createTimelineTo1889 Β Β Β Β βœ“ status code check (Response code 201 matches one of description codes: [201]) Β Β Β Β βœ“ content-type check Β Β Β Β βœ“ schema check βœ“ POST /travels - step travelTo1889 Β Β Β Β βœ“ status code check (Response code 200 matches one of description codes: [200, 400]) Β Β Β Β βœ“ content-type check Β Β Β Β βœ“ schema check βœ“ POST /items - step findAndRegisterBlueprint Β Β Β Β βœ“ status code check (Response code 200 matches one of description codes: [200, 409]) Β Β Β Β βœ“ content-type check Β Β Β Β βœ“ schema check βœ“ POST /paradox-checks - step avoidParadox Β Β Β Β βœ“ success criteria check Β Β Β Β βœ“ success criteria check Β Β Β Β βœ“ status code check (Response code 200 matches one of description codes: [200, 400]) Β Β Β Β βœ“ content-type check Β Β Β Β βœ“ schema check βœ“ POST /travels - step returnToPresent Β Β Β Β βœ“ status code check (Response code 200 matches one of description codes: [200, 400]) Β Β Β Β βœ“ content-type check Β Β Β Β βœ“ schema check Summary for warp.arazzo.yaml Β Β  Β Β Workflows: 1 passed, 1 total Β Β Steps: 6 passed, 6 total Β Β Checks: 20 passed, 20 total Β Β Time: 1060ms β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Filename β”‚ Workflows β”‚ Passed β”‚ Failed β”‚ Warnings β”‚ Skipped β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ βœ“ warp.arazzo.yaml β”‚ 1 β”‚ 1 β”‚ - β”‚ - β”‚ - β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` -------------------------------- ### Invalid readOnly property in request example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-read-write-only/snapshot.txt This example violates the schema because the 'id' property, marked as readOnly, is present in a request body example. ```yaml invalid_readOnly_in_request: value: id: testId name: Doe password: testPassword ``` -------------------------------- ### Invalid Media Type Example: Missing Required Property Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-recursion/snapshot.txt This example demonstrates an invalid media type example where the required property 'c' is missing within the 'a' object. The rule flags this as a violation because the example does not conform to the schema's requirements. ```yaml openapi.json:29:28 at #/paths/~1test/get/responses/202/content/application~1json/example Example value must conform to the schema: must have required property 'c'. 27 | "application/json": { 28 | "schema": { "$ref": "#/components/schemas/PetWithProps" }, 29 | "example": { | ^ 30 | "a": {}, | ^^^^^^^^ … | < 3 more lines > 34 | } | ^ 35 | } 36 | } ``` -------------------------------- ### Correct onFailure Actions Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/arazzo/step-onFailure-unique.md Demonstrates a valid configuration where all onFailure actions within a step are unique. This includes 'goto' actions and references to component failure actions. ```yaml workflows: - workflowId: get-museum-hours description: This workflow demonstrates how to get the museum opening hours and buy tickets. steps: - stepId: get-museum-hours operationId: museum-api.getMuseumHours successCriteria: - condition: $statusCode == 200 onFailure: - name: call-crud-events workflowId: events-crud type: goto - name: second-call-crud-events workflowId: events-crud type: goto - reference: $components.failureActions.notify - reference: $components.failureActions.report ``` -------------------------------- ### Extend Redocly Configuration with Plugin Bundles Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/custom-plugins/custom-config.md Reference plugin configuration bundles in your `redocly.yaml` file under the `extends` key. This example extends the configuration using the 'all' bundle from 'my-local-plugin'. ```yaml extends: - my-local-plugin/all ``` -------------------------------- ### Missing required readOnly property in response example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-read-write-only/snapshot.txt This example is incorrect as it omits the 'id' property, which is required and marked as readOnly, in a response body example. ```yaml invalid_missing_readOnly_required: value: name: Doe ``` -------------------------------- ### Bundle API Descriptions with Options Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/bundle.md Bundle API descriptions while removing unused components or specifying a configuration file. ```bash redocly bundle [--remove-unused-components] ``` ```bash redocly bundle [--config=] ``` -------------------------------- ### Missing required writeOnly property in request example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-read-write-only/snapshot.txt This example fails validation because a required 'password' property, marked as writeOnly, is missing from the request body example. ```yaml invalid_missing_writeOnly_required: value: name: Doe ``` -------------------------------- ### Correct Schema Example - With Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/scalar-property-missing-example.md This schema is considered correct because the 'email' property includes an 'example' field, satisfying the rule's requirement for scalar properties. ```yaml schemas: User: type: object properties: email: description: User email address type: string format: email example: john.smith@example.com ``` -------------------------------- ### Assert Path Item has GET Operation Defined Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/configurable-rules.md Use this rule to ensure every path item includes a GET operation. It targets the 'get' property of a PathItem. ```yaml rules: rule/path-item-get-operation-defined: subject: type: PathItem property: get assertions: defined: true ``` -------------------------------- ### Bundle API Descriptions with Output Options Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/bundle.md Bundle API descriptions and specify the output filename and file extension. ```bash redocly bundle ... -o --ext ``` -------------------------------- ### Specify Plan for Preview Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/preview.md Switch the preview to 'pro' plan mode by setting the `--plan` option to `pro`. By default, previews run in enterprise plan mode, making all enterprise features available. ```bash redocly preview --plan=pro ``` -------------------------------- ### Incorrect $ref example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/common/no-unresolved-refs.md An example where the $ref points to a non-existent component. ```yaml components: schemas: Car: type: object properties: color: type: string tires: $ref: '#/components/schemas/Tires' Tire: type: object properties: name: type: string size: type: string ``` -------------------------------- ### Example with readOnly Property Present in Request Body Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-read-write-only-with-composition/snapshot.txt This example illustrates an OpenAPI example where a `readOnly` property (`id`) is included in the request body. `readOnly` properties should not be present in request payloads. ```yaml id: usr_1 name: Doe password: p ``` -------------------------------- ### Run `scorecard-classic` with `redocly.yaml` Configuration Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/scorecard-classic.md Execute the `scorecard-classic` command without the `--project-url` flag when the scorecard configuration is already defined in the `redocly.yaml` file. ```bash redocly scorecard-classic core@v1 ``` -------------------------------- ### Correct tags example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/tags-alphabetical.md An example of tags that are correctly sorted in alphabetical order. ```yaml tags: - name: Central Management APIs - name: External APIs - name: Partner APIs - name: Testing APIs ``` -------------------------------- ### Incorrect tags example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/tags-alphabetical.md An example of tags that are not in alphabetical order, which will trigger the rule. ```yaml tags: - name: Partner APIs - name: External APIs - name: Testing APIs - name: Central Management APIs ``` -------------------------------- ### Correct Paths Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-identical-paths.md This example shows how to define distinct paths by using unique path segments, avoiding the ambiguity that arises from identical path structures with different parameter names. ```yaml paths: /pets/{petId}: $ref: "./paths/petById.yaml" /pet-names/{name}: $ref: "./paths/petByName.yaml" ``` -------------------------------- ### Correct Path Example (No splitIntoWords) Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-http-verbs-in-paths.md Shows a correct path '/customers' that adheres to the 'no-http-verbs-in-paths' rule when 'splitIntoWords' is not enabled. ```yaml paths: /customers: $ref: ./paths/customer.yaml ``` -------------------------------- ### Valid stepId usage example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/arazzo/stepId-unique.md Example of a workflow configuration where each stepId is unique. ```yaml workflows: - workflowId: get-museum-hours-2 description: This workflow demonstrates how to get the museum opening hours and buy tickets. steps: - stepId: get-museum-hours operationId: museum-api.getMuseumHours successCriteria: - condition: $statusCode == 200 - stepId: another-step-id operationId: museum-api.getMuseumHours successCriteria: - condition: $statusCode == 200 ``` -------------------------------- ### Invalid Response Example: writeOnly Email Present Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-read-write-only-with-composition/snapshot.txt This response example contains the 'email' property, which is defined as writeOnly and should not be included in response payloads. Ensure that writeOnly properties are omitted from response examples. ```yaml email: test@example.com ``` -------------------------------- ### Invalid Schema Example: Array Type Mismatch Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-schema-examples-oas3.1-error/snapshot.txt This example shows an invalid schema example where a string 'test' is provided for a property that expects an array of strings. The error occurs at line 34. ```yaml - string 33 | example: 34 | - test | ^^^^^^ ``` -------------------------------- ### Basic `scorecard-classic` Usage Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/scorecard-classic.md Use this command to evaluate an API description against quality standards. Specify the API path and optionally provide a project URL or configuration file. ```bash redocly scorecard-classic --project-url= ``` ```bash redocly scorecard-classic --config= ``` ```bash redocly scorecard-classic --format=json ``` ```bash redocly scorecard-classic --format=junit ``` ```bash redocly scorecard-classic --target-level= ``` ```bash redocly scorecard-classic --verbose ``` -------------------------------- ### Correct operationId Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/operation-operationId-url-safe.md An example of a URL-safe `operationId` that can be used in URLs without transformation. ```yaml paths: /cars: get: operationId: CarWash # ... ``` -------------------------------- ### Implement nested configuration Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/configuration/extends.md Demonstrates how configuration files can link to other files via the extends list to create a hierarchy. ```yaml extends: - custom.yaml ``` ```yaml extends: - nested.yaml rules: tags-alphabetical: error paths-kebab-case: warn ``` ```yaml rules: path-parameters-defined: error tag-description: warn ``` -------------------------------- ### Build Docs With Alternative Configuration File Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/build-docs.md Specify a custom path to your Redocly configuration file using the `--config` argument when the default location is not suitable. ```bash redocly build-docs --config=./another/directory/config.yaml ``` -------------------------------- ### Correct channel address example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/async/channels-kebab-case.md An example of a channel address that complies with the kebab-case rule. ```yaml channels: ticketSales: address: transactions/ticket-sales # channel address value checked by rule messages: ticketSaleTransaction: $ref: '#/components/messages/ticketSaleTransaction' ``` -------------------------------- ### Build Docs Using API Alias Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/build-docs.md Use an API name defined in your Redocly configuration file to build documentation. This requires a Redocly configuration file to be present. ```yaml apis: games@v1: root: ./openapi/api-description.json ``` ```bash redocly build-docs games@v1 ``` -------------------------------- ### Incorrect channel address example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/async/channels-kebab-case.md An example of a channel address that violates the kebab-case rule. ```yaml channels: ticketSales: address: transactions/ticketSales # channel address value checked by rule messages: ticketSaleTransaction: $ref: '#/components/messages/ticketSaleTransaction' ``` -------------------------------- ### Correct x-security Entry with scheme Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/respect/no-x-security-both-scheme-and-scheme-name.md This example demonstrates a correct `x-security` entry that uses only the `scheme` object to define the security. ```yaml workflows: - workflowId: get-museum-hours x-security: - scheme: type: http scheme: bearer values: token: some-token ``` -------------------------------- ### Correct workflows list example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/arazzo/workflowId-unique.md A valid example of a workflows list where each workflowId is unique. ```yaml workflows: - workflowId: get-museum-hours steps: - stepId: get-museum-hours operationId: museum-api.getMuseumHours successCriteria: - condition: $statusCode == 200 - workflowId: get-museum-hours-routine steps: - stepId: get-museum-hours operationId: museum-api.getMuseumHours successCriteria: - condition: $statusCode == 200 ``` -------------------------------- ### Successful login output Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/login.md Example of the console output displayed upon a successful authentication attempt. ```text redocly login Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://auth.cloud.redocly.com/device-login Then enter the code: 123456 βœ… Logged in ``` -------------------------------- ### Missing Required writeOnly Property in Parameter Example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-parameter-examples-read-write-only/snapshot.txt This example shows an invalid parameter example where a required `writeOnly` property is missing. The schema mandates that the `password` property must be present for write-only parameters. ```yaml invalid_missing_writeOnly_required: summary: missing required writeOnly `password` value: name: Doe ``` -------------------------------- ### Correct OpenAPI Components Map Name Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/spec-components-invalid-map-name.md Shows the correct way to name a map key within the 'examples' object under 'components', adhering to the allowed character set. ```yaml components: examples: valid_identifier: description: valid identifier value: 21 ``` -------------------------------- ### Invalid readOnly Property in Parameter Example Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-parameter-examples-read-write-only/snapshot.txt This example demonstrates an invalid parameter example where a `readOnly` property is present in the request context. According to the OpenAPI specification, `readOnly` properties should not be included in request payloads. ```yaml invalid_readOnly_present: summary: readOnly must NOT be present in request (query parameter) value: password: p ``` -------------------------------- ### Compile Code Source: https://github.com/redocly/redocly-cli/blob/main/CONTRIBUTING.md Run this command to compile the project's code. ```bash npm run compile ``` -------------------------------- ### Invalid Media Type Example in OpenAPI Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/no-invalid-media-type-examples-invalid-schema/snapshot.txt An example provided for a media type in an OpenAPI specification cannot use the `nullable` keyword without also defining the `type`. This rule ensures that examples are valid according to the schema. ```yaml application/json: schema: $ref: '#/components/schemas/Test' example: {} ``` -------------------------------- ### Invalid Media Type Example: Array Items Source: https://github.com/redocly/redocly-cli/blob/main/tests/e2e/lint/draft4-vs-2020-schema-differences/snapshot.txt This example shows an invalid media type example where the 'tags' property exceeds the schema's allowed number of items. This error is flagged by the `no-invalid-media-type-examples` rule. ```yaml requiredField: value age: 25 tags: [first, 123, third] ``` -------------------------------- ### Example Security Entry with Required Values Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/respect/x-security-scheme-required-values.md This example demonstrates a valid 'x-security' entry for an HTTP Basic authentication scheme. It includes the 'username' and 'password' values as required by the 'basic' scheme. ```yaml - stepId: step-without-openapi-operation-and-security-scheme-name x-operation: method: GET url: 'https://api.example.com/v1/users' x-security: - scheme: type: http scheme: basic values: username: test@example.com password: 123456 ``` -------------------------------- ### Configure info-contact rule Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/info-contact.md Example configuration for the info-contact rule. ```yaml rules: info-contact: warn ``` ```yaml rules: info-contact: error ``` -------------------------------- ### Define Configuration Bundles in a Plugin Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/custom-plugins/custom-config.md Use the `configs` key in your plugin to define multiple configuration bundles. Each bundle can specify its own set of rules. This example defines 'all' and 'minimal' bundles. ```javascript export default function myLocalPlugin() { return { id: 'my-local-plugin', configs: { all: { rules: { 'operation-id-not-test': 'error', 'boolean-parameter-prefixes': 'error', }, }, minimal: { rules: { 'operation-id-not-test': 'off', 'boolean-parameter-prefixes': 'error', }, }, }, }; } ``` -------------------------------- ### Invalid example objects Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/spec-example-values.md Examples of configurations that violate the rule by combining mutually exclusive fields. ```yaml components: examples: InvalidDataValueAndValue: dataValue: name: John Doe value: name: Jane Doe InvalidSerializedValueAndValue: serializedValue: '{"name":"John Doe"}' value: name: Jane Doe InvalidExternalValueAndValue: externalValue: https://example.com/user-example.json value: name: Jane Doe ``` -------------------------------- ### Correct response example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/response-contains-property.md An example of a response schema that satisfies the rule by including the required properties. ```yaml paths: /customers: post: responses: '200': description: OK content: application/json: schema: type: object properties: id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time ``` -------------------------------- ### Project with multiple locales Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/translate.md Example directory structure showing multiple locale folders under @l10n. ```treeview your-awesome-project β”œβ”€β”€ @l10n/ β”‚ β”œβ”€β”€ es-ES/ β”‚ β”‚ β”œβ”€β”€ transcriptions.yaml β”‚ β”‚ └── ... β”‚ β”œβ”€β”€ fr/ β”‚ β”‚ β”œβ”€β”€ transcriptions.yaml β”‚ β”‚ └── ... β”‚ └── nl-NL/ β”‚ β”œβ”€β”€ transcriptions.yaml β”‚ └── ... β”œβ”€β”€ index.md β”œβ”€β”€ sidebars.md β”œβ”€β”€ redocly.yaml └── ... ``` -------------------------------- ### Incorrect path declaration example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/path-declaration-must-exist.md An example of a path with an empty template variable, which triggers the rule. ```yaml paths: /customers/{}: post: ``` -------------------------------- ### Incorrect operationId Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/operation-operationId-url-safe.md An example of an `operationId` that is not URL-safe due to the presence of special characters like '<' and '>'. ```yaml paths: /cars: get: operationId: Car<>Wash # ... ``` -------------------------------- ### Incorrect path example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/no-path-trailing-slash.md An example of a path definition that violates the rule by including a trailing slash. ```yaml paths: /customers/: $ref: ./paths/customers.yaml ``` -------------------------------- ### Configure basic AsyncAPI linting Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/guides/lint-asyncapi.md Define a simple configuration file to validate document structure. ```yaml rules: struct: error ``` -------------------------------- ### Incorrect License Object Example Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/rules/oas/info-license.md An example of an OpenAPI object missing the required license information. ```yaml info: version: v1.1 ``` -------------------------------- ### Use a custom configuration file Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/lint.md Specify an alternative path to the Redocly configuration file using the `--config` argument. This allows you to manage configurations in different locations. ```bash redocly lint --config=./another/directory/config.yaml ``` -------------------------------- ### Multiple projects in same folder Source: https://github.com/redocly/redocly-cli/blob/main/docs/@v2/commands/translate.md Example directory structure showing multiple projects within a parent folder. ```treeview projects/ β”œβ”€β”€ storage-docs/ β”œβ”€β”€ authentication-docs/ └── museum-docs/ β”œβ”€β”€ @l10n/ β”‚ β”œβ”€β”€ es-ES/ β”‚ β”‚ β”œβ”€β”€ transcriptions.yaml β”‚ β”‚ └── ... β”‚ β”œβ”€β”€ fr/ β”‚ β”‚ β”œβ”€β”€ transcriptions.yaml β”‚ β”‚ └── ... β”‚ └── nl-NL/ β”‚ β”œβ”€β”€ transcriptions.yaml β”‚ └── ... β”œβ”€β”€ index.md β”œβ”€β”€ sidebars.md β”œβ”€β”€ redocly.yaml └── ... ```