From df66178f0c0e00bd9ce5ebbf272d68f97edf70ab Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Fri, 6 Feb 2026 01:14:22 +0100 Subject: [PATCH] update OpenAPI schema --- .../backend/backend/data/graph.py | 26 ++++++----- .../frontend/src/app/api/openapi.json | 43 +++++++------------ 2 files changed, 31 insertions(+), 38 deletions(-) diff --git a/autogpt_platform/backend/backend/data/graph.py b/autogpt_platform/backend/backend/data/graph.py index d040a1b851..4dccdb3ad1 100644 --- a/autogpt_platform/backend/backend/data/graph.py +++ b/autogpt_platform/backend/backend/data/graph.py @@ -394,7 +394,11 @@ class Graph(BaseGraph): properties = {} required_fields = [] - for agg_field_key, (field_info, _, is_required) in graph_credentials_inputs.items(): + for agg_field_key, ( + field_info, + _, + is_required, + ) in graph_credentials_inputs.items(): providers = list(field_info.provider) cred_types = list(field_info.supported_types) @@ -872,7 +876,6 @@ class GraphMeta(BaseModel): id: str version: int = 1 - user_id: str is_active: bool = True name: str description: str @@ -880,21 +883,21 @@ class GraphMeta(BaseModel): recommended_schedule_cron: str | None = None forked_from_id: str | None = None forked_from_version: int | None = None + user_id: str - input_schema: dict[str, Any] = {} - output_schema: dict[str, Any] = {} - credentials_input_schema: dict[str, Any] = {} - has_external_trigger: bool = False - has_human_in_the_loop: bool = False - has_sensitive_action: bool = False - trigger_setup_info: Optional["GraphTriggerInfo"] = None + input_schema: dict[str, Any] + output_schema: dict[str, Any] + credentials_input_schema: dict[str, Any] + has_external_trigger: bool + has_human_in_the_loop: bool + has_sensitive_action: bool + trigger_setup_info: Optional["GraphTriggerInfo"] @staticmethod def from_graph(graph: "GraphModel") -> "GraphMeta": return GraphMeta( id=graph.id, version=graph.version, - user_id=graph.user_id, is_active=graph.is_active, name=graph.name, description=graph.description, @@ -902,7 +905,8 @@ class GraphMeta(BaseModel): recommended_schedule_cron=graph.recommended_schedule_cron, forked_from_id=graph.forked_from_id, forked_from_version=graph.forked_from_version, - # Pass pre-computed values for expensive fields + user_id=graph.user_id, + # Pre-computed values (were @computed_field on Graph) input_schema=graph.input_schema, output_schema=graph.output_schema, has_external_trigger=graph.has_external_trigger, diff --git a/autogpt_platform/frontend/src/app/api/openapi.json b/autogpt_platform/frontend/src/app/api/openapi.json index 5ed449829d..13c3de6a7e 100644 --- a/autogpt_platform/frontend/src/app/api/openapi.json +++ b/autogpt_platform/frontend/src/app/api/openapi.json @@ -7804,68 +7804,57 @@ "anyOf": [{ "type": "integer" }, { "type": "null" }], "title": "Forked From Version" }, - "sub_graphs": { - "items": { "$ref": "#/components/schemas/BaseGraph-Output" }, - "type": "array", - "title": "Sub Graphs", - "default": [] - }, "user_id": { "type": "string", "title": "User Id" }, "input_schema": { "additionalProperties": true, "type": "object", - "title": "Input Schema", - "readOnly": true + "title": "Input Schema" }, "output_schema": { "additionalProperties": true, "type": "object", - "title": "Output Schema", - "readOnly": true + "title": "Output Schema" + }, + "credentials_input_schema": { + "additionalProperties": true, + "type": "object", + "title": "Credentials Input Schema" }, "has_external_trigger": { "type": "boolean", - "title": "Has External Trigger", - "readOnly": true + "title": "Has External Trigger" }, "has_human_in_the_loop": { "type": "boolean", - "title": "Has Human In The Loop", - "readOnly": true + "title": "Has Human In The Loop" }, "has_sensitive_action": { "type": "boolean", - "title": "Has Sensitive Action", - "readOnly": true + "title": "Has Sensitive Action" }, "trigger_setup_info": { "anyOf": [ { "$ref": "#/components/schemas/GraphTriggerInfo" }, { "type": "null" } - ], - "readOnly": true - }, - "credentials_input_schema": { - "additionalProperties": true, - "type": "object", - "title": "Credentials Input Schema", - "readOnly": true + ] } }, "type": "object", "required": [ + "id", "name", "description", "user_id", "input_schema", "output_schema", + "credentials_input_schema", "has_external_trigger", "has_human_in_the_loop", "has_sensitive_action", - "trigger_setup_info", - "credentials_input_schema" + "trigger_setup_info" ], - "title": "GraphMeta" + "title": "GraphMeta", + "description": "Graph metadata without nodes/links \u2014 used for list endpoints.\n\nThis is a flat, lightweight model (not inheriting from Graph) to avoid recomputing\nexpensive computed fields. Values are copied from GraphModel." }, "GraphModel": { "properties": {