Chore/WorkspaceID Check (#5228)

* feat: Require workspace ID for API key operations

- Added validation to ensure `activeWorkspaceId` is present in user requests for all API key operations (get, create, update, import, delete).
- Updated `getWorkspaceSearchOptions` and `getWorkspaceSearchOptionsFromReq` to throw an error if `workspaceId` is not provided.
- Modified service methods to enforce `workspaceId` as a required parameter for database operations related to API keys.

* feat: Enforce workspace ID as a required field across multiple interfaces and services
- Updated various interfaces to make `workspaceId` a mandatory field instead of optional.
- Enhanced assistant and export-import service methods to require `workspaceId` for operations, ensuring proper validation and error handling.
- Modified database entity definitions to reflect the change in `workspaceId` from optional to required.
- Improved error handling in controllers to check for `activeWorkspaceId` before proceeding with requests.

* Require workspace ID in various controllers and services

- Updated controllers for credentials, datasets, document stores, evaluations, evaluators, and variables to enforce the presence of `workspaceId`.
- Enhanced error handling to throw appropriate errors when `workspaceId` is not provided.
- Modified service methods to accept `workspaceId` as a mandatory parameter for operations, ensuring consistent validation across the application.

* Update EvaluatorRunner and index to require workspaceId for evaluator retrieval

- Modified the runAdditionalEvaluators function to accept workspaceId as a parameter.

* lint fixes

* Enhancement/Integrate workspaceId in chatflow and flow-config services

- Updated chatflow and flow-config controllers to require workspaceId for fetching chatflows.
- Modified service methods to accept workspaceId as a parameter, ensuring proper context for chatflow retrieval.

* lint fix

* get rid of redundant isApiKeyValidated

* refactor: update permission checks for chatflows and agentflows routes

- Enhanced permission checks in chatflows routes to include agentflows permissions for create, read, update, and delete operations.
- Updated navigation paths in authentication views to redirect to the home page instead of chatflows after successful login or registration.

* fix(DefaultRedirect.jsx): add redirect unauthenticated users to login

* fix(RequireAuth.jsx): check permissions for routes without display property

* fix(DefaultRedirect.jsx): WorkspaceSwitcher api spam

* fix(routes/chatflows/index.ts): use checkAnyPermission for chatflow/has-changed/:id/:lastUpdatedDateTime

* fix(routes/chatflows/index.ts): use checkAnyPermission for delete request chatflow/:id

* fix(controllers/text-to-speech/index.ts): add workspace ID validation in generateTextToSpeech

* fix(controllers/internal-predictions/index.ts): add chatflow retrieval and validation using workspaceId

* feat(services\credentials\index.ts): add filter by workspaceId for getCredentialById

* chore(routes/chat-messages/index.ts): unused chat-messages route

* feat(services/chatflows/index.ts): add filter by workspaceId for deleteChatflow

* feat(services/marketplaces/index.ts): add filter by workspaceId for deleteCustomTemplate

* feat(tools): add filter by workspaceId for read, update, and delete

---------

Co-authored-by: Vinod Paidimarry <vinodkiran@outlook.in>
Co-authored-by: Yau <33013947+chungyau97@users.noreply.github.com>
Co-authored-by: chungyau97 <chungyau97@gmail.com>
This commit is contained in:
Henry Heng
2025-10-29 11:33:27 +00:00
committed by GitHub
parent e925801b63
commit 5df09a15b8
61 changed files with 905 additions and 322 deletions
@@ -19,6 +19,6 @@ export class ApiKey implements IApiKey {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -27,6 +27,6 @@ export class Assistant implements IAssistant {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -61,6 +61,6 @@ export class ChatFlow implements IChatFlow {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -24,6 +24,6 @@ export class Credential implements ICredential {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -27,7 +27,7 @@ export class CustomTemplate implements ICustomTemplate {
@Column({ nullable: true, type: 'text' })
type?: string
@Column({ nullable: true, type: 'text' })
@Column({ nullable: false, type: 'text' })
workspaceId: string
@Column({ type: 'timestamp' })
@@ -19,6 +19,6 @@ export class Dataset implements IDataset {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -38,6 +38,6 @@ export class DocumentStore implements IDocumentStore {
@Column({ nullable: true, type: 'text' })
recordManagerConfig: string | null
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -36,6 +36,6 @@ export class Evaluation implements IEvaluation {
@UpdateDateColumn()
runDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -23,6 +23,6 @@ export class Evaluator implements IEvaluator {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -42,6 +42,6 @@ export class Execution implements IExecution {
@JoinColumn({ name: 'agentflowId' })
agentflow: ChatFlow
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -33,6 +33,6 @@ export class Tool implements ITool {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}
@@ -24,6 +24,6 @@ export class Variable implements IVariable {
@UpdateDateColumn()
updatedDate: Date
@Column({ nullable: true, type: 'text' })
workspaceId?: string
@Column({ nullable: false, type: 'text' })
workspaceId: string
}