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

> ## Agent Instructions
> Treat Stackdome as an application-delivery platform for coding agents and developers, not as a Kubernetes dashboard.
> Prefer the Stackdome agent plugin as the user entry point and the stackdome CLI as the execution interface.
> Route agents who need the maintained deploy skill to npx skills add stackdome/skills and the complete operational workflow to /guides/ai-agents.
> Verify commands and flags with stackdome --help. Run stackdome init before authoring stackfile.yaml and stackdome validate before deploying.
> Use -o json for automation and verify documented terminal states before claiming success.
> Never request a user's account password. Use API-token authentication.
> During alpha, Stackdome Cloud is ephemeral and capacity-limited, and each organization can connect one cluster.
> Do not expose Kubernetes as a user concern unless the task is self-hosting or infrastructure architecture.

# Add a new ObjectStore for backup storage

> Add a new ObjectStore configuration for storing PostgreSQL backups and WAL files



## OpenAPI

````yaml /openapi.yaml post /api/v1/organizations/{org_id}/projects/{project_name}/object-stores
openapi: 3.0.0
info:
  description: >-
    Deploy, debug, and operate applications through the Stackdome REST API on
    Stackdome Cloud or a self-hosted installation. This API is in alpha and may
    change before general availability.
  title: Stackdome API
  version: 0.0.1-alpha
servers:
  - url: /
security: []
paths:
  /api/v1/organizations/{org_id}/projects/{project_name}/object-stores:
    post:
      summary: Add a new ObjectStore for backup storage
      description: >-
        Add a new ObjectStore configuration for storing PostgreSQL backups and
        WAL files
      parameters:
        - description: The ID of the organization
          explode: false
          in: path
          name: org_id
          required: true
          schema:
            type: string
          style: simple
        - description: The name of the project
          explode: false
          in: path
          name: project_name
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectStore'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectStore'
          description: ObjectStore created successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid request data
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: ObjectStore already exists
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal server error
      security:
        - Bearer: []
components:
  schemas:
    ObjectStore:
      example:
        organisation_id: organisation_id
        updated_at: '2000-01-23T04:56:07.000Z'
        project_id: project_id
        name: name
        created_at: '2000-01-23T04:56:07.000Z'
        id: id
        spec:
          destination_path: destination_path
          retention_policy: 7d
          configuration:
            gcs_credentials:
              service_account_credentials:
                secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
                key: key
            s3_credentials:
              access_key_id:
                secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
                key: key
              endpoint_url: endpoint_url
              secret_access_key:
                secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
                key: key
              region: region
            azure_credentials:
              storage_account_name: storage_account_name
              connection_string:
                secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
                key: key
        status:
          state: Pending
          message: message
      properties:
        id:
          readOnly: true
          type: string
        organisation_id:
          readOnly: true
          type: string
        project_id:
          readOnly: true
          type: string
        name:
          description: Unique name for this object store configuration
          type: string
        spec:
          $ref: '#/components/schemas/ObjectStoreSpec'
        status:
          $ref: '#/components/schemas/ObjectStoreStatus'
        created_at:
          format: date-time
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      required:
        - name
        - spec
      type: object
    Error:
      allOf:
        - $ref: '#/components/schemas/ObjectReference'
        - $ref: '#/components/schemas/Error_allOf'
    ObjectStoreSpec:
      example:
        destination_path: destination_path
        retention_policy: 7d
        configuration:
          gcs_credentials:
            service_account_credentials:
              secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
              key: key
          s3_credentials:
            access_key_id:
              secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
              key: key
            endpoint_url: endpoint_url
            secret_access_key:
              secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
              key: key
            region: region
          azure_credentials:
            storage_account_name: storage_account_name
            connection_string:
              secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
              key: key
      properties:
        configuration:
          $ref: '#/components/schemas/ObjectStoreConfiguration'
        destination_path:
          description: >-
            Storage destination URL (e.g., s3://bucket/path,
            https://account.blob.core.windows.net/container/path)
          type: string
        retention_policy:
          default: 7d
          description: Retention policy (e.g., '1d', '7d', '30d')
          pattern: ^[1-9][0-9]*[dwm]$
          type: string
      required:
        - configuration
        - destination_path
      type: object
    ObjectStoreStatus:
      example:
        state: Pending
        message: message
      properties:
        state:
          enum:
            - Pending
            - Ready
            - Error
          type: string
        message:
          type: string
      type: object
    ObjectReference:
      properties:
        id:
          type: string
        kind:
          type: string
        href:
          type: string
      type: object
    Error_allOf:
      properties:
        code:
          type: string
        reason:
          type: string
        operation_id:
          type: string
        details:
          additionalProperties: true
          description: Optional structured, machine-readable error context
          type: object
      type: object
    ObjectStoreConfiguration:
      example:
        gcs_credentials:
          service_account_credentials:
            secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
            key: key
        s3_credentials:
          access_key_id:
            secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
            key: key
          endpoint_url: endpoint_url
          secret_access_key:
            secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
            key: key
          region: region
        azure_credentials:
          storage_account_name: storage_account_name
          connection_string:
            secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
            key: key
      properties:
        s3_credentials:
          $ref: '#/components/schemas/S3Credentials'
        azure_credentials:
          $ref: '#/components/schemas/AzureCredentials'
        gcs_credentials:
          $ref: '#/components/schemas/GCSCredentials'
      type: object
    S3Credentials:
      example:
        access_key_id:
          secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          key: key
        endpoint_url: endpoint_url
        secret_access_key:
          secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          key: key
        region: region
      properties:
        access_key_id:
          $ref: '#/components/schemas/SecretReference'
        secret_access_key:
          $ref: '#/components/schemas/SecretReference'
        region:
          description: AWS region
          type: string
        endpoint_url:
          description: Custom S3 endpoint URL for S3-compatible storage
          type: string
      required:
        - access_key_id
        - region
        - secret_access_key
      type: object
    AzureCredentials:
      example:
        storage_account_name: storage_account_name
        connection_string:
          secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          key: key
      properties:
        connection_string:
          $ref: '#/components/schemas/SecretReference'
        storage_account_name:
          description: Azure storage account name
          type: string
      required:
        - connection_string
      type: object
    GCSCredentials:
      example:
        service_account_credentials:
          secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          key: key
      properties:
        service_account_credentials:
          $ref: '#/components/schemas/SecretReference'
      required:
        - service_account_credentials
      type: object
    SecretReference:
      example:
        secret_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        key: key
      properties:
        secret_id:
          description: UUID of the Stackdome secret
          format: uuid
          type: string
        key:
          description: Key within the secret containing the value
          type: string
      required:
        - key
        - secret_id
      type: object
  securitySchemes:
    Bearer:
      bearerFormat: JWT
      scheme: bearer
      type: http

````