Netter project-steps API
The project-steps API from Netter — 5 operation(s) for project-steps.
The project-steps API from Netter — 5 operation(s) for project-steps.
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.