model

package
v0.0.25-dev Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2020 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const BucketEncryptionKeyLength = 32 + 16 + 32

32 bytes aes key + 16 bytes salt/IV + 32 bytes HMAC key

Variables

This section is empty.

Functions

func New

func New(st store.Store, kc keychain.Keychain, threads *threadsClient.Client, hubAuth hub.HubAuth) *model

Types

type BucketSchema

type BucketSchema struct {
	ID            core.InstanceID `json:"_id"`
	Slug          string          `json:"slug"`
	Backup        bool            `json:"backup"`
	EncryptionKey []byte          `json:"hub_key"`
	DbID          string
	*MirrorBucketSchema
}

type MirrorBucketSchema

type MirrorBucketSchema struct {
	RemoteDbID       string `json:"remoteDbId"`
	RemoteBucketKey  string `json:"remoteBucketKey"`
	HubAddr          string `json:"HubAddr"`
	RemoteBucketSlug string `json:"remoteBucketSlug"`
}

type MirrorFileSchema

type MirrorFileSchema struct {
	ID               core.InstanceID `json:"_id"`
	Path             string          `json:"path"`
	BucketSlug       string          `json:"bucket_slug"`
	Backup           bool            `json:"backup"`
	Shared           bool            `json:"shared"`
	BackupInProgress bool            `json:"backupInProgress"`
	DbID             string
}

type Model

type Model interface {
	CreateBucket(ctx context.Context, bucketSlug, dbID string) (*BucketSchema, error)
	UpsertBucket(ctx context.Context, bucketSlug, dbID string) (*BucketSchema, error)
	BucketBackupToggle(ctx context.Context, bucketSlug string, backup bool) (*BucketSchema, error)
	FindBucket(ctx context.Context, bucketSlug string) (*BucketSchema, error)
	ListBuckets(ctx context.Context) ([]*BucketSchema, error)
	CreateReceivedFile(
		ctx context.Context,
		file domain.FullPath,
		invitationId string,
		accepted bool,
		key []byte,
	) (*ReceivedFileSchema, error)
	FindReceivedFile(ctx context.Context, remoteDbID, bucket, path string) (*ReceivedFileSchema, error)
	CreateSharedPublicKey(ctx context.Context, pubKey string) (*SharedPublicKeySchema, error)
	ListSharedPublicKeys(ctx context.Context) ([]*SharedPublicKeySchema, error)
	CreateMirrorBucket(ctx context.Context, bucketSlug string, mirrorBucket *MirrorBucketSchema) (*BucketSchema, error)
	FindMirrorFileByPathAndBucketSlug(ctx context.Context, path, bucketSlug string) (*MirrorFileSchema, error)
	CreateMirrorFile(ctx context.Context, mirrorFile *domain.MirrorFile) (*MirrorFileSchema, error)
	UpdateMirrorFile(ctx context.Context, mirrorFile *MirrorFileSchema) (*MirrorFileSchema, error)
	ListReceivedFiles(ctx context.Context, accepted bool, seek string, limit int) ([]*ReceivedFileSchema, error)
	FindMirrorFileByPaths(ctx context.Context, paths []string) (map[string]*MirrorFileSchema, error)
	FindReceivedFilesByIds(ctx context.Context, ids []string) ([]*ReceivedFileSchema, error)
}

type ReceivedFileSchema

type ReceivedFileSchema struct {
	ID            core.InstanceID `json:"_id"`
	DbID          string          `json:"dbId"`
	Bucket        string          `json:"bucket"`
	Path          string          `json:"path"`
	InvitationId  string          `json:"invitationId"`
	Accepted      bool            `json:"accepted"`
	BucketKey     string          `json:"bucketKey"`
	EncryptionKey []byte          `json:"encryptionKey"`
	CreatedAt     int64           `json:"created_at"`
}

type SharedPublicKeySchema

type SharedPublicKeySchema struct {
	ID        core.InstanceID `json:"_id"`
	DbID      string          `json:"dbId"`
	PublicKey string          `json:"public_key"`
	UpdatedAt int64           `json:"updated_at"`
	CreatedAt int64           `json:"created_at"`
}

Jump to

Keyboard shortcuts

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