Faros AI Ingestion API

The Ingestion API from Faros AI — 2 operation(s) for ingestion.

OpenAPI Specification

faros-ingestion-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Faros AI Account Ingestion API
  description: REST surface for the Faros AI engineering-operations intelligence platform. Covers account/identity, graph management, event and data ingestion, inbound webhooks, and the GraphQL query endpoint over the Faros canonical model. All requests are authenticated with a Faros API key passed in the Authorization header. Endpoint paths are modeled from the public Faros documentation, faros-js-client, and faros-events-cli; verify against the Faros API reference for exact request/response schemas.
  termsOfService: https://www.faros.ai/legal/terms-of-service
  contact:
    name: Faros AI Support
    email: support@faros.ai
    url: https://docs.faros.ai
  version: '1.0'
servers:
- url: https://prod.api.faros.ai
  description: Faros production API
security:
- apiKey: []
tags:
- name: Ingestion
paths:
  /graphs/{graph}/models:
    parameters:
    - $ref: '#/components/parameters/graph'
    get:
      operationId: listModels
      tags:
      - Ingestion
      summary: List canonical models available in the graph.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  models:
                    type: array
                    items:
                      type: string
    post:
      operationId: writeModelRecords
      tags:
      - Ingestion
      summary: Write canonical model records into the graph.
      description: Ingests records that conform to the Faros canonical model (for example cicd_Deployment, cicd_Build, vcs_PullRequest, tms_Task). Records are upserted into the graph and reconciled against existing entities.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelRecordBatch'
      responses:
        '200':
          description: OK
  /graphs/{graph}/revisions:
    parameters:
    - $ref: '#/components/parameters/graph'
    post:
      operationId: createRevision
      tags:
      - Ingestion
      summary: Create an ingestion revision.
      description: Opens a revision that groups a batch of model writes for the graph, used to coordinate and track an ingestion run.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Revision'
components:
  parameters:
    graph:
      name: graph
      in: path
      required: true
      description: The name of the graph, e.g. "default".
      schema:
        type: string
  schemas:
    ModelRecordBatch:
      type: object
      properties:
        origin:
          type: string
          description: Source identifier for the ingested records.
        entries:
          type: array
          items:
            type: object
            additionalProperties: true
            description: 'A canonical model record keyed by entity type, e.g. { "cicd_Deployment": { ... } }.'
    Revision:
      type: object
      properties:
        revision:
          type: string
        status:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: Faros API key created in the Faros application under Settings -> API Keys. Passed directly in the Authorization header.