Hypertune GraphQL API

The GraphQL API from Hypertune — 1 operation(s) for graphql.

OpenAPI Specification

hypertune-graphql-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Hypertune Edge GraphQL API
  description: HTTP surface of Hypertune Edge, the Cloudflare-CDN-hosted edge service that delivers feature-flag logic and serves the GraphQL evaluation API for the Hypertune feature-flag, experimentation, analytics, and app-configuration platform. Hypertune is primarily consumed through its type-safe TypeScript SDK (which fetches flag logic once at initialization and then evaluates flags locally, synchronously, in memory) and through this token-authenticated GraphQL Edge endpoint for no-SDK access. Flag logic is authored in Hyperlang and projected as a per-project GraphQL schema, so concrete query fields and arguments differ per project. Analytics events and exposures are flushed back to Hypertune Edge by the SDK in the background. This document models the documented edge transport; it does not fabricate undocumented management endpoints.
  termsOfService: https://www.hypertune.com/terms
  contact:
    name: Hypertune
    url: https://www.hypertune.com
  version: '1.0'
servers:
- url: https://edge.hypertune.com
  description: Hypertune Edge (Cloudflare CDN)
security:
- projectToken: []
tags:
- name: GraphQL
paths:
  /graphql:
    get:
      operationId: evaluateFlags
      tags:
      - GraphQL
      summary: Evaluate flags, experiments, and config via the GraphQL Edge API.
      description: Send a GraphQL query to Hypertune Edge to evaluate your feature flags, experiments, and app configuration. The query must supply all field arguments (the targeting context) so flag logic can be fully reduced into a concrete JSON result. The project token is passed as a URL-encoded query parameter; the GraphQL query and variables are passed URL-encoded on the same GET request. Responses are served from the edge, typically in under 25ms.
      parameters:
      - name: token
        in: query
        required: true
        description: URL-encoded Hypertune project token.
        schema:
          type: string
      - name: query
        in: query
        required: true
        description: URL-encoded GraphQL query. Must contain all field arguments.
        schema:
          type: string
      - name: variables
        in: query
        required: false
        description: URL-encoded JSON string of GraphQL variables.
        schema:
          type: string
      - name: operationName
        in: query
        required: false
        description: Name of the operation to execute when the query defines several.
        schema:
          type: string
      responses:
        '200':
          description: GraphQL response envelope with the reduced flag/config result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '400':
          description: Malformed query or missing required field arguments.
        '401':
          description: Missing or invalid project token.
    post:
      operationId: evaluateFlagsPost
      tags:
      - GraphQL
      summary: Evaluate flags via a GraphQL POST request.
      description: Standard GraphQL POST form of the evaluation endpoint. The project token is supplied as a URL query parameter and the GraphQL query and variables are sent as a JSON request body. As with the GET form, the query must supply all field arguments so flag logic is fully reduced to JSON.
      parameters:
      - name: token
        in: query
        required: true
        description: URL-encoded Hypertune project token.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
      responses:
        '200':
          description: GraphQL response envelope with the reduced flag/config result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '400':
          description: Malformed query or missing required field arguments.
        '401':
          description: Missing or invalid project token.
components:
  schemas:
    GraphQLResponse:
      type: object
      properties:
        data:
          type: object
          additionalProperties: true
          description: The reduced flag/config result, rooted at the project's `root` field. Concrete fields are generated per project from the Hyperlang flag tree.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GraphQLError'
    GraphQLError:
      type: object
      properties:
        message:
          type: string
        path:
          type: array
          items:
            type: string
        locations:
          type: array
          items:
            type: object
            properties:
              line:
                type: integer
              column:
                type: integer
    GraphQLRequest:
      type: object
      required:
      - query
      properties:
        query:
          type: string
          description: GraphQL query string. Must contain all field arguments.
        variables:
          type: object
          additionalProperties: true
          description: Optional GraphQL variables.
        operationName:
          type: string
          description: Optional operation name.
  securitySchemes:
    projectToken:
      type: apiKey
      in: query
      name: token
      description: URL-encoded Hypertune project token passed as a query parameter.