> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Review Pipeline Quality

> Reviews pipelines against configured pipeline quality rules



## OpenAPI

````yaml /openapi/public-api-endpoint-reference.yaml post /v1/projects/{projectId}/reviews
openapi: 3.1.0
info:
  title: Maia Public REST API
  version: '1.0'
servers:
  - description: EU1
    url: https://eu1.api.matillion.com/dpc
  - description: US1
    url: https://us1.api.matillion.com/dpc
security:
  - bearerAuth: []
tags:
  - description: Manage Schedules
    name: Schedules
  - description: Manage Connections
    name: Connections
  - description: Operations for managing Project Variables
    name: Project Variables
  - description: Manage Pipelines
    name: Pipelines
  - description: Review pipelines against quality rules
    name: Pipeline Quality Review
  - description: Execute tests within a project
    name: Test Execution
  - description: Manage your AI agent tasks
    name: AI Agent Tasks
  - description: SCIM endpoints for user/group permission management
    name: Directory Integration
  - description: Publish shared pipeline artifacts
    name: Shared Pipeline Artifacts
  - description: Manage Repositories
    name: Repositories
  - description: Report on Credit Consumption
    name: Consumption
  - description: Manage Artifacts
    name: Artifacts
  - description: Operations for data lineage and governance
    name: Data Lineage
  - description: Manage Streaming Pipelines
    name: Streaming Pipelines
  - description: Execute a pipeline
    name: Pipeline Execution
  - description: ''
    name: Environments
  - description: ''
    name: Projects
  - description: Manage Agents
    name: Agents
  - description: Operations for managing Environment-level Overrides of Project Variables
    name: Project Variable Environment Overrides
  - description: Query audit events
    name: Audit Events
  - description: Connector Profiles
    name: Connectors
paths:
  /v1/projects/{projectId}/reviews:
    post:
      tags:
        - Pipeline Quality Review
      summary: Review Pipeline Quality
      description: Reviews pipelines against configured pipeline quality rules
      operationId: reviewPipelineQualityRules
      parameters:
        - description: The UUID of the project
          in: path
          name: projectId
          required: true
          schema:
            type: string
            format: uuid
        - description: The agent version (e.g., "9.0.0")
          in: header
          name: Agent-Version
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewResponse'
          description: Pipeline quality review completed successfully
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Invalid request parameters
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: File not found
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Unexpected error occurred
        '504':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Gateway timeout
components:
  schemas:
    ReviewRequest:
      type: object
      description: Review request containing pipeline context
      properties:
        branchName:
          type: string
          description: ${review.request.body.branchName}
          example: main
          minLength: 1
        commitId:
          type: string
          description: The unique commit identifier used to retrieve associated pipelines
          example: 7e3a9c4b2f1d8e6c0a5f9d2b4c7e1a3f4b6c8d0e
          minLength: 1
        dataWarehouseType:
          type: string
          description: ${review.request.body.dataWarehouseType}
          example: SNOWFLAKE
          minLength: 1
        filePaths:
          type:
            - array
            - 'null'
          description: ${review.request.body.filePaths}
          example:
            - file-1.orch.yaml
            - another/file/with/path/file-2.trans.yaml
          items:
            type: string
      required:
        - branchName
        - commitId
        - dataWarehouseType
    ReviewResponse:
      type: object
      description: Response model for pipeline quality review
      properties:
        excludedFiles:
          type: array
          description: >-
            List of files excluded from review due to unsupported file
            extensions
          items:
            type: string
        results:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/RuleResult'
          description: Map of pipeline names to their validation results
        reviewStatus:
          type: string
          description: >-
            Overall review status: PASSED or FAILED. FAILED if any rule failed
            with error enforcement.
          example: PASSED
    ProblemDetail:
      type: object
      properties:
        detail:
          type: string
        instance:
          type: string
        status:
          type: integer
          format: int32
        title:
          type: string
        type:
          type: string
          format: uri
        violations:
          type: array
          items:
            type: string
    RuleResult:
      type: object
      description: Result of a single rule validation
      properties:
        errorDetail:
          $ref: '#/components/schemas/ErrorDetail'
          description: Error details if the validation failed
        ruleName:
          type: string
          description: The name of the rule that was validated
          example: maximum-components
        status:
          type: string
          description: >-
            The validation status of the rule (PASSED, WARNING, FAILED, or
            ERROR).<br><br> PASSED = Rule validation passed with no
            issues.<br><br> WARNING = Rule validation passed with warning
            enforcement.<br><br> FAILED = Rule validation failed with error
            enforcement.<br><br> ERROR = An error occurred during rule
            validation.
          enum:
            - PASSED
            - WARNING
            - FAILED
            - ERROR
          example: PASSED
        violations:
          type: array
          description: List of specific violations found during validation
          example:
            - component1
            - component2
          items:
            type: string
    ErrorDetail:
      type: object
      properties:
        message:
          type: string
          description: The error message describing what went wrong
          example: Rule configuration is invalid
        type:
          type: string
          description: The error type category
          example: designer/invalid-rule-configuration
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: a valid bearer token
      scheme: bearer
      type: http

````