Netter project-steps API

The project-steps API from Netter — 5 operation(s) for project-steps.

OpenAPI Specification

netter-project-steps-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: DMI Backend actions project-steps API
  version: 0.1.0
tags:
- name: project-steps
paths:
  /api/v1/project-steps/{project_id}/steps:
    get:
      tags:
      - project-steps
      summary: List Project Steps
      description: List all non-suppressed steps in a project.
      operationId: list_project_steps_api_v1_project_steps__project_id__steps_get
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StepRead'
                title: Response List Project Steps Api V1 Project Steps  Project Id  Steps Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/project-steps/{project_id}/lineage:
    get:
      tags:
      - project-steps
      summary: Get Project Lineage
      description: Return the full project DAG for lineage visualization.
      operationId: get_project_lineage_api_v1_project_steps__project_id__lineage_get
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Project Lineage Api V1 Project Steps  Project Id  Lineage Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/project-steps/{project_id}/run-all:
    post:
      tags:
      - project-steps
      summary: Run All Steps
      description: 'Run all root steps in a project + cascade to downstream.


        ``force_full=true`` (query param) bypasses the AI Lambda''s content-

        addressed cache / the custom Lambda''s api_action ledger for this run

        only — used for manual "rebuild from scratch" replays after schema

        changes or bug fixes. Cascade-created runs do NOT inherit

        ``force_full`` (spec §7d).'
      operationId: run_all_steps_api_v1_project_steps__project_id__run_all_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - name: force_full
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Force Full
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__steps__schemas__RunRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/project-steps/{project_id}/runs:
    get:
      tags:
      - project-steps
      summary: List Project Runs
      description: List recent runs for a project, newest first, with step runs.
      operationId: list_project_runs_api_v1_project_steps__project_id__runs_get
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 10
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/app__steps__schemas__RunRead'
                title: Response List Project Runs Api V1 Project Steps  Project Id  Runs Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/project-steps/{project_id}/pause-all:
    post:
      tags:
      - project-steps
      summary: Pause All Steps
      description: Deactivate all triggers in a project.
      operationId: pause_all_steps_api_v1_project_steps__project_id__pause_all_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Pause All Steps Api V1 Project Steps  Project Id  Pause All Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CodeType:
      type: string
      enum:
      - python
      - sql
      title: CodeType
      description: Runtime language for the step code.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    SinkTarget:
      type: string
      enum:
      - database
      title: SinkTarget
      description: Where a data_sink step writes its output.
    StepType:
      type: string
      enum:
      - source
      - data_read
      - process
      - data_sink
      - database
      - dashboard
      title: StepType
      description: The role a step plays in the project DAG.
    TriggerRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        step_id:
          type: string
          format: uuid
          title: Step Id
        trigger_type:
          $ref: '#/components/schemas/TriggerType'
        trigger_config:
          additionalProperties: true
          type: object
          title: Trigger Config
        is_active:
          type: boolean
          title: Is Active
        last_triggered_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Triggered At
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - step_id
      - trigger_type
      - trigger_config
      - is_active
      - last_triggered_at
      - created_at
      title: TriggerRead
      description: Trigger response.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    TriggerType:
      type: string
      enum:
      - on_click
      - schedule
      title: TriggerType
      description: 'How a root step can be triggered.


        EVENT (polling) was deprecated in commit c523d2be (2026-05-02) and

        deleted entirely in Phase 5: cross-dataset reactive updates use the

        cascade model (database_dep) instead. ON_CLICK is implicit (every

        dataset can be refreshed manually via the UI, no row needed) and is

        only kept here for the rejection branch in CreateTrigger.'
    app__steps__schemas__RunRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        project_id:
          type: string
          format: uuid
          title: Project Id
        company_id:
          type: string
          format: uuid
          title: Company Id
        user_id:
          type: string
          format: uuid
          title: User Id
        root_step_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Root Step Id
        status:
          type: string
          title: Status
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        error_summary:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Summary
        trigger_source:
          type: string
          title: Trigger Source
        source_run_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Source Run Id
        temporal_workflow_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Temporal Workflow Id
        force_full:
          type: boolean
          title: Force Full
          default: false
        started_at:
          type: string
          format: date-time
          title: Started At
        finished_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Finished At
        step_runs:
          items:
            $ref: '#/components/schemas/StepRunRead'
          type: array
          title: Step Runs
          default: []
      type: object
      required:
      - id
      - project_id
      - company_id
      - user_id
      - root_step_id
      - status
      - error
      - error_summary
      - trigger_source
      - temporal_workflow_id
      - started_at
      - finished_at
      title: RunRead
      description: Run response.
    StepRunRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        run_id:
          type: string
          format: uuid
          title: Run Id
        step_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Step Id
        status:
          type: string
          title: Status
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        logs:
          anyOf:
          - type: string
          - type: 'null'
          title: Logs
        started_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Started At
        finished_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Finished At
        rows_processed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Processed
        output_row_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Output Row Count
        rows_new:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows New
        rows_changed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Changed
        rows_removed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Removed
        ai_rows_cached:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ai Rows Cached
        ai_rows_processed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ai Rows Processed
      type: object
      required:
      - id
      - run_id
      - step_id
      - status
      - error
      - logs
      - started_at
      - finished_at
      title: StepRunRead
      description: StepRun response.
    StepRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        project_id:
          type: string
          format: uuid
          title: Project Id
        company_id:
          type: string
          format: uuid
          title: Company Id
        user_id:
          type: string
          format: uuid
          title: User Id
        slug:
          type: string
          title: Slug
        title:
          type: string
          title: Title
        description:
          type: string
          title: Description
        step_type:
          $ref: '#/components/schemas/StepType'
        code_type:
          $ref: '#/components/schemas/CodeType'
        sink_target:
          anyOf:
          - $ref: '#/components/schemas/SinkTarget'
          - type: 'null'
        provider_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Provider Id
        parent_step_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Parent Step Ids
        order:
          type: integer
          title: Order
        code_url:
          type: string
          title: Code Url
        in_format:
          type: string
          title: In Format
        out_format:
          type: string
          title: Out Format
        referenced_database_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Referenced Database Ids
        input_schema:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Input Schema
        operator_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Operator Type
        operator_config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Operator Config
        extra_metadata:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Extra Metadata
        entity_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Entity Id
        status:
          type: string
          title: Status
          default: active
        is_suppressed:
          type: boolean
          title: Is Suppressed
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        database_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Database Name
        trigger:
          anyOf:
          - $ref: '#/components/schemas/TriggerRead'
          - type: 'null'
      type: object
      required:
      - id
      - project_id
      - company_id
      - user_id
      - slug
      - title
      - description
      - step_type
      - code_type
      - sink_target
      - provider_id
      - parent_step_ids
      - order
      - code_url
      - in_format
      - out_format
      - referenced_database_ids
      - input_schema
      - is_suppressed
      - created_at
      - updated_at
      title: StepRead
      description: Step response.