workspace

package
v0.0.0-...-3511abf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

AuthZProvider providers WorkspaceAuthZ implementations.

Functions

func AllWorkspaces

func AllWorkspaces(ctx context.Context) ([]*model.Workspace, error)

AllWorkspaces returns all the workspaces that exist.

func Exists

func Exists(ctx context.Context, id int) (bool, error)

Exists returns if the workspace exists and is not archived.

func ProjectIDByName

func ProjectIDByName(ctx context.Context, workspaceID int, projectName string) (*int, error)

ProjectIDByName returns a project's ID if it exists in the given workspace.

func WorkspaceByName

func WorkspaceByName(ctx context.Context, workspaceName string) (*model.Workspace, error)

WorkspaceByName returns a workspace given it's name.

func WorkspaceByProjectID

func WorkspaceByProjectID(ctx context.Context, projectID int) (*model.Workspace, error)

WorkspaceByProjectID returns a workspace given a project ID.

func WorkspaceIDsFromNames

func WorkspaceIDsFromNames(ctx context.Context, workspaceNames []string) (
	[]int32, error,
)

WorkspaceIDsFromNames returns an unordered slice of workspaceIDs that correlate with the given workspace names.

func WorkspacesIDsByExperimentIDs

func WorkspacesIDsByExperimentIDs(ctx context.Context, expIDs []int) ([]int, error)

WorkspacesIDsByExperimentIDs gets workspace IDs associated with each experiment.

Types

type WorkspaceAuthZ

type WorkspaceAuthZ interface {
	// GET /api/v1/workspaces/:workspace_id
	CanGetWorkspace(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error

	CanGetWorkspaceID(
		ctx context.Context, curUser model.User, workspace int32,
	) error

	// POST /api/v1/resource-pools/workspace-bind
	// POST /api/v1/resource-pools/workspace-unbind
	CanModifyRPWorkspaceBindings(
		ctx context.Context, curUser model.User, workspaceIDs []int32,
	) error

	// GET /api/v1/workspaces/:workspace_id/projects
	FilterWorkspaceProjects(
		ctx context.Context, curUser model.User, projects []*projectv1.Project,
	) ([]*projectv1.Project, error)

	// GET /api/v1/workspaces
	FilterWorkspaces(
		ctx context.Context, curUser model.User, workspaces []*workspacev1.Workspace,
	) ([]*workspacev1.Workspace, error)

	FilterWorkspaceIDs(
		ctx context.Context, curUser model.User, workspaces []int32,
	) ([]int32, error)

	// POST /api/v1/workspaces
	CanCreateWorkspace(ctx context.Context, curUser model.User) error
	CanCreateWorkspaceWithAgentUserGroup(ctx context.Context, curUser model.User) error
	CanCreateWorkspaceWithCheckpointStorageConfig(ctx context.Context, curUser model.User) error

	// PATCH /api/v1/workspaces/:workspace_id
	CanSetWorkspacesName(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error
	CanSetWorkspacesAgentUserGroup(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error
	CanSetWorkspacesCheckpointStorageConfig(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error
	CanSetWorkspacesDefaultPools(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error

	// DELETE /api/v1/workspaces/:workspace_id
	CanDeleteWorkspace(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error

	// POST /api/v1/workspaces/:workspace_id/archive
	CanArchiveWorkspace(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error
	// POST /api/v1/workspaces/:workspace_id/unarchive
	CanUnarchiveWorkspace(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error

	// POST /api/v1/workspaces/:workspace_id/pin
	CanPinWorkspace(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error
	// POST /api/v1/workspaces/:workspace_id/unpin
	CanUnpinWorkspace(
		ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
	) error
}

WorkspaceAuthZ is the interface for workspace authorization.

type WorkspaceAuthZBasic

type WorkspaceAuthZBasic struct{}

WorkspaceAuthZBasic is classic OSS Determined authentication for workspaces.

func (*WorkspaceAuthZBasic) CanArchiveWorkspace

func (a *WorkspaceAuthZBasic) CanArchiveWorkspace(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanArchiveWorkspace returns an error if the user is not an admin or not the owner of the workspace.

func (*WorkspaceAuthZBasic) CanCreateWorkspace

func (a *WorkspaceAuthZBasic) CanCreateWorkspace(ctx context.Context, curUser model.User) error

CanCreateWorkspace always returns a nil error.

func (*WorkspaceAuthZBasic) CanCreateWorkspaceWithAgentUserGroup

func (a *WorkspaceAuthZBasic) CanCreateWorkspaceWithAgentUserGroup(
	ctx context.Context, curUser model.User,
) error

CanCreateWorkspaceWithAgentUserGroup requires user to be an admin.

func (*WorkspaceAuthZBasic) CanCreateWorkspaceWithCheckpointStorageConfig

func (a *WorkspaceAuthZBasic) CanCreateWorkspaceWithCheckpointStorageConfig(
	ctx context.Context, curUser model.User,
) error

CanCreateWorkspaceWithCheckpointStorageConfig returns an nil error.

func (*WorkspaceAuthZBasic) CanDeleteWorkspace

func (a *WorkspaceAuthZBasic) CanDeleteWorkspace(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanDeleteWorkspace returns an error if the user is not an admin or not the owner of the workspace.

func (*WorkspaceAuthZBasic) CanGetWorkspace

func (a *WorkspaceAuthZBasic) CanGetWorkspace(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanGetWorkspace always return true and a nil error.

func (*WorkspaceAuthZBasic) CanGetWorkspaceID

func (a *WorkspaceAuthZBasic) CanGetWorkspaceID(
	ctx context.Context, curUser model.User, workspaceID int32,
) error

CanGetWorkspaceID always return true and a nil error.

func (*WorkspaceAuthZBasic) CanModifyRPWorkspaceBindings

func (a *WorkspaceAuthZBasic) CanModifyRPWorkspaceBindings(
	ctx context.Context, curUser model.User, workspaceIDs []int32,
) error

CanModifyRPWorkspaceBindings requires user to be an admin.

func (*WorkspaceAuthZBasic) CanPinWorkspace

func (a *WorkspaceAuthZBasic) CanPinWorkspace(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanPinWorkspace always returns a nil error.

func (*WorkspaceAuthZBasic) CanSetWorkspacesAgentUserGroup

func (a *WorkspaceAuthZBasic) CanSetWorkspacesAgentUserGroup(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanSetWorkspacesAgentUserGroup can only be done by admins.

func (*WorkspaceAuthZBasic) CanSetWorkspacesCheckpointStorageConfig

func (a *WorkspaceAuthZBasic) CanSetWorkspacesCheckpointStorageConfig(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanSetWorkspacesCheckpointStorageConfig returns an error if the user is not an admin or owner of the workspace.

func (*WorkspaceAuthZBasic) CanSetWorkspacesDefaultPools

func (a *WorkspaceAuthZBasic) CanSetWorkspacesDefaultPools(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanSetWorkspacesDefaultPools returns a nil error.

func (*WorkspaceAuthZBasic) CanSetWorkspacesName

func (a *WorkspaceAuthZBasic) CanSetWorkspacesName(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanSetWorkspacesName returns an error if the user is not an admin or not the owner of the workspace.

func (*WorkspaceAuthZBasic) CanUnarchiveWorkspace

func (a *WorkspaceAuthZBasic) CanUnarchiveWorkspace(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanUnarchiveWorkspace returns an error if the user is not an admin or not the owner of the workspace.

func (*WorkspaceAuthZBasic) CanUnpinWorkspace

func (a *WorkspaceAuthZBasic) CanUnpinWorkspace(
	ctx context.Context, curUser model.User, workspace *workspacev1.Workspace,
) error

CanUnpinWorkspace always returns a nil error.

func (*WorkspaceAuthZBasic) FilterWorkspaceIDs

func (a *WorkspaceAuthZBasic) FilterWorkspaceIDs(
	ctx context.Context, curUser model.User, workspaceIDs []int32,
) ([]int32, error)

FilterWorkspaceIDs always returns provided list and a nil error.

func (*WorkspaceAuthZBasic) FilterWorkspaceProjects

func (a *WorkspaceAuthZBasic) FilterWorkspaceProjects(
	ctx context.Context, curUser model.User, projects []*projectv1.Project,
) ([]*projectv1.Project, error)

FilterWorkspaceProjects always returns the list provided and a nil error.

func (*WorkspaceAuthZBasic) FilterWorkspaces

func (a *WorkspaceAuthZBasic) FilterWorkspaces(
	ctx context.Context, curUser model.User, workspaces []*workspacev1.Workspace,
) ([]*workspacev1.Workspace, error)

FilterWorkspaces always returns provided list and a nil errir.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL