Documentation
¶
Index ¶
- func ReceiveBlob(res *model.StoredResource, accessToken string, receiverFn blobReceiverFn) (io.ReadCloser, error)
- func Register(vaultType string, ctor VaultConstructor)
- func SendBlob(r io.Reader, vaultID string, cleartext bool, senderFn blobSenderFn) (*model.StoredResource, error)
- type Config
- type LocalBlobManager
- func (lbm *LocalBlobManager) AddVault(v Vault, cfg *Config)
- func (lbm *LocalBlobManager) GetBlob(ctx context.Context, res *model.StoredResource, accessToken string) (io.ReadCloser, error)
- func (lbm *LocalBlobManager) GetVault(id string) (Vault, error)
- func (lbm *LocalBlobManager) GetVaultMap(ctx context.Context) (map[string]*model.VaultProperties, error)
- func (lbm *LocalBlobManager) PurgeBlob(ctx context.Context, res *model.StoredResource) error
- func (lbm *LocalBlobManager) SendBlob(ctx context.Context, data io.Reader, cleartext bool, vaultName string) (*model.StoredResource, error)
- type Params
- type Vault
- type VaultConstructor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReceiveBlob ¶
func ReceiveBlob(res *model.StoredResource, accessToken string, receiverFn blobReceiverFn) (io.ReadCloser, error)
ReceiveBlob returns a decrypted blob stream from the vault (either local or remote)
func Register ¶
func Register(vaultType string, ctor VaultConstructor)
Types ¶
type Config ¶
type Config struct {
// ID is the vault's globally unique ID.
ID string `json:"id"`
// ID is the vault's locally (within the MetaLocker node) unique name.
Name string `json:"name"`
// Type is the registered vault algorithm type.
Type string `json:"type"`
// SSE is true if the vault uses Server Side Encryption
SSE bool `json:"sse"`
// CAS is true if the vault generates content addressable resource IDs
CAS bool `json:"cas"`
// Params are vault parameters that are specific to its Type.
Params Params `json:"params"`
}
Config defines vault's configuration.
type LocalBlobManager ¶
type LocalBlobManager struct {
// contains filtered or unexported fields
}
func NewLocalBlobManager ¶
func NewLocalBlobManager() *LocalBlobManager
func (*LocalBlobManager) AddVault ¶
func (lbm *LocalBlobManager) AddVault(v Vault, cfg *Config)
func (*LocalBlobManager) GetBlob ¶
func (lbm *LocalBlobManager) GetBlob(ctx context.Context, res *model.StoredResource, accessToken string) (io.ReadCloser, error)
func (*LocalBlobManager) GetVaultMap ¶
func (lbm *LocalBlobManager) GetVaultMap(ctx context.Context) (map[string]*model.VaultProperties, error)
func (*LocalBlobManager) PurgeBlob ¶
func (lbm *LocalBlobManager) PurgeBlob(ctx context.Context, res *model.StoredResource) error
type Vault ¶
type Vault interface {
io.Closer
// ID returns the vault's globally unique ID.
ID() string
// Name returns the vault's locally (within the node) unique name.
Name() string
// SSE returns true if server side encryption is enabled in this vault
// If true, there may be no need to encrypt the blob before storing it in the vault.
SSE() bool
// CAS returns true if the vault produces content-addressable blob IDs. This means that
// if the same blob is uploaded twice, it will receive a storage configuration with
// the same ID and same parameters. This may not be desirable for private storage
// as records can be correlated by its data asset IDs. However, it is essential
// for off-chain operation storage to use content-addressable IDs.
CAS() bool
// CreateBlob stores a blob in the vault and returns a resource definition.
CreateBlob(ctx context.Context, blob io.Reader) (*model.StoredResource, error)
// ServeBlob returns a binary stream for the stored resource. Depending on the vault's
// SSE property, it may be in cleartext or encrypted. The vault will check if
// the caller can access the resource by checking the provided accessToken
// against the ledger and other sources.
ServeBlob(ctx context.Context, id string, params map[string]any, accessToken string) (io.ReadCloser, error)
// PurgeBlob permanently purges the given resource from the vault. If will only
// succeed in the resource is related to a revoked lease.
PurgeBlob(ctx context.Context, id string, params map[string]any) error
}
Vault is a data storage facility for all user's datasets that are stored in MetaLocker.
func CreateVault ¶
func CreateVault(cfg *Config, resolver cmdbase.ParameterResolver, verifier model.AccessVerifier) (Vault, error)
type VaultConstructor ¶
type VaultConstructor func(cfg *Config, resolver cmdbase.ParameterResolver, verifier model.AccessVerifier) (Vault, error)
Click to show internal directories.
Click to hide internal directories.