api

package
v0.20.1 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2020 License: Apache-2.0 Imports: 66 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 (
	RequestIDHeaderName        = "X-Request-ID"
	LoggerServiceName          = "rest_api"
	JWTAuthorizationHeaderName = "X-JWT-Authorization"
)
View Source
const (
	JWTCookieName          = "access_token"
	DefaultLoginExpiration = time.Hour * 24 * 7
)

Variables

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

Functions

func HandlerWithDefault

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

func NewHandler

func NewHandler(cataloger catalog.Cataloger,
	blockStore block.Adapter,
	authService auth.Service,
	metadataManager auth.MetadataManager,
	stats stats.Collector,
	retention retention.Service,
	migrator db.Migrator,
	parade parade.Parade,
	dedupCleaner *dedup.Cleaner,
	logger logging.Logger,
) http.Handler

func NoCache

func NoCache(h http.Handler) http.Handler

func UIHandler

func UIHandler(authService auth.Service) 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(cataloger catalog.Cataloger, auth auth.Service, blockAdapter block.Adapter, stats stats.Collector, retention retention.Service, parade parade.Parade, dedupCleaner *dedup.Cleaner, metadataManager auth.MetadataManager, migrator db.Migrator, collector stats.Collector, logger logging.Logger) *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) Context

func (c *Controller) Context() context.Context

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) 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) 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) ExportGetContinuousExportHandler added in v0.15.0

func (c *Controller) ExportGetContinuousExportHandler() exportop.GetContinuousExportHandler

func (*Controller) ExportRepairHandler added in v0.17.0

func (c *Controller) ExportRepairHandler() exportop.RepairHandler

func (*Controller) ExportRunHandler added in v0.16.0

func (c *Controller) ExportRunHandler() exportop.RunHandler

func (*Controller) ExportSetContinuousExportHandler added in v0.15.0

func (c *Controller) ExportSetContinuousExportHandler() exportop.SetContinuousExportHandlerFunc

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) 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) 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() metadataop.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) RetentionGetRetentionPolicyHandler

func (c *Controller) RetentionGetRetentionPolicyHandler() retentionop.GetRetentionPolicyHandler

func (*Controller) RetentionUpdateRetentionPolicyHandler

func (c *Controller) RetentionUpdateRetentionPolicyHandler() retentionop.UpdateRetentionPolicyHandler

func (*Controller) RevertBranchHandler

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

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
	Stats           stats.Collector
	Retention       retention.Service
	Parade          parade.Parade
	Dedup           *dedup.Cleaner
	MetadataManager auth.MetadataManager
	Migrator        db.Migrator
	Collector       stats.Collector
	// 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 Handler

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

func (*Handler) BasicAuth

func (s *Handler) BasicAuth() func(accessKey, secretKey string) (user *models.User, err error)

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

func (*Handler) JwtTokenAuth

func (s *Handler) JwtTokenAuth() func(string) (*models.User, error)

JwtTokenAuth 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

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) ([]string, *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
	RevertBranch(ctx context.Context, repository, branchID string, revertProps *models.RevertCreation) 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, leftRef, rightRef string) (*models.MergeResult, error)

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

	GetRetentionPolicy(ctx context.Context, repository string) (*models.RetentionPolicyWithCreationDate, error)
	UpdateRetentionPolicy(ctx context.Context, repository string, policy *models.RetentionPolicy) error
	Symlink(ctx context.Context, repoID, ref, path string) (string, error)

	SetContinuousExport(ctx context.Context, repository, branchID string, config *models.ContinuousExportConfiguration) error
	GetContinuousExport(ctx context.Context, repository, branchID string) (*models.ContinuousExportConfiguration, error)
	RunExport(ctx context.Context, repository, branchID string) (string, error)
	RepairExport(ctx context.Context, repository, branchID string) error
}

Jump to

Keyboard shortcuts

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