19 Commits

Author SHA1 Message Date
bymyself
1eb00c0a51 Upgrade to OpenAPI 3.1.0 with prefixItems and streamlined validation
- Upgraded OpenAPI spec from 3.0.3 to 3.1.0
- Replaced QueueItem oneOf pattern with prefixItems for precise tuple validation
- Simplified GitHub Actions workflow to use only Python tests (removed redundant swagger-editor validation)
- All validation now handled by openapi-spec-validator which supports OpenAPI 3.1
- QueueItem now enforces exact tuple structure: [position, prompt_id, prompt, extra_data, outputs_to_execute]
2025-07-20 19:49:41 -07:00
bymyself
7a691c980f Fix OpenAPI validation by resolving duplicate content blocks
- Fixed all duplicate YAML content entries in both main and test files
- Reverted from OpenAPI 3.1 to 3.0.3 for GitHub Actions compatibility
- QueueItem now uses minItems/maxItems instead of prefixItems
- All endpoints now have proper response schema organization
2025-07-20 16:55:47 -07:00
bymyself
6a70191868 Fix remaining duplicate content blocks in internal endpoints
- Fixed duplicate content in /api/system_stats GET
- Fixed duplicate content in /api/features GET
- Fixed duplicate content in /internal/logs GET
- Fixed duplicate content in /internal/logs/raw GET
- Fixed duplicate content in /internal/folder_paths GET
- Fixed duplicate content in /internal/files/{directory_type} GET

OpenAPI spec now passes all validation checks!
2025-07-20 14:44:27 -07:00
bymyself
f2cd7d3e13 Fix duplicate content blocks in model and system endpoints
- Fixed duplicate content in /api/models GET
- Fixed duplicate content in /api/models/{folder} GET
- Fixed duplicate content in /api/embeddings GET
- Fixed duplicate content in /api/extensions GET
- Consistently moved data schemas to 200 responses
2025-07-19 19:04:29 -07:00
bymyself
90e701b411 Fix more duplicate content blocks (upload and view endpoints)
- Fixed duplicate content in /api/object_info/{node_class} GET
- Fixed duplicate content in /api/upload/image POST
- Fixed duplicate content in /api/upload/mask POST
- Fixed duplicate content in /api/view GET
- Moved response schemas to appropriate status codes
2025-07-19 18:15:59 -07:00
bymyself
90d6b88739 Fix more duplicate content blocks in OpenAPI spec
- Fixed duplicate content in /api/history/{prompt_id} GET response
- Fixed duplicate content in /api/object_info GET response
- Moved actual response schemas to 200 responses where they belong
2025-07-19 15:14:17 -07:00
bymyself
f0ffa84e2f Fix first two duplicate content blocks in OpenAPI spec
- Fixed duplicate content in /api/queue GET response
- Fixed duplicate content in /api/history GET response
- Working systematically through all YAML duplicate key errors
2025-07-19 14:32:58 -07:00
bymyself
c88afc94c8 Fix duplicate content in /api/prompt GET response
- Fixed duplicate content entries in OpenAPI spec that were causing validation failures
- Maintained OpenAPI 3.1.0 and prefixItems structure
- Ensures proper YAML structure for GitHub Actions validation
2025-07-18 14:11:58 -07:00
bymyself
78fcc57e33 Update to OpenAPI 3.1.0 and use prefixItems for QueueItem
- Changed OpenAPI version from 3.0.3 to 3.1.0 as suggested in PR review
- Updated QueueItem schema to use prefixItems instead of oneOf for proper tuple representation
- Added items: false to enforce the 5-element tuple structure
- Follows OpenAPI 3.1 best practices for representing fixed-length arrays (tuples)
2025-07-18 13:46:36 -07:00
bymyself
16893d8b00 [openapi] Replace view metadata generic object with detailed schema
Replace generic 'type: object' for /api/view_metadata endpoint with
comprehensive ModelMetadata schema that includes:

- Standard modelspec fields (date, architecture, title, description)
- Implementation details (format, license, author)
- Additional metadata with proper typing
- Base64 thumbnail support

This provides much better API documentation for model metadata
responses than the previous generic object definition.
2025-07-14 19:24:51 -07:00
bymyself
3e0a4d5988 [openapi] Add comprehensive 500 Internal Server Error responses
Add 500 error responses to endpoints that previously only had 200:
- /api/prompt GET
- /api/queue GET
- /api/interrupt POST
- /api/free POST
- /api/features GET
- /api/history GET/POST
- /api/object_info endpoints
- /api/embeddings, /api/extensions, /api/system_stats
- /internal/logs and /internal/folder_paths endpoints

This provides complete error coverage for system failures and
improves API reliability documentation.
2025-07-14 19:24:51 -07:00
bymyself
5c9b27e6e7 [openapi] Improve queue item structure with proper schema
Replace generic additionalProperties: true for queue items with
detailed QueueItem schema that properly describes the array structure:

- Position number (integer)
- Prompt ID (UUID string)
- Workflow graph (object)
- Extra metadata (object)
- Output node IDs (array)

This provides much better API documentation and validation for
queue responses than the previous generic object definition.
2025-07-14 19:24:51 -07:00
bymyself
b5d6064974 [openapi] Add missing /api/features endpoint and improve schema organization
- Add /api/features endpoint with ServerFeatures response schema
- Replace inline objects in /internal/logs/raw with RawLogsResponse schema
- Add LogEntry and TerminalSize component schemas for better reusability
- Replace inline LogsSubscribeRequest object with proper schema component
- Add required field constraints to LogsSubscribeRequest

This addresses the missing features endpoint and improves schema
consistency by moving complex inline objects to reusable components.
2025-07-14 19:24:51 -07:00
bymyself
1d2b704160 [openapi] Improve upload endpoint request schemas
Enhance multipart/form-data schemas for image upload endpoints:

- Add required field constraints for image uploads
- Specify enum values for overwrite parameter ("true"/"false")
- Add default values for type ("input") and subfolder ("")
- Mark image and original_ref as required fields for mask uploads
- Improve field descriptions and validation

These changes make the API specification more precise and match
the actual server implementation requirements.
2025-07-14 19:24:51 -07:00
bymyself
7baed85b1d [openapi] Replace bare object schemas with proper component references
Replace inline object definitions for queue, history, and resource management
operations with reusable schema components:

- Add QueueManageRequest schema for /api/queue POST requests
- Add FreeResourcesRequest schema for /api/free POST requests
- Add HistoryManageRequest schema for /api/history POST requests
- Add UploadResponse schema for upload endpoints

This improves API consistency and reusability by moving common
object definitions to the components section.
2025-07-14 19:24:51 -07:00
bymyself
d6270cbdf3 [api] Add /api prefix to all paths in OpenAPI spec
- Updated all API paths (except internal routes) to include /api/ prefix
- Changed server URL from "/api" back to "/" and added prefix to individual paths
- Updated test fixtures to not add /api prefix since paths already include it
- Fixed all test assertions to use the new paths with /api/ prefix

This addresses the review comment about endpoints needing the /api/ prefix
and implements it correctly by hardcoding the prefix in each path definition.

Fixes #8219
2025-06-29 18:36:51 -07:00
bymyself
d74a189e1c [openapi] Remove nullable from device index field
The nullable syntax was causing validation issues. Since the field is optional,
it can simply be omitted when null.
2025-06-28 22:35:32 -07:00
bymyself
2a032017b2 [openapi] Update server URL to use /api prefix
- Changed server URL from / to /api to reflect the canonical API path
- Made device index field nullable to match actual server response

This addresses the review comment about endpoints needing the /api/ prefix.
2025-06-28 22:30:24 -07:00
bymyself
fa9688b1fb [docs] Add OpenAPI specification and test framework 2025-05-20 12:15:46 -07:00