Skip to content

Commit 6717d90

Browse files
carlydfShahabT
andauthored
Specify reason for versioning-related permission-denied errors (temporalio#7588)
## What changed? Specify reason for versioning-related permission-denied errors ## Why? It was confusing for users when one type of versioning was enabled, but if they used an API associated with a different version of versioning, the error still just said "Worker versioning is disabled in this namespace." ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> --------- Co-authored-by: Shahab Tajik <[email protected]>
1 parent ae71eed commit 6717d90

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

service/frontend/errors.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ var (
134134
errListNotAllowed = serviceerror.NewPermissionDenied("List is disabled on this namespace.", "")
135135
errSchedulesNotAllowed = serviceerror.NewPermissionDenied("Schedules are disabled on this namespace.", "")
136136

137-
errDeploymentsNotAllowed = serviceerror.NewPermissionDenied("Deployments are disabled on this namespace.", "")
137+
errDeploymentsNotAllowed = serviceerror.NewPermissionDenied("Deployments (deprecated) are disabled on this namespace.", "")
138+
errDeploymentVersionsNotAllowed = serviceerror.NewPermissionDenied("Worker Deployment Versions are disabled on this namespace.", "")
138139

139140
errBatchAPINotAllowed = serviceerror.NewPermissionDenied("Batch operation feature are disabled on this namespace.", "")
140141
errBatchOpsWorkflowFilterNotSet = serviceerror.NewInvalidArgument("Workflow executions and visibility filter are not set on request.")
@@ -146,7 +147,9 @@ var (
146147
errUpdateWorkflowExecutionAsyncAdmittedNotAllowed = serviceerror.NewPermissionDenied("UpdateWorkflowExecution issued asynchronously and waiting on update admitted is not supported.", "")
147148
errMultiOperationAPINotAllowed = serviceerror.NewPermissionDenied("ExecuteMultiOperation API is disabled on this namespace.", "")
148149

149-
errWorkerVersioningNotAllowed = serviceerror.NewPermissionDenied("Worker versioning is disabled on this namespace.", "")
150+
errWorkerVersioningV1_0NotAllowed = serviceerror.NewPermissionDenied("Worker versioning v0.1 (Version Set-based, deprecated) is disabled on this namespace.", "")
151+
errWorkerVersioningV2_0NotAllowed = serviceerror.NewPermissionDenied("Worker versioning v0.2 (Rules-based, deprecated) is disabled on this namespace.", "")
152+
errWorkerVersioningWorkflowAPIsNotAllowed = serviceerror.NewPermissionDenied("Worker versioning in workflow progress APIs is disabled on this namespace.", "")
150153

151154
errListHistoryTasksNotAllowed = serviceerror.NewPermissionDenied("ListHistoryTasks feature is disabled on this cluster.", "")
152155
)

service/frontend/workflow_handler.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3363,7 +3363,7 @@ func (wh *WorkflowHandler) DescribeWorkerDeploymentVersion(ctx context.Context,
33633363
}
33643364

33653365
if !wh.config.EnableDeploymentVersions(request.Namespace) {
3366-
return nil, errDeploymentsNotAllowed
3366+
return nil, errDeploymentVersionsNotAllowed
33673367
}
33683368

33693369
namespaceEntry, err := wh.namespaceRegistry.GetNamespace(namespace.Name(request.GetNamespace()))
@@ -3392,7 +3392,7 @@ func (wh *WorkflowHandler) SetWorkerDeploymentCurrentVersion(ctx context.Context
33923392
}
33933393

33943394
if !wh.config.EnableDeploymentVersions(request.Namespace) {
3395-
return nil, errDeploymentsNotAllowed
3395+
return nil, errDeploymentVersionsNotAllowed
33963396
}
33973397

33983398
namespaceEntry, err := wh.namespaceRegistry.GetNamespace(namespace.Name(request.GetNamespace()))
@@ -3426,7 +3426,7 @@ func (wh *WorkflowHandler) SetWorkerDeploymentRampingVersion(ctx context.Context
34263426
}
34273427

34283428
if !wh.config.EnableDeploymentVersions(request.Namespace) {
3429-
return nil, errDeploymentsNotAllowed
3429+
return nil, errDeploymentVersionsNotAllowed
34303430
}
34313431

34323432
namespaceEntry, err := wh.namespaceRegistry.GetNamespace(namespace.Name(request.GetNamespace()))
@@ -3467,7 +3467,7 @@ func (wh *WorkflowHandler) ListWorkerDeployments(ctx context.Context, request *w
34673467
}
34683468

34693469
if !wh.config.EnableDeploymentVersions(request.Namespace) {
3470-
return nil, errDeploymentsNotAllowed
3470+
return nil, errDeploymentVersionsNotAllowed
34713471
}
34723472

34733473
namespaceEntry, err := wh.namespaceRegistry.GetNamespace(namespace.Name(request.GetNamespace()))
@@ -4268,7 +4268,7 @@ func (wh *WorkflowHandler) UpdateWorkerBuildIdCompatibility(ctx context.Context,
42684268
}
42694269

42704270
if !wh.config.EnableWorkerVersioningData(request.Namespace) {
4271-
return nil, errWorkerVersioningNotAllowed
4271+
return nil, errWorkerVersioningV1_0NotAllowed
42724272
}
42734273

42744274
if err := wh.validateBuildIdCompatibilityUpdate(request); err != nil {
@@ -4310,7 +4310,7 @@ func (wh *WorkflowHandler) GetWorkerBuildIdCompatibility(ctx context.Context, re
43104310
}
43114311

43124312
if !wh.config.EnableWorkerVersioningData(request.Namespace) {
4313-
return nil, errWorkerVersioningNotAllowed
4313+
return nil, errWorkerVersioningV1_0NotAllowed
43144314
}
43154315

43164316
taskQueue := &taskqueuepb.TaskQueue{Name: request.GetTaskQueue(), Kind: enumspb.TASK_QUEUE_KIND_NORMAL}
@@ -4343,7 +4343,7 @@ func (wh *WorkflowHandler) UpdateWorkerVersioningRules(ctx context.Context, requ
43434343
}
43444344

43454345
if !wh.config.EnableWorkerVersioningRules(request.Namespace) {
4346-
return nil, errWorkerVersioningNotAllowed
4346+
return nil, errWorkerVersioningV2_0NotAllowed
43474347
}
43484348

43494349
if err := wh.validateVersionRuleBuildId(request); err != nil {
@@ -4383,7 +4383,7 @@ func (wh *WorkflowHandler) GetWorkerVersioningRules(ctx context.Context, request
43834383
}
43844384

43854385
if !wh.config.EnableWorkerVersioningRules(request.Namespace) {
4386-
return nil, errWorkerVersioningNotAllowed
4386+
return nil, errWorkerVersioningV2_0NotAllowed
43874387
}
43884388

43894389
taskQueue := &taskqueuepb.TaskQueue{Name: request.GetTaskQueue(), Kind: enumspb.TASK_QUEUE_KIND_NORMAL}
@@ -4422,7 +4422,7 @@ func (wh *WorkflowHandler) GetWorkerTaskReachability(ctx context.Context, reques
44224422
}
44234423

44244424
if !wh.config.EnableWorkerVersioningData(request.Namespace) {
4425-
return nil, errWorkerVersioningNotAllowed
4425+
return nil, errWorkerVersioningV2_0NotAllowed
44264426
}
44274427

44284428
if len(request.GetBuildIds()) == 0 {
@@ -5260,7 +5260,7 @@ type buildIdAndFlag interface {
52605260

52615261
func (wh *WorkflowHandler) validateVersioningInfo(nsName string, id buildIdAndFlag, tq *taskqueuepb.TaskQueue) error {
52625262
if id.GetUseVersioning() && !wh.config.EnableWorkerVersioningWorkflow(nsName) {
5263-
return errWorkerVersioningNotAllowed
5263+
return errWorkerVersioningWorkflowAPIsNotAllowed
52645264
}
52655265
if id.GetUseVersioning() && tq.GetKind() == enumspb.TASK_QUEUE_KIND_STICKY && len(tq.GetNormalName()) == 0 {
52665266
return errUseVersioningWithoutNormalName

0 commit comments

Comments
 (0)