Binarly Chart API

The Chart API from Binarly — 7 operation(s) for chart.

OpenAPI Specification

binarly-chart-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Binarly Assistant Chart API
  version: 4.275.2
security:
- auth: []
tags:
- name: Chart
paths:
  /api/v4/charts/components:chartList:
    post:
      summary: Chart List Components
      operationId: ChartListComponents
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Chart
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartComponentsQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartComponents'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/charts/dependencies:chartList:
    post:
      summary: Chart List Dependencies
      operationId: ChartListDependencies
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Chart
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartDependenciesQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartDependencies'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/charts/findings:chartList:
    post:
      summary: Chart List Findings
      operationId: ChartListFindings
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Chart
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartFindingsQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartFindings'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/charts/findingsTrend:chartList:
    post:
      summary: Chart List Findings Trend
      operationId: ChartListFindingsTrend
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Chart
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartFindingsTrendQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartFindings'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/charts/cryptographicAssets:chartList:
    post:
      summary: Chart List Cryptographic Assets
      operationId: ChartListCryptographicAssets
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Chart
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartCryptographicAssetsQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartCryptographicAssets'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
  /api/v4/charts/jira/issues:chartList:
    post:
      summary: Chart List Jira Issues
      operationId: ChartListJiraIssues
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Chart
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartJiraQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartJiraIssues'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v4/charts/provenances:chartList:
    post:
      summary: Chart List Provenances
      operationId: ChartListProvenances
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Chart
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartProvenancesQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartProvenances'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  responses:
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadGateway:
      description: Bad Gateway
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    WithOptionalName:
      type: object
      properties:
        name:
          type: string
    ChartProvenances:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/ChartProvenanceRow'
    WithOptionalProduct:
      type: object
      properties:
        product:
          type: string
    ChartJiraIssues:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/ChartJiraIssueRow'
    ChartComponentRow:
      type: object
      required:
      - value
      properties:
        hasFindings:
          type: string
        value:
          type: integer
          x-go-type: int64
    WithOptionalProductName:
      type: object
      properties:
        productName:
          type: string
    WithOptionalStringProductId:
      type: object
      properties:
        productId:
          type: string
    WithOptionalExploitabilityPredicates:
      type: object
      properties:
        exploitabilityPredicates:
          type: array
          items:
            type: string
            enum:
            - kev
            - ransomware
            - weaponizedExploit
            - verifiedExploit
            - publicExploit
            - publicPoc
    WithOptionalVulnerabilitiesCount:
      type: object
      properties:
        vulnerabilitiesCount:
          type: integer
    WithOptionalVendor:
      type: object
      properties:
        vendor:
          type: string
    WithOptionalSecretKind:
      type: object
      properties:
        secret.kind:
          type: string
    ErrorDetail:
      type: object
      required:
      - error
      properties:
        reason:
          type: string
          x-go-type-skip-optional-pointer: true
        field:
          type: string
          x-go-type-skip-optional-pointer: true
        service:
          type: string
          x-go-type-skip-optional-pointer: true
    WithOptionalCryptoProtocolName:
      type: object
      properties:
        cryptoProtocolName:
          type: string
    ChartCryptographicAssetsQuery:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
            enum:
            - type
            - isVulnerable
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
    ChartCryptographicAssetsRow:
      type: object
      required:
      - value
      properties:
        type:
          type: string
        isVulnerable:
          type: boolean
        value:
          type: integer
          x-go-type: int64
    ChartFindingRow:
      allOf:
      - $ref: '#/components/schemas/WithOptionalStringProductId'
      - $ref: '#/components/schemas/WithOptionalProductName'
      - $ref: '#/components/schemas/WithOptionalSeverity'
      - $ref: '#/components/schemas/WithOptionalToolName'
      - $ref: '#/components/schemas/WithOptionalFindingType'
      - $ref: '#/components/schemas/WithOptionalDate'
      - $ref: '#/components/schemas/WithOptionalName'
      - $ref: '#/components/schemas/WithOptionalTitle'
      - $ref: '#/components/schemas/WithOptionalAge'
      - $ref: '#/components/schemas/WithOptionalSecretKind'
      - $ref: '#/components/schemas/WithOptionalCryptoAlgorithmName'
      - $ref: '#/components/schemas/WithOptionalCryptoProtocolName'
      - $ref: '#/components/schemas/WithOptionalIsNistIR8547Compliant'
      - $ref: '#/components/schemas/WithOptionalExploitabilityPredicates'
      - $ref: '#/components/schemas/WithValue'
    WithOptionalToolName:
      type: object
      properties:
        toolName:
          type: string
    ChartDependencies:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/ChartDependencyRow'
    WithOptionalMedianEmsScore:
      type: object
      properties:
        medianEmsScore:
          type: number
          format: float
    ChartJiraIssueRow:
      type: object
      required:
      - value
      properties:
        issueStatus:
          type: string
        value:
          type: integer
    WithOptionalAge:
      type: object
      properties:
        age:
          type: string
    WithValue:
      type: object
      required:
      - value
      properties:
        value:
          type: integer
          x-go-type: int64
    ChartDependenciesQuery:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
            enum:
            - product
            - version
            - productId
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
        aggregation:
          type: object
          properties:
            kind:
              type: string
              enum:
              - countAll
              - countDistinct
    FilterItem:
      type: object
      required:
      - field
      - value
      properties:
        field:
          type: string
        comparator:
          type: string
          enum:
          - equals
          - contains
          - between
          - in
          - notContains
          - overlaps
        value: {}
    ChartFindingsTrendQuery:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
            enum:
            - date
            - severity
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
    ChartComponents:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/ChartComponentRow'
    FilterSet:
      type: object
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
          description: Filters to be AND‑combined within this set
      required:
      - filters
    WithOptionalSeverity:
      type: object
      properties:
        severity:
          type: string
          enum:
          - unspecified
          - low
          - medium
          - high
          - critical
    ChartDependencyRow:
      type: object
      required:
      - value
      properties:
        product:
          type: string
        version:
          type: string
        productId:
          type: string
        value:
          type: integer
          x-go-type: int32
    ForbiddenErrorResponse:
      type: object
      required:
      - message
      - permission
      - resourceName
      properties:
        message:
          type: string
        permission:
          type: string
        resourceName:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
    ChartProvenanceRow:
      allOf:
      - $ref: '#/components/schemas/WithOptionalVendor'
      - $ref: '#/components/schemas/WithOptionalProduct'
      - $ref: '#/components/schemas/WithOptionalVulnerabilitiesCount'
      - $ref: '#/components/schemas/WithOptionalMedianEmsScore'
      - $ref: '#/components/schemas/WithValue'
    ChartProvenancesQuery:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
            enum:
            - vendor
            - product
            - vulnerabilitiesCount
            - medianEmsScore
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
    ChartJiraQuery:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
            enum:
            - issueStatus
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
    ErrorResponse:
      required:
      - message
      type: object
      properties:
        message:
          type: string
          readOnly: true
          x-go-type-skip-optional-pointer: true
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
    WithOptionalDate:
      type: object
      properties:
        date:
          type: string
    ChartFindings:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/ChartFindingRow'
    ChartCryptographicAssets:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/ChartCryptographicAssetsRow'
    WithOptionalCryptoAlgorithmName:
      type: object
      properties:
        cryptoAlgorithmName:
          type: string
    ChartComponentsQuery:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
            enum:
            - hasFindings
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
    WithOptionalFindingType:
      type: object
      properties:
        type:
          type: string
          enum:
          - knownVulnerability
          - unknownVulnerability
          - maliciousCode
          - suspiciousCode
          - dependencyVulnerability
          - cryptographicAsset
          - mitigation
          - weakness
          - supplyChainFailure
          - secret
          - leakedSecret
          - uncategorized
    ChartFindingsQuery:
      type: object
      properties:
        fields:
          type: array
          items:
            type: string
            enum:
            - productId
            - productName
            - severity
            - toolName
            - type
            - date
            - name
            - title
            - age
            - secret.kind
            - cryptoAlgorithmName
            - cryptoProtocolName
            - isNistIR8547Compliant
            - exploitabilityPredicates
          description: List of fields to include in the chart
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterItem'
          description: Standard AND‑combined filters
        filterSets:
          type: array
          items:
            $ref: '#/components/schemas/FilterSet'
          description: 'Array of filter sets: filters within each set are combined with AND, and sets are combined with OR.

            '
    WithOptionalIsNistIR8547Compliant:
      type: object
      properties:
        isNistIR8547Compliant:
          type: boolean
    WithOptionalTitle:
      type: object
      properties:
        title:
          type: string
  securitySchemes:
    auth:
      type: http
      scheme: bearer
      bearerFormat: JWT