> ## Documentation Index
> Fetch the complete documentation index at: https://hoopdev-docs-improve-idp-sso-pages.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Search

> Performs a search for connections and runbooks based on the provided criteria.



## OpenAPI

````yaml https://use.hoop.dev/api/openapiv3.json get /search
openapi: 3.0.3
info:
  contact:
    email: help@hoop.dev
    name: Help
    url: https://help.hoop.dev
  description: >-
    Hoop.dev is an access gateway for databases and servers with an API for
    packet manipulation
  license:
    name: MIT
    url: https://opensource.org/license/mit
  termsOfService: https://hoop.dev/docs/legal/tos
  title: Hoop Api
  version: 1.49.10
servers:
  - url: https://use.hoop.dev/api
security: []
tags:
  - description: >
      Hoop implements Oauth2 and OIDC protocol to authenticate users in the
      system. To obtain a valid access token users need to authenticate in their
      own identity provider which is generated as a JSON response to the
      endpoint `http(s)://use.hoop.dev/api/login`. The identity provider them
      redirects the user to the callback endpoint containing the access token.


      The recommended approach of obtaining an access token is by visiting the
      Webapp main's page or using the **Hoop command line**. Example:


      ```sh

      hoop config create --api-url https://use.hoop.dev

      # save the token after authenticating at $HOME/.hoop/config.toml

      hoop login

      # show token information

      hoop config view --raw

      ```


      With an access token you could use any HTTP client to interact with the
      documented endpoints.

      The token must be sent through the `Authorization` header.


      Example:


      ```sh

      # obtain the current configuration of the server

      curl https://use.hoop.dev/api/serverinfo -H "Authorization: Bearer
      $ACCESS_TOKEN"

      ```
    name: Authentication
  - description: >
      Users are active and assigned to the default organization when they
      signup. A user could be set to an inactive state preventing it from
      accessing the platform, however it’s recommended to manage the state of
      users in the identity provider.


      - The `sub` claim is used as the main identifier of the user in the
      platform.

      - The profile of the user is derived from the id_token claims `email` and
      `name`.


      When a user authenticates for the first time, it performs an automatic
      signup that persist the profile claims along with it’s unique identifier.

      ​

      ### Groups


      Groups allows defining who may access or interact with certain resources.


      - For connection resources it’s possible to define which groups has access
      to a specific connection, this is enforced when the Access Control feature
      is enabled.

      - For review resources, it’s possible to define which groups are allowed
      to approve an execution, this is enforced when the Review feature is
      enabled.


      > This resource could be managed manually via Webapp or propagated by the
      identity provider via ID Token. In this mode, groups are sync when a user
      performs a login.


      ### Roles


      - The `admin` group is a special role that grants full access to all
      resources


      This role should be granted to users that are responsible for managing the
      Gateway. All other users are regular, meaning that they can access their
      own resources and interact with connections.
    name: User Management
  - description: Routes used to manage and obtain information about the runtime server.
    name: Server Management
  - description: Features available in the gateway. See also **Plugin** resources.
    name: Features
  - description: >-
      Proxy manager endpoints controls how clients connect via gRPC in the
      gateway. These endpoints are meant to be used when a client is initialized
      via `hoop proxy-manager`.
    name: Proxy Manager
  - name: Connections
  - name: Agents
  - name: Runbooks
  - name: Guard Rails
  - name: Reviews
  - name: Sessions
  - name: Organization Management
  - name: Reports
paths:
  /search:
    get:
      tags:
        - Search
      summary: Search
      description: >-
        Performs a search for connections and runbooks based on the provided
        criteria.
      parameters:
        - description: Search term
          in: query
          name: term
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/openapi.SearchResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/openapi.HTTPError'
          description: Bad Request
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/openapi.HTTPError'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/openapi.HTTPError'
          description: Internal Server Error
components:
  schemas:
    openapi.SearchResponse:
      properties:
        connections:
          description: Connections found in the search
          items:
            $ref: '#/components/schemas/openapi.ConnectionSearch'
          type: array
        errors:
          description: Any errors found during the search
          items:
            type: string
          type: array
        resources:
          description: Resources found in the search
          items:
            $ref: '#/components/schemas/openapi.ResourceSearch'
          type: array
        runbooks:
          description: Runbooks found in the search
          items:
            $ref: '#/components/schemas/openapi.RunbookSearch'
          type: array
      type: object
    openapi.HTTPError:
      properties:
        message:
          example: the error description
          type: string
      type: object
    openapi.ConnectionSearch:
      properties:
        access_mode_connect:
          description: |-
            Toggle Port Forwarding
            * enabled - Enable to perform port forwarding for this connection
            * disabled - Disable port forwarding for this connection
          enum:
            - enabled
            - disabled
          type: string
        access_mode_exec:
          description: |-
            Toggle Ad Hoc Executions
            * enabled - Enable to run ad-hoc executions for this connection
            * disabled - Disable ad-hoc executions for this connection
          enum:
            - enabled
            - disabled
          type: string
        access_mode_runbooks:
          description: |-
            Toggle Ad Hoc Runbooks Executions
            * enabled - Enable to run runbooks for this connection
            * disabled - Disable runbooks execution for this connection
          enum:
            - enabled
            - disabled
          type: string
        id:
          description: Unique ID of the resource
          example: 5364ec99-653b-41ba-8165-67236e894990
          format: uuid
          readOnly: true
          type: string
        name:
          description: Name of the connection. This attribute is immutable when updating it
          example: pgdemo
          type: string
        resource_name:
          description: The resource name associated with this connection
          example: my-resource
          type: string
        status:
          description: >-
            Status is a read only field that informs if the connection is
            available for interaction

            * online - The agent is connected and alive

            * offline - The agent is not connected
          enum:
            - online
            - offline
          readOnly: true
          type: string
        subtype:
          description: |-
            Sub Type is the underline implementation of the connection:
            * postgres - Implements Postgres protocol
            * mysql - Implements MySQL protocol
            * mongodb - Implements MongoDB Wire Protocol
            * mssql - Implements Microsoft SQL Server Protocol
            * oracledb - Implements Oracle Database Protocol
            * tcp - Forwards a TCP connection
            * ssh - Forwards a SSH connection
            * httpproxy - Forwards a HTTP connection
            * dynamodb - AWS DynamoDB experimental integration
            * cloudwatch - AWS CloudWatch experimental integration
          example: postgres
          type: string
        type:
          description: |-
            Type represents the main type of the connection:
            * database - Database protocols
            * application - Custom applications
            * custom - Shell applications
          enum:
            - database
            - application
            - custom
          example: database
          type: string
      required:
        - access_mode_connect
        - access_mode_exec
        - access_mode_runbooks
        - name
        - type
      type: object
    openapi.ResourceSearch:
      properties:
        id:
          description: Unique ID of the resource
          example: 5364ec99-653b-41ba-8165-67236e894990
          format: uuid
          readOnly: true
          type: string
        name:
          description: Name of the connection. This attribute is immutable when updating it
          example: pgdemo
          type: string
        subtype:
          description: |-
            Sub Type is the underline implementation of the connection:
            * postgres - Implements Postgres protocol
            * mysql - Implements MySQL protocol
            * mongodb - Implements MongoDB Wire Protocol
            * mssql - Implements Microsoft SQL Server Protocol
            * oracledb - Implements Oracle Database Protocol
            * tcp - Forwards a TCP connection
            * ssh - Forwards a SSH connection
            * httpproxy - Forwards a HTTP connection
            * dynamodb - AWS DynamoDB experimental integration
            * cloudwatch - AWS CloudWatch experimental integration
          example: postgres
          type: string
        type:
          description: |-
            Type represents the main type of the connection:
            * database - Database protocols
            * application - Custom applications
            * custom - Shell applications
          enum:
            - database
            - application
            - custom
          example: database
          type: string
      required:
        - name
        - type
      type: object
    openapi.RunbookSearch:
      properties:
        name:
          description: The runbook name
          example: myrunbooks/run-backup.runbook.sql
          type: string
        repository:
          description: Repository name
          example: github.com/myorg/myrunbooks
          type: string
      type: object

````