Support for Workflow Roles - Currently Leveraging Storage Roles
Status
-
Proposed -
Trialing -
Under review -
Approved -
Retired
Context & Scope
The ingestion-workflow service currently is using common model StorageRole for authorization. In code the following is observed:
import org.opengroup.osdu.core.common.model.storage.StorageRole;
...
@PreAuthorize("@authorizationFilter.hasPermission('" + StorageRole.CREATOR + "')")
public GetStatusResponse getWorkflowStatus(@RequestBody GetStatusRequest request) {...}
@PreAuthorize("@authorizationFilter.hasPermission('" + StorageRole.CREATOR + "')")
public UpdateStatusResponse updateWorkflowStatus(@RequestBody UpdateStatusRequest request) {...}
Note that StorageRole.* is used for auth.
Decision
A new Role model should be created called WorkflowRole and used to assign privelages.
Sample Code
public final class WorkflowRole {
public static final String VIEWER = "service.workflow.viewer";
public static final String CREATOR = "service.workflow.creator";
public static final String ADMIN = "service.workflow.admin";
}
Rationale
Each individual core service should have separate Roles to allow granularity for users to give entitlements
Consequences
Need to change Core Common and Entitlements Service? Need Groups Support?
Edited by Stephen Whitley (Invited Expert)