diff --git a/package-lock.json b/package-lock.json index 9e312bb93..996cc6aa6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "@eslint/compat": "^2.0.3", "@eslint/eslintrc": "^3.3.5", "@eslint/js": "^9.0.0", - "@meshery/schemas": "^1.0.1", + "@meshery/schemas": "^1.0.4", "@mui/icons-material": "^7.3.9", "@reduxjs/toolkit": "^2.11.2", "@testing-library/dom": "^10.4.1", @@ -3107,9 +3107,9 @@ } }, "node_modules/@meshery/schemas": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@meshery/schemas/-/schemas-1.0.1.tgz", - "integrity": "sha512-Xd+t3VXE/9XL6gOEuW74RfuL1RSz5MYm6+TqZURqCQ1GoOCz75ylOcPTDdKeOMJFiwkt1gOj9gb81fDItR60FA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@meshery/schemas/-/schemas-1.0.4.tgz", + "integrity": "sha512-+o7XauO1Hq1CY/YAKxU7Ccx3lqXZD6U6ByNL/fFlkHI8cdzLecBIvF4oe/sYLxclKTSQhRFx9q4nle7wmTb08w==", "dev": true, "license": "ISC", "peerDependencies": { diff --git a/package.json b/package.json index dd1d8888e..bb04bf589 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@eslint/compat": "^2.0.3", "@eslint/eslintrc": "^3.3.5", "@eslint/js": "^9.0.0", - "@meshery/schemas": "^1.0.1", + "@meshery/schemas": "^1.0.4", "@mui/icons-material": "^7.3.9", "@reduxjs/toolkit": "^2.11.2", "@testing-library/dom": "^10.4.1", diff --git a/src/custom/Workspaces/types.ts b/src/custom/Workspaces/types.ts index 280c4ec97..b2f865fef 100644 --- a/src/custom/Workspaces/types.ts +++ b/src/custom/Workspaces/types.ts @@ -17,6 +17,9 @@ export interface Workspace { id: string; name: string; description?: string; + organization_id?: string; + owner?: string; + metadata?: Record; created_at: string; updated_at: string; deleted_at: { diff --git a/src/schemas/createAndEditWorkspace/schema.tsx b/src/schemas/createAndEditWorkspace/schema.tsx index 31c378eb3..1d3eb00b9 100644 --- a/src/schemas/createAndEditWorkspace/schema.tsx +++ b/src/schemas/createAndEditWorkspace/schema.tsx @@ -5,6 +5,10 @@ import { WorkspaceDefinitionV1Beta1OpenApiSchema } from '@meshery/schemas'; // eslint-disable-next-line @typescript-eslint/no-explicit-any const workspaceSchema = (WorkspaceDefinitionV1Beta1OpenApiSchema as any).components.schemas; + +/** + * Create workspace schema - name is required + */ const createAndEditWorkspace = { properties: { description: { @@ -33,4 +37,13 @@ const createAndEditWorkspace = { required: ['name', 'organization'] }; +/** + * Edit workspace schema - name is optional (derived from WorkspacePayload with relaxed requirements) + */ +const editWorkspace = { + ...createAndEditWorkspace, + required: ['organization'] +}; + export default createAndEditWorkspace; +export { editWorkspace }; diff --git a/src/schemas/index.tsx b/src/schemas/index.tsx index 8636dd79a..3b023ea7f 100644 --- a/src/schemas/index.tsx +++ b/src/schemas/index.tsx @@ -4,7 +4,9 @@ import helpAndSupportModalUiSchema from './helpAndSupportModal/uiSchema'; import createAndEditEnvironmentSchema from './createAndEditEnvironment/schema'; import createAndEditEnvironmentUiSchema from './createAndEditEnvironment/uiSchema'; -import createAndEditWorkspaceSchema from './createAndEditWorkspace/schema'; +import createAndEditWorkspaceSchema, { + editWorkspace as editWorkspaceSchema +} from './createAndEditWorkspace/schema'; import createAndEditWorkspaceUiSchema from './createAndEditWorkspace/uiSchema'; import helmConnectionSchema from './helmConnection/schema'; @@ -80,6 +82,7 @@ export { createAndEditEnvironmentUiSchema, createAndEditWorkspaceSchema, createAndEditWorkspaceUiSchema, + editWorkspaceSchema, grafanaCredentialSUiSchema, grafanaCredentialSchema, helmConnectionSchema,