Improve workspace auth context surface (#18164)

This commit is contained in:
Weiko
2026-03-05 16:13:59 +01:00
committed by GitHub
parent 5853891b02
commit cfeea43eaf
118 changed files with 453 additions and 677 deletions
@@ -2,10 +2,9 @@ import { assertIsDefinedOrThrow } from 'twenty-shared/utils';
import { type WorkspacePostQueryHookInstance } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/interfaces/workspace-query-hook.interface';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { WorkspaceQueryHookType } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/types/workspace-query-hook.type';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { RecordPositionService } from 'src/engine/core-modules/record-position/services/record-position.service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
@@ -28,7 +27,7 @@ export class WorkflowCreateManyPostQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: WorkflowWorkspaceEntity[],
): Promise<void> {
@@ -64,6 +63,6 @@ export class WorkflowCreateManyPostQueryHook
return workflowVersionRepository.insert(workflowVersion);
}),
);
}, authContext as WorkspaceAuthContext);
}, authContext);
}
}
@@ -2,7 +2,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type CreateManyResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
import { assertWorkflowStatusesNotSetOrEmpty } from 'src/modules/workflow/common/utils/assert-workflow-statuses-not-set-or-empty';
@@ -11,7 +11,7 @@ export class WorkflowCreateManyPreQueryHook
implements WorkspacePreQueryHookInstance
{
async execute(
_authContext: AuthContext,
_authContext: WorkspaceAuthContext,
_objectName: string,
payload: CreateManyResolverArgs<WorkflowWorkspaceEntity>,
): Promise<CreateManyResolverArgs<WorkflowWorkspaceEntity>> {
@@ -2,10 +2,9 @@ import { assertIsDefinedOrThrow } from 'twenty-shared/utils';
import { type WorkspacePostQueryHookInstance } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/interfaces/workspace-query-hook.interface';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { WorkspaceQueryHookType } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/types/workspace-query-hook.type';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { RecordPositionService } from 'src/engine/core-modules/record-position/services/record-position.service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
@@ -28,7 +27,7 @@ export class WorkflowCreateOnePostQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: WorkflowWorkspaceEntity[],
): Promise<void> {
@@ -60,6 +59,6 @@ export class WorkflowCreateOnePostQueryHook
name: 'v1',
position,
});
}, authContext as WorkspaceAuthContext);
}, authContext);
}
}
@@ -2,7 +2,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type CreateOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
import { assertWorkflowStatusesNotSetOrEmpty } from 'src/modules/workflow/common/utils/assert-workflow-statuses-not-set-or-empty';
@@ -11,7 +11,7 @@ export class WorkflowCreateOnePreQueryHook
implements WorkspacePreQueryHookInstance
{
async execute(
_authContext: AuthContext,
_authContext: WorkspaceAuthContext,
_objectName: string,
payload: CreateOneResolverArgs<WorkflowWorkspaceEntity>,
): Promise<CreateOneResolverArgs<WorkflowWorkspaceEntity>> {
@@ -4,7 +4,7 @@ import { type WorkspacePostQueryHookInstance } from 'src/engine/api/graphql/work
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { WorkspaceQueryHookType } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/types/workspace-query-hook.type';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -21,7 +21,7 @@ export class WorkflowDeleteManyPostQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: WorkflowWorkspaceEntity[],
): Promise<void> {
@@ -4,7 +4,7 @@ import { type WorkspacePostQueryHookInstance } from 'src/engine/api/graphql/work
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { WorkspaceQueryHookType } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/types/workspace-query-hook.type';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -21,7 +21,7 @@ export class WorkflowDeleteOnePostQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: WorkflowWorkspaceEntity[],
): Promise<void> {
@@ -4,7 +4,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type DestroyManyResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -17,7 +17,7 @@ export class WorkflowDestroyManyPreQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: DestroyManyResolverArgs<{ id: { in: string[] } }>,
): Promise<DestroyManyResolverArgs<{ id: { in: string[] } }>> {
@@ -4,7 +4,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type DestroyOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -17,7 +17,7 @@ export class WorkflowDestroyOnePreQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: DestroyOneResolverArgs,
): Promise<DestroyOneResolverArgs> {
@@ -4,7 +4,7 @@ import { type WorkspacePostQueryHookInstance } from 'src/engine/api/graphql/work
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { WorkspaceQueryHookType } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/types/workspace-query-hook.type';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -21,7 +21,7 @@ export class WorkflowRestoreManyPostQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: WorkflowWorkspaceEntity[],
): Promise<void> {
@@ -4,7 +4,7 @@ import { type WorkspacePostQueryHookInstance } from 'src/engine/api/graphql/work
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { WorkspaceQueryHookType } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/types/workspace-query-hook.type';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -21,7 +21,7 @@ export class WorkflowRestoreOnePostQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: WorkflowWorkspaceEntity[],
): Promise<void> {
@@ -2,7 +2,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type UpdateOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import {
WorkflowQueryValidationException,
WorkflowQueryValidationExceptionCode,
@@ -14,7 +14,7 @@ export class WorkflowRunUpdateOnePreQueryHook
implements WorkspacePreQueryHookInstance
{
async execute(
_authContext: AuthContext,
_authContext: WorkspaceAuthContext,
_objectName: string,
payload: UpdateOneResolverArgs<WorkflowRunWorkspaceEntity>,
): Promise<UpdateOneResolverArgs<WorkflowRunWorkspaceEntity>> {
@@ -2,7 +2,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type UpdateOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
import { assertWorkflowStatusesNotSet } from 'src/modules/workflow/common/utils/assert-workflow-statuses-not-set';
@@ -11,7 +11,7 @@ export class WorkflowUpdateOnePreQueryHook
implements WorkspacePreQueryHookInstance
{
async execute(
_authContext: AuthContext,
_authContext: WorkspaceAuthContext,
_objectName: string,
payload: UpdateOneResolverArgs<WorkflowWorkspaceEntity>,
): Promise<UpdateOneResolverArgs<WorkflowWorkspaceEntity>> {
@@ -2,7 +2,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type CreateManyResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import {
WorkflowQueryValidationException,
WorkflowQueryValidationExceptionCode,
@@ -14,7 +14,7 @@ export class WorkflowVersionCreateManyPreQueryHook
implements WorkspacePreQueryHookInstance
{
async execute(
_authContext: AuthContext,
_authContext: WorkspaceAuthContext,
_objectName: string,
_payload: CreateManyResolverArgs<WorkflowVersionWorkspaceEntity>,
): Promise<CreateManyResolverArgs<WorkflowVersionWorkspaceEntity>> {
@@ -2,7 +2,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type CreateOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import {
WorkflowQueryValidationException,
WorkflowQueryValidationExceptionCode,
@@ -14,7 +14,7 @@ export class WorkflowVersionCreateOnePreQueryHook
implements WorkspacePreQueryHookInstance
{
async execute(
_authContext: AuthContext,
_authContext: WorkspaceAuthContext,
_objectName: string,
_payload: CreateOneResolverArgs<WorkflowVersionWorkspaceEntity>,
): Promise<CreateOneResolverArgs<WorkflowVersionWorkspaceEntity>> {
@@ -4,7 +4,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type DeleteOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { WorkflowVersionValidationWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-version-validation.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -17,7 +17,7 @@ export class WorkflowVersionDeleteOnePreQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: DeleteOneResolverArgs,
): Promise<DeleteOneResolverArgs> {
@@ -4,7 +4,7 @@ import { type WorkspacePreQueryHookInstance } from 'src/engine/api/graphql/works
import { type UpdateOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator';
import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type';
import { type WorkspaceAuthContext } from 'src/engine/core-modules/auth/types/workspace-auth-context.type';
import { type WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity';
import { WorkflowVersionValidationWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-version-validation.workspace-service';
import { WorkspaceNotFoundDefaultError } from 'src/engine/core-modules/workspace/workspace.exception';
@@ -18,7 +18,7 @@ export class WorkflowVersionUpdateOnePreQueryHook
) {}
async execute(
authContext: AuthContext,
authContext: WorkspaceAuthContext,
_objectName: string,
payload: UpdateOneResolverArgs<WorkflowVersionWorkspaceEntity>,
): Promise<UpdateOneResolverArgs<WorkflowVersionWorkspaceEntity>> {