diff --git a/invokeai/frontend/web/src/services/api/schema.ts b/invokeai/frontend/web/src/services/api/schema.ts
index 18216bca2c..fe9cc309fa 100644
--- a/invokeai/frontend/web/src/services/api/schema.ts
+++ b/invokeai/frontend/web/src/services/api/schema.ts
@@ -1042,14 +1042,14 @@ export type paths = {
};
/**
* Get Intermediates Count
- * @description Gets the count of intermediate images
+ * @description Gets the count of intermediate images. Non-admin users only see their own intermediates.
*/
get: operations["get_intermediates_count"];
put?: never;
post?: never;
/**
* Clear Intermediates
- * @description Clears all intermediates
+ * @description Clears all intermediates. Requires admin.
*/
delete: operations["clear_intermediates"];
options?: never;
@@ -1103,7 +1103,11 @@ export type paths = {
};
/**
* Get Image Full
- * @description Gets a full-resolution image file
+ * @description Gets a full-resolution image file.
+ *
+ * This endpoint is intentionally unauthenticated because browsers load images
+ * via
tags which cannot send Bearer tokens. Image names are UUIDs,
+ * providing security through unguessability.
*/
get: operations["get_image_full"];
put?: never;
@@ -1112,7 +1116,11 @@ export type paths = {
options?: never;
/**
* Get Image Full
- * @description Gets a full-resolution image file
+ * @description Gets a full-resolution image file.
+ *
+ * This endpoint is intentionally unauthenticated because browsers load images
+ * via
tags which cannot send Bearer tokens. Image names are UUIDs,
+ * providing security through unguessability.
*/
head: operations["get_image_full_head"];
patch?: never;
@@ -1127,7 +1135,11 @@ export type paths = {
};
/**
* Get Image Thumbnail
- * @description Gets a thumbnail image file
+ * @description Gets a thumbnail image file.
+ *
+ * This endpoint is intentionally unauthenticated because browsers load images
+ * via
tags which cannot send Bearer tokens. Image names are UUIDs,
+ * providing security through unguessability.
*/
get: operations["get_image_thumbnail"];
put?: never;
@@ -1187,7 +1199,7 @@ export type paths = {
post?: never;
/**
* Delete Uncategorized Images
- * @description Deletes all images that are uncategorized
+ * @description Deletes all uncategorized images owned by the current user (or all if admin)
*/
delete: operations["delete_uncategorized_images"];
options?: never;
@@ -1727,7 +1739,7 @@ export type paths = {
};
/**
* Get Queue Item Ids
- * @description Gets all queue item ids that match the given parameters
+ * @description Gets all queue item ids that match the given parameters. Non-admin users only see their own items.
*/
get: operations["get_queue_item_ids"];
put?: never;
@@ -1987,7 +1999,7 @@ export type paths = {
};
/**
* Get Queue Status
- * @description Gets the status of the session queue
+ * @description Gets the status of the session queue. Non-admin users see only their own counts and cannot see current item details unless they own it.
*/
get: operations["get_queue_status"];
put?: never;
@@ -2007,7 +2019,7 @@ export type paths = {
};
/**
* Get Batch Status
- * @description Gets the status of the session queue
+ * @description Gets the status of a batch. Non-admin users only see their own batches.
*/
get: operations["get_batch_status"];
put?: never;
@@ -2071,7 +2083,7 @@ export type paths = {
};
/**
* Counts By Destination
- * @description Gets the counts of queue items by destination
+ * @description Gets the counts of queue items by destination. Non-admin users only see their own items.
*/
get: operations["counts_by_destination"];
put?: never;
@@ -2163,7 +2175,11 @@ export type paths = {
};
/**
* Get Workflow Thumbnail
- * @description Gets a workflow's thumbnail image
+ * @description Gets a workflow's thumbnail image.
+ *
+ * This endpoint is intentionally unauthenticated because browsers load images
+ * via
tags which cannot send Bearer tokens. Workflow IDs are UUIDs,
+ * providing security through unguessability.
*/
get: operations["get_workflow_thumbnail"];
/**
@@ -2182,6 +2198,26 @@ export type paths = {
patch?: never;
trace?: never;
};
+ "/api/v1/workflows/i/{workflow_id}/is_public": {
+ parameters: {
+ query?: never;
+ header?: never;
+ path?: never;
+ cookie?: never;
+ };
+ get?: never;
+ put?: never;
+ post?: never;
+ delete?: never;
+ options?: never;
+ head?: never;
+ /**
+ * Update Workflow Is Public
+ * @description Updates whether a workflow is shared publicly
+ */
+ patch: operations["update_workflow_is_public"];
+ trace?: never;
+ };
"/api/v1/workflows/tags": {
parameters: {
query?: never;
@@ -3587,6 +3623,8 @@ export type components = {
* @description Whether or not the board is archived
*/
archived?: boolean | null;
+ /** @description The visibility of the board. */
+ board_visibility?: components["schemas"]["BoardVisibility"] | null;
};
/**
* BoardDTO
@@ -3633,6 +3671,11 @@ export type components = {
* @description Whether or not the board is archived.
*/
archived: boolean;
+ /**
+ * @description The visibility of the board.
+ * @default private
+ */
+ board_visibility?: components["schemas"]["BoardVisibility"];
/**
* Image Count
* @description The number of images in the board.
@@ -3666,6 +3709,12 @@ export type components = {
* @enum {string}
*/
BoardRecordOrderBy: "created_at" | "board_name";
+ /**
+ * BoardVisibility
+ * @description The visibility options for a board.
+ * @enum {string}
+ */
+ BoardVisibility: "private" | "shared" | "public";
/** Body_add_image_to_board */
Body_add_image_to_board: {
/**
@@ -3918,6 +3967,14 @@ export type components = {
/** @description The updated workflow */
workflow: components["schemas"]["Workflow"];
};
+ /** Body_update_workflow_is_public */
+ Body_update_workflow_is_public: {
+ /**
+ * Is Public
+ * @description Whether the workflow should be shared publicly
+ */
+ is_public: boolean;
+ };
/** Body_upload_image */
Body_upload_image: {
/**
@@ -23740,6 +23797,11 @@ export type components = {
* @description The ID of the queue
*/
queue_id: string;
+ /**
+ * User Id
+ * @description The ID of the user whose recall parameters were updated
+ */
+ user_id: string;
/**
* Parameters
* @description The recall parameters that were updated
@@ -25340,16 +25402,6 @@ export type components = {
* @description Total number of queue items
*/
total: number;
- /**
- * User Pending
- * @description Number of queue items with status 'pending' for the current user
- */
- user_pending?: number | null;
- /**
- * User In Progress
- * @description Number of queue items with status 'in_progress' for the current user
- */
- user_in_progress?: number | null;
};
/**
* SetupRequest
@@ -25405,6 +25457,11 @@ export type components = {
* @description Whether strict password requirements are enforced
*/
strict_password_checking: boolean;
+ /**
+ * Admin Email
+ * @description Email of the first active admin user, if any
+ */
+ admin_email?: string | null;
};
/**
* Show Image
@@ -28668,6 +28725,16 @@ export type components = {
* @description The opened timestamp of the workflow.
*/
opened_at?: string | null;
+ /**
+ * User Id
+ * @description The id of the user who owns this workflow.
+ */
+ user_id: string;
+ /**
+ * Is Public
+ * @description Whether this workflow is shared with all users.
+ */
+ is_public: boolean;
/** @description The workflow. */
workflow: components["schemas"]["Workflow"];
};
@@ -28698,6 +28765,16 @@ export type components = {
* @description The opened timestamp of the workflow.
*/
opened_at?: string | null;
+ /**
+ * User Id
+ * @description The id of the user who owns this workflow.
+ */
+ user_id: string;
+ /**
+ * Is Public
+ * @description Whether this workflow is shared with all users.
+ */
+ is_public: boolean;
/**
* Description
* @description The description of the workflow.
@@ -28721,7 +28798,7 @@ export type components = {
* @description The order by options for workflow records
* @enum {string}
*/
- WorkflowRecordOrderBy: "created_at" | "updated_at" | "opened_at" | "name";
+ WorkflowRecordOrderBy: "created_at" | "updated_at" | "opened_at" | "name" | "is_public";
/** WorkflowRecordWithThumbnailDTO */
WorkflowRecordWithThumbnailDTO: {
/**
@@ -28749,6 +28826,16 @@ export type components = {
* @description The opened timestamp of the workflow.
*/
opened_at?: string | null;
+ /**
+ * User Id
+ * @description The id of the user who owns this workflow.
+ */
+ user_id: string;
+ /**
+ * Is Public
+ * @description Whether this workflow is shared with all users.
+ */
+ is_public: boolean;
/** @description The workflow. */
workflow: components["schemas"]["Workflow"];
/**
@@ -33879,6 +33966,8 @@ export interface operations {
query?: string | null;
/** @description Whether to include/exclude recent workflows */
has_been_opened?: boolean | null;
+ /** @description Filter by public/shared status */
+ is_public?: boolean | null;
};
header?: never;
path?: never;
@@ -34053,11 +34142,49 @@ export interface operations {
};
};
};
+ update_workflow_is_public: {
+ parameters: {
+ query?: never;
+ header?: never;
+ path: {
+ /** @description The workflow to update */
+ workflow_id: string;
+ };
+ cookie?: never;
+ };
+ requestBody: {
+ content: {
+ "application/json": components["schemas"]["Body_update_workflow_is_public"];
+ };
+ };
+ responses: {
+ /** @description Successful Response */
+ 200: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": components["schemas"]["WorkflowRecordDTO"];
+ };
+ };
+ /** @description Validation Error */
+ 422: {
+ headers: {
+ [name: string]: unknown;
+ };
+ content: {
+ "application/json": components["schemas"]["HTTPValidationError"];
+ };
+ };
+ };
+ };
get_all_tags: {
parameters: {
query?: {
/** @description The categories to include */
categories?: components["schemas"]["WorkflowCategory"][] | null;
+ /** @description Filter by public/shared status */
+ is_public?: boolean | null;
};
header?: never;
path?: never;
@@ -34094,6 +34221,8 @@ export interface operations {
categories?: components["schemas"]["WorkflowCategory"][] | null;
/** @description Whether to include/exclude recent workflows */
has_been_opened?: boolean | null;
+ /** @description Filter by public/shared status */
+ is_public?: boolean | null;
};
header?: never;
path?: never;
@@ -34130,6 +34259,8 @@ export interface operations {
categories: components["schemas"]["WorkflowCategory"][];
/** @description Whether to include/exclude recent workflows */
has_been_opened?: boolean | null;
+ /** @description Filter by public/shared status */
+ is_public?: boolean | null;
};
header?: never;
path?: never;