vault

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2022 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Authorization

type Authorization struct {
	EDV *Location `json:"edv"`
	KMS *Location `json:"kms"`
}

Authorization consists of info needed for the authorization.

type AuthorizationsScope

type AuthorizationsScope struct {
	Target     string   `json:"target,omitempty"`
	TargetAttr string   `json:"targetAttr,omitempty"`
	Actions    []string `json:"actions,omitempty"`
	Caveats    []Caveat `json:"caveats,omitempty"`
}

AuthorizationsScope represents authorization request.

type Caveat

type Caveat struct {
	Type     string `json:"type,omitempty"`
	Duration uint64 `json:"duration,omitempty"`
}

Caveat for the AuthorizationsScope request.

type Client

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

Client vault`s client.

func NewClient

func NewClient(kmsURL, edvURL string, kmsClient kms.KeyManager, db storage.Provider, loader ld.DocumentLoader,
	opts ...Opt) (*Client, error)

NewClient creates a new vault client.

func (*Client) CreateAuthorization

func (c *Client) CreateAuthorization(vaultID, requestingParty string,
	scope *AuthorizationsScope) (*CreatedAuthorization, error)

CreateAuthorization creates a new authorization. nolint: funlen

func (*Client) CreateVault

func (c *Client) CreateVault() (*CreatedVault, error)

CreateVault creates a new vault and KMS store bases on generated DIDKey.

func (*Client) GetAuthorization

func (c *Client) GetAuthorization(vaultID, id string) (*CreatedAuthorization, error)

GetAuthorization returns an authorization by given id.

func (*Client) GetDocMetadata

func (c *Client) GetDocMetadata(vaultID, docID string) (*DocumentMetadata, error)

GetDocMetadata returns document`s metadata.

func (*Client) SaveDoc

func (c *Client) SaveDoc(vaultID, id string, content []byte) (*DocumentMetadata, error)

SaveDoc saves a document by encrypting it and storing it in the vault.

type CreatedAuthorization

type CreatedAuthorization struct {
	ID              string               `json:"id"`
	Scope           *AuthorizationsScope `json:"scope"`
	RequestingParty string               `json:"requestingParty"`
	Tokens          *Tokens              `json:"authTokens"`
}

CreatedAuthorization represents success response of CreateAuthorization function.

type CreatedVault

type CreatedVault struct {
	ID string `json:"id"`
	*Authorization
}

CreatedVault represents success response of CreateVault function.

type DocumentMetadata

type DocumentMetadata struct {
	ID        string `json:"docID"`
	URI       string `json:"edvDocURI"`
	EncKeyURI string `json:"encKeyURI"`
}

DocumentMetadata represents document`s metadata.

type HTTPClient

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

HTTPClient interface for the http client.

type KeyManager

type KeyManager kms.KeyManager

KeyManager KMS alias.

type Location

type Location struct {
	URI       string `json:"uri"`
	AuthToken string `json:"authToken"`
}

Location consists of URI and zcap capability.

type Opt

type Opt func(*Client)

Opt represents Client`s option.

func WithDidAnchorOrigin added in v0.1.7

func WithDidAnchorOrigin(anchorOrigin string) Opt

WithDidAnchorOrigin allows providing did anchor origin.

func WithDidDomain added in v0.1.7

func WithDidDomain(domain string) Opt

WithDidDomain allows providing did domain.

func WithDidMethod

func WithDidMethod(method string) Opt

WithDidMethod allows providing did method.

func WithHTTPClient

func WithHTTPClient(client HTTPClient) Opt

WithHTTPClient allows providing HTTP client.

func WithRegistry

func WithRegistry(registry vdr.Registry) Opt

WithRegistry allows providing registry.

type Tokens

type Tokens struct {
	EDV string `json:"edv"`
	KMS string `json:"kms"`
}

Tokens zcap tokens.

type Vault

type Vault interface {
	CreateVault() (*CreatedVault, error)
	SaveDoc(vaultID, id string, content []byte) (*DocumentMetadata, error)
	GetDocMetadata(vaultID, docID string) (*DocumentMetadata, error)
	CreateAuthorization(vaultID, requestingParty string, scope *AuthorizationsScope) (*CreatedAuthorization, error)
	GetAuthorization(vaultID, id string) (*CreatedAuthorization, error)
}

Vault defines vault client interface.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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