api

package
v0.31.1 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2021 License: Apache-2.0 Imports: 63 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 added in v0.31.0

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

func MetricsHandler added in v0.31.0

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

func NewBasicAuthHandler added in v0.31.0

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 added in v0.31.0

func NewCookieAPIHandler(next http.Handler) http.Handler

NewCookieAPIHandler set JWT header with JWT cookie value

func NewHandlerWithDefault added in v0.31.0

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

func NewJwtTokenAuthHandler added in v0.31.0

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 added in v0.31.0

func NewLoginHandler(authService auth.Service) http.Handler

func NewLogoutHandler added in v0.31.0

func NewLogoutHandler() http.Handler

func NewUIHandler added in v0.31.0

func NewUIHandler(authService auth.Service) http.Handler

func Serve added in v0.31.0

func Serve(deps Dependencies) 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) (Client, error)

type Controller

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

func NewController

func NewController(deps Dependencies) *Controller

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 added in v0.14.0

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 added in v0.31.0

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 added in v0.31.0

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 added in v0.9.0

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 added in v0.31.0

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 added in v0.31.0

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) MergeMergeIntoBranchHandler

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

func (*Controller) MetadataCreateSymlinkHandler

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

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) 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) RefsRefsDumpHandler added in v0.31.1

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

func (*Controller) ResetBranchHandler added in v0.30.0

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

func (*Controller) RevertHandler added in v0.30.0

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

func (*Controller) SetupLakeFSHandler added in v0.9.0

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

func (*Controller) UpdatePolicyHandler

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

type Dependencies

type Dependencies struct {
	Cataloger             catalog.Cataloger
	Auth                  auth.Service
	BlockAdapter          block.Adapter
	MetadataManager       auth.MetadataManager
	Migrator              db.Migrator
	Collector             stats.Collector
	CloudMetadataProvider cloud.MetadataProvider
	Logger                logging.Logger
	// contains filtered or unexported fields
}

func (*Dependencies) LogAction

func (d *Dependencies) LogAction(action string)

func (*Dependencies) WithContext

func (d *Dependencies) WithContext(ctx context.Context) *Dependencies

type LoginRequestData added in v0.31.0

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

type LoginResponseData added in v0.31.0

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
	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, 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)
	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)
}

Jump to

Keyboard shortcuts

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