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

# Activate plugin

> Make a validated registration serve every role it declares, as a new immutable Pipeline Plan that api and worker follow without restarting; the previous plan stays readable. Every other version of the same plugin leaves the plan, and so does every registration whose roles it takes over entirely. The new plan must keep the rules the engine applies at startup (one normalizer per media type, one provider per connector kind, one ingestion and one retrieval plugin, extension namespace and vector space ownership); otherwise 409 plugin_conflict lists what breaks. 409 registration_not_validated for a registration that is not validated or inactive; 422 unsupported_role for an alert-rule plugin, which the configuration pins. Activating the registration that is already active returns the active plan. Work already started may finish on the new plan (THE-782 pins it to its own). Requires plugins:admin.



## OpenAPI

````yaml /openapi.yaml post /v0/admin/plugins/{registration_id}/activate
openapi: 3.1.0
info:
  title: Quivr HTTP API
  version: 0.0.0-draft
  description: >-
    Every endpoint of the Quivr v0 HTTP API. Send an API key as a bearer token;
    the key decides the Organization, the actions and the Corpora a request may
    reach.
servers: []
security:
  - ApiKey: []
paths:
  /v0/admin/plugins/{registration_id}/activate:
    post:
      tags:
        - Admin
      summary: Activate plugin
      description: >-
        Make a validated registration serve every role it declares, as a new
        immutable Pipeline Plan that api and worker follow without restarting;
        the previous plan stays readable. Every other version of the same plugin
        leaves the plan, and so does every registration whose roles it takes
        over entirely. The new plan must keep the rules the engine applies at
        startup (one normalizer per media type, one provider per connector kind,
        one ingestion and one retrieval plugin, extension namespace and vector
        space ownership); otherwise 409 plugin_conflict lists what breaks. 409
        registration_not_validated for a registration that is not validated or
        inactive; 422 unsupported_role for an alert-rule plugin, which the
        configuration pins. Activating the registration that is already active
        returns the active plan. Work already started may finish on the new plan
        (THE-782 pins it to its own). Requires plugins:admin.
      operationId: activatePlugin
      parameters:
        - name: registration_id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PipelinePlan'
        default:
          description: >-
            Structured error; 401 unauthenticated, 403 without plugins:admin,
            404 unknown registration, 409 registration_not_validated or
            plugin_conflict, 422 unsupported_role, 503 storage unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PipelinePlan:
      type: object
      additionalProperties: false
      properties:
        plan_id:
          type: string
          minLength: 1
        created_at:
          type: string
          format: date-time
        activated_at:
          type: string
          format: date-time
        source:
          type: string
          enum:
            - configuration
            - activation
            - rollback
          description: >-
            What recorded the plan, and so why the plan changed. configuration
            is the startup configuration, which applies the roles its pins
            changed since it last applied, even over an earlier activation of
            the same role. activation is an operator activation. rollback is an
            operator rollback to an earlier plan's roles.
        previous_plan_id:
          type: string
          minLength: 1
          description: >-
            The plan this one replaced; absent for the first plan of the
            deployment.
        roles:
          type: array
          description: One entry per role, sorted by role.
          items:
            $ref: '#/components/schemas/PipelinePlanRole'
      required:
        - plan_id
        - created_at
        - activated_at
        - source
        - roles
    Error:
      type: object
      additionalProperties: false
      properties:
        code:
          type: string
          minLength: 1
        message:
          type: string
          minLength: 1
        retryable:
          type: boolean
        field:
          type: string
          minLength: 1
          description: >-
            JSON Pointer (RFC 6901) to the request member that caused a 422,
            when known (for example /config/url or /credential/secret/token on
            connector commands).
        resync_url:
          type: string
          format: uri-reference
      required:
        - code
        - message
        - retryable
    PipelinePlanRole:
      type: object
      additionalProperties: false
      properties:
        role:
          type: string
          minLength: 1
        registration_id:
          type: string
          minLength: 1
        plugin_id:
          type: string
          minLength: 1
        version:
          type: string
          minLength: 1
      required:
        - role
        - registration_id
        - plugin_id
        - version
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        API key, not necessarily a JWT. Server derives Organization, permitted
        actions and Corpus scope; every resource access is authorized.

````