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

# Get project modules config

> Returns project metadata, environments, and module instances with their selected module versions. The default raw format mirrors persisted module instance input for debugging. Use format=pretty for an authoring-oriented project modules config with portable module references and resolver-derived input fields omitted. Empty input fields are included by default for raw format and omitted by default for pretty format.



## OpenAPI

````yaml https://api.ravion.com/openapi.yaml get /projects/{id}/config
openapi: 3.0.0
info:
  title: Ravion
  version: 0.0.0
servers:
  - url: https://api.ravion.com
security:
  - BearerAuth: []
tags:
  - name: Projects
  - name: Environments
  - name: Pipelines
  - name: PipelineRuns
  - name: TerraformResources
  - name: TerraformExecutionSummaries
  - name: PipelineStepExecutions
  - name: AwsCloudWatch
  - name: PipelineVersions
  - name: Organizations
  - name: Stacks
  - name: StackWorkspaces
  - name: Auth
  - name: OAuth
  - name: User
  - name: Health
  - name: Memberships
  - name: ServiceAccounts
  - name: AwsDefaultNetworks
  - name: AwsAccounts
  - name: ApiKeys
  - name: ExecutionEnvironments
  - name: ModuleDefinitions
  - name: ModuleVersions
  - name: ModuleInstances
  - name: DefaultValueDefinitions
  - name: DefaultValues
  - name: CodeSources
  - name: Github
  - name: Gitlab
  - name: Git
  - name: Values
  - name: Deployments
  - name: DeploymentResources
  - name: InfrastructureEvents
  - name: WebSocket
  - name: Describe
paths:
  /projects/{id}/config:
    get:
      tags:
        - Projects
      summary: Get project modules config
      description: >-
        Returns project metadata, environments, and module instances with their
        selected module versions. The default raw format mirrors persisted
        module instance input for debugging. Use format=pretty for an
        authoring-oriented project modules config with portable module
        references and resolver-derived input fields omitted. Empty input fields
        are included by default for raw format and omitted by default for pretty
        format.
      operationId: GetProjectConfig
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
        - description: Optional response format. Defaults to raw when omitted.
          in: query
          name: format
          schema:
            allOf:
              - $ref: '#/components/schemas/Project.ProjectConfigFormat'
            nullable: true
        - description: >-
            Include null, empty object, and empty array input fields. Defaults
            to true for raw format and false for pretty format.
          in: query
          name: includeEmptyFields
          schema:
            nullable: true
            type: boolean
      responses:
        '200':
          content:
            application/cue; charset=utf-8:
              schema:
                type: string
            application/json:
              schema:
                $ref: '#/components/schemas/Project.ProjectConfig'
            application/jsonc; charset=utf-8:
              schema:
                type: string
            application/yaml; charset=utf-8:
              schema:
                type: string
          description: The request has succeeded.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The request is invalid or malformed.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You are not authenticated
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You do not have permission to access this resource.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The server cannot find the requested resource.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Server error
components:
  schemas:
    Project.ProjectConfigFormat:
      description: >-
        Controls how persisted project configuration is projected in the
        response.
      enum:
        - raw
        - pretty
      type: string
    Project.ProjectConfig:
      additionalProperties: false
      description: >-
        Complete read-only project configuration assembled from persisted
        project resources.
      properties:
        environments:
          items:
            $ref: '#/components/schemas/Project.ProjectConfigEnvironment'
          type: array
        project:
          $ref: '#/components/schemas/Project.ProjectConfigProject'
      required:
        - project
        - environments
      type: object
    Errors.UserFacingErrorData:
      additionalProperties: false
      description: |-
        User-facing error presentation data.
        This is what the API returns to the frontend after formatting ErrorData
        using CEL templates from the error registry.

        Used for both:
        - Error fields on domain models (e.g., PipelineRun.error)
        - API error response bodies (HTTP 4xx/5xx responses)
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/Errors.Action'
          description: Optional action to help resolve the error
        code:
          description: Full error code, e.g., "Ravion:Pipeline:NOT_FOUND"
          type: string
        description:
          description: Additional description with more details
          type: string
        details:
          description: Structured details rendered as user-facing sections.
          items:
            $ref: '#/components/schemas/Errors.UserFacingErrorDetailSection'
          type: array
        isInternal:
          description: >-
            Indicates whether this error is internal (only set when
            ShowInternal=true).

            This allows SUPERADMINs to identify internal errors while viewing
            full details.
          type: boolean
        message:
          description: Main error message (required)
          type: string
        metadata:
          additionalProperties: {}
          description: >-
            Error params/metadata. Stripped for internal errors unless
            superadmin.
          type: object
        requestId:
          description: Request ID for correlating errors with server logs.
          type: string
      required:
        - code
        - message
      type: object
    Project.ProjectConfigEnvironment:
      additionalProperties: false
      description: >-
        Environment metadata and its module instances in deterministic config
        order.
      properties:
        description:
          type: string
        givenId:
          allOf:
            - $ref: '#/components/schemas/GivenId'
          description: User-provided environment identifier. Must be unique within project.
        id:
          type: string
        moduleInstances:
          items:
            $ref: '#/components/schemas/Project.ProjectConfigModuleInstance'
          type: array
        name:
          type: string
      required:
        - id
        - givenId
        - name
        - moduleInstances
      type: object
    Project.ProjectConfigProject:
      additionalProperties: false
      description: Project metadata included in project config responses.
      properties:
        description:
          type: string
        givenId:
          allOf:
            - $ref: '#/components/schemas/GivenId'
          description: >-
            User-provided project identifier. Must be unique within
            organization.
        id:
          type: string
        name:
          type: string
      required:
        - id
        - givenId
        - name
      type: object
    Errors.Action:
      additionalProperties: false
      description: Action to help user resolve the error
      properties:
        label:
          description: Button/link label text
          type: string
        url:
          description: URL to navigate to for resolution
          type: string
      required:
        - label
        - url
      type: object
    Errors.UserFacingErrorDetailSection:
      additionalProperties: false
      description: Structured user-facing error detail section.
      properties:
        items:
          description: List of detail values for this section.
          items:
            type: string
          type: array
        object:
          additionalProperties: {}
          description: Structured detail payload for object rendering.
          type: object
        render:
          description: Rendering hint for clients. Valid values are list or object.
          type: string
        title:
          description: Detail section title shown in the UI.
          type: string
      required:
        - title
        - render
      type: object
    GivenId:
      description: User-provided identifier pattern used by all givenId fields
      maxLength: 60
      pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$
      type: string
    Project.ProjectConfigModuleInstance:
      additionalProperties: false
      description: Module instance configuration plus the selected module version.
      properties:
        description:
          type: string
        givenId:
          allOf:
            - $ref: '#/components/schemas/GivenId'
          description: User-provided unique identifier. Must be unique within environment.
        id:
          type: string
        input:
          additionalProperties:
            nullable: true
          description: >-
            Module instance configuration input. Raw format mirrors persisted
            ModuleInstance.input.

            Pretty format converts selected module IDs to { ref: "..." } objects
            and omits inputs

            derived from selected references.
          type: object
        moduleDefinitionId:
          description: >-
            Module definition ID. Included in raw format and omitted in pretty
            format.
          type: string
        moduleVersionId:
          description: >-
            Module version ID. Included in raw format and omitted in pretty
            format.
          type: string
        name:
          type: string
        type:
          description: >-
            Module type identifier, copied from the module definition at
            creation time.
          type: string
        version:
          description: Semantic module version string.
          type: string
      required:
        - id
        - givenId
        - name
        - type
        - version
        - input
      type: object
  securitySchemes:
    BearerAuth:
      scheme: Bearer
      type: http

````