|
74 | 74 | description: Cloud workflow management and versioning (cloud-only) |
75 | 75 | - name: task |
76 | 76 | description: Background task management (cloud-only) |
| 77 | + - name: runtime-only |
| 78 | + description: Operations served exclusively by the cloud runtime with no local equivalent |
77 | 79 |
|
78 | 80 | paths: |
79 | 81 | # --------------------------------------------------------------------------- |
@@ -2573,35 +2575,38 @@ paths: |
2573 | 2575 | # --------------------------------------------------------------------------- |
2574 | 2576 | /api/experiment/nodes: |
2575 | 2577 | get: |
2576 | | - operationId: listCloudNodes |
2577 | | - tags: [node] |
2578 | | - summary: List installed custom nodes |
2579 | | - description: "[cloud-only] Returns the list of custom node packages installed in the cloud runtime." |
| 2578 | + operationId: getNodeInfoSchema |
| 2579 | + tags: [runtime-only] |
| 2580 | + summary: Get pre-rendered node info schema |
| 2581 | + description: "[cloud-only] Returns the static ComfyUI object_info schema, identical for every caller, rendered once at startup with empty model/user-file context. Served by a raw HTTP handler that writes pre-rendered bytes with ETag + Cache-Control validators for RFC 7232 conditional GETs." |
2580 | 2582 | x-runtime: [cloud] |
2581 | 2583 | parameters: |
2582 | | - - name: limit |
2583 | | - in: query |
2584 | | - schema: |
2585 | | - type: integer |
2586 | | - description: Maximum number of results |
2587 | | - - name: offset |
2588 | | - in: query |
| 2584 | + - name: If-None-Match |
| 2585 | + in: header |
| 2586 | + required: false |
2589 | 2587 | schema: |
2590 | | - type: integer |
2591 | | - description: Pagination offset |
| 2588 | + type: string |
| 2589 | + description: Entity tag previously returned by this endpoint. When present and matching, the server returns 304 Not Modified. |
2592 | 2590 | responses: |
2593 | 2591 | "200": |
2594 | | - description: Custom node list |
2595 | | - content: |
2596 | | - application/json: |
| 2592 | + description: Node info schema |
| 2593 | + headers: |
| 2594 | + ETag: |
2597 | 2595 | schema: |
2598 | | - $ref: "#/components/schemas/CloudNodeList" |
2599 | | - "401": |
2600 | | - description: Unauthorized |
| 2596 | + type: string |
| 2597 | + description: Entity tag for conditional request validation |
| 2598 | + Cache-Control: |
| 2599 | + schema: |
| 2600 | + type: string |
| 2601 | + description: Cache directives for the response |
2601 | 2602 | content: |
2602 | 2603 | application/json: |
2603 | 2604 | schema: |
2604 | | - $ref: "#/components/schemas/CloudError" |
| 2605 | + type: object |
| 2606 | + additionalProperties: |
| 2607 | + $ref: "#/components/schemas/NodeInfo" |
| 2608 | + "304": |
| 2609 | + description: Not Modified — returned when the client sends a matching If-None-Match header |
2605 | 2610 | post: |
2606 | 2611 | operationId: installCloudNode |
2607 | 2612 | tags: [node] |
@@ -2651,37 +2656,44 @@ paths: |
2651 | 2656 |
|
2652 | 2657 | /api/experiment/nodes/{id}: |
2653 | 2658 | get: |
2654 | | - operationId: getCloudNode |
2655 | | - tags: [node] |
2656 | | - summary: Get details of an installed custom node |
2657 | | - description: "[cloud-only] Returns details about a specific installed custom node package." |
| 2659 | + operationId: getNodeByID |
| 2660 | + tags: [runtime-only] |
| 2661 | + summary: Get a single node definition by ID |
| 2662 | + description: "[cloud-only] Returns one node's definition from the pre-indexed object_info schema. Served by a raw HTTP handler that writes pre-rendered bytes with ETag + Cache-Control validators for RFC 7232 conditional GETs." |
2658 | 2663 | x-runtime: [cloud] |
2659 | 2664 | parameters: |
2660 | 2665 | - name: id |
2661 | 2666 | in: path |
2662 | 2667 | required: true |
2663 | 2668 | schema: |
2664 | 2669 | type: string |
2665 | | - description: Custom node package ID |
| 2670 | + description: Node class identifier |
| 2671 | + - name: If-None-Match |
| 2672 | + in: header |
| 2673 | + required: false |
| 2674 | + schema: |
| 2675 | + type: string |
| 2676 | + description: Entity tag previously returned by this endpoint. When present and matching, the server returns 304 Not Modified. |
2666 | 2677 | responses: |
2667 | 2678 | "200": |
2668 | | - description: Node detail |
2669 | | - content: |
2670 | | - application/json: |
| 2679 | + description: Single node definition |
| 2680 | + headers: |
| 2681 | + ETag: |
2671 | 2682 | schema: |
2672 | | - $ref: "#/components/schemas/CloudNode" |
2673 | | - "401": |
2674 | | - description: Unauthorized |
2675 | | - content: |
2676 | | - application/json: |
| 2683 | + type: string |
| 2684 | + description: Entity tag for conditional request validation |
| 2685 | + Cache-Control: |
2677 | 2686 | schema: |
2678 | | - $ref: "#/components/schemas/CloudError" |
2679 | | - "404": |
2680 | | - description: Not found |
| 2687 | + type: string |
| 2688 | + description: Cache directives for the response |
2681 | 2689 | content: |
2682 | 2690 | application/json: |
2683 | 2691 | schema: |
2684 | | - $ref: "#/components/schemas/CloudError" |
| 2692 | + $ref: "#/components/schemas/NodeInfo" |
| 2693 | + "304": |
| 2694 | + description: Not Modified — returned when the client sends a matching If-None-Match header |
| 2695 | + "404": |
| 2696 | + description: Node not found |
2685 | 2697 | delete: |
2686 | 2698 | operationId: uninstallCloudNode |
2687 | 2699 | tags: [node] |
@@ -7100,22 +7112,6 @@ components: |
7100 | 7112 | enabled: |
7101 | 7113 | type: boolean |
7102 | 7114 |
|
7103 | | - CloudNodeList: |
7104 | | - type: object |
7105 | | - x-runtime: [cloud] |
7106 | | - description: "[cloud-only] Paginated list of installed custom node packages." |
7107 | | - required: |
7108 | | - - nodes |
7109 | | - properties: |
7110 | | - nodes: |
7111 | | - type: array |
7112 | | - items: |
7113 | | - $ref: "#/components/schemas/CloudNode" |
7114 | | - total: |
7115 | | - type: integer |
7116 | | - has_more: |
7117 | | - type: boolean |
7118 | | - |
7119 | 7115 | HubLabel: |
7120 | 7116 | type: object |
7121 | 7117 | x-runtime: [cloud] |
|
0 commit comments