 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package common provides a library of tools used by all pydio services
Index ¶
Constants ¶
const ( ServiceNats = "nats" ServiceLog = "log" ServiceConfig = "config" ServiceInstall = "install" ServiceUpdate = "update" ServiceHealthCheck = "healthcheck" ServiceBroker = "broker" ServiceRegistry = "registry" ServiceTagBroker = "broker" ServiceTagData = "data" ServiceTagDatasource = "datasource" ServiceTagDiscovery = "discovery" ServiceTagFrontend = "frontend" ServiceTagGateway = "gateway" ServiceTagIdm = "idm" ServiceTagScheduler = "scheduler" ServiceAcl = "acl" ServiceRole = "role" ServiceUser = "user" ServiceAuth = "auth" ServiceOAuth = "oauth" ServiceToken = "token" ServiceWorkspace = "workspace" ServicePolicy = "policy" ServiceGraph = "graph" ServiceUserMeta = "user-meta" ServiceUserKey = "user-key" ServiceTree = "tree" ServiceMeta = "meta" ServiceEncKey = "data-key" ServiceSearch = "search" ServiceChanges = "changes" ServiceSync = "sync" ServiceTemplates = "templates" ServiceActivity = "activity" ServiceMailer = "mailer" ServiceWebSocket = "websocket" ServiceChat = "chat" ServiceFrontend = "frontend" ServiceFrontStatics = "statics" ServiceTimer = "timer" ServiceJobs = "jobs" ServiceTasks = "tasks" ServiceVersions = "versions" ServiceDocStore = "docstore" ServiceData_ = "data." ServiceDataIndex = ServiceData_ + "index" ServiceDataObjects = ServiceData_ + "objects" ServiceDataSync = ServiceData_ + "sync" ServiceDataIndex_ = ServiceDataIndex + "." ServiceDataObjects_ = ServiceDataObjects + "." ServiceDataSync_ = ServiceDataSync + "." ServiceGrpcNamespace_ = "pydio.grpc." ServiceWebNamespace_ = "pydio.web." ServiceRestNamespace_ = "pydio.rest." ServiceGatewayNamespace_ = "pydio.gateway." ServiceTestNamespace_ = "pydio.test." ServiceStorageNamespace_ = "pydio.storage." ServiceGatewayProxy = ServiceGatewayNamespace_ + "proxy" ServiceGatewayData = ServiceGatewayNamespace_ + "data" ServiceGatewayGrpc = ServiceGatewayNamespace_ + "grpc" ServiceGatewayGrpcClear = ServiceGatewayNamespace_ + "grpc.clear" ServiceGatewayDav = ServiceGatewayNamespace_ + "dav" ServiceGatewayWopi = ServiceGatewayNamespace_ + "wopi" ServiceMicroApi = ServiceGatewayNamespace_ + "rest" )
Defines all constants for services names.
const ( TopicServiceRegistration = "topic.pydio.service.registration" TopicProxyRestarted = "topic.pydio.proxy.restarted" TopicServiceStop = "topic.pydio.service.stop" // @todo This is used in "stop" command but probably out-of-date EventTypeServiceRegistered = "registered" EventTypeServiceUnregistered = "unregistered" EventHeaderServiceRegisterService = "x-service-name" EventHeaderServiceRegisterPeer = "x-service-peer" EventTypeDebugPrintInternals = "debug" TopicReloadAssets = "topic.pydio.assets.reload" TopicIndexChanges = "topic.pydio.index.nodes.changes" TopicTreeChanges = "topic.pydio.tree.nodes.changes" TopicMetaChanges = "topic.pydio.meta.nodes.changes" TopicTimerEvent = "topic.pydio.meta.timer.event" TopicJobConfigEvent = "topic.pydio.jobconfig.event" TopicJobTaskEvent = "topic.pydio.jobconfig.event" TopicIdmEvent = "topic.pydio.idm.event" TopicActivityEvent = "topic.pydio.activity.event" TopicChatEvent = "topic.pydio.chat.event" TopicDatasourceEvent = "topic.pydio.datasource.event" TopicIndexEvent = "topic.pydio.index.event" )
Define constants for Event Bus Topics
const ( MetaNamespaceDatasourceName = "pydio:meta-data-source-name" MetaNamespaceDatasourcePath = "pydio:meta-data-source-path" MetaNamespaceDatasourceInternal = "pydio:meta-data-source-internal" MetaNamespaceNodeTestLocalFolder = "pydio:test:local-folder-storage" MetaNamespaceRecycleRestore = "pydio:recycle_restore" MetaNamespaceNodeName = "name" MetaNamespaceMime = "mime" RecycleBinName = "recycle_bin" PydioThumbstoreNamespace = "pydio-thumbstore" PydioDocstoreBinariesNamespace = "pydio-binaries" PydioVersionsNamespace = "versions-store" )
Define constants for metadata and fixed datasources
const ( PydioContextUserKey = "X-Pydio-User" PydioSystemUsername = "pydio.system.user" PydioS3AnonUsername = "pydio.anon.user" PydioSyncHiddenFile = ".pydio" XAmzMetaClearSize = "X-Amz-Meta-Pydio-Clear-Size" XAmzMetaClearSizeUnkown = "unknown" XAmzMetaNodeUuid = "X-Amz-Meta-Pydio-Node-Uuid" XAmzMetaContentMd5 = "X-Amz-Meta-Content-Md5" XAmzMetaDirective = "X-Amz-Metadata-Directive" XPydioClientUuid = "X-Pydio-Client-Uuid" XPydioSessionUuid = "X-Pydio-Session" XPydioIndexationSessionUuid = "X-Pydio-Indexation-Session" XPydioFrontendSessionUuid = "X-Pydio-Frontend-Session" XPydioMoveUuid = "X-Pydio-Move" XContentType = "Content-Type" SyncSessionClose_ = "close-" SyncSessionPrefixCopy = "copy-" SyncSessionPrefixMove = "move-" PydioProfileAdmin = "admin" PydioProfileStandard = "standard" PydioProfileAnon = "anon" KeyringMasterKey = "keyring.master" MetaFlagReadonly = "node_readonly" MetaFlagLevelReadonly = "level_readonly" MetaFlagEncrypted = "datasource_encrypted" MetaFlagVersioning = "datasource_versioning" MetaFlagIndexed = "datasource_node_indexed" MetaFlagWorkspaceRoot = "ws_root" MetaFlagWorkspaceScope = "ws_scope" MetaFlagWorkspaceSyncable = "ws_syncable" MetaFlagWorkspacePermissions = "ws_permissions" MetaFlagWorkspaceLabel = "ws_label" MetaFlagWorkspaceDescription = "ws_description" MetaFlagWorkspaceSlug = "ws_slug" MetaFlagWorkspaceUuid = "ws_uuid" MetaFlagVirtualRoot = "virtual_root" MetaFlagBucket = "ds_bucket" NodeFlagEtagTemporary = "temporary" )
Additional constants for authentication/authorization aspects
const ( DocStoreIdSelections = "selections" DocStoreIdVirtualNodes = "virtualnodes" DocStoreIdVersioningPolicies = "versioningPolicies" DocStoreIdResetPassKeys = "resetPasswordKeys" )
DocStore constants for StoreID's
const ( KeyMsgId = "MsgId" KeyTs = "Ts" KeyNano = "Nano" KeyLevel = "Level" KeyLogger = "Logger" KeyMsg = "Msg" )
Define string used as keys.
const ( // Login AuditLoginSucceed = "1" AuditLoginFailed = "2" AuditLoginPolicyDenial = "3" AuditInvalidJwt = "4" AuditLockUser = "5" // Tree events AuditNodeCreate = "11" AuditNodeRead = "12" AuditNodeList = "13" AuditNodeUpdate = "14" AuditNodeDelete = "15" AuditWsCreate = "16" AuditWsUpdate = "17" AuditWsDelete = "18" AuditNodeMovedToBin = "19" // S3 Objects AuditObjectGet = "21" AuditObjectPut = "22" // Users, Group, Roles AuditUserCreate = "41" AuditUserRead = "42" AuditUserUpdate = "43" AuditUserDelete = "44" AuditGroupCreate = "46" AuditGroupRead = "47" AuditGroupUpdate = "48" AuditGroupDelete = "49" AuditRoleCreate = "51" AuditRoleRead = "52" AuditRoleUpdate = "53" AuditRoleDelete = "54" // Policies AuditPolicyGroupStore = "61" AuditPolicyGroupDelete = "62" AuditPolicyStore = "63" AuditPolicyDelete = "64" // ShareLinks And Cells AuditCellCreate = "71" AuditCellRead = "72" AuditCellUpdate = "73" AuditCellDelete = "74" AuditLinkCreate = "75" AuditLinkRead = "76" AuditLinkUpdate = "77" AuditLinkDelete = "78" )
Known audit message IDs
const ( KeyContext = "Context" // Follow a given request between the various services KeySpanUuid = "SpanUuid" KeySpanParentUuid = "SpanParentUuid" KeySpanRootUuid = "SpanRootUuid" // Group messages for a given high level operation KeyOperationUuid = "OperationUuid" KeyOperationLabel = "OperationLabel" KeyNode = "Node" KeyNodeUuid = "NodeUuid" KeyNodePath = "NodePath" KeyWorkspace = "Workspace" KeyWorkspaceUuid = "WorkspaceUuid" KeyWorkspaceScope = "WorkspaceScope" KeyChangeLog = "ChangeLog" KeyNodeChangeEvent = "NodeChangeEvent" KeyVersioningPolicy = "VersioningPolicy" KeyActivitySubscription = "ActivitySubscription" KeyActivityStreamRequest = "StreamActivitiesRequest" KeyActivityPostEvent = "PostActivityEvent" KeyActivityObject = "ActivityObject" KeyRole = "Role" KeyRoleUuid = "RoleUuid" KeyRoles = "Roles" KeyProfile = "Profile" KeyUser = "User" KeyUsername = "UserName" KeyUserUuid = "UserUuid" KeyGroupPath = "GroupPath" KeyConnector = "Connector" // Should be ACL and ACLID if we use proto names, changed to stay homogeneous with the other fields KeyAcl = "Acl" KeyAclId = "AclId" // Pydio internal merged representation of all ACLs that a user has access to KeyAccessList = "AccessList" KeyPolicyGroup = "PolicyGroup" KeyPolicyGroupUuid = "PolicyGroupUuid" KeyPolicy = "Policy" KeyPolicyId = "PolicyId" KeyPolicyRequest = "PolicyRequest" // Scheduler KeyJob = "Job" KeyJobId = "JobId" KeyAction = "Action" KeyActionId = "ActionId" KeyTask = "Task" KeyTaskId = "TaskId" // Running tasks in scheduler KeySchedulerJobId = "SchedulerJobUuid" KeySchedulerTaskId = "SchedulerTaskUuid" KeySchedulerActionPath = "SchedulerTaskActionPath" // Cells KeyCell = "Cell" KeyCellUuid = "CellUuid" KeyLink = "ShareLink" KeyLinkUuid = "ShareLinkUuid" // Chat KeyChatRoom = "ChatRoom" KeyChatListRoomReq = "ChatListRoomRequest" KeyChatListMsgReq = "ChatListMsgRequest" KeyChatPostMsgReq = "ChatPostMsgRequest" )
Known audit message IDs
const ( KeyFrontIp = "FrontIp" KeyFrontUserid = "UserId" KeyFrontWksid = "WorkspaceId" KeyFrontSource = "Source" KeyFrontPrefix = "Prefix" KeyFrontMessage = "Message" KeyFrontNodes = "Nodes" )
Keys for the front end
Variables ¶
Main code information. Set by the go linker in the resulting binary when doing 'make main'
Package info. Initialised by main.
var ( UpdateDefaultChannel = "stable" UpdateDefaultServerUrl = "https://updatecells.pydio.com/" UpdateDefaultPublicKey = `` /* 424-byte string literal not displayed */ )
Update Server default values.
var ( LogConfig LogConfigType LogLevel zapcore.Level LogCaptureStdOut bool )
Logging Levels.
var ( LogEventLabels = map[string]string{ AuditLoginSucceed: "Login succeed", AuditLoginFailed: "Login failed", AuditNodeCreate: "Create Node", AuditNodeRead: "Read Node", AuditNodeList: "List Node", AuditNodeUpdate: "Upadate Node", AuditNodeDelete: "Delete Node", AuditObjectGet: "Get Object", AuditObjectPut: "Put Object", } )
var ( // PydioUserProfiles order reflects the level of authorizations PydioUserProfiles = []string{ PydioProfileAnon, PydioProfileShared, PydioProfileStandard, PydioProfileAdmin, } )
var ( XSpecialPydioHeaders = []string{ XPydioClientUuid, XPydioSessionUuid, XPydioIndexationSessionUuid, XPydioFrontendSessionUuid, XPydioMoveUuid, } )
Functions ¶
func Version ¶
func Version() *hashiversion.Version
Version returns the current code version as an object.
Types ¶
type LogConfigType ¶
type LogConfigType string
Various custom types internally used by Pydio.
const ( LogConfigConsole LogConfigType = "console" LogConfigProduction LogConfigType = "production" )
Define constants for Loggging configuration
       Source Files
      ¶
      Source Files
      ¶
    
- common.go
- interfaces.go
- naming.go
- zapfields.go
       Directories
      ¶
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| Package auth provides tools related to authentication of pydio services | Package auth provides tools related to authentication of pydio services | 
| 
          
            claim
            
            
          
           Package claim wraps the JWT claims with util functions | Package claim wraps the JWT claims with util functions | 
| Package BoltDB provides tools for using Bolt as a standard persistence layer for services | Package BoltDB provides tools for using Bolt as a standard persistence layer for services | 
| Package config provides tools for managing configurations | Package config provides tools for managing configurations | 
| 
          
            micro/envvar
            
            
          
           Package envvar implements Pydio specific interface for dynamic configurations that are backed by OS environment variables. | Package envvar implements Pydio specific interface for dynamic configurations that are backed by OS environment variables. | 
| 
          
            micro/remote
            
            
          
           Package source implements a configuration client backed by a config server | Package source implements a configuration client backed by a config server | 
| Package crypto provides tools for data encryption and certificates management | Package crypto provides tools for data encryption and certificates management | 
| Package dao provides abstraction of persistence layer used by pydio services. | Package dao provides abstraction of persistence layer used by pydio services. | 
| Package event wraps protobuf events to add context information | Package event wraps protobuf events to add context information | 
| Package forms provides utility methods to generate XML that is interpreted by the Front End to build forms. | Package forms provides utility methods to generate XML that is interpreted by the Front End to build forms. | 
| * Copyright (c) 2018-2021. | * Copyright (c) 2018-2021. | 
| Package defaults initializes the defaults GRPC clients and servers used by services | Package defaults initializes the defaults GRPC clients and servers used by services | 
| 
          
            broker/stan
            
            
          
           Package stan provides a NATS Streaming broker | Package stan provides a NATS Streaming broker | 
| 
          
            client/grpc
            
            
          
           Package grpc provides a gRPC client | Package grpc provides a gRPC client | 
| 
          
            router
            
            
          
           Package router provides api service routing | Package router provides api service routing | 
| 
          
            selector/cache
            
            
          
           Package cache is a caching selector. | Package cache is a caching selector. | 
| 
          
            server/grpc
            
            
          
           Package grpc provides a grpc server | Package grpc provides a grpc server | 
| 
          
            server/http
            
            
          
           Package http implements a go-micro.Server | Package http implements a go-micro.Server | 
| Package mocks should provide utils used by tests to mock various layers. | Package mocks should provide utils used by tests to mock various layers. | 
| ## Protobuf Definitions | ## Protobuf Definitions | 
| 
          
            activity
            
            
          
           Package activity is a generated protocol buffer package. | Package activity is a generated protocol buffer package. | 
| 
          
            auth
            
            
          
           Package auth is a generated protocol buffer package. | Package auth is a generated protocol buffer package. | 
| 
          
            broker
            
            
          
           Package broker is a generated protocol buffer package. | Package broker is a generated protocol buffer package. | 
| 
          
            chat
            
            
          
           Package chat is a generated protocol buffer package. | Package chat is a generated protocol buffer package. | 
| 
          
            ctl
            
            
          
           Package ctl is a generated protocol buffer package. | Package ctl is a generated protocol buffer package. | 
| 
          
            docstore
            
            
          
           Package docstore is a generated protocol buffer package. | Package docstore is a generated protocol buffer package. | 
| 
          
            encryption
            
            
          
           Package encryption is a generated protocol buffer package. | Package encryption is a generated protocol buffer package. | 
| 
          
            front
            
            
          
           Package front is a generated protocol buffer package. | Package front is a generated protocol buffer package. | 
| 
          
            idm
            
            
          
           Package idm is a generated protocol buffer package. | Package idm is a generated protocol buffer package. | 
| 
          
            install
            
            
          
           Package install is a generated protocol buffer package. | Package install is a generated protocol buffer package. | 
| 
          
            jobs
            
            
          
           Package jobs is a generated protocol buffer package. | Package jobs is a generated protocol buffer package. | 
| 
          
            log
            
            
          
           Package log is a generated protocol buffer package. | Package log is a generated protocol buffer package. | 
| 
          
            mailer
            
            
          
           Package mailer is a generated protocol buffer package. | Package mailer is a generated protocol buffer package. | 
| 
          
            object
            
            
          
           Package object is a generated protocol buffer package. | Package object is a generated protocol buffer package. | 
| 
          
            registry
            
            
          
           Package go_micro_registry is a generated protocol buffer package. | Package go_micro_registry is a generated protocol buffer package. | 
| 
          
            rest
            
            
          
           Package rest is a generated protocol buffer package. | Package rest is a generated protocol buffer package. | 
| 
          
            rest/cmd
            
            command
          
           Package cmd provides a specific tool for transforming json swagger file into a go file | Package cmd provides a specific tool for transforming json swagger file into a go file | 
| 
          
            storage
            
            
          
           Package storage is a generated protocol buffer package. | Package storage is a generated protocol buffer package. | 
| 
          
            sync
            
            
          
           Package sync is a generated protocol buffer package. | Package sync is a generated protocol buffer package. | 
| 
          
            test
            
            
          
           Package test is a generated protocol buffer package. | Package test is a generated protocol buffer package. | 
| 
          
            tree
            
            
          
           Package tree is a generated protocol buffer package. | Package tree is a generated protocol buffer package. | 
| 
          
            update
            
            
          
           Package update is a generated protocol buffer package. | Package update is a generated protocol buffer package. | 
| Package registry provides the main glue between services | Package registry provides the main glue between services | 
| Package service acts as a factory for all Pydio services. | Package service acts as a factory for all Pydio services. | 
| 
          
            context
            
            
          
           Package servicecontext performs context values read/write, generally through server or client wrappers | Package servicecontext performs context values read/write, generally through server or client wrappers | 
| 
          
            frontend
            
            
          
           Package frontend provides tools to publish static data from within any micro service | Package frontend provides tools to publish static data from within any micro service | 
| 
          
            proto
            
            
          
           Package service is a generated protocol buffer package. | Package service is a generated protocol buffer package. | 
| 
          
            resources
            
            
          
           Package resources provides extendable service Handler for managing resource-policy based data. | Package resources provides extendable service Handler for managing resource-policy based data. | 
| Package sql provides tools and DAOs for speaking SQL as well as managing tables migrations | Package sql provides tools and DAOs for speaking SQL as well as managing tables migrations | 
| 
          
            index
            
            
          
           Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern | Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern | 
| 
          
            resources
            
            
          
           Package resources provides ready-to-use SQL schemes and DAOs for attaching resource policies to any data | Package resources provides ready-to-use SQL schemes and DAOs for attaching resource policies to any data | 
| sync
       | |
| 
          
            endpoints/cells
            
            
          
           Package cells provides endpoints for speaking either with a local server using a views.Router (and connecting to the local NATS registry), or a remote Cells server using a GRPC gateway client. | Package cells provides endpoints for speaking either with a local server using a views.Router (and connecting to the local NATS registry), or a remote Cells server using a GRPC gateway client. | 
| 
          
            endpoints/filesystem
            
            
          
           Package file system provides endpoints for reading/writing from/to a local folder | Package file system provides endpoints for reading/writing from/to a local folder | 
| 
          
            endpoints/index
            
            
          
           Package index provides a GRPC client for storing information into any tree.NodeProviderClient/tree.NodeReceiverClient service. | Package index provides a GRPC client for storing information into any tree.NodeProviderClient/tree.NodeReceiverClient service. | 
| 
          
            endpoints/memory
            
            
          
           Package memory provides an in-memory basic implementation of an Endpoint, with nodes stored in a map. | Package memory provides an in-memory basic implementation of an Endpoint, with nodes stored in a map. | 
| 
          
            endpoints/s3
            
            
          
           Package s3 provides an endpoint for connecting to Amazon S3 or an S3-compatible storage | Package s3 provides an endpoint for connecting to Amazon S3 or an S3-compatible storage | 
| 
          
            endpoints/snapshot
            
            
          
           Package snapshot provides fast in-memory or on-file implementations of endpoint for storing snapshots | Package snapshot provides fast in-memory or on-file implementations of endpoint for storing snapshots | 
| 
          
            filters
            
            
          
           Package filters provides batchers and filters to analyze and simplify sync events | Package filters provides batchers and filters to analyze and simplify sync events | 
| 
          
            merger
            
            
          
           Package merger implements all logic to compare trees and create set of operations to be applied | Package merger implements all logic to compare trees and create set of operations to be applied | 
| 
          
            model
            
            
          
           Package model gathers the main structs and interfaces used in sync library. | Package model gathers the main structs and interfaces used in sync library. | 
| 
          
            proc
            
            
          
           Package proc provides actual actions to be performed once the sync has filtered all events | Package proc provides actual actions to be performed once the sync has filtered all events | 
| 
          
            task
            
            
          
           Package task defines a synchronization task | Package task defines a synchronization task | 
| Package utils provides swiss-knife tools for all services | Package utils provides swiss-knife tools for all services | 
| 
          
            cache
            
            
          
           Package cache provides ready-to-use in-memory cache mechanisms | Package cache provides ready-to-use in-memory cache mechanisms | 
| 
          
            context
            
            
          
           Package context manipulates context metadata | Package context manipulates context metadata | 
| 
          
            error
            
            
          
           Package error creates and parses common errors | Package error creates and parses common errors | 
| 
          
            i18n
            
            
          
           Package i18n wraps go-i18n lib for manipulating bundles | Package i18n wraps go-i18n lib for manipulating bundles | 
| 
          
            meta
            
            
          
           Package meta provides tool for reading metadata from services declaring "MetaProvider" support | Package meta provides tool for reading metadata from services declaring "MetaProvider" support | 
| 
          
            mtree
            
            
          
           Package mtree provides advanced tools for encoding tree paths in a material format | Package mtree provides advanced tools for encoding tree paths in a material format | 
| 
          
            net
            
            
          
           Package net provides tools for reading IPs, available Ports, extending HTTP requests, etc. | Package net provides tools for reading IPs, available Ports, extending HTTP requests, etc. | 
| 
          
            permissions
            
            
          
           Package permissions provides high-level tools for computing permissions from ACLs | Package permissions provides high-level tools for computing permissions from ACLs | 
| 
          
            schedule
            
            
          
           Package schedule provides a fixed ticker based on a start time iso8601 interval periods are supported | Package schedule provides a fixed ticker based on a start time iso8601 interval periods are supported | 
| 
          
            std
            
            
          
           Package std provides tools for standard types (strings, int, floats, etc). | Package std provides tools for standard types (strings, int, floats, etc). | 
| Package views provides high-level clients for talking to the main data tree in certain context. | Package views provides high-level clients for talking to the main data tree in certain context. |