api

package
v0.33.1 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2021 License: Apache-2.0 Imports: 69 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Maximum amount of results returned for paginated queries to the API
	MaxResultsPerPage     = 1000
	DefaultResultsPerPage = 100

	UserContextKey contextKey = "user"
)
View Source
const (
	DefaultLoginExpiration = time.Hour * 24 * 7
	JWTCookieName          = "access_token"
)
View Source
const (
	RequestIDHeaderName = "X-Request-ID"
	LoggerServiceName   = "rest_api"
)
View Source
const JWTAuthorizationHeaderName = "X-JWT-Authorization"

Variables

View Source
var (
	ErrUnexpectedSigningMethod = errors.New("unexpected signing method")
	ErrAuthenticationFailed    = openapierrors.New(http.StatusUnauthorized, "error authenticating request")
)
View Source
var ErrAuthorization = errors.New("authorization error")

Functions

func GenerateJWT

func GenerateJWT(secret []byte, accessKeyID string, issuedAt, expiresAt time.Time) (string, error)

func MetricsHandler

func MetricsHandler(ctx *middleware.Context, next http.Handler) http.Handler

func NewBasicAuthHandler

func NewBasicAuthHandler(authService auth.Service) func(accessKey, secretKey string) (user *models.User, err error)

NewBasicAuthHandler returns a function that hooks into Swagger's basic Auth provider it uses the Auth.Service provided to ensure credentials are valid

func NewCookieAPIHandler

func NewCookieAPIHandler(next http.Handler) http.Handler

NewCookieAPIHandler set JWT header with JWT cookie value

func NewHandlerWithDefault

func NewHandlerWithDefault(root http.FileSystem, handler http.Handler, defaultPath, gatewayDomain string) http.Handler

func NewJwtTokenAuthHandler

func NewJwtTokenAuthHandler(authService auth.Service) func(string) (*models.User, error)

NewJwtTokenAuthHandler decodes, validates and authenticates a user that exists in the X-JWT-Authorization header. This header either exists natively, or is set using a token

func NewLoginHandler

func NewLoginHandler(authService auth.Service) http.Handler

func NewLogoutHandler

func NewLogoutHandler() http.Handler

func NewUIHandler

func NewUIHandler(authService auth.Service, gatewayDomain string) http.Handler

func Serve

func Serve(
	catalog catalog.Interface,
	authService auth.Service,
	blockAdapter block.Adapter,
	metadataManager auth.MetadataManager,
	migrator db.Migrator,
	collector stats.Collector,
	cloudMetadataProvider cloud.MetadataProvider,
	actions actionsHandler,
	logger logging.Logger,
	gatewayDomain string,
) http.Handler

Types

type AuthClient

type AuthClient interface {
	GetCurrentUser(ctx context.Context) (*models.User, error)
	GetUser(ctx context.Context, userID string) (*models.User, error)
	ListUsers(ctx context.Context, after string, amount int) ([]*models.User, *models.Pagination, error)
	DeleteUser(ctx context.Context, userID string) error
	CreateUser(ctx context.Context, userID string) (*models.User, error)
	GetGroup(ctx context.Context, groupID string) (*models.Group, error)
	ListGroups(ctx context.Context, after string, amount int) ([]*models.Group, *models.Pagination, error)
	CreateGroup(ctx context.Context, groupID string) (*models.Group, error)
	DeleteGroup(ctx context.Context, groupID string) error
	ListPolicies(ctx context.Context, after string, amount int) ([]*models.Policy, *models.Pagination, error)
	CreatePolicy(ctx context.Context, policy *models.Policy) (*models.Policy, error)
	GetPolicy(ctx context.Context, policyID string) (*models.Policy, error)
	DeletePolicy(ctx context.Context, policyID string) error
	ListGroupMembers(ctx context.Context, groupID string, after string, amount int) ([]*models.User, *models.Pagination, error)
	AddGroupMembership(ctx context.Context, groupID, userID string) error
	DeleteGroupMembership(ctx context.Context, groupID, userID string) error
	ListUserCredentials(ctx context.Context, userID string, after string, amount int) ([]*models.Credentials, *models.Pagination, error)
	CreateCredentials(ctx context.Context, userID string) (*models.CredentialsWithSecret, error)
	DeleteCredentials(ctx context.Context, userID, accessKeyID string) error
	GetCredentials(ctx context.Context, userID, accessKeyID string) (*models.Credentials, error)
	ListUserGroups(ctx context.Context, userID string, after string, amount int) ([]*models.Group, *models.Pagination, error)
	ListUserPolicies(ctx context.Context, userID string, effective bool, after string, amount int) ([]*models.Policy, *models.Pagination, error)
	AttachPolicyToUser(ctx context.Context, userID, policyID string) error
	DetachPolicyFromUser(ctx context.Context, userID, policyID string) error
	ListGroupPolicies(ctx context.Context, groupID string, after string, amount int) ([]*models.Policy, *models.Pagination, error)
	AttachPolicyToGroup(ctx context.Context, groupID, policyID string) error
	DetachPolicyFromGroup(ctx context.Context, groupID, policyID string) error
}

type Client

type Client interface {
	AuthClient
	RepositoryClient
}

func NewClient

func NewClient(endpointURL, accessKeyID, secretAccessKey string, opts ...ClientOption) (Client, error)

type ClientConfig

type ClientConfig struct {
	// contains filtered or unexported fields
}

type ClientOption

type ClientOption func(config *ClientConfig)

func WithHTTPClient

func WithHTTPClient(client *http.Client) ClientOption

type Controller

type Controller struct {
	Catalog               catalog.Interface
	Auth                  auth.Service
	BlockAdapter          block.Adapter
	MetadataManager       auth.MetadataManager
	Migrator              db.Migrator
	Collector             stats.Collector
	CloudMetadataProvider cloud.MetadataProvider
	Actions               actionsHandler
	Logger                logging.Logger
}

func NewController

func NewController(
	catalog catalog.Interface,
	authService auth.Service,
	blockAdapter block.Adapter,
	metadataManager auth.MetadataManager,
	migrator db.Migrator,
	collector stats.Collector,
	cloudMetadataProvider cloud.MetadataProvider,
	actions actionsHandler,
	logger logging.Logger,
) *Controller

func (*Controller) ActionsGetRunHandler

func (c *Controller) ActionsGetRunHandler() actionsop.GetRunHandler

func (*Controller) ActionsGetRunHookOutputHandler

func (c *Controller) ActionsGetRunHookOutputHandler() actionsop.GetRunHookOutputHandler

func (*Controller) ActionsListRunHooksHandler

func (c *Controller) ActionsListRunHooksHandler() actionsop.ListRunHooksHandler

func (*Controller) ActionsListRunsHandler

func (c *Controller) ActionsListRunsHandler() actionsop.ListRunsHandler

func (*Controller) AddGroupMembershipHandler

func (c *Controller) AddGroupMembershipHandler() authop.AddGroupMembershipHandler

func (*Controller) AttachPolicyToGroupHandler

func (c *Controller) AttachPolicyToGroupHandler() authop.AttachPolicyToGroupHandler

func (*Controller) AttachPolicyToUserHandler

func (c *Controller) AttachPolicyToUserHandler() authop.AttachPolicyToUserHandler

func (*Controller) BranchesDiffBranchHandler

func (c *Controller) BranchesDiffBranchHandler() branches.DiffBranchHandler

func (*Controller) CommitHandler

func (c *Controller) CommitHandler() commits.CommitHandler

func (*Controller) CommitsGetBranchCommitLogHandler

func (c *Controller) CommitsGetBranchCommitLogHandler() commits.GetBranchCommitLogHandler

func (*Controller) ConfigGetConfigHandler

func (c *Controller) ConfigGetConfigHandler() configop.GetConfigHandler

func (*Controller) Configure

func (c *Controller) Configure(api *operations.LakefsAPI)

Configure attaches our API operations to a generated swagger API stub Adding new handlers requires also adding them here so that the generated server will use them

func (*Controller) CreateBranchHandler

func (c *Controller) CreateBranchHandler() branches.CreateBranchHandler

func (*Controller) CreateCredentialsHandler

func (c *Controller) CreateCredentialsHandler() authop.CreateCredentialsHandler

func (*Controller) CreateGroupHandler

func (c *Controller) CreateGroupHandler() authop.CreateGroupHandler

func (*Controller) CreatePolicyHandler

func (c *Controller) CreatePolicyHandler() authop.CreatePolicyHandler

func (*Controller) CreateRepositoryHandler

func (c *Controller) CreateRepositoryHandler() repositories.CreateRepositoryHandler

func (*Controller) CreateTagHandler

func (c *Controller) CreateTagHandler() tags.CreateTagHandler

func (*Controller) CreateUserHandler

func (c *Controller) CreateUserHandler() authop.CreateUserHandler

func (*Controller) DeleteBranchHandler

func (c *Controller) DeleteBranchHandler() branches.DeleteBranchHandler

func (*Controller) DeleteCredentialsHandler

func (c *Controller) DeleteCredentialsHandler() authop.DeleteCredentialsHandler

func (*Controller) DeleteGroupHandler

func (c *Controller) DeleteGroupHandler() authop.DeleteGroupHandler

func (*Controller) DeleteGroupMembershipHandler

func (c *Controller) DeleteGroupMembershipHandler() authop.DeleteGroupMembershipHandler

func (*Controller) DeletePolicyHandler

func (c *Controller) DeletePolicyHandler() authop.DeletePolicyHandler

func (*Controller) DeleteRepositoryHandler

func (c *Controller) DeleteRepositoryHandler() repositories.DeleteRepositoryHandler

func (*Controller) DeleteTagHandler

func (c *Controller) DeleteTagHandler() tags.DeleteTagHandler

func (*Controller) DeleteUserHandler

func (c *Controller) DeleteUserHandler() authop.DeleteUserHandler

func (*Controller) DetachPolicyFromGroupHandler

func (c *Controller) DetachPolicyFromGroupHandler() authop.DetachPolicyFromGroupHandler

func (*Controller) DetachPolicyFromUserHandler

func (c *Controller) DetachPolicyFromUserHandler() authop.DetachPolicyFromUserHandler

func (*Controller) GetBranchHandler

func (c *Controller) GetBranchHandler() branches.GetBranchHandler

func (*Controller) GetCommitHandler

func (c *Controller) GetCommitHandler() commits.GetCommitHandler

func (*Controller) GetCredentialsHandler

func (c *Controller) GetCredentialsHandler() authop.GetCredentialsHandler

func (*Controller) GetCurrentUserHandler

func (c *Controller) GetCurrentUserHandler() authop.GetCurrentUserHandler

func (*Controller) GetGroupHandler

func (c *Controller) GetGroupHandler() authop.GetGroupHandler

func (*Controller) GetHealthCheckHandler

func (c *Controller) GetHealthCheckHandler() hcop.HealthCheckHandler

func (*Controller) GetPolicyHandler

func (c *Controller) GetPolicyHandler() authop.GetPolicyHandler

func (*Controller) GetRepoHandler

func (c *Controller) GetRepoHandler() repositories.GetRepositoryHandler

func (*Controller) GetTagHandler

func (c *Controller) GetTagHandler() tags.GetTagHandler

func (*Controller) GetUserHandler

func (c *Controller) GetUserHandler() authop.GetUserHandler

func (*Controller) ListBranchesHandler

func (c *Controller) ListBranchesHandler() branches.ListBranchesHandler

func (*Controller) ListGroupMembersHandler

func (c *Controller) ListGroupMembersHandler() authop.ListGroupMembersHandler

func (*Controller) ListGroupPoliciesHandler

func (c *Controller) ListGroupPoliciesHandler() authop.ListGroupPoliciesHandler

func (*Controller) ListGroupsHandler

func (c *Controller) ListGroupsHandler() authop.ListGroupsHandler

func (*Controller) ListPoliciesHandler

func (c *Controller) ListPoliciesHandler() authop.ListPoliciesHandler

func (*Controller) ListRepositoriesHandler

func (c *Controller) ListRepositoriesHandler() repositories.ListRepositoriesHandler

func (*Controller) ListTagsHandler

func (c *Controller) ListTagsHandler() tags.ListTagsHandler

func (*Controller) ListUserCredentialsHandler

func (c *Controller) ListUserCredentialsHandler() authop.ListUserCredentialsHandler

func (*Controller) ListUserGroupsHandler

func (c *Controller) ListUserGroupsHandler() authop.ListUserGroupsHandler

func (*Controller) ListUserPoliciesHandler

func (c *Controller) ListUserPoliciesHandler() authop.ListUserPoliciesHandler

func (*Controller) ListUsersHandler

func (c *Controller) ListUsersHandler() authop.ListUsersHandler

func (*Controller) LogAction

func (c *Controller) LogAction(ctx context.Context, action string)

func (*Controller) MergeMergeIntoBranchHandler

func (c *Controller) MergeMergeIntoBranchHandler() refs.MergeIntoBranchHandler

func (*Controller) MetadataCreateSymlinkHandler

func (c *Controller) MetadataCreateSymlinkHandler() metadata.CreateSymlinkHandler

func (*Controller) MetadataGetMetarangeHandler

func (c *Controller) MetadataGetMetarangeHandler() metadata.GetMetaRangeHandler

func (*Controller) MetadataGetRangeHandler

func (c *Controller) MetadataGetRangeHandler() metadata.GetRangeHandler

func (*Controller) ObjectsDeleteObjectHandler

func (c *Controller) ObjectsDeleteObjectHandler() objects.DeleteObjectHandler

func (*Controller) ObjectsGetObjectHandler

func (c *Controller) ObjectsGetObjectHandler() objects.GetObjectHandler

func (*Controller) ObjectsGetUnderlyingPropertiesHandler

func (c *Controller) ObjectsGetUnderlyingPropertiesHandler() objects.GetUnderlyingPropertiesHandler

func (*Controller) ObjectsListObjectsHandler

func (c *Controller) ObjectsListObjectsHandler() objects.ListObjectsHandler

func (*Controller) ObjectsStageObjectHandler

func (c *Controller) ObjectsStageObjectHandler() objects.StageObjectHandler

func (*Controller) ObjectsStatObjectHandler

func (c *Controller) ObjectsStatObjectHandler() objects.StatObjectHandler

func (*Controller) ObjectsUploadObjectHandler

func (c *Controller) ObjectsUploadObjectHandler() objects.UploadObjectHandler

func (*Controller) RefsDiffRefsHandler

func (c *Controller) RefsDiffRefsHandler() refs.DiffRefsHandler

func (*Controller) RefsDumpHandler

func (c *Controller) RefsDumpHandler() refs.DumpHandler

func (*Controller) RefsRestoreHandler

func (c *Controller) RefsRestoreHandler() refs.RestoreHandler

func (*Controller) ResetBranchHandler

func (c *Controller) ResetBranchHandler() branches.ResetBranchHandler

func (*Controller) RevertHandler

func (c *Controller) RevertHandler() branches.RevertHandler

func (*Controller) SetupLakeFSHandler

func (c *Controller) SetupLakeFSHandler() setupop.SetupLakeFSHandler

func (*Controller) UpdatePolicyHandler

func (c *Controller) UpdatePolicyHandler() authop.UpdatePolicyHandler

type LoginRequestData

type LoginRequestData struct {
	AccessKeyID     string `json:"access_key_id"`
	SecretAccessKey string `json:"secret_access_key"`
}

type LoginResponseData

type LoginResponseData struct {
	Token string `json:"token"`
}

type RepositoryClient

type RepositoryClient interface {
	ListRepositories(ctx context.Context, after string, amount int) ([]*models.Repository, *models.Pagination, error)
	GetRepository(ctx context.Context, repository string) (*models.Repository, error)
	CreateRepository(ctx context.Context, repository *models.RepositoryCreation) error
	CreateBareRepository(ctx context.Context, repository *models.RepositoryCreation) error
	DeleteRepository(ctx context.Context, repository string) error

	ListBranches(ctx context.Context, repository string, from string, amount int) ([]*models.Ref, *models.Pagination, error)
	GetBranch(ctx context.Context, repository, branchID string) (string, error)
	CreateBranch(ctx context.Context, repository string, branch *models.BranchCreation) (string, error)
	DeleteBranch(ctx context.Context, repository, branchID string) error
	ResetBranch(ctx context.Context, repository, branchID string, resetProps *models.ResetCreation) error
	RevertBranch(ctx context.Context, repository, branchID string, commitRef string, parentNumber int) error

	ListTags(ctx context.Context, repository string, from string, amount int) ([]*models.Ref, *models.Pagination, error)
	GetTag(ctx context.Context, repository, tagID string) (string, error)
	CreateTag(ctx context.Context, repository string, tagID string, ref string) (string, error)
	DeleteTag(ctx context.Context, repository, tagID string) error

	Commit(ctx context.Context, repository, branchID, message string, metadata map[string]string) (*models.Commit, error)
	GetCommit(ctx context.Context, repository, commitID string) (*models.Commit, error)
	GetCommitLog(ctx context.Context, repository, branchID, after string, amount int) ([]*models.Commit, *models.Pagination, error)

	StatObject(ctx context.Context, repository, ref, path string) (*models.ObjectStats, error)
	ListObjects(ctx context.Context, repository, ref string, recursive bool, prefix, from string, amount int) ([]*models.ObjectStats, *models.Pagination, error)
	GetObject(ctx context.Context, repository, ref, path string, w io.Writer) (*objects.GetObjectOK, error)
	UploadObject(ctx context.Context, repository, branchID, path string, r io.Reader) (*models.ObjectStats, error)
	StageObject(ctx context.Context, repository, branchID, path string, object *models.ObjectStageCreation) (*models.ObjectStats, error)
	DeleteObject(ctx context.Context, repository, branchID, path string) error

	DiffRefs(ctx context.Context, repository, leftRef, rightRef string, after string, amount int) ([]*models.Diff, *models.Pagination, error)
	Merge(ctx context.Context, repository, destinationBranch, sourceRef string) (*models.MergeResult, error)

	DiffBranch(ctx context.Context, repository, branch string, after string, amount int) ([]*models.Diff, *models.Pagination, error)

	Symlink(ctx context.Context, repoID, ref, path string) (string, error)

	RefsDump(ctx context.Context, repository string) (*models.RefsDump, error)
	RefsRestore(ctx context.Context, repository string, manifest *models.RefsDump) error

	GetRunResult(ctx context.Context, repositoryID string, runID string) (*models.ActionRun, error)
	ListRunResults(ctx context.Context, repositoryID string, branchID, commitID *string, after string, amount int) ([]*models.ActionRun, *models.Pagination, error)
	ListRunTaskResults(ctx context.Context, repositoryID string, runID string, after string, amount int) ([]*models.HookRun, *models.Pagination, error)
	GetRunHookOutput(ctx context.Context, repositoryID string, runID string, hookRunID string, writer io.Writer) error
}

Jump to

Keyboard shortcuts

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