Documentation

Overview

    Package camtypes is like the types package, but higher-level and contains Camlistore-specific types. It exists mostly to break circular dependencies between index, search, and schema.

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var (
    	ErrClientNoServer = addCamError("client-no-server", funcStr(func() string {
    		return fmt.Sprintf("No valid server defined. It can be set with the CAMLI_SERVER environment variable, or the --server flag, or in the \"servers\" section of %q (see https://camlistore.org/doc/client-config).", osutil.UserClientConfigPath())
    	}))
    	ErrClientNoPublicKey = addCamError("client-no-public-key", str("No public key configured: see 'camput init'."))
    )

    Functions

    func Err

    func Err(key string) error

      Err returns the error registered for key. It panics for an unregistered key.

      Types

      type BlobMeta

      type BlobMeta struct {
      	Ref  blob.Ref
      	Size uint32
      
      	// CamliType is non-empty if this blob is a Camlistore JSON
      	// schema blob. If so, this is its "camliType" attribute.
      	CamliType string
      }

        BlobMeta is the metadata kept for each known blob in the in-memory search index. It's kept as small as possible to save memory.

        type Claim

        type Claim struct {
        	BlobRef, Signer blob.Ref
        
        	Date time.Time
        	Type string // "set-attribute", "add-attribute", etc
        
        	// If an attribute modification
        	Attr, Value string
        	Permanode   blob.Ref
        
        	// If a DeleteClaim or a ShareClaim
        	Target blob.Ref
        }

        func (*Claim) String

        func (c *Claim) String() string

        type ClaimPtrsByDate

        type ClaimPtrsByDate []*Claim

        func (ClaimPtrsByDate) Len

        func (cl ClaimPtrsByDate) Len() int

        func (ClaimPtrsByDate) Less

        func (cl ClaimPtrsByDate) Less(i, j int) bool

        func (ClaimPtrsByDate) Swap

        func (cl ClaimPtrsByDate) Swap(i, j int)

        type ClaimsByDate

        type ClaimsByDate []Claim

        func (ClaimsByDate) Len

        func (cl ClaimsByDate) Len() int

        func (ClaimsByDate) Less

        func (cl ClaimsByDate) Less(i, j int) bool

        func (ClaimsByDate) String

        func (cl ClaimsByDate) String() string

        func (ClaimsByDate) Swap

        func (cl ClaimsByDate) Swap(i, j int)

        type Discovery

        type Discovery struct {
        	BlobRoot     string `json:"blobRoot"`
        	JSONSignRoot string `json:"jsonSignRoot"`
        	HelpRoot     string `json:"helpRoot"`
        	ImporterRoot string `json:"importerRoot"`
        	SearchRoot   string `json:"searchRoot"`
        	StatusRoot   string `json:"statusRoot"`
        
        	OwnerName string `json:"ownerName"` // Name of the owner.
        	UserName  string `json:"userName"`  // Name of the user.
        
        	// StorageGeneration is the UUID for the storage generation.
        	StorageGeneration string `json:"storageGeneration,omitempty"`
        	// StorageGenerationError is the error that occurred on generating the storage, if any.
        	StorageGenerationError string `json:"storageGenerationError,omitempty"`
        	// StorageInitTime is the initialization time of the storage.
        	StorageInitTime types.Time3339 `json:"storageInitTime,omitempty"`
        
        	ThumbVersion string `json:"thumbVersion"` // Thumbnailing version.
        
        	// AuthToken is an auth.OpAll token used by the web UI and the WebSocket.
        	// It is randomly generated the first time discovery is served.
        	AuthToken string `json:"authToken"`
        
        	// SyncHandlers lists discovery information about the available sync handlers.
        	SyncHandlers []SyncHandlerDiscovery `json:"syncHanlders,omitempty"`
        	// Signing contains discovery information for signing.
        	Signing *SignDiscovery `json:"signing,omitempty"`
        	// UIDiscovery contains discovery information for the UI.
        	*UIDiscovery
        }

          Discovery is the JSON response for discovery requests.

          type Edge

          type Edge struct {
          	From      blob.Ref
          	FromType  string // "permanode", "directory", etc
          	FromTitle string // name of source permanode or directory
          	To        blob.Ref
          	BlobRef   blob.Ref // the blob responsible for the edge relationship
          }

          func (*Edge) String

          func (e *Edge) String() string

          type EdgesToOpts

          type EdgesToOpts struct {
          	Max int
          }

          type FileInfo

          type FileInfo struct {
          	// FileName is the base name of the file or directory.
          	FileName string `json:"fileName"`
          
          	// Size is the size of file. It is not set for directories.
          	Size int64 `json:"size"`
          
          	// MIMEType may be set for files, but never for directories.
          	MIMEType string `json:"mimeType,omitempty"`
          
          	// Time is the earliest of any modtime, creation time, or EXIF
          	// original/modification times found. It may be omitted (zero)
          	// if unknown.
          	Time *types.Time3339 `json:"time,omitempty"`
          
          	// ModTime is the latest of any modtime, creation time, or EXIF
          	// original/modification times found. If ModTime doesn't differ
          	// from Time, ModTime is omitted (zero).
          	ModTime *types.Time3339 `json:"modTime,omitempty"`
          
          	// WholeRef is the digest of the entire file contents.
          	// This will be zero for non-regular files, and may also be zero
          	// for files above a certain size threshold.
          	WholeRef blob.Ref `json:"wholeRef,omitempty"`
          }

            FileInfo describes a file or directory.

            func (*FileInfo) IsImage

            func (fi *FileInfo) IsImage() bool

            func (*FileInfo) IsVideo

            func (fi *FileInfo) IsVideo() bool

            type FileSearchResponse

            type FileSearchResponse struct {
            	SearchErrorResponse
            
            	Files []blob.Ref `json:"files"` // Refs of the result files. Never nil.
            }

              FileSearchResponse is the JSON response to a file search request.

              type ImageInfo

              type ImageInfo struct {
              	// Width is the visible width of the image (after any necessary EXIF rotation).
              	Width uint16 `json:"width"`
              	// Height is the visible height of the image (after any necessary EXIF rotation).
              	Height uint16 `json:"height"`
              }

                ImageInfo describes an image file.

                The Width and Height are uint16s to save memory in index/corpus.go, and that's the max size of a JPEG anyway. If we want to deal with larger sizes, we can use MaxUint16 as a sentinel to mean to look elsewhere. Or ditch this optimization.

                type Path

                type Path struct {
                	Claim, Base, Target blob.Ref
                	ClaimDate           time.Time
                	Suffix              string // ??
                }

                func (*Path) String

                func (p *Path) String() string

                type PermanodeByAttrRequest

                type PermanodeByAttrRequest struct {
                	Signer blob.Ref
                
                	// Attribute to search. currently supported: "tag", "title"
                	// If FuzzyMatch is set, this can be blank to search all
                	// attributes.
                	Attribute string
                
                	// The attribute value to find exactly (or roughly, if
                	// FuzzyMatch is set)
                	// If blank, the permanodes with Attribute as an attribute
                	// (set to any value) are searched.
                	Query string
                
                	FuzzyMatch bool // by default, an exact match is required
                	MaxResults int  // optional max results
                }

                type PublishRootDiscovery

                type PublishRootDiscovery struct {
                	Name string `json:"name"`
                	// Prefix lists prefixes belonging to the publishing root.
                	Prefix []string `json:"prefix"`
                	// CurrentPermanode is the permanode associated with the publishing root.
                	CurrentPermanode blob.Ref `json:"currentPermanode"`
                }

                  PublishRootDiscovery contains discovery information for the publish roots.

                  type RecentPermanode

                  type RecentPermanode struct {
                  	Permanode   blob.Ref
                  	Signer      blob.Ref // may be zero (!Valid())
                  	LastModTime time.Time
                  }

                  func (RecentPermanode) Equal

                  type SearchErrorResponse

                  type SearchErrorResponse struct {
                  	Error     string `json:"error,omitempty"`     // The error message.
                  	ErrorType string `json:"errorType,omitempty"` // The type of the error.
                  }

                    SearchErrorResponse is the JSON error response for a search request.

                    type SignDiscovery

                    type SignDiscovery struct {
                    	// PublicKey is the path to the public signing key.
                    	PublicKey string `json:"publicKey,omitempty"`
                    	// PublicKeyBlobRef is the blob.Ref for the public key.
                    	PublicKeyBlobRef blob.Ref `json:"publicKeyBlobRef,omitempty"`
                    	// PublicKeyID is the ID of the public key.
                    	PublicKeyID string `json:"publicKeyId"`
                    	// SignHandler is the URL path prefix to the signing handler.
                    	SignHandler string `json:"signHandler"`
                    	// VerifyHandler it the URL path prefix to the signature verification handler.
                    	VerifyHandler string `json:"verifyHandler"`
                    }

                      SignDiscovery contains discovery information for jsonsign. It is part of the server's JSON response for discovery requests.

                      type StatusError

                      type StatusError struct {
                      	Error string `json:"error"`
                      	URL   string `json:"url,omitempty"` // optional
                      }

                      type SyncHandlerDiscovery

                      type SyncHandlerDiscovery struct {
                      	// From is the source of the sync handler.
                      	From string `json:"from"`
                      	// To is the destination of the sync handler.
                      	To string `json:"to"`
                      	// ToIndex is true if the sync is from a blob storage to an index.
                      	ToIndex bool `json:"toIndex"`
                      }

                        SyncHandlerDiscovery contains discovery information about a sync handler. It is part of the JSON response to discovery requests.

                        type UIDiscovery

                        type UIDiscovery struct {
                        	// UIRoot is the URL prefix path to the UI handler.
                        	UIRoot string `json:"uiRoot"`
                        	// UploadHelper is the path to the upload helper.
                        	UploadHelper string `json:"uploadHelper"`
                        	// DirectoryHelper is the path to the directory helper.
                        	DirectoryHelper string `json:"directoryHelper"`
                        	// DownloaderHelper is the path to the downloader helper.
                        	DownloadHelper string `json:"downloadHelper"`
                        	// PublishRoots lists discovery information for all publishing roots,
                        	// mapped by the respective root name.
                        	PublishRoots map[string]*PublishRootDiscovery `json:"publishRoots"`
                        }

                          UIDiscovery contains discovery information for the user interface. It is part of the JSON response to discovery requests.

                          type VerifyResponse

                          type VerifyResponse struct {
                          	// SignatureValid is true if the signature is valid.
                          	SignatureValid bool `json:"signatureValid"`
                          	// ErrorMessage contains the error that occurred, if any.
                          	ErrorMessage string `json:"errorMessage,omitempty"`
                          	// SignerKeyId is the ID of the signing key.
                          	SignerKeyId string `json:"signerKeyId,omitempty"`
                          	// VerifiedData contains the JSON values from the payload that we signed.
                          	VerifiedData map[string]interface{} `json:"verifiedData,omitempty"`
                          }

                            VerifyResponse is the JSON response for a signature verification request.