common

package
v2.3.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2021 License: AGPL-3.0 Imports: 3 Imported by: 0

Documentation

Overview

Package common provides a library of tools used by all pydio services

Index

Constants

View Source
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"
	ServiceShare     = "share"
	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.

View Source
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

View Source
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

View Source
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"
	PydioProfileShared   = "shared"
	PydioProfileAnon     = "anon"

	KeyringMasterKey             = "keyring.master"
	MetaFlagReadonly             = "node_readonly"
	MetaFlagLevelReadonly        = "level_readonly"
	MetaFlagEncrypted            = "datasource_encrypted"
	MetaFlagVersioning           = "datasource_versioning"
	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

View Source
const (
	DocStoreIdSelections         = "selections"
	DocStoreIdVirtualNodes       = "virtualnodes"
	DocStoreIdVersioningPolicies = "versioningPolicies"
	DocStoreIdShares             = "share"
	DocStoreIdResetPassKeys      = "resetPasswordKeys"
)

DocStore constants for StoreID's

View Source
const (
	KeyMsgId  = "MsgId"
	KeyTs     = "Ts"
	KeyNano   = "Nano"
	KeyLevel  = "Level"
	KeyLogger = "Logger"
	KeyMsg    = "Msg"
)

Define string used as keys.

View Source
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

View Source
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

View Source
const (
	KeyFrontIp      = "FrontIp"
	KeyFrontUserid  = "UserId"
	KeyFrontWksid   = "WorkspaceId"
	KeyFrontSource  = "Source"
	KeyFrontPrefix  = "Prefix"
	KeyFrontMessage = "Message"
	KeyFrontNodes   = "Nodes"
)

Keys for the front end

Variables

View Source
var (
	BuildStamp    string
	BuildRevision string
)

Main code information. Set by the go linker in the resulting binary when doing 'make main'

View Source
var (
	PackageType  string
	PackageLabel string
)

Package info. Initialised by main.

View Source
var (
	UpdateDefaultChannel   = "stable"
	UpdateDefaultServerUrl = "https://updatecells.pydio.com/"
	UpdateDefaultPublicKey = `` /* 424-byte string literal not displayed */
)

Update Server default values.

View Source
var (
	LogConfig        LogConfigType
	LogLevel         zapcore.Level
	LogCaptureStdOut bool
)

Logging Levels.

View Source
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",
	}
)
View Source
var (
	// PydioUserProfiles order reflects the level of authorizations
	PydioUserProfiles = []string{
		PydioProfileAnon,
		PydioProfileShared,
		PydioProfileStandard,
		PydioProfileAdmin,
	}
)

Functions

func Version

func Version() *hashiversion.Version

Version returns the current code version as an object.

Types

type Converter

type Converter interface {
	Convert(*any.Any) (string, bool)
}

Converter interface

type LogConfigType

type LogConfigType string

Various custom types internally used by Pydio.

const (
	LogConfigConsole    LogConfigType = "console"
	LogConfigProduction LogConfigType = "production"
)

Define constants for Loggging configuration

type Manager

type Manager interface {
	Get(string) interface{}
	Set(string, interface{}) error
	Del(string) error
	Map(string) map[string]interface{}
}

Manager interface

type Scanner

type Scanner interface {
	Scan(val interface{}) error
}

type ServiceName

type ServiceName string

Various custom types internally used by Pydio.

type ServiceTag

type ServiceTag string

Various custom types internally used by Pydio.

type ServiceType

type ServiceType string

Various custom types internally used by Pydio.

type XMLSerializableForm added in v1.2.2

type XMLSerializableForm interface {
	Serialize(languages ...string) interface{}
}

Directories

Path Synopsis
Package auth provides tools related to authentication of pydio services
Package auth provides tools related to authentication of pydio services
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
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.
etl
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
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 This folder contains all Protobufs used by services to communicate
## Protobuf Definitions This folder contains all Protobufs used by services to communicate
Package registry provides the main glue between services It wraps micro registry (running services declared to the discovery server) into a more generic registry where all actual plugins are self-declared.
Package registry provides the main glue between services It wraps micro registry (running services declared to the discovery server) into a more generic registry where all actual plugins are self-declared.
Package service acts as a factory for all Pydio services.
Package service acts as a factory for all Pydio services.
sql
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
sync
Package utils provides swiss-knife tools for all services
Package utils provides swiss-knife tools for all services
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.

Jump to

Keyboard shortcuts

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