qri: github.com/qri-io/qri/lib Index | Files | Directories

package lib

import "github.com/qri-io/qri/lib"

Package lib implements core qri business logic. It exports canonical methods that a qri instance can perform regardless of client interface. API's of any sort must use lib methods

Index

Package Files

config.go datasets.go diff.go error.go export.go file.go fsi.go lib.go log.go params.go peers.go profile.go registry.go remote.go render.go search.go self_update.go setup.go update.go

Constants

const DefaultPageSize = 100

DefaultPageSize is the max number of items in a page if no Limit param is provided to a paginated method

const VersionNumber = "0.8.3-dev"

VersionNumber is the current version qri

Variables

var (
    // LastPubVerHash is a hard-coded reference the gx "lastpubver" file of the previous release
    LastPubVerHash = "/ipfs/QmcXZCLAgUdvXpt1fszjNGVGn6WnhsrJahkQXY3JJqxUWJ"
    // PrevIPNSName is the dnslink address to check for version agreement
    PrevIPNSName = "/ipns/cli.previous.qri.io"
    // ErrUpdateRequired means this version of qri is out of date
    ErrUpdateRequired = fmt.Errorf("update required")
)
var ErrBadArgs = errors.New("bad arguments provided")

ErrBadArgs is an error for when a user provides bad arguments

func CheckVersion Uses

func CheckVersion(ctx context.Context, res namesys.Resolver, lookupAddr, localHash string) (latest string, err error)

CheckVersion uses a name resolver to lookup prevIPNSName, checking if the hard-coded lastPubVerHash and the returned lookup match. If they don't, CheckVersion returns ErrUpdateRequired

func GenerateFilename Uses

func GenerateFilename(ds *dataset.Dataset, format string) (string, error)

GenerateFilename takes a dataset and generates a filename if no timestamp exists, it will default to the empty time.Time in the form [peername]-[datasetName]_-_[timestamp].[format]

func ReadDatasetFiles Uses

func ReadDatasetFiles(pathList ...string) (*dataset.Dataset, error)

ReadDatasetFiles reads zero or more files, each representing a dataset or component of a dataset, and deserializes them, merging the results into a single dataset object. It is an error to provide any combination of files whose contents overlap (modify the same component).

func Setup Uses

func Setup(p SetupParams) error

Setup provisions a new qri instance, it intentionally doesn't conform to the RPC function signature because remotely invoking setup doesn't make much sense

func Teardown Uses

func Teardown(p TeardownParams) error

Teardown reverses the setup process, destroying a user's privateKey and removing local qri data

type CompleteParams Uses

type CompleteParams struct {
    SessionID string
}

CompleteParams holds parameters to send when completing a dsync sent to a remote

type ConfigMethods Uses

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

ConfigMethods encapsulates changes to a qri configuration

func NewConfigMethods Uses

func NewConfigMethods(inst *Instance) *ConfigMethods

NewConfigMethods creates a configuration handle from an instance

func (ConfigMethods) CoreRequestsName Uses

func (m ConfigMethods) CoreRequestsName() string

CoreRequestsName specifies this is a configuration handle

func (*ConfigMethods) GetConfig Uses

func (m *ConfigMethods) GetConfig(p *GetConfigParams, res *[]byte) (err error)

GetConfig returns the Config, or one of the specified fields of the Config, as a slice of bytes the bytes can be formatted as json, concise json, or yaml

func (*ConfigMethods) SetConfig Uses

func (m *ConfigMethods) SetConfig(update *config.Config, set *bool) (err error)

SetConfig validates, updates and saves the config

type DAGInfoParams Uses

type DAGInfoParams struct {
    RefStr, Label string
}

DAGInfoParams defines parameters for the DAGInfo method

type DatasetRequests Uses

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

DatasetRequests encapsulates business logic for working with Datasets on Qri TODO (b5): switch to using an Instance instead of separate fields

func NewDatasetRequests Uses

func NewDatasetRequests(node *p2p.QriNode, cli *rpc.Client) *DatasetRequests

NewDatasetRequests creates a DatasetRequests pointer from either a repo or an rpc.Client

func (*DatasetRequests) Add Uses

func (r *DatasetRequests) Add(ref *repo.DatasetRef, res *repo.DatasetRef) (err error)

Add adds an existing dataset to a peer's repository

func (DatasetRequests) CoreRequestsName Uses

func (DatasetRequests) CoreRequestsName() string

CoreRequestsName implements the Requets interface

func (*DatasetRequests) DAGInfo Uses

func (r *DatasetRequests) DAGInfo(s *DAGInfoParams, i *dag.Info) (err error)

DAGInfo generates a dag.Info for a dataset path. If a label is given, DAGInfo will generate a sub-dag.Info at that label.

func (*DatasetRequests) Diff Uses

func (r *DatasetRequests) Diff(p *DiffParams, res *DiffResponse) (err error)

Diff computes the diff of two datasets

func (*DatasetRequests) Get Uses

func (r *DatasetRequests) Get(p *GetParams, res *GetResult) (err error)

Get retrieves datasets and components for a given reference. If p.Ref is provided, it is used to load the dataset, otherwise p.Path is parsed to create a reference. The dataset will be loaded from the local repo if available, or by asking peers for it. Using p.Selector will control what components are returned in res.Bytes. The default, a blank selector, will also fill the entire dataset at res.Data. If the selector is "body" then res.Bytes is loaded with the body.

func (*DatasetRequests) List Uses

func (r *DatasetRequests) List(p *ListParams, res *[]repo.DatasetRef) error

List returns this repo's datasets

func (*DatasetRequests) Manifest Uses

func (r *DatasetRequests) Manifest(refstr *string, m *dag.Manifest) (err error)

Manifest generates a manifest for a dataset path

func (*DatasetRequests) ManifestMissing Uses

func (r *DatasetRequests) ManifestMissing(a, b *dag.Manifest) (err error)

ManifestMissing generates a manifest of blocks that are not present on this repo for a given manifest

func (*DatasetRequests) Remove Uses

func (r *DatasetRequests) Remove(p *RemoveParams, res *RemoveResponse) error

Remove a dataset entirely or remove a certain number of revisions

func (*DatasetRequests) Rename Uses

func (r *DatasetRequests) Rename(p *RenameParams, res *repo.DatasetRef) (err error)

Rename changes a user's given name for a dataset

func (*DatasetRequests) Save Uses

func (r *DatasetRequests) Save(p *SaveParams, res *repo.DatasetRef) (err error)

Save adds a history entry, updating a dataset TODO - need to make sure users aren't forking by referencing commits other than tip

func (*DatasetRequests) SetPublishStatus Uses

func (r *DatasetRequests) SetPublishStatus(p *SetPublishStatusParams, publishedRef *repo.DatasetRef) (err error)

SetPublishStatus updates the publicity of a reference in the peer's namespace

func (*DatasetRequests) Validate Uses

func (r *DatasetRequests) Validate(p *ValidateDatasetParams, errors *[]jsonschema.ValError) (err error)

Validate gives a dataset of errors and issues for a given dataset

type Delta Uses

type Delta = deepdiff.Delta

Delta is an alias for deepdiff.Delta, abstracting the deepdiff implementation away from packages that depend on lib

type DiffParams Uses

type DiffParams struct {
    LeftPath, RightPath string

    Selector string

    Limit, Offset int
    All           bool
}

DiffParams defines parameters for diffing two datasets with Diff

type DiffResponse Uses

type DiffResponse struct {
    Stat *DiffStat   `json:"stat,omitempty"`
    Diff []*Delta    `json:"diff,omitempty"`
    A    interface{} `json:"b,omitempty"`
    B    interface{} `json:"a,omitempty"`
}

DiffResponse is the result of a call to diff

type DiffStat Uses

type DiffStat = deepdiff.Stats

DiffStat is an alias for deepdiff.Stat, abstracting the deepdiff implementation away from packages that depend on lib

type Error Uses

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

Error wraps an error and satisfies the error interface It couples more developer focused errors with more user-friendly errors. If a msg exists, you can send an e.Message() to the user, rather than the standard error

func NewError Uses

func NewError(err error, msg string) Error

NewError creates an Error from an error and string

func (Error) Error Uses

func (e Error) Error() string

Error let's the Error struct satisfy the error interface

func (Error) Message Uses

func (e Error) Message() string

Message returns the e.msg string

type ExportParams Uses

type ExportParams struct {
    Ref       string
    TargetDir string
    Output    string
    Format    string
    Zipped    bool
}

ExportParams defines parameters for the export method

type ExportRequests Uses

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

ExportRequests encapsulates business logic of export operation TODO (b5): switch to using an Instance instead of separate fields

func NewExportRequests Uses

func NewExportRequests(node *p2p.QriNode, cli *rpc.Client) *ExportRequests

NewExportRequests creates a ExportRequests pointer from either a repo or an rpc.Client

func (ExportRequests) CoreRequestsName Uses

func (r ExportRequests) CoreRequestsName() string

CoreRequestsName implements the Requests interface

func (*ExportRequests) Export Uses

func (r *ExportRequests) Export(p *ExportParams, fileWritten *string) (err error)

Export exports a dataset in the specified format

type FSIMethods Uses

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

FSIMethods encapsulates filesystem integrations methods

func NewFSIMethods Uses

func NewFSIMethods(inst *Instance) *FSIMethods

NewFSIMethods creates a fsi handle from an instance

func (*FSIMethods) AliasStatus Uses

func (m *FSIMethods) AliasStatus(alias *string, res *[]StatusItem) (err error)

AliasStatus checks for any modifications or errors in a dataset alias

func (FSIMethods) CoreRequestsName Uses

func (m FSIMethods) CoreRequestsName() string

CoreRequestsName specifies this is a fsi handle

func (m *FSIMethods) CreateLink(p *LinkParams, res *string) (err error)

CreateLink creates a connection between a working drirectory and a dataset history

func (*FSIMethods) Status Uses

func (m *FSIMethods) Status(dir *string, res *[]StatusItem) (err error)

Status checks for any modifications or errors in a linked directory

func (m *FSIMethods) Unlink(p *LinkParams, res *string) (err error)

Unlink rmeoves a connection between a working drirectory and a dataset history

func (m *FSIMethods) UpdateLink(p *LinkParams, res *string) (err error)

UpdateLink creates a connection between a working drirectory and a dataset history

type FileParams Uses

type FileParams struct {
    // Url      string    // url to download data from. either Url or Data is required
    Filename string    // filename of data file. extension is used for filetype detection
    Data     io.Reader // reader of structured data. either Url or Data is required
}

FileParams defines parameters for Files as arguments to lib methods

type GetConfigParams Uses

type GetConfigParams struct {
    Field          string
    WithPrivateKey bool
    Format         string
    Concise        bool
}

GetConfigParams are the params needed to format/specify the fields in bytes returned from the GetConfig function

type GetParams Uses

type GetParams struct {
    // Path to get, this will often be a dataset reference like me/dataset
    Path string

    Format       string
    FormatConfig dataset.FormatConfig

    Selector string

    Limit, Offset int
    All           bool
}

GetParams defines parameters for looking up the body of a dataset

type GetResult Uses

type GetResult struct {
    Dataset *dataset.Dataset `json:"data"`
    Bytes   []byte           `json:"bytes"`
}

GetResult combines data with it's hashed path

type Instance Uses

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

Instance bundles the foundational values qri relies on, including a qri configuration, p2p node, and base context. An instance wraps required state for for "Method" constructors, which contain qri business logic. Think of instance as the "core" of the qri ecosystem. Create an Instance pointer with NewInstance

func NewInstance Uses

func NewInstance(ctx context.Context, repoPath string, opts ...Option) (qri *Instance, err error)

NewInstance creates a new Qri Instance, if no Option funcs are provided, New uses a default set of Option funcs. Any Option functions passed to this function must check whether their fields are nil or not.

func NewInstanceFromConfigAndNode Uses

func NewInstanceFromConfigAndNode(cfg *config.Config, node *p2p.QriNode) *Instance

NewInstanceFromConfigAndNode is a temporary solution to create an instance from an already-allocated QriNode & configuration don't write new code that relies on this, instead create a configuration and options that can be fed to NewInstance

func (*Instance) ChangeConfig Uses

func (inst *Instance) ChangeConfig(cfg *config.Config) (err error)

ChangeConfig implements the ConfigSetter interface

func (*Instance) Config Uses

func (inst *Instance) Config() *config.Config

Config provides methods for manipulating Qri configuration

func (*Instance) Context Uses

func (inst *Instance) Context() context.Context

Context returns the base context for this instance

func (*Instance) Node Uses

func (inst *Instance) Node() *p2p.QriNode

Node accesses the instance qri node if one exists

func (*Instance) RPC Uses

func (inst *Instance) RPC() *rpc.Client

RPC accesses the instance RPC client if one exists

func (*Instance) Repo Uses

func (inst *Instance) Repo() repo.Repo

Repo accesses the instance Repo if one exists

func (*Instance) RepoPath Uses

func (inst *Instance) RepoPath() string

RepoPath returns the path to the directory qri is operating from

func (*Instance) Teardown Uses

func (inst *Instance) Teardown()

Teardown destroys the instance, releasing reserved resources

type InstanceOptions Uses

type InstanceOptions struct {
    Cfg     *config.Config
    Streams ioes.IOStreams
}

InstanceOptions provides details to NewInstance. New will alter InstanceOptions by applying any provided Option functions to distinguish "Options" from "Config": * Options contains state that can only be determined at runtime * Config consists only of static values stored in a configuration file Options may override config in specific cases to avoid undefined state

type Job Uses

type Job = cron.Job

Job aliases a cron.Job, removing the need to import the cron package to work with lib.UpdateMethods

type LinkParams Uses

type LinkParams struct {
    Dir string
    Ref string
}

LinkParams encapsulate parameters to the link method

type ListParams Uses

type ListParams struct {
    ProfileID profile.ID
    Term      string
    Peername  string
    OrderBy   string
    Limit     int
    Offset    int
    // RPC is a horrible hack while we work to replace the net/rpc package
    // TODO - remove this
    RPC bool
    // Published only applies to listing datasets
    Published bool
    // ShowNumVersions only applies to listing datasets
    ShowNumVersions bool
}

ListParams is the general input for any sort of Paginated Request ListParams define limits & offsets, not pages & page sizes. TODO - rename this to PageParams.

func ListParamsFromRequest Uses

func ListParamsFromRequest(r *http.Request) ListParams

ListParamsFromRequest extracts ListParams from an http.Request pointer

func NewListParams Uses

func NewListParams(orderBy string, page, pageSize int) ListParams

NewListParams creates a ListParams from page & pagesize, pages are 1-indexed (the first element is 1, not 0), NewListParams performs the conversion

func (ListParams) Page Uses

func (lp ListParams) Page() util.Page

Page converts a ListParams struct to a util.Page struct

type LogParams Uses

type LogParams struct {
    ListParams
    // Reference to data to fetch history for
    Ref string
}

LogParams defines parameters for the Log method

type LogRequests Uses

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

LogRequests encapsulates business logic for the log of changes to datasets, think "git log" TODO (b5): switch to using an Instance instead of separate fields

func NewLogRequests Uses

func NewLogRequests(node *p2p.QriNode, cli *rpc.Client) *LogRequests

NewLogRequests creates a LogRequests pointer from either a repo or an rpc.Client

func (LogRequests) CoreRequestsName Uses

func (r LogRequests) CoreRequestsName() string

CoreRequestsName implements the Requets interface

func (*LogRequests) Log Uses

func (r *LogRequests) Log(params *LogParams, res *[]repo.DatasetRef) (err error)

Log returns the history of changes for a given dataset

type Methods Uses

type Methods interface {
    // CoreRequestsName confirms participation in the CoreRequests interface while
    // also giving a human readable string for logging purposes
    // TODO (b5): rename this interface to "MethodsName", or remove entirely
    CoreRequestsName() string
}

Methods is a related set of library functions

func Receivers Uses

func Receivers(inst *Instance) []Methods

Receivers returns a slice of CoreRequests that defines the full local API of lib methods

type Option Uses

type Option func(o *InstanceOptions) error

Option is a function that manipulates config details when fed to New(). Fields on the o parameter may be null, functions cannot assume the Config is non-null.

func OptCheckConfigMigrations Uses

func OptCheckConfigMigrations(cfgPath string) Option

OptCheckConfigMigrations checks for any configuration migrations that may need to be run running & updating config if so

func OptConfig Uses

func OptConfig(cfg *config.Config) Option

OptConfig supplies a configuration directly

func OptIOStreams Uses

func OptIOStreams(streams ioes.IOStreams) Option

OptIOStreams sets the input IOStreams

func OptSetIPFSPath Uses

func OptSetIPFSPath(path string) Option

OptSetIPFSPath configures the directory to read IPFS from (only if the configured store is IPFS). If the given path is the empty string, default to the standard IPFS config: * IPFS_PATH environment variable if set * if none set: "$HOME/.ipfs"

func OptStdIOStreams Uses

func OptStdIOStreams() Option

OptStdIOStreams sets treams to std, stdout, & stderr

type PeerConnectionParamsPod Uses

type PeerConnectionParamsPod struct {
    Peername  string
    ProfileID string
    NetworkID string
    Multiaddr string
}

PeerConnectionParamsPod defines parameters for defining a connection to a peer as plain-old-data

func NewPeerConnectionParamsPod Uses

func NewPeerConnectionParamsPod(s string) *PeerConnectionParamsPod

NewPeerConnectionParamsPod attempts to turn a string into peer connection parameters

func (PeerConnectionParamsPod) Decode Uses

func (p PeerConnectionParamsPod) Decode() (cp p2p.PeerConnectionParams, err error)

Decode turns plain-old-data into it's rich types

type PeerInfoParams Uses

type PeerInfoParams struct {
    Peername  string
    ProfileID profile.ID
    // Verbose adds network details from the p2p Peerstore
    Verbose bool
}

PeerInfoParams defines parameters for the Info method

type PeerListParams Uses

type PeerListParams struct {
    Limit, Offset int
    // Cached == true will return offline peers from the repo
    // as well as online peers, default is to list connected peers only
    Cached bool
}

PeerListParams defines parameters for the List method

type PeerRefsParams Uses

type PeerRefsParams struct {
    PeerID string
    Limit  int
    Offset int
}

PeerRefsParams defines params for the GetReferences method

type PeerRequests Uses

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

PeerRequests encapsulates business logic for methods relating to peer-to-peer interaction TODO (b5): switch to using an Instance instead of separate fields

func NewPeerRequests Uses

func NewPeerRequests(node *p2p.QriNode, cli *rpc.Client) *PeerRequests

NewPeerRequests creates a PeerRequests pointer from either a qri Node or an rpc.Client

func (*PeerRequests) ConnectToPeer Uses

func (d *PeerRequests) ConnectToPeer(p *PeerConnectionParamsPod, res *config.ProfilePod) error

ConnectToPeer attempts to create a connection with a peer for a given peer.ID

func (*PeerRequests) ConnectedIPFSPeers Uses

func (d *PeerRequests) ConnectedIPFSPeers(limit *int, peers *[]string) error

ConnectedIPFSPeers lists PeerID's we're currently connected to. If running IPFS this will also return connected IPFS nodes

func (*PeerRequests) ConnectedQriProfiles Uses

func (d *PeerRequests) ConnectedQriProfiles(limit *int, peers *[]*config.ProfilePod) (err error)

ConnectedQriProfiles lists profiles we're currently connected to

func (PeerRequests) CoreRequestsName Uses

func (d PeerRequests) CoreRequestsName() string

CoreRequestsName implements the Requets interface

func (*PeerRequests) DisconnectFromPeer Uses

func (d *PeerRequests) DisconnectFromPeer(p *PeerConnectionParamsPod, res *bool) error

DisconnectFromPeer explicitly closes a peer connection

func (*PeerRequests) GetReferences Uses

func (d *PeerRequests) GetReferences(p *PeerRefsParams, res *[]repo.DatasetRef) error

GetReferences lists a peer's named datasets

func (*PeerRequests) Info Uses

func (d *PeerRequests) Info(p *PeerInfoParams, res *config.ProfilePod) error

Info shows peer profile details

func (*PeerRequests) List Uses

func (d *PeerRequests) List(p *PeerListParams, res *[]*config.ProfilePod) (err error)

List lists Peers on the qri network

type ProfileMethods Uses

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

ProfileMethods encapsulates business logic for this node's user profile

func NewProfileMethods Uses

func NewProfileMethods(inst *Instance) *ProfileMethods

NewProfileMethods creates a ProfileMethods pointer from either a repo or an rpc.Client

func (ProfileMethods) CoreRequestsName Uses

func (ProfileMethods) CoreRequestsName() string

CoreRequestsName implements the Request interface

func (*ProfileMethods) GetProfile Uses

func (m *ProfileMethods) GetProfile(in *bool, res *config.ProfilePod) (err error)

GetProfile get's this node's peer profile

func (*ProfileMethods) PosterPhoto Uses

func (m *ProfileMethods) PosterPhoto(req *config.ProfilePod, res *[]byte) (err error)

PosterPhoto fetches the byte slice of a given user's poster photo

func (*ProfileMethods) ProfilePhoto Uses

func (m *ProfileMethods) ProfilePhoto(req *config.ProfilePod, res *[]byte) (err error)

ProfilePhoto fetches the byte slice of a given user's profile photo

func (*ProfileMethods) SaveProfile Uses

func (m *ProfileMethods) SaveProfile(p *config.ProfilePod, res *config.ProfilePod) error

SaveProfile stores changes to this peer's editable profile

func (*ProfileMethods) SetPosterPhoto Uses

func (m *ProfileMethods) SetPosterPhoto(p *FileParams, res *config.ProfilePod) error

SetPosterPhoto changes this peer's poster image

func (*ProfileMethods) SetProfilePhoto Uses

func (m *ProfileMethods) SetProfilePhoto(p *FileParams, res *config.ProfilePod) error

SetProfilePhoto changes this peer's profile image

type PushParams Uses

type PushParams struct {
    Ref        string
    RemoteName string
}

PushParams holds parameters for pushing daginfo to remotes

type ReceiveParams Uses

type ReceiveParams struct {
    Peername  string
    Name      string
    ProfileID profile.ID
    DagInfo   *dag.Info
}

ReceiveParams hold parameters for receiving daginfo's when running as a remote

type ReceiveResult Uses

type ReceiveResult struct {
    Success      bool
    RejectReason string
    SessionID    string
    Diff         *dag.Manifest
}

ReceiveResult is the result of receiving a posted dataset when running as a remote

type RegistryListParams Uses

type RegistryListParams struct {
    Refs   []*repo.DatasetRef
    Limit  int
    Offset int
}

RegistryListParams encapsulates arguments to the publish method

type RegistryRequests Uses

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

RegistryRequests defines business logic for working with registries TODO (b5): switch to using an Instance instead of separate fields

func NewRegistryRequests Uses

func NewRegistryRequests(node *p2p.QriNode, cli *rpc.Client) *RegistryRequests

NewRegistryRequests creates a RegistryRequests pointer from either a repo or an rpc.Client

func (RegistryRequests) CoreRequestsName Uses

func (RegistryRequests) CoreRequestsName() string

CoreRequestsName implements the Requests interface

func (*RegistryRequests) GetDataset Uses

func (r *RegistryRequests) GetDataset(ref *repo.DatasetRef, res *repo.DatasetRef) error

GetDataset returns a dataset that has been published to the registry

func (*RegistryRequests) List Uses

func (r *RegistryRequests) List(params *RegistryListParams, done *bool) error

List returns the list of datasets that have been published to a registry

func (*RegistryRequests) Pin Uses

func (r *RegistryRequests) Pin(ref *repo.DatasetRef, done *bool) (err error)

Pin asks a registry to host a copy of a dataset

func (*RegistryRequests) Publish Uses

func (r *RegistryRequests) Publish(ref *repo.DatasetRef, done *bool) (err error)

Publish a dataset to a registry

func (*RegistryRequests) Unpin Uses

func (r *RegistryRequests) Unpin(ref *repo.DatasetRef, done *bool) error

Unpin reverses the pin process, asking a registry to stop hosting a copy of an already-pinned dataset

func (*RegistryRequests) Unpublish Uses

func (r *RegistryRequests) Unpublish(ref *repo.DatasetRef, done *bool) error

Unpublish a dataset from a registry

type RemoteRequests Uses

type RemoteRequests struct {
    Receivers *dsync.Receivers
    Sessions  map[string]*ReceiveParams
    // contains filtered or unexported fields
}

RemoteRequests encapsulates business logic of remote operation TODO (b5): switch to using an Instance instead of separate fields

func NewRemoteRequests Uses

func NewRemoteRequests(node *p2p.QriNode, cfg *config.Config, cli *rpc.Client) *RemoteRequests

NewRemoteRequests creates a RemoteRequests pointer from either a node or an rpc.Client

func (*RemoteRequests) Complete Uses

func (r *RemoteRequests) Complete(p *CompleteParams, res *bool) (err error)

Complete is used to complete a dataset that has been pushed to this remote

func (*RemoteRequests) CoreRequestsName Uses

func (*RemoteRequests) CoreRequestsName() string

CoreRequestsName implements the Requests interface

func (*RemoteRequests) PushToRemote Uses

func (r *RemoteRequests) PushToRemote(p *PushParams, out *bool) error

PushToRemote posts a dagInfo to a remote

func (*RemoteRequests) Receive Uses

func (r *RemoteRequests) Receive(p *ReceiveParams, res *ReceiveResult) (err error)

Receive is used to save a dataset when running as a remote. API only, not RPC or command-line.

type RemoveParams Uses

type RemoveParams struct {
    Ref string
    // Ref      *repo.DatasetRef
    Revision rev.Rev
}

RemoveParams defines parameters for remove command

type RemoveResponse Uses

type RemoveResponse struct {
    Ref        string
    NumDeleted int
}

RemoveResponse gives the results of a remove

type RenameParams Uses

type RenameParams struct {
    Current, New repo.DatasetRef
}

RenameParams defines parameters for Dataset renaming

type RenderParams Uses

type RenderParams struct {
    Ref            string
    Template       []byte
    TemplateFormat string
}

RenderParams defines parameters for the Render method

type RenderRequests Uses

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

RenderRequests encapsulates business logic for this node's user profile TODO (b5): switch to using an Instance instead of separate fields

func NewRenderRequests Uses

func NewRenderRequests(r repo.Repo, cli *rpc.Client) *RenderRequests

NewRenderRequests creates a RenderRequests pointer from either a repo or an rpc.Client

func (RenderRequests) CoreRequestsName Uses

func (RenderRequests) CoreRequestsName() string

CoreRequestsName implements the Requets interface

func (*RenderRequests) Render Uses

func (r *RenderRequests) Render(p *RenderParams, res *[]byte) (err error)

Render executes a template against a template

type SaveParams Uses

type SaveParams struct {
    // dataset supplies params directly, all other param fields override values
    // supplied by dataset
    Dataset *dataset.Dataset
    // dataset reference string, the name to save to
    Ref string
    // commit title, defaults to a generated string based on diff
    Title string
    // commit message, defaults to blank
    Message string
    // path to body data
    BodyPath string
    // absolute path or URL to the list of dataset files or components to load
    FilePaths []string
    // secrets for transform execution
    Secrets map[string]string
    // option to make dataset private. private data is not currently implimented,
    // see https://github.com/qri-io/qri/issues/291 for updates
    Private bool
    // if true, set saved dataset to published
    Publish bool
    // run without saving, returning results
    DryRun bool
    // if true, res.Dataset.Body will be a fs.file of the body
    ReturnBody bool
    // if true, convert body to the format of the previous version, if applicable
    ConvertFormatToPrev bool
    // string of references to recall before saving
    Recall string
    // force a new commit, even if no changes are detected
    Force bool
    // save a rendered version of the template along with the dataset
    ShouldRender bool
    // optional writer to have transform script record standard output to
    // note: this won't work over RPC, only on local calls
    ScriptOutput io.Writer
}

SaveParams encapsulates arguments to Save

func (*SaveParams) AbsolutizePaths Uses

func (p *SaveParams) AbsolutizePaths() error

AbsolutizePaths converts any relative path references to their absolute variations, safe to call on a nil instance

type ScheduleParams Uses

type ScheduleParams struct {
    Name        string
    Periodicity string
    RepoPath    string

    // SaveParams only applies to dataset saves
    SaveParams *SaveParams
}

ScheduleParams encapsulates parameters for scheduling updates

type SearchParams Uses

type SearchParams struct {
    QueryString string `json:"q"`
    Limit       int    `json:"limit,omitempty"`
    Offset      int    `json:"offset,omitempty"`
}

SearchParams defines paremeters for the search Method

type SearchRequests Uses

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

SearchRequests encapsulates business logic for the qri search command TODO (b5): switch to using an Instance instead of separate fields

func NewSearchRequests Uses

func NewSearchRequests(node *p2p.QriNode, cli *rpc.Client) *SearchRequests

NewSearchRequests creates a SearchRequests pointer from either a repo or an rpc.Client

func (SearchRequests) CoreRequestsName Uses

func (sr SearchRequests) CoreRequestsName() string

CoreRequestsName implements the requests

func (*SearchRequests) Search Uses

func (sr *SearchRequests) Search(p *SearchParams, results *[]SearchResult) error

Search queries for items on qri related to given parameters

type SearchResult Uses

type SearchResult struct {
    Type, ID string
    Value    interface{}
}

SearchResult struct

type ServiceStatus Uses

type ServiceStatus struct {
    Name       string
    Running    bool
    Daemonized bool // if true this service is scheduled
    Started    *time.Time
    Address    string
    Metrics    map[string]interface{}
}

ServiceStatus describes the current state of a service

type SetPublishStatusParams Uses

type SetPublishStatusParams struct {
    Ref               string
    PublishStatus     bool
    UpdateRegistry    bool
    UpdateRegistryPin bool
}

SetPublishStatusParams encapsulates parameters for setting the publication status of a dataset

type SetupParams Uses

type SetupParams struct {
    Config              *config.Config
    QriRepoPath         string
    ConfigFilepath      string
    SetupIPFS           bool
    Register            bool
    IPFSFsPath          string
    SetupIPFSConfigData []byte
    Generator           gen.CryptoGenerator
}

SetupParams encapsulates arguments for Setup

type StatusItem Uses

type StatusItem = fsi.StatusItem

StatusItem is an alias for an fsi.StatusItem

type TeardownParams Uses

type TeardownParams struct {
    Config         *config.Config
    QriRepoPath    string
    ConfigFilepath string
}

TeardownParams encapsulates arguments for Setup

type UpdateMethods Uses

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

UpdateMethods enapsulates logic for scheduled updates

func NewUpdateMethods Uses

func NewUpdateMethods(inst *Instance) *UpdateMethods

NewUpdateMethods creates a configuration handle from an instance

func (*UpdateMethods) CoreRequestsName Uses

func (m *UpdateMethods) CoreRequestsName() string

CoreRequestsName specifies this is a Methods object

func (*UpdateMethods) Job Uses

func (m *UpdateMethods) Job(name *string, job *Job) (err error)

Job gets a job by name

func (*UpdateMethods) List Uses

func (m *UpdateMethods) List(p *ListParams, jobs *[]*Job) error

List gets scheduled jobs

func (*UpdateMethods) LogFile Uses

func (m *UpdateMethods) LogFile(logName *string, data *[]byte) error

LogFile reads log file data for a given logName

func (*UpdateMethods) Logs Uses

func (m *UpdateMethods) Logs(p *ListParams, res *[]*Job) error

Logs shows the history of job execution

func (*UpdateMethods) Run Uses

func (m *UpdateMethods) Run(p *Job, res *repo.DatasetRef) (err error)

Run advances a dataset to the latest known version from either a peer or by re-running a transform in the peer's namespace

func (*UpdateMethods) Schedule Uses

func (m *UpdateMethods) Schedule(in *ScheduleParams, out *cron.Job) (err error)

Schedule creates a job and adds it to the scheduler

func (*UpdateMethods) ServiceRestart Uses

func (m *UpdateMethods) ServiceRestart(in, out *bool) error

ServiceRestart uses shell commands to restart the scheduler service

func (*UpdateMethods) ServiceStart Uses

func (m *UpdateMethods) ServiceStart(p *UpdateServiceStartParams, started *bool) error

ServiceStart ensures the scheduler is running

func (*UpdateMethods) ServiceStatus Uses

func (m *UpdateMethods) ServiceStatus(in *bool, out *ServiceStatus) error

ServiceStatus reports status of the update daemon

func (*UpdateMethods) ServiceStop Uses

func (m *UpdateMethods) ServiceStop(in, out *bool) error

ServiceStop halts the scheduler

func (*UpdateMethods) Unschedule Uses

func (m *UpdateMethods) Unschedule(name *string, unscheduled *bool) error

Unschedule removes a job from the scheduler by name

type UpdateServiceStartParams Uses

type UpdateServiceStartParams struct {
    Ctx       context.Context
    Daemonize bool

    // TODO (b5): I'm really not a fan of passing these configuration-derived
    // bits as parameters. Ideally this would come from the underlying instance
    // these are needed because lib.NewInstance creates a cron client
    // that intereferes with the start service process. We're currently getting
    // around this by avoiding calls to lib.NewInstance, or passing in resulting
    // params when called. We should clean this up.
    RepoPath  string
    UpdateCfg *config.Update
}

UpdateServiceStartParams configures startup

type ValidateDatasetParams Uses

type ValidateDatasetParams struct {
    Ref repo.DatasetRef
    // URL          string
    DataFilename string
    Data         io.Reader
    Schema       io.Reader
}

ValidateDatasetParams defines parameters for dataset data validation

Directories

PathSynopsis
testPackage test defines utilities for testing the lib package, including caches of expensive processes like cryptographic key generation and ipfs repo creation

Package lib imports 56 packages (graph) and is imported by 2 packages. Updated 2019-07-19. Refresh now. Tools for package owners.