Documentation ¶
Overview ¶
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 ¶
- Constants
- Variables
- func CheckVersion(ctx context.Context, res namesys.Resolver, lookupAddr, localHash string) (latest string, err error)
- func DecodeParams(r *http.Request, p interface{}) error
- func DsRefFromPath(path string) (dsref.Ref, error)
- func HTTPPathToQriPath(path string) string
- func IsSelectorScriptFile(selector string) bool
- func NewHTTPRequestHandler(inst *Instance, libMethod string) http.HandlerFunc
- func PathJoinPosix(left, right string) string
- func QriRepoExists(path string) error
- func ReadDatasetFiles(pathList ...string) (*dataset.Dataset, error)
- func Setup(p SetupParams) error
- func SourceFromRequest(r *http.Request) string
- func Teardown(p TeardownParams) error
- type APIEndpoint
- type AccessMethods
- type ActivityParams
- type ApplyParams
- type ApplyResult
- type AttributeSet
- type AutomationMethods
- type ChangeReport
- type ChangeReportParams
- type CollectionMethods
- type ConfigMethods
- func (m ConfigMethods) Attributes() map[string]AttributeSet
- func (m ConfigMethods) GetConfig(ctx context.Context, p *GetConfigParams) ([]byte, error)
- func (m ConfigMethods) GetConfigKeys(ctx context.Context, p *GetConfigParams) ([]byte, error)
- func (m ConfigMethods) Name() string
- func (m ConfigMethods) SetConfig(ctx context.Context, update *config.Config) (*bool, error)
- type ConnectParamsPod
- type ConnectionsParams
- type CreateAuthTokenParams
- type Cursor
- type DAGInfoParams
- type DataResponse
- type DatasetMethods
- func (m DatasetMethods) Activity(ctx context.Context, params *ActivityParams) ([]dsref.VersionInfo, error)
- func (m DatasetMethods) Attributes() map[string]AttributeSet
- func (m DatasetMethods) ComponentStatus(ctx context.Context, p *LinkParams) ([]StatusItem, error)
- func (m DatasetMethods) DAGInfo(ctx context.Context, p *DAGInfoParams) (*dag.Info, error)
- func (m DatasetMethods) Get(ctx context.Context, p *GetParams) (*GetResult, error)
- func (m DatasetMethods) GetCSV(ctx context.Context, p *GetParams) ([]byte, error)
- func (m DatasetMethods) GetZip(ctx context.Context, p *GetParams) (*GetZipResults, error)
- func (m DatasetMethods) Manifest(ctx context.Context, p *ManifestParams) (*dag.Manifest, error)
- func (m DatasetMethods) ManifestMissing(ctx context.Context, p *ManifestMissingParams) (*dag.Manifest, error)
- func (m DatasetMethods) Name() string
- func (m DatasetMethods) Pull(ctx context.Context, p *PullParams) (*dataset.Dataset, error)
- func (m DatasetMethods) Push(ctx context.Context, p *PushParams) (*dsref.Ref, error)
- func (m DatasetMethods) Remove(ctx context.Context, p *RemoveParams) (*RemoveResponse, error)
- func (m DatasetMethods) Rename(ctx context.Context, p *RenameParams) (*dsref.VersionInfo, error)
- func (m DatasetMethods) Render(ctx context.Context, p *RenderParams) ([]byte, error)
- func (m DatasetMethods) Save(ctx context.Context, p *SaveParams) (*dataset.Dataset, error)
- func (m DatasetMethods) Validate(ctx context.Context, p *ValidateParams) (*ValidateResponse, error)
- type Delta
- type DiffMethods
- type DiffMode
- type DiffParams
- type DiffResponse
- type DiffStat
- type EmptyParams
- type FSIMethods
- func (m FSIMethods) Attributes() map[string]AttributeSet
- func (m FSIMethods) CanInitDatasetWorkDir(ctx context.Context, p *InitDatasetParams) error
- func (m FSIMethods) Checkout(ctx context.Context, p *LinkParams) error
- func (m FSIMethods) CreateLink(ctx context.Context, p *LinkParams) (*dsref.VersionInfo, error)
- func (m FSIMethods) EnsureRef(ctx context.Context, p *LinkParams) (*dsref.VersionInfo, error)
- func (m FSIMethods) Init(ctx context.Context, p *InitDatasetParams) (string, error)
- func (m FSIMethods) Name() string
- func (m FSIMethods) Restore(ctx context.Context, p *RestoreParams) error
- func (m FSIMethods) Status(ctx context.Context, p *LinkParams) ([]StatusItem, error)
- func (m FSIMethods) Unlink(ctx context.Context, p *LinkParams) (string, error)
- func (m FSIMethods) Write(ctx context.Context, p *FSIWriteParams) ([]StatusItem, error)
- type FSIWriteParams
- type FileParams
- type GetConfigParams
- type GetParams
- type GetResult
- type GetZipResults
- type HTTPClient
- func (c HTTPClient) Call(ctx context.Context, apiEndpoint APIEndpoint, source string, ...) error
- func (c HTTPClient) CallMethod(ctx context.Context, apiEndpoint APIEndpoint, httpMethod string, source string, ...) error
- func (c HTTPClient) CallMethodRaw(ctx context.Context, apiEndpoint APIEndpoint, httpMethod string, source string, ...) error
- func (c HTTPClient) CallRaw(ctx context.Context, apiEndpoint APIEndpoint, source string, ...) error
- type InitDatasetParams
- type Instance
- func NewInstance(ctx context.Context, repoPath string, opts ...Option) (qri *Instance, err error)
- func NewInstanceFromConfigAndNode(ctx context.Context, cfg *config.Config, node *p2p.QriNode) *Instance
- func NewInstanceFromConfigAndNodeAndBus(ctx context.Context, cfg *config.Config, node *p2p.QriNode, bus event.Bus) *Instance
- func (inst *Instance) Access() AccessMethods
- func (inst *Instance) AllMethods() []MethodSet
- func (inst *Instance) Automation() AutomationMethods
- func (inst *Instance) Bus() event.Bus
- func (inst *Instance) ChangeConfig(cfg *config.Config) (err error)
- func (inst *Instance) Collection() CollectionMethods
- func (inst *Instance) Config() ConfigMethods
- func (inst *Instance) Connect(ctx context.Context) (err error)
- func (inst *Instance) Dataset() DatasetMethods
- func (inst *Instance) Diff() DiffMethods
- func (inst *Instance) Dispatch(ctx context.Context, method string, param interface{}) (res interface{}, cur Cursor, err error)
- func (inst *Instance) Dscache() *dscache.Dscache
- func (inst *Instance) FSI() *fsi.FSI
- func (inst *Instance) Filesys() FSIMethods
- func (inst *Instance) GetConfig() *config.Configdeprecated
- func (inst *Instance) GiveAPIServer(middleware func(handler http.HandlerFunc) http.HandlerFunc, ...) *mux.Router
- func (inst *Instance) HTTPClient() *HTTPClient
- func (inst *Instance) Log() LogMethods
- func (inst *Instance) NewInputParam(method string) interface{}
- func (inst *Instance) Node() *p2p.QriNode
- func (inst *Instance) ParseAndResolveRef(ctx context.Context, refStr, source string, useFSI bool) (dsref.Ref, string, error)
- func (inst *Instance) Peer() PeerMethods
- func (inst *Instance) Profile() ProfileMethods
- func (inst *Instance) RegisterMethods()
- func (inst *Instance) Registry() RegistryClientMethods
- func (inst *Instance) Remote() RemoteMethods
- func (inst *Instance) RemoteClient() remote.Client
- func (inst *Instance) RemoteServer() *remote.Remote
- func (inst *Instance) Repo() repo.Repo
- func (inst *Instance) RepoPath() string
- func (inst *Instance) ResolveReference(ctx context.Context, ref *dsref.Ref, source string) (string, error)
- func (inst *Instance) SQL() SQLMethods
- func (inst *Instance) Search() SearchMethods
- func (inst *Instance) Shutdown() <-chan error
- func (inst *Instance) WithSource(source string) *InstanceSourceWrap
- type InstanceContextKey
- type InstanceOptions
- type InstanceSourceWrap
- func (isw *InstanceSourceWrap) Dataset() DatasetMethods
- func (isw *InstanceSourceWrap) Dispatch(ctx context.Context, method string, param interface{}) (res interface{}, cur Cursor, err error)
- func (isw *InstanceSourceWrap) Log() LogMethods
- func (isw *InstanceSourceWrap) Remote() RemoteMethods
- func (isw *InstanceSourceWrap) SQL() SQLMethods
- type LinkParams
- type ListParams
- type LogEntry
- type LogMethods
- func (m LogMethods) Attributes() map[string]AttributeSet
- func (m LogMethods) Log(ctx context.Context, p *RefListParams) ([]LogEntry, error)
- func (m LogMethods) LogbookSummary(ctx context.Context, p *struct{}) (*string, error)
- func (m LogMethods) Name() string
- func (m LogMethods) RawLogbook(ctx context.Context, p *RawLogbookParams) (*RawLogs, error)
- type ManifestMissingParams
- type ManifestParams
- type MethodSet
- type Methods
- type NZDefaultSetter
- type Option
- func OptBus(bus event.Bus) Option
- func OptCheckConfigMigrations(shouldRunFn func() bool, errOnSuccess bool) Option
- func OptConfig(cfg *config.Config) Option
- func OptDscache(dscache *dscache.Dscache) Option
- func OptEnableRemote() Option
- func OptEventHandler(handler event.Handler, events ...event.Type) Option
- func OptIOStreams(streams ioes.IOStreams) Option
- func OptLogbook(bk *logbook.Book) Option
- func OptNoBootstrap() Option
- func OptProfiles(pros profile.Store) Option
- func OptQriNode(node *p2p.QriNode) Option
- func OptRegistryClient(cli *regclient.Client) Option
- func OptRemoteOptions(fns []remote.OptionsFunc) Option
- func OptSetIPFSPath(path string) Option
- func OptSetLogAll(logAll bool) Option
- func OptSetOpenFileTimeout(d time.Duration) Option
- func OptStatsCache(statsCache stats.Cache) Option
- func OptStdIOStreams() Option
- type ParamValidator
- type PeerInfoParams
- type PeerListParams
- type PeerMethods
- func (m PeerMethods) Attributes() map[string]AttributeSet
- func (m PeerMethods) Connect(ctx context.Context, p *ConnectParamsPod) (*config.ProfilePod, error)
- func (m PeerMethods) ConnectedQriProfiles(ctx context.Context, p *ConnectionsParams) ([]*config.ProfilePod, error)
- func (m PeerMethods) Connections(ctx context.Context, p *ConnectionsParams) ([]string, error)
- func (m PeerMethods) Disconnect(ctx context.Context, p *ConnectParamsPod) error
- func (m PeerMethods) Info(ctx context.Context, p *PeerInfoParams) (*config.ProfilePod, error)
- func (m PeerMethods) List(ctx context.Context, p *PeerListParams) ([]*config.ProfilePod, error)
- func (m PeerMethods) Name() string
- type PreviewParams
- type ProfileMethods
- func (m ProfileMethods) Attributes() map[string]AttributeSet
- func (m ProfileMethods) GetProfile(ctx context.Context, p *ProfileParams) (*config.ProfilePod, error)
- func (m ProfileMethods) Name() string
- func (m ProfileMethods) SetPosterPhoto(ctx context.Context, p *FileParams) (*config.ProfilePod, error)
- func (m ProfileMethods) SetProfile(ctx context.Context, p *SetProfileParams) (*config.ProfilePod, error)
- func (m ProfileMethods) SetProfilePhoto(ctx context.Context, p *FileParams) (*config.ProfilePod, error)
- type ProfileParams
- type PullParams
- type PushParams
- type RawLogbookParams
- type RawLogs
- type RefListParams
- type RegistryClientMethods
- func (m RegistryClientMethods) Attributes() map[string]AttributeSet
- func (m RegistryClientMethods) CreateProfile(ctx context.Context, p *RegistryProfileParams) error
- func (m RegistryClientMethods) Name() string
- func (m RegistryClientMethods) ProveProfileKey(ctx context.Context, p *RegistryProfileParams) error
- type RegistryProfile
- type RegistryProfileParams
- type RemoteMethods
- func (m RemoteMethods) Attributes() map[string]AttributeSet
- func (m RemoteMethods) Feeds(ctx context.Context, p *EmptyParams) (map[string][]dsref.VersionInfo, error)
- func (m RemoteMethods) Name() string
- func (m RemoteMethods) Preview(ctx context.Context, p *PreviewParams) (*dataset.Dataset, error)
- func (m RemoteMethods) Remove(ctx context.Context, p *PushParams) (*dsref.Ref, error)
- type RemoveParams
- type RemoveResponse
- type RenameParams
- type RenderParams
- type RestoreParams
- type SQLMethods
- type SQLQueryParams
- type SaveParams
- type SearchMethods
- type SearchParams
- type SearchResult
- type SetProfileParams
- type SetupParams
- type StatusItem
- type TeardownParams
- type ValidateParams
- type ValidateResponse
- type WebsocketHandler
Constants ¶
const ( // AEList lists all datasets in your collection AEList = APIEndpoint("/list") // AEDiff is an endpoint for generating dataset diffs AEDiff = APIEndpoint("/diff") // AEChanges is an endpoint for generating dataset change reports AEChanges = APIEndpoint("/changes") // AESQL executes SQL commands AESQL = APIEndpoint("/sql") // AECreateAuthToken creates an auth token for a user AECreateAuthToken = APIEndpoint("/access/token") // AEApply invokes a transform apply AEApply = APIEndpoint("/auto/apply") // AEComponentStatus returns what changed for a specific commit AEComponentStatus = APIEndpoint("/ds/componentstatus") // AEGet is an endpoint for fetch individual dataset components AEGet = APIEndpoint("/ds/get") // AEActivity is an endpoint that returns a dataset activity list AEActivity = APIEndpoint("/ds/activity") // AERename is an endpoint for renaming datasets AERename = APIEndpoint("/ds/rename") // AESave is an endpoint for saving a dataset AESave = APIEndpoint("/ds/save") // AEPull facilittates dataset pull requests from a remote AEPull = APIEndpoint("/ds/pull") // AEPush facilitates dataset push requests to a remote AEPush = APIEndpoint("/ds/push") // AERender renders the current dataset ref AERender = APIEndpoint("/ds/render") // AERemove exposes the dataset remove mechanics AERemove = APIEndpoint("/ds/remove") // AEValidate is an endpoint for validating datasets AEValidate = APIEndpoint("/ds/validate") // AEManifest generates a manifest for a dataset path AEManifest = APIEndpoint("/ds/manifest") // AEManifestMissing generates a manifest of blocks that are not present on this repo for a given manifest AEManifestMissing = APIEndpoint("/ds/manifest/missing") // AEDAGInfo generates a dag.Info for a dataset path AEDAGInfo = APIEndpoint("/ds/daginfo") // AEPeer fetches a specific peer AEPeer = APIEndpoint("/peer") // AEConnect initiates an explicit connection to a peer AEConnect = APIEndpoint("/peer/connect") // AEDisconnect closes an explicit connection to a peer AEDisconnect = APIEndpoint("/peer/disconnect") // AEPeers fetches all the peers AEPeers = APIEndpoint("/peer/list") // AEGetProfile is an alias for the me endpoint AEGetProfile = APIEndpoint("/profile") // AESetProfile is an endpoint to set the profile AESetProfile = APIEndpoint("/profile/set") // AESetProfilePhoto is an endpoint to set the profile photo AESetProfilePhoto = APIEndpoint("/profile/photo") // AESetPosterPhoto is an endpoint to set the profile poster AESetPosterPhoto = APIEndpoint("/profile/poster") // AEFeeds fetches and index of named feeds AEFeeds = APIEndpoint("/remote/feeds") // AEPreview fetches a dataset preview from the registry AEPreview = APIEndpoint("/remote/preview") // AERemoteRemove removes a dataset from a given remote AERemoteRemove = APIEndpoint("/remote/remove") // AERegistryNew creates a new user on the registry AERegistryNew = APIEndpoint("/remote/registry/profile/new") // AERegistryProve links an the current peer with an existing // user on the registry AERegistryProve = APIEndpoint("/remote/registry/profile/prove") // AESearch returns a list of dataset search results AESearch = APIEndpoint("/remote/search") // AEStatus returns the filesystem dataset status AEStatus = APIEndpoint("/wd/status") // AEInit invokes a dataset initialization on the filesystem AEInit = APIEndpoint("/wd/init") // AECanInitDatasetWorkDir returns whether a dataset can be initialized AECanInitDatasetWorkDir = APIEndpoint("/wd/caninitworkdir") // AECheckout invokes a dataset checkout to the filesystem AECheckout = APIEndpoint("/wd/checkout") // AERestore invokes a restore AERestore = APIEndpoint("/wd/restore") // AEFSIWrite writes input data to the filesystem AEFSIWrite = APIEndpoint("/wd/write") // AEFSICreateLink creates an fsi link AEFSICreateLink = APIEndpoint("/wd/createlink") // AEFSIUnlink removes the fsi link AEFSIUnlink = APIEndpoint("/wd/unlink") // AEEnsureRef ensures that the ref is fsi linked AEEnsureRef = APIEndpoint("/wd/ensureref") // AERemoteDSync exposes the dsync mechanics AERemoteDSync = APIEndpoint("/remote/dsync") // AERemoteLogSync exposes the logsync mechanics AERemoteLogSync = APIEndpoint("/remote/logsync") // AERemoteRefs exposes the remote ref resolution mechanics AERemoteRefs = APIEndpoint("/remote/refs") // AEConnections lists qri & IPFS connections AEConnections = APIEndpoint("/connections") // AEConnectedQriProfiles lists qri profile connections AEConnectedQriProfiles = APIEndpoint("/connections/qri") // DenyHTTP will disable HTTP access to a method DenyHTTP = APIEndpoint("") )
const ( // QriStTagFspath means the field is a filesystem path and needs to be absolute QriStTagFspath = "fspath" // QriStTagRefOrPath means the field is either a dataset ref, or is a filesys path QriStTagRefOrPath = "dsrefOrFspath" )
qri struct tags augment how fields are marshalled for dispatched methods
const DefaultPageSize = 100
DefaultPageSize is the max number of items in a page if no Limit param is provided to a paginated method
Variables ¶
var ( // ErrDispatchNilInstance indicates that the instance that dispatch as been called on is nil ErrDispatchNilInstance = errors.New("instance is nil, cannot dispatch") // ErrDispatchNilParam indicates that the param passed to dispatch is nil ErrDispatchNilParam = errors.New("param is nil, cannot dispatch") )
var ( // ErrBadArgs is an error for when a user provides bad arguments ErrBadArgs = errors.New("bad arguments provided") // ErrNoRepo is an error for when a repo does not exist at a given path ErrNoRepo = errors.New("no repo exists") )
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 ErrCantRemoveDirectoryDirty = fmt.Errorf("cannot remove files while working directory is dirty")
ErrCantRemoveDirectoryDirty is returned when a directory is dirty so the files cant' be removed
var ErrListWarning = base.ErrUnlistableReferences
ErrListWarning is a warning that can occur while listing
var ErrUnsupportedRPC = errors.New("method is not supported over RPC")
ErrUnsupportedRPC is an error for when running a method that is not supported via HTTP RPC
Functions ¶
func CheckVersion ¶
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 DecodeParams ¶ added in v0.10.0
DecodeParams decodes a json body into params
func DsRefFromPath ¶ added in v0.10.0
DsRefFromPath parses a path and returns a dsref.Ref
func HTTPPathToQriPath ¶ added in v0.10.0
HTTPPathToQriPath converts a http path to a qri path
func IsSelectorScriptFile ¶ added in v0.10.0
IsSelectorScriptFile takes a selector string and returns true if the selector contains "script"
func NewHTTPRequestHandler ¶ added in v0.10.0
func NewHTTPRequestHandler(inst *Instance, libMethod string) http.HandlerFunc
NewHTTPRequestHandler creates a JSON-API endpoint for a registered dispatch method
func PathJoinPosix ¶ added in v0.9.13
PathJoinPosix joins two paths, and makes it explicitly clear we want POSIX slashes
func QriRepoExists ¶ added in v0.9.10
QriRepoExists returns nil if a qri repo is defined at the given path does not attempt to open the repo
func ReadDatasetFiles ¶ added in v0.7.3
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 ¶
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 sense
func SourceFromRequest ¶ added in v0.10.0
SourceFromRequest retrieves from the http request the source for resolving refs
func Teardown ¶
func Teardown(p TeardownParams) error
Teardown reverses the setup process, destroying a user's privateKey and removing local qri data
Types ¶
type APIEndpoint ¶ added in v0.10.0
type APIEndpoint string
APIEndpoint is a simple alias to have a consistent definition of our API endpoints
func (APIEndpoint) NoTrailingSlash ¶ added in v0.10.0
func (ae APIEndpoint) NoTrailingSlash() string
NoTrailingSlash returns the path without a traling slash
func (APIEndpoint) String ¶ added in v0.10.0
func (ae APIEndpoint) String() string
String allows for less casting in general code
func (APIEndpoint) WithSuffix ¶ added in v0.10.0
func (ae APIEndpoint) WithSuffix(suffix string) APIEndpoint
WithSuffix returns a new endpoint with added path suffix
type AccessMethods ¶ added in v0.10.0
type AccessMethods struct {
// contains filtered or unexported fields
}
AccessMethods is a group of methods for access control & user authentication
func (AccessMethods) Attributes ¶ added in v0.10.0
func (m AccessMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (AccessMethods) CreateAuthToken ¶ added in v0.10.0
func (m AccessMethods) CreateAuthToken(ctx context.Context, p *CreateAuthTokenParams) (string, error)
CreateAuthToken constructs a JWT string token suitable for making OAuth requests as the grantee user. Creating an access token requires a stored private key for the grantee. Callers can provide either GranteeUsername OR GranteeProfileID
func (AccessMethods) Name ¶ added in v0.10.0
func (m AccessMethods) Name() string
Name returns the name of this method group
type ActivityParams ¶ added in v0.10.0
type ActivityParams struct { ListParams // Reference to data to fetch history for Ref string Pull bool }
ActivityParams defines parameters for the Activity method
type ApplyParams ¶ added in v0.10.0
type ApplyParams struct { Ref string Transform *dataset.Transform Secrets map[string]string Wait bool // TODO(arqu): substitute with websockets when working over the wire ScriptOutput io.Writer `json:"-"` }
ApplyParams are parameters for the apply command
func (*ApplyParams) Validate ¶ added in v0.10.0
func (p *ApplyParams) Validate() error
Validate returns an error if ApplyParams fields are in an invalid state
type ApplyResult ¶ added in v0.10.0
ApplyResult is the result of an apply command
type AttributeSet ¶ added in v0.10.0
type AttributeSet struct { Endpoint APIEndpoint HTTPVerb string // the default source used for resolving references DefaultSource string // whether to deny RPC for this endpoint, normal HTTP may still be allowed DenyRPC bool }
AttributeSet is extra information about each method, such as: http endpoint, http verb, (TODO) permissions, and (TODO) other metadata Each method is required to have associated attributes in order to successfully register Variables are exported so that external packages such as docs can access them
type AutomationMethods ¶ added in v0.10.0
type AutomationMethods struct {
// contains filtered or unexported fields
}
AutomationMethods groups together methods for automations
func (AutomationMethods) Apply ¶ added in v0.10.0
func (m AutomationMethods) Apply(ctx context.Context, p *ApplyParams) (*ApplyResult, error)
Apply runs a transform script
func (AutomationMethods) Attributes ¶ added in v0.10.0
func (m AutomationMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (AutomationMethods) Name ¶ added in v0.10.0
func (m AutomationMethods) Name() string
Name returns the name of this method group
type ChangeReport ¶ added in v0.10.0
type ChangeReport = changes.ChangeReportResponse
ChangeReport is a simple utility type declaration
type ChangeReportParams ¶ added in v0.10.0
type ChangeReportParams struct { LeftRef string `schema:"leftRef" json:"leftRef"` RightRef string `schema:"rightRef" json:"rightRef"` }
ChangeReportParams defines parameters for diffing two sources
type CollectionMethods ¶ added in v0.10.0
type CollectionMethods struct {
// contains filtered or unexported fields
}
CollectionMethods encapsulates business logic for working with aggregate methods
func (CollectionMethods) Attributes ¶ added in v0.10.0
func (m CollectionMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (CollectionMethods) List ¶ added in v0.10.0
func (m CollectionMethods) List(ctx context.Context, p *ListParams) ([]dsref.VersionInfo, error)
List gets the reflist for either the local repo or a peer
func (CollectionMethods) ListRawRefs ¶ added in v0.10.0
func (m CollectionMethods) ListRawRefs(ctx context.Context, p *EmptyParams) (string, error)
ListRawRefs gets the list of raw references as string
func (CollectionMethods) Name ¶ added in v0.10.0
func (m CollectionMethods) Name() string
Name returns the name of this method group
type ConfigMethods ¶ added in v0.8.0
type ConfigMethods struct {
// contains filtered or unexported fields
}
ConfigMethods encapsulates changes to a qri configuration
func (ConfigMethods) Attributes ¶ added in v0.10.0
func (m ConfigMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (ConfigMethods) GetConfig ¶ added in v0.8.0
func (m ConfigMethods) GetConfig(ctx context.Context, p *GetConfigParams) ([]byte, 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) GetConfigKeys ¶ added in v0.9.8
func (m ConfigMethods) GetConfigKeys(ctx context.Context, p *GetConfigParams) ([]byte, error)
GetConfigKeys returns the Config key fields, or sub keys of the specified fields of the Config, as a slice of bytes to be used for auto completion
func (ConfigMethods) Name ¶ added in v0.10.0
func (m ConfigMethods) Name() string
Name returns the name of this method group
type ConnectParamsPod ¶ added in v0.10.0
ConnectParamsPod defines parameters for defining a connection to a peer as plain-old-data
func NewConnectParamsPod ¶ added in v0.10.0
func NewConnectParamsPod(s string) *ConnectParamsPod
NewConnectParamsPod attempts to turn a string into peer connection parameters
func (ConnectParamsPod) Decode ¶ added in v0.10.0
func (p ConnectParamsPod) Decode() (cp p2p.PeerConnectionParams, err error)
Decode turns plain-old-data into it's rich types
func (ConnectParamsPod) String ¶ added in v0.10.0
func (p ConnectParamsPod) String() string
type ConnectionsParams ¶ added in v0.10.0
ConnectionsParams defines parameters for the Connections method
type CreateAuthTokenParams ¶ added in v0.10.0
type CreateAuthTokenParams struct { GranteeUsername string GranteeProfileID string TTL time.Duration }
CreateAuthTokenParams are input parameters for Access().CreateAuthToken
func (*CreateAuthTokenParams) SetNonZeroDefaults ¶ added in v0.10.0
func (p *CreateAuthTokenParams) SetNonZeroDefaults()
SetNonZeroDefaults uses default token time-to-live if one isn't set
func (*CreateAuthTokenParams) Validate ¶ added in v0.10.0
func (p *CreateAuthTokenParams) Validate() error
Validate returns an error if input params are invalid
type Cursor ¶ added in v0.10.0
type Cursor interface{}
Cursor is used to paginate results for methods that support it
type DAGInfoParams ¶ added in v0.7.3
DAGInfoParams defines parameters for the DAGInfo method
type DataResponse ¶ added in v0.10.0
type DataResponse struct { Path string `json:"path"` Data json.RawMessage `json:"data"` }
DataResponse is the struct used to respond to api requests made to the /body endpoint It is necessary because we need to include the 'path' field in the response
type DatasetMethods ¶ added in v0.9.9
type DatasetMethods struct {
// contains filtered or unexported fields
}
DatasetMethods encapsulates business logic for working with Datasets on Qri
func (DatasetMethods) Activity ¶ added in v0.10.0
func (m DatasetMethods) Activity(ctx context.Context, params *ActivityParams) ([]dsref.VersionInfo, error)
Activity returns the activity and changes for a given dataset
func (DatasetMethods) Attributes ¶ added in v0.10.0
func (m DatasetMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (DatasetMethods) ComponentStatus ¶ added in v0.10.0
func (m DatasetMethods) ComponentStatus(ctx context.Context, p *LinkParams) ([]StatusItem, error)
ComponentStatus gets changes that happened at a particular version in the history of the given dataset reference.
func (DatasetMethods) DAGInfo ¶ added in v0.9.9
func (m DatasetMethods) DAGInfo(ctx context.Context, p *DAGInfoParams) (*dag.Info, 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 (DatasetMethods) Get ¶ added in v0.9.9
Get retrieves datasets and components for a given reference. p.Ref is parsed to create a reference, which is used to load the dataset. It will be loaded from the local repo or from the filesystem if it has a linked working directory. Using p.Selector will control what components are returned in res.Value. The default, a blank selector, will also fill the entire dataset at res.Value. If the selector contains ".script" then res.Bytes is loaded with the script contents as bytes. If the selector is "stats", then res.Value is loaded with the generated stats.
func (DatasetMethods) GetCSV ¶ added in v0.10.0
GetCSV fetches the body as a csv encoded byte slice, it recognizes Limit, Offset, and All list params
func (DatasetMethods) GetZip ¶ added in v0.10.0
func (m DatasetMethods) GetZip(ctx context.Context, p *GetParams) (*GetZipResults, error)
GetZip fetches an entire dataset as a zip archive
func (DatasetMethods) Manifest ¶ added in v0.9.9
func (m DatasetMethods) Manifest(ctx context.Context, p *ManifestParams) (*dag.Manifest, error)
Manifest generates a manifest for a dataset path
func (DatasetMethods) ManifestMissing ¶ added in v0.9.9
func (m DatasetMethods) ManifestMissing(ctx context.Context, p *ManifestMissingParams) (*dag.Manifest, error)
ManifestMissing generates a manifest of blocks that are not present on this repo for a given manifest
func (DatasetMethods) Name ¶ added in v0.10.0
func (m DatasetMethods) Name() string
Name returns the name of this method group
func (DatasetMethods) Pull ¶ added in v0.9.10
func (m DatasetMethods) Pull(ctx context.Context, p *PullParams) (*dataset.Dataset, error)
Pull downloads and stores an existing dataset to a peer's repository via a network connection
func (DatasetMethods) Push ¶ added in v0.10.0
func (m DatasetMethods) Push(ctx context.Context, p *PushParams) (*dsref.Ref, error)
Push posts a dataset version to a remote
func (DatasetMethods) Remove ¶ added in v0.9.9
func (m DatasetMethods) Remove(ctx context.Context, p *RemoveParams) (*RemoveResponse, error)
Remove a dataset entirely or remove a certain number of revisions
func (DatasetMethods) Rename ¶ added in v0.9.9
func (m DatasetMethods) Rename(ctx context.Context, p *RenameParams) (*dsref.VersionInfo, error)
Rename changes a user's given name for a dataset
func (DatasetMethods) Render ¶ added in v0.10.0
func (m DatasetMethods) Render(ctx context.Context, p *RenderParams) ([]byte, error)
Render renders a viz or readme component as html
func (DatasetMethods) Save ¶ added in v0.9.9
func (m DatasetMethods) Save(ctx context.Context, p *SaveParams) (*dataset.Dataset, error)
Save adds a history entry, updating a dataset
func (DatasetMethods) Validate ¶ added in v0.9.9
func (m DatasetMethods) Validate(ctx context.Context, p *ValidateParams) (*ValidateResponse, error)
Validate gives a dataset of errors and issues for a given dataset
type Delta ¶ added in v0.7.1
Delta is an alias for deepdiff.Delta, abstracting the deepdiff implementation away from packages that depend on lib
type DiffMethods ¶ added in v0.10.0
type DiffMethods struct {
// contains filtered or unexported fields
}
DiffMethods encapsulates logic for diffing Datasets on Qri
func (DiffMethods) Attributes ¶ added in v0.10.0
func (m DiffMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (DiffMethods) Changes ¶ added in v0.10.0
func (m DiffMethods) Changes(ctx context.Context, p *ChangeReportParams) (*ChangeReport, error)
Changes resolves the requested datasets and tries to generate a change report
func (DiffMethods) Diff ¶ added in v0.10.0
func (m DiffMethods) Diff(ctx context.Context, p *DiffParams) (*DiffResponse, error)
Diff computes the diff of two sources
func (DiffMethods) Name ¶ added in v0.10.0
func (m DiffMethods) Name() string
Name returns the name of this method group
type DiffMode ¶ added in v0.9.9
type DiffMode int
DiffMode is one of the methods that diff can perform
const ( // InvalidDiffMode is the default diff mode InvalidDiffMode DiffMode = iota // DatasetRefDiffMode will diff two dataset references DatasetRefDiffMode // FilepathDiffMode will diff two files FilepathDiffMode // WorkingDirectoryDiffMode will diff a working directory against its dataset head WorkingDirectoryDiffMode // PrevVersionDiffMode will diff a dataset head against its previous version PrevVersionDiffMode )
type DiffParams ¶
type DiffParams struct { // File paths or reference to datasets LeftSide string `schema:"leftPath" json:"leftPath" qri:"dsrefOrFspath"` RightSide string `schema:"rightPath" json:"rightPath" qri:"dsrefOrFspath"` // If not null, the working directory that the diff is using WorkingDir string `qri:"fspath"` // Whether to get the previous version of the left parameter UseLeftPrevVersion bool // Which component or part of a dataset to compare Selector string }
DiffParams defines parameters for diffing two sources. There are three valid ways to use these parameters: 1) both LeftSide and RightSide set, 2) only LeftSide set with a WorkingDir, 3) only LeftSide set with the UseLeftPrevVersion flag.
type DiffResponse ¶ added in v0.7.1
type DiffResponse struct { Stat *DiffStat `json:"stat,omitempty"` SchemaStat *DiffStat `json:"schemaStat,omitempty"` Schema []*Delta `json:"schema,omitempty"` Diff []*Delta `json:"diff,omitempty"` }
DiffResponse is the result of a call to diff
type DiffStat ¶ added in v0.7.1
DiffStat is an alias for deepdiff.Stat, abstracting the deepdiff implementation away from packages that depend on lib
type EmptyParams ¶ added in v0.10.0
type EmptyParams struct { }
EmptyParams is for methods that don't need any input
type FSIMethods ¶ added in v0.9.0
type FSIMethods struct {
// contains filtered or unexported fields
}
FSIMethods groups together methods for FSI
func (FSIMethods) Attributes ¶ added in v0.10.0
func (m FSIMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (FSIMethods) CanInitDatasetWorkDir ¶ added in v0.9.9
func (m FSIMethods) CanInitDatasetWorkDir(ctx context.Context, p *InitDatasetParams) error
CanInitDatasetWorkDir returns nil if the directory can init a dataset, or an error if not
func (FSIMethods) Checkout ¶ added in v0.9.0
func (m FSIMethods) Checkout(ctx context.Context, p *LinkParams) error
Checkout method writes a dataset to a directory as individual files.
func (FSIMethods) CreateLink ¶ added in v0.9.0
func (m FSIMethods) CreateLink(ctx context.Context, p *LinkParams) (*dsref.VersionInfo, error)
CreateLink creates a connection between a working directory and a dataset history
func (FSIMethods) EnsureRef ¶ added in v0.9.3
func (m FSIMethods) EnsureRef(ctx context.Context, p *LinkParams) (*dsref.VersionInfo, error)
EnsureRef will modify the directory path in the repo for the given reference
func (FSIMethods) Init ¶ added in v0.10.0
func (m FSIMethods) Init(ctx context.Context, p *InitDatasetParams) (string, error)
Init initializes a new working directory for a linked dataset
func (FSIMethods) Name ¶ added in v0.10.0
func (m FSIMethods) Name() string
Name returns the name of this method group
func (FSIMethods) Restore ¶ added in v0.9.0
func (m FSIMethods) Restore(ctx context.Context, p *RestoreParams) error
Restore method restores a component or all of the component files of a dataset from the repo
func (FSIMethods) Status ¶ added in v0.9.0
func (m FSIMethods) Status(ctx context.Context, p *LinkParams) ([]StatusItem, error)
Status checks for any modifications or errors in a linked directory against its previous version in the repo. Must only be called if FSI is enabled for this dataset.
func (FSIMethods) Unlink ¶ added in v0.9.0
func (m FSIMethods) Unlink(ctx context.Context, p *LinkParams) (string, error)
Unlink removes the connection between a working directory and a dataset. If given only a directory, will remove the link file from that directory. If given only a reference, will remove the fsi path from that reference, and remove the link file from that fsi path
func (FSIMethods) Write ¶ added in v0.9.0
func (m FSIMethods) Write(ctx context.Context, p *FSIWriteParams) ([]StatusItem, error)
Write mutates a linked dataset on the filesystem
type FSIWriteParams ¶ added in v0.9.0
FSIWriteParams encapsultes arguments for writing to an FSI-linked directory
type FileParams ¶
type FileParams struct { // url to download data from. either Url or Data is required // Url string // Filename of data file. extension is used for filetype detection Filename string `qri:"fspath"` // Data is the file as slice of bytes Data []byte }
FileParams defines parameters for Files as arguments to lib methods either `Filename` or `Data` is required. If both fields are set, the content in the `Data` field is favored
type GetConfigParams ¶
GetConfigParams are the params needed to format/specify the fields in bytes returned from the GetConfig function
type GetParams ¶
type GetParams struct { Ref string `json:"ref"` // selector is a component or nested field names to extract from the dataset Selector string `json:"selector"` Limit int `json:"limit"` Offset int `json:"offset"` // TODO(dustmop): Remove `All` once `Cursor` is in use. Instead, callers should // loop over their `Cursor` in order to get all rows. All bool `json:"all"` }
GetParams defines parameters for looking up the head or body of a dataset
func (*GetParams) SetNonZeroDefaults ¶ added in v0.10.0
func (p *GetParams) SetNonZeroDefaults()
SetNonZeroDefaults assigns default values
func (*GetParams) UnmarshalFromRequest ¶ added in v0.10.0
UnmarshalFromRequest satisfies the Unmarshaller interface
type GetResult ¶ added in v0.7.0
type GetResult struct { Value interface{} `json:"value,omitempty"` Bytes []byte `json:"bytes,omitempty"` }
GetResult returns the dataset or some part of it as structured data inside the `Value` field The `Bytes` field is reserved for data that can only be expressed as a slice of bytes Byte slices must be treated as a special case because of json.Marshal. json.Marshal will serialize a slice of bytes as base64 encoded json. If this is deserialized into an `interface{}`, it will remain a string. It needs to be explicitly deserialized into a `[]byte` field to not degredate the information
type GetZipResults ¶ added in v0.10.0
GetZipResults is returned by `GetZip` It contains a byte slice of the compressed data as well as a generated name based on the dataset
type HTTPClient ¶ added in v0.10.0
HTTPClient implements the qri http client
func NewHTTPClient ¶ added in v0.10.0
func NewHTTPClient(multiaddr string) (*HTTPClient, error)
NewHTTPClient instantiates a new HTTPClient
func NewHTTPClientWithProtocol ¶ added in v0.10.0
func NewHTTPClientWithProtocol(multiaddr string, protocol string) (*HTTPClient, error)
NewHTTPClientWithProtocol instantiates a new HTTPClient with a specified protocol
func (HTTPClient) Call ¶ added in v0.10.0
func (c HTTPClient) Call(ctx context.Context, apiEndpoint APIEndpoint, source string, params interface{}, result interface{}) error
Call calls API endpoint and passes on parameters, context info
func (HTTPClient) CallMethod ¶ added in v0.10.0
func (c HTTPClient) CallMethod(ctx context.Context, apiEndpoint APIEndpoint, httpMethod string, source string, params interface{}, result interface{}) error
CallMethod calls API endpoint and passes on parameters, context info and specific HTTP Method
func (HTTPClient) CallMethodRaw ¶ added in v0.10.0
func (c HTTPClient) CallMethodRaw(ctx context.Context, apiEndpoint APIEndpoint, httpMethod string, source string, params interface{}, result interface{}) error
CallMethodRaw calls API endpoint and passes on parameters, context info, specific HTTP Method and returns the []byte result
func (HTTPClient) CallRaw ¶ added in v0.10.0
func (c HTTPClient) CallRaw(ctx context.Context, apiEndpoint APIEndpoint, source string, params interface{}, result interface{}) error
CallRaw calls API endpoint and passes on parameters, context info and returns the []byte result
type InitDatasetParams ¶ added in v0.10.0
type InitDatasetParams = fsi.InitParams
InitDatasetParams proxies parameters to initialization
type Instance ¶ added in v0.8.0
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 ¶ added in v0.8.0
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 ¶ added in v0.8.0
func NewInstanceFromConfigAndNode(ctx context.Context, 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 This function must only be used for testing purposes
func NewInstanceFromConfigAndNodeAndBus ¶ added in v0.9.10
func NewInstanceFromConfigAndNodeAndBus(ctx context.Context, cfg *config.Config, node *p2p.QriNode, bus event.Bus) *Instance
NewInstanceFromConfigAndNodeAndBus adds a bus argument to the horrible, hacky instance construtor
func (*Instance) Access ¶ added in v0.10.0
func (inst *Instance) Access() AccessMethods
Access returns the AccessMethods that Instance has registered
func (*Instance) AllMethods ¶ added in v0.10.0
AllMethods returns a method set for documentation purposes TODO(arqu): this is intended to merge with RegisterMethods as it's only exposed for generating the OpenAPI spec
func (*Instance) Automation ¶ added in v0.10.0
func (inst *Instance) Automation() AutomationMethods
Automation returns the AutomationMethods that Instance has registered
func (*Instance) ChangeConfig ¶ added in v0.8.0
ChangeConfig implements the ConfigSetter interface
func (*Instance) Collection ¶ added in v0.10.0
func (inst *Instance) Collection() CollectionMethods
Collection returns the CollectionMethods that Instance has registered
func (*Instance) Config ¶ added in v0.8.0
func (inst *Instance) Config() ConfigMethods
Config returns the ConfigMethods that Instance has registered
func (*Instance) Dataset ¶ added in v0.10.0
func (inst *Instance) Dataset() DatasetMethods
Dataset returns the DatasetMethods that Instance has registered
func (*Instance) Diff ¶ added in v0.10.0
func (inst *Instance) Diff() DiffMethods
Diff returns the DiffMethods that Instance has registered
func (*Instance) Dispatch ¶ added in v0.10.0
func (inst *Instance) Dispatch(ctx context.Context, method string, param interface{}) (res interface{}, cur Cursor, err error)
Dispatch is a system for handling calls to lib. Should only be called by top-level lib methods.
When programs are using qri as a library (such as the `cmd` package), calls to `lib` will arrive at dispatch, before being routed to the actual implementation routine. This solves a few problems:
- Multiple methods can be running on qri at once, dispatch will schedule as needed (TODO)
- Access to core qri data structures (like logbook) can be handled safetly (TODO)
- User identity, permissions, etc is scoped to a single call, not the global process (TODO)
- The qri http api maps directly onto dispatch's behavior, leading to a simpler api
- A `qri connect` process can be transparently forwarded a method call with little work
At construction time, the Instance registers all methods that dispatch can access, as well as the input and output parameters for those methods, and associates a string name for each method. Dispatch works by looking up that method name, constructing the necessary input, then invoking the actual implementation. Dispatch returns the custom value from the implementation, then a non-nil Cursor if the method supports pagination, then an error or nil.
func (*Instance) Filesys ¶ added in v0.10.0
func (inst *Instance) Filesys() FSIMethods
Filesys returns the FSIMethods that Instance has registered
func (*Instance) GiveAPIServer ¶ added in v0.10.0
func (inst *Instance) GiveAPIServer(middleware func(handler http.HandlerFunc) http.HandlerFunc, ignoreMethods []string) *mux.Router
GiveAPIServer creates an API server that gives access to lib's registered methods
func (*Instance) HTTPClient ¶ added in v0.10.0
func (inst *Instance) HTTPClient() *HTTPClient
HTTPClient accesses the instance HTTP client if one exists
func (*Instance) Log ¶ added in v0.10.0
func (inst *Instance) Log() LogMethods
Log returns the LogMethods that Instance has registered
func (*Instance) NewInputParam ¶ added in v0.10.0
NewInputParam takes a method name that has been registered, and constructs an instance of that input parameter
func (*Instance) ParseAndResolveRef ¶ added in v0.9.9
func (inst *Instance) ParseAndResolveRef(ctx context.Context, refStr, source string, useFSI bool) (dsref.Ref, string, error)
ParseAndResolveRef combines reference parsing and resolution
func (*Instance) Peer ¶ added in v0.10.0
func (inst *Instance) Peer() PeerMethods
Peer returns the PeerMethods that Instance has registered
func (*Instance) Profile ¶ added in v0.10.0
func (inst *Instance) Profile() ProfileMethods
Profile returns the ProfileMethods that Instance has registered
func (*Instance) RegisterMethods ¶ added in v0.10.0
func (inst *Instance) RegisterMethods()
RegisterMethods iterates the methods provided by the lib API, and makes them visible to dispatch
func (*Instance) Registry ¶ added in v0.10.0
func (inst *Instance) Registry() RegistryClientMethods
Registry returns the RegistryMethods that Instance has registered
func (*Instance) Remote ¶ added in v0.9.0
func (inst *Instance) Remote() RemoteMethods
Remote returns the RemoteMethods that Instance has registered
func (*Instance) RemoteClient ¶ added in v0.9.0
RemoteClient exposes the instance client for making requests to remotes
func (*Instance) RemoteServer ¶ added in v0.10.0
RemoteServer accesses the remote subsystem if one exists
func (*Instance) RepoPath ¶ added in v0.8.0
RepoPath returns the path to the directory qri is operating from
func (*Instance) ResolveReference ¶ added in v0.9.9
func (inst *Instance) ResolveReference(ctx context.Context, ref *dsref.Ref, source string) (string, error)
ResolveReference finds the identifier & HEAD path for a dataset reference. the source parameter determines which subsystems of Qri to use when resolving
func (*Instance) SQL ¶ added in v0.10.0
func (inst *Instance) SQL() SQLMethods
SQL returns the SQLMethods that Instance has registered
func (*Instance) Search ¶ added in v0.10.0
func (inst *Instance) Search() SearchMethods
Search returns the SearchMethods that Instance has registered
func (*Instance) Shutdown ¶ added in v0.9.9
Shutdown closes the instance, releasing all held resources. the returned channel will write any closing error, including context cancellation timeout
func (*Instance) WithSource ¶ added in v0.10.0
func (inst *Instance) WithSource(source string) *InstanceSourceWrap
WithSource returns a wrapped instance that will resolve refs from the given source
type InstanceContextKey ¶ added in v0.9.3
type InstanceContextKey string
InstanceContextKey is used by context to set keys for constucting a lib.Instance
type InstanceOptions ¶ added in v0.8.0
type InstanceOptions struct { Cfg *config.Config Streams ioes.IOStreams // contains filtered or unexported fields }
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 InstanceSourceWrap ¶ added in v0.10.0
type InstanceSourceWrap struct {
// contains filtered or unexported fields
}
InstanceSourceWrap is a wrapped instance with an explicit resolver source added TODO(dustmop): This struct is a temporary solution. The better approach is to make it easy to copy the Instance cheaply. All of Instance's "heavy" state, such as the Bus, and Logbook, should live on a shared object, while values that can be overwritten should live as separate fields. Then `WithSource` can be replaced with a method that constructs a new Instance that points to the original shared object, with other fields assigned as needed.
func (*InstanceSourceWrap) Dataset ¶ added in v0.10.0
func (isw *InstanceSourceWrap) Dataset() DatasetMethods
Dataset returns the DatasetMethods that Instance has registered
func (*InstanceSourceWrap) Dispatch ¶ added in v0.10.0
func (isw *InstanceSourceWrap) Dispatch(ctx context.Context, method string, param interface{}) (res interface{}, cur Cursor, err error)
Dispatch calls the same instance Dispatch but with an explicit source for ref resolution
func (*InstanceSourceWrap) Log ¶ added in v0.10.0
func (isw *InstanceSourceWrap) Log() LogMethods
Log returns the LogMethods that Instance has registered
func (*InstanceSourceWrap) Remote ¶ added in v0.10.0
func (isw *InstanceSourceWrap) Remote() RemoteMethods
Remote returns the RemoteMethods that Instance has registered
func (*InstanceSourceWrap) SQL ¶ added in v0.10.0
func (isw *InstanceSourceWrap) SQL() SQLMethods
SQL returns the SQLMethods that Instance has registered
type LinkParams ¶ added in v0.9.0
LinkParams encapsulate parameters for linked datasets
type ListParams ¶
type ListParams struct { ProfileID profile.ID `json:"-"` Term string Username string OrderBy string Limit int Offset int // Public only applies to listing datasets, shows only datasets that are // set to visible Public bool // ShowNumVersions only applies to listing datasets ShowNumVersions bool // EnsureFSIExists controls whether to ensure references in the repo have correct FSIPaths EnsureFSIExists 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 ¶
func ListParamsFromRequest(r *http.Request) ListParams
ListParamsFromRequest extracts ListParams from an http.Request pointer
func NewListParams ¶
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 ¶
func (p ListParams) Page() util.Page
Page converts a ListParams struct to a util.Page struct
func (*ListParams) SetNonZeroDefaults ¶ added in v0.10.0
func (p *ListParams) SetNonZeroDefaults()
SetNonZeroDefaults sets OrderBy to "created" if it's value is the empty string
type LogMethods ¶ added in v0.9.9
type LogMethods struct {
// contains filtered or unexported fields
}
LogMethods extends a lib.Instance with business logic for working with lists of dataset versions. think "git log".
func (LogMethods) Attributes ¶ added in v0.10.0
func (m LogMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (LogMethods) Log ¶ added in v0.9.9
func (m LogMethods) Log(ctx context.Context, p *RefListParams) ([]LogEntry, error)
Log lists log entries for actions taken on a given dataset
func (LogMethods) LogbookSummary ¶ added in v0.9.9
func (m LogMethods) LogbookSummary(ctx context.Context, p *struct{}) (*string, error)
LogbookSummary returns a string overview of the logbook
func (LogMethods) Name ¶ added in v0.10.0
func (m LogMethods) Name() string
Name returns the name of this method group
func (LogMethods) RawLogbook ¶ added in v0.10.0
func (m LogMethods) RawLogbook(ctx context.Context, p *RawLogbookParams) (*RawLogs, error)
RawLogbook encodes the full logbook as human-oriented json
type ManifestMissingParams ¶ added in v0.10.0
ManifestMissingParams encapsulates parameters to the missing manifest command
type ManifestParams ¶ added in v0.10.0
type ManifestParams struct {
Ref string
}
ManifestParams encapsulates parameters to the manifest command
type MethodSet ¶ added in v0.10.0
type MethodSet interface { Name() string Attributes() map[string]AttributeSet }
MethodSet represents a set of methods to be registered Each registered method should have 2 input parameters and 1-3 output values
Input: (context.Context, input struct) Output, 1: (error) 2: (output, error) 3: (output, Cursor, error)
The implementation should have the same input and output as the method, except with the context.Context replaced by a scope. No other functions are allowed to be defined, other that those that are going to be registered (as described above) and those that are required by the interface.
type Methods ¶ added in v0.8.0
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
type NZDefaultSetter ¶ added in v0.10.0
type NZDefaultSetter interface {
SetNonZeroDefaults()
}
NZDefaultSetter modifies zero values to non-zero defaults when called
type Option ¶ added in v0.8.0
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 OptBus ¶ added in v0.10.0
OptBus overrides the configured `event.Bus` with a manually provided one
func OptCheckConfigMigrations ¶ added in v0.8.0
OptCheckConfigMigrations checks for any configuration migrations that may need to be run. running & updating config if so
func OptDscache ¶ added in v0.10.0
OptDscache overrides the configured `dscache.Dscache` with a manually provided one
func OptEnableRemote ¶ added in v0.9.10
func OptEnableRemote() Option
OptEnableRemote enables the remote functionality in the node
func OptEventHandler ¶ added in v0.9.10
OptEventHandler provides an event handler & list of event types to subscribe to. The canonical list of events a qri instance emits are defined in the github.com/qri-io/qri/event package plase note that event handlers in qri are synchronous. A handler function that takes a long time to return will slow down the performance of qri generally
func OptIOStreams ¶ added in v0.8.0
OptIOStreams sets the input IOStreams
func OptLogbook ¶ added in v0.9.3
OptLogbook overrides the configured logbook with a manually provided one
func OptNoBootstrap ¶ added in v0.9.10
func OptNoBootstrap() Option
OptNoBootstrap ensures the node will not attempt to bootstrap to any other nodes in the network
func OptProfiles ¶ added in v0.10.0
OptProfiles supplies a profile store for the instance
func OptQriNode ¶ added in v0.9.0
OptQriNode configures bring-your-own qri node
func OptRegistryClient ¶ added in v0.9.0
OptRegistryClient overrides any configured registry client
func OptRemoteOptions ¶ added in v0.9.0
func OptRemoteOptions(fns []remote.OptionsFunc) Option
OptRemoteOptions provides options to the instance remote the provided configuration function is called with the Qri configuration-derived remote settings applied, allowing partial-overrides.
func OptSetIPFSPath ¶ added in v0.8.0
OptSetIPFSPath sets the directory to read IPFS from. Passing the empty string adjusts qri to use the go-ipfs default: first checking the IPFS_PATH env variable, then falling back to $HOME/.ipfs if no ipfs filesystem is configured, this option creates one
func OptSetLogAll ¶ added in v0.9.4
OptSetLogAll sets the logAll value so that debug level logging is enabled for all qri packages
func OptSetOpenFileTimeout ¶ added in v0.9.10
OptSetOpenFileTimeout sets a timeout duration for opening files
func OptStatsCache ¶ added in v0.9.2
OptStatsCache overrides the configured stats cache
func OptStdIOStreams ¶ added in v0.8.0
func OptStdIOStreams() Option
OptStdIOStreams sets treams to std, stdout, & stderr
type ParamValidator ¶ added in v0.10.0
type ParamValidator interface {
Validate() error
}
ParamValidator may be implemented by method parameter structs, and if so then Dispatch will validate the parameters are okay before calling anything
type PeerInfoParams ¶
type PeerInfoParams struct { Peername string ProfileID string // Verbose adds network details from the p2p Peerstore Verbose bool }
PeerInfoParams defines parameters for the Info method
type PeerListParams ¶
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 PeerMethods ¶ added in v0.9.9
type PeerMethods struct {
// contains filtered or unexported fields
}
PeerMethods extends a lib.Instance with business logic for peer-to-peer interaction
func (PeerMethods) Attributes ¶ added in v0.10.0
func (m PeerMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (PeerMethods) Connect ¶ added in v0.10.0
func (m PeerMethods) Connect(ctx context.Context, p *ConnectParamsPod) (*config.ProfilePod, error)
Connect attempts to create a connection with a peer for a given peer.ID
func (PeerMethods) ConnectedQriProfiles ¶ added in v0.9.9
func (m PeerMethods) ConnectedQriProfiles(ctx context.Context, p *ConnectionsParams) ([]*config.ProfilePod, error)
ConnectedQriProfiles lists profiles we're currently connected to
func (PeerMethods) Connections ¶ added in v0.10.0
func (m PeerMethods) Connections(ctx context.Context, p *ConnectionsParams) ([]string, error)
Connections lists PeerID's we're currently connected to. If running IPFS this will also return connected IPFS nodes
func (PeerMethods) Disconnect ¶ added in v0.10.0
func (m PeerMethods) Disconnect(ctx context.Context, p *ConnectParamsPod) error
Disconnect explicitly closes a peer connection
func (PeerMethods) Info ¶ added in v0.9.9
func (m PeerMethods) Info(ctx context.Context, p *PeerInfoParams) (*config.ProfilePod, error)
Info shows peer profile details
func (PeerMethods) List ¶ added in v0.9.9
func (m PeerMethods) List(ctx context.Context, p *PeerListParams) ([]*config.ProfilePod, error)
List lists Peers on the qri network
func (PeerMethods) Name ¶ added in v0.10.0
func (m PeerMethods) Name() string
Name returns the name of this method group
type PreviewParams ¶ added in v0.9.5
type PreviewParams struct {
Ref string
}
PreviewParams provides arguments to the preview method
type ProfileMethods ¶ added in v0.8.0
type ProfileMethods struct {
// contains filtered or unexported fields
}
ProfileMethods encapsulates business logic for this node's user profile TODO (b5) - alterations to user profile are a subset of configuration changes. all of this code should be refactored into subroutines of general configuration getters & setters
func (ProfileMethods) Attributes ¶ added in v0.10.0
func (m ProfileMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (ProfileMethods) GetProfile ¶ added in v0.8.0
func (m ProfileMethods) GetProfile(ctx context.Context, p *ProfileParams) (*config.ProfilePod, error)
GetProfile get's this node's peer profile
func (ProfileMethods) Name ¶ added in v0.10.0
func (m ProfileMethods) Name() string
Name returns the name of this method group
func (ProfileMethods) SetPosterPhoto ¶ added in v0.8.0
func (m ProfileMethods) SetPosterPhoto(ctx context.Context, p *FileParams) (*config.ProfilePod, error)
SetPosterPhoto changes this active peer's poster image
func (ProfileMethods) SetProfile ¶ added in v0.10.0
func (m ProfileMethods) SetProfile(ctx context.Context, p *SetProfileParams) (*config.ProfilePod, error)
SetProfile stores changes to the active peer's editable profile
func (ProfileMethods) SetProfilePhoto ¶ added in v0.8.0
func (m ProfileMethods) SetProfilePhoto(ctx context.Context, p *FileParams) (*config.ProfilePod, error)
SetProfilePhoto changes the active peer's profile image
type ProfileParams ¶ added in v0.10.0
type ProfileParams struct{}
ProfileParams define parameters for getting a profile
type PullParams ¶ added in v0.9.10
type PullParams struct { Ref string LinkDir string `qri:"fspath"` LogsOnly bool // only fetch logbook data }
PullParams encapsulates parameters to the add command
type PushParams ¶ added in v0.7.3
type PushParams struct { Ref string `schema:"ref" json:"ref"` Remote string // All indicates all versions of a dataset and the dataset namespace should // be either published or removed All bool }
PushParams encapsulates parmeters for dataset publication
type RawLogbookParams ¶ added in v0.10.0
type RawLogbookParams struct { }
RawLogbookParams enapsulates parameters for the RawLogbook methods
type RawLogs ¶ added in v0.9.1
RawLogs is an alias for a human representation of a plain-old-data logbook
type RefListParams ¶ added in v0.9.1
type RefListParams struct { // String value of a reference Ref string // Pagination Parameters Offset, Limit int }
RefListParams encapsulates parameters for requests to a single reference that will produce a paginated result
type RegistryClientMethods ¶ added in v0.9.0
type RegistryClientMethods struct {
// contains filtered or unexported fields
}
RegistryClientMethods defines business logic for working with registries
func (RegistryClientMethods) Attributes ¶ added in v0.10.0
func (m RegistryClientMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (RegistryClientMethods) CreateProfile ¶ added in v0.9.0
func (m RegistryClientMethods) CreateProfile(ctx context.Context, p *RegistryProfileParams) error
CreateProfile creates a profile
func (RegistryClientMethods) Name ¶ added in v0.10.0
func (m RegistryClientMethods) Name() string
Name returns the name of this method group
func (RegistryClientMethods) ProveProfileKey ¶ added in v0.9.0
func (m RegistryClientMethods) ProveProfileKey(ctx context.Context, p *RegistryProfileParams) error
ProveProfileKey sends proof to the registry that this user has control of a specified private key, and modifies the user's config in order to reconcile it with any already existing identity the registry knows about
type RegistryProfile ¶ added in v0.9.0
RegistryProfile is a user profile as stored on a registry
type RegistryProfileParams ¶ added in v0.10.0
type RegistryProfileParams struct {
Profile *RegistryProfile
}
RegistryProfileParams encapsulates arguments for creating or proving a registry profile
type RemoteMethods ¶ added in v0.9.0
type RemoteMethods struct {
// contains filtered or unexported fields
}
RemoteMethods encapsulates business logic of remote operation TODO (b5): switch to using an Instance instead of separate fields
func (RemoteMethods) Attributes ¶ added in v0.10.0
func (m RemoteMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (RemoteMethods) Feeds ¶ added in v0.9.5
func (m RemoteMethods) Feeds(ctx context.Context, p *EmptyParams) (map[string][]dsref.VersionInfo, error)
Feeds returns a listing of datasets from a number of feeds like featured and popular. Each feed is keyed by string in the response
func (RemoteMethods) Name ¶ added in v0.10.0
func (m RemoteMethods) Name() string
Name returns the name of this method group
func (RemoteMethods) Preview ¶ added in v0.9.5
func (m RemoteMethods) Preview(ctx context.Context, p *PreviewParams) (*dataset.Dataset, error)
Preview requests a dataset preview from a remote
func (RemoteMethods) Remove ¶ added in v0.9.10
func (m RemoteMethods) Remove(ctx context.Context, p *PushParams) (*dsref.Ref, error)
Remove asks a remote to remove a dataset
type RemoveParams ¶ added in v0.6.2
RemoveParams defines parameters for remove command
func (*RemoveParams) SetNonZeroDefaults ¶ added in v0.10.0
func (p *RemoveParams) SetNonZeroDefaults()
SetNonZeroDefaults assigns default values
type RemoveResponse ¶ added in v0.7.0
RemoveResponse gives the results of a remove
type RenameParams ¶
type RenameParams struct {
Current, Next string
}
RenameParams defines parameters for Dataset renaming
type RenderParams ¶
type RenderParams struct { // Ref is a string reference to the dataset to render Ref string `json:"ref"` // Optionally pass an entire dataset in for rendering, if providing a dataset, // the Ref field must be empty Dataset *dataset.Dataset // Optional template override Template []byte // If true, UseFSI bool // Output format. defaults to "html" Format string // Selector Selector string `json:"selector"` }
RenderParams defines parameters for the Render method
func (*RenderParams) SetNonZeroDefaults ¶ added in v0.10.0
func (p *RenderParams) SetNonZeroDefaults()
SetNonZeroDefaults assigns default values
func (*RenderParams) Validate ¶ added in v0.9.5
func (p *RenderParams) Validate() error
Validate checks if render parameters are valid
type RestoreParams ¶ added in v0.9.0
RestoreParams provides parameters to the restore method.
type SQLMethods ¶ added in v0.9.7
type SQLMethods struct {
// contains filtered or unexported fields
}
SQLMethods groups together methods for SQL
func (SQLMethods) Attributes ¶ added in v0.10.0
func (m SQLMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (SQLMethods) Exec ¶ added in v0.9.7
func (m SQLMethods) Exec(ctx context.Context, p *SQLQueryParams) ([]byte, error)
Exec runs an SQL query
func (SQLMethods) Name ¶ added in v0.10.0
func (m SQLMethods) Name() string
Name returns the name of this method group
type SQLQueryParams ¶ added in v0.9.7
SQLQueryParams defines paremeters for running a SQL query
func (*SQLQueryParams) SetNonZeroDefaults ¶ added in v0.10.0
func (p *SQLQueryParams) SetNonZeroDefaults()
SetNonZeroDefaults sets format to "json" if it's value is an empty string
type SaveParams ¶
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 `qri:"fspath"` // absolute path or URL to the list of dataset files or components to load FilePaths []string `qri:"fspath"` // secrets for transform execution Secrets map[string]string // optional writer to have transform script record standard output to // note: this won't work over RPC, only on local calls ScriptOutput io.Writer `json:"-"` // Apply runs a transform script to create the next version to save Apply bool // Replace writes the entire given dataset as a new snapshot instead of // applying save params as augmentations to the existing history Replace bool // 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, convert body to the format of the previous version, if applicable ConvertFormatToPrev bool // comma separated list of component names to delete before saving Drop 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 // new dataset only, don't create a commit on an existing dataset, name will be unused NewName bool }
SaveParams encapsulates arguments to Save
func (*SaveParams) SetNonZeroDefaults ¶ added in v0.10.0
func (p *SaveParams) SetNonZeroDefaults()
SetNonZeroDefaults sets basic save path params to defaults
type SearchMethods ¶ added in v0.9.0
type SearchMethods struct {
// contains filtered or unexported fields
}
SearchMethods groups together methods for search
func (SearchMethods) Attributes ¶ added in v0.10.0
func (m SearchMethods) Attributes() map[string]AttributeSet
Attributes defines attributes for each method
func (SearchMethods) Name ¶ added in v0.10.0
func (m SearchMethods) Name() string
Name returns the name of this method group
func (SearchMethods) Search ¶ added in v0.9.0
func (m SearchMethods) Search(ctx context.Context, p *SearchParams) ([]SearchResult, error)
Search queries for items on qri related to given parameters
type SearchParams ¶
type SearchParams struct { Query string `json:"q"` Limit int `json:"limit,omitempty"` Offset int `json:"offset,omitempty"` }
SearchParams defines paremeters for the search Method
type SearchResult ¶
SearchResult struct
type SetProfileParams ¶ added in v0.10.0
type SetProfileParams struct {
Pro *config.ProfilePod
}
SetProfileParams defines parameters for setting parts of a profile Cannot use this to set private keys, your peername, or peer id
type SetupParams ¶
type SetupParams struct { // a configuration is required. defaults to config.DefaultConfig() Config *config.Config // where to initialize qri repository RepoPath string // submit new username to the configured registry Register bool // overwrite any existing repo, erasing all data and deleting private keys // this is almost always a bad idea Overwrite bool // attempt to setup an IFPS repo SetupIPFS bool SetupIPFSConfigData []byte // setup requires a crypto source Generator key.CryptoGenerator }
SetupParams encapsulates arguments for Setup
type StatusItem ¶ added in v0.9.0
type StatusItem = fsi.StatusItem
StatusItem is an alias for an fsi.StatusItem
type TeardownParams ¶
TeardownParams encapsulates arguments for Setup
type ValidateParams ¶ added in v0.9.13
type ValidateParams struct { Ref string BodyFilename string `qri:"fspath"` SchemaFilename string `qri:"fspath"` StructureFilename string `qri:"fspath"` }
ValidateParams defines parameters for dataset data validation
type ValidateResponse ¶ added in v0.9.13
type ValidateResponse struct { // Structure used to perform validation Structure *dataset.Structure // Validation Errors Errors []jsonschema.KeyError }
ValidateResponse is the result of running validate against a dataset
type WebsocketHandler ¶ added in v0.10.0
type WebsocketHandler interface {
WSConnectionHandler(w http.ResponseWriter, r *http.Request)
}
WebsocketHandler defines the handler interface
func NewWebsocketHandler ¶ added in v0.10.0
func NewWebsocketHandler(ctx context.Context, inst *Instance) (WebsocketHandler, error)
NewWebsocketHandler creates a new wsHandler instance that clients can connect to in order to get realtime events