cells

command module
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2018 License: AGPL-3.0 Imports: 68 Imported by: 0

README

Homepage | Wiki | GitHub-Repository | Issue-Tracker

License Badge GoDoc Build Status Go Report Card

Pydio Cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See "Deployment" for notes on how to deploy the project on a live system.

Prerequisites

The following elements are required to compile and run pydio on your machine

  • Go language v1.10 or higher (with a correctly configured Go toolchain),
  • MySQL database 5.6 or higher (or MariaDB equivalent),
  • [Frontend] For running the PHP frontend, PHP-FPM is required as well (see pydio/cells-front repository).

Note: We have developped and tested Pydio Cells on MacOS, Ubuntu, Debian and CentOS. Windows version might still have unknown glitches and is not yet supported.

Installing

Assuming that your system meets the above prerequisites, building the Pydio Cells backend from the source code is quite straight forward:

# Retrieve the code
go get -u github.com/pydio/cells
# From this line on, we assume you are in Pydio Cells' code roots directory
cd $GOPATH/src/github.com/pydio/cells
# Build your binary
make dev

Note: we had to fork a few libraries before integrating them as dependencies. If you need to modify this part of the code, you should first retrieve a local version by executing:

./deps.sh

To have the environment running, you must also:

  • Create a database in your chosen DB server,
  • Run the Pydio Cells installer that will guide you through the necessary steps: you might refer to the wiki for additional information.
./cells install

Running the tests

To run the tests, simply do

go test -v ./...

Please read the CONTRIBUTING.md document if you wish to add more tests or contribute to the code.

Deployment

Binaries are currently provided for Linux and MacOSX distributions. To deploy them on a live system, please see the Installation Guide instructions.

Built With

Pydio Cells uses many open source golang libraries. Most important ones are listed below, please see DEPENDENCIES for an exhaustive list of other libs and their licenses.

  • Micro - Micro-service framework
  • Minio - Objects server implementing s3 protocol

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See the list of contributors who participated in this project. Pydio Cells is also a continuation of the Pydio project and many contributions were ported from pydio-core to the cells-front code.

License

This project is licensed under the AGPLv3 License - see the LICENSE file for details

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package assets is based on Packr to embed static data inside the binary.
Package assets is based on Packr to embed static data inside the binary.
## Events-related services.
## Events-related services.
activity
Package activity stores and distributes events to users in a social-feed manner.
Package activity stores and distributes events to users in a social-feed manner.
activity/actions
Package actions provides a scheduler action for generating mail digests
Package actions provides a scheduler action for generating mail digests
activity/grpc
Package grpc is the persistence service for all activities.
Package grpc is the persistence service for all activities.
activity/lang
Package lang provides i18n strings related to activities
Package lang provides i18n strings related to activities
activity/render
Package render provides helper for rendering activies into various formats (currently markdown).
Package render provides helper for rendering activies into various formats (currently markdown).
activity/rest
Package rest exposes a Rest service for querying activities feed
Package rest exposes a Rest service for querying activities feed
chat
Package chat provides real-time chats linked to any topics for end users.
Package chat provides real-time chats linked to any topics for end users.
chat/grpc
Package grpc provides a Pydio GRPC service for managing chat rooms.
Package grpc provides a Pydio GRPC service for managing chat rooms.
log
Package log provides a persistence layer for json-formatted logs generated by the application.
Package log provides a persistence layer for json-formatted logs generated by the application.
log/grpc
Package grpc provides a Pydio GRPC service for querying the logs
Package grpc provides a Pydio GRPC service for querying the logs
log/rest
Package rest exposes a simple REST API for communicating with the GRPC package.
Package rest exposes a simple REST API for communicating with the GRPC package.
mailer
Package mailer acts a central mail server for the application.
Package mailer acts a central mail server for the application.
mailer/grpc
Package grpc provides the actual logic for posting emails to queue or to mail servers
Package grpc provides the actual logic for posting emails to queue or to mail servers
mailer/lang
Package lang provides i18n strings for mailer-related data.
Package lang provides i18n strings for mailer-related data.
mailer/rest
Package rest exposes a simple API for posting emails
Package rest exposes a simple API for posting emails
mailer/templates
Package templates defines ready-to-use templates to send email in a nice formatting.
Package templates defines ready-to-use templates to send email in a nice formatting.
cmd
Package cmd implements commands for running pydio services
Package cmd implements commands for running pydio services
benchmark
Package benchmark is the main package for performing benchmarking requests
Package benchmark is the main package for performing benchmarking requests
benchmark/cmd
Package cmd implements commands for the benchmark command line tool
Package cmd implements commands for the benchmark command line tool
benchmark/cmd/testsgo
Package tests is a first draft for benchmarking.
Package tests is a first draft for benchmarking.
benchmark/cmd/testsgo/dummysetup
Package dummysetup provides utilitary methods to set up a dummy environment for benchmarks.
Package dummysetup provides utilitary methods to set up a dummy environment for benchmarks.
benchmark/cmd/testsgo/idmtest
Package idmtest performs benchmarks on Roles
Package idmtest performs benchmarks on Roles
ctl
Package cli is the pydio control client for performing grpc requests on running services
Package cli is the pydio control client for performing grpc requests on running services
ctl/cmd
Package cmd implements all commands for pydio control client
Package cmd implements all commands for pydio control client
Package common provides a library of tools used by all pydio services
Package common provides a library of tools used by all pydio services
auth
Package auth provides tools related to authentication of pydio services
Package auth provides tools related to authentication of pydio services
auth/claim
Package claim wraps the JWT claims with util functions
Package claim wraps the JWT claims with util functions
auth/dex
Package dex provides specific connectors for the CoreOS/Dex implementation of OpenID Connect protocol
Package dex provides specific connectors for the CoreOS/Dex implementation of OpenID Connect protocol
boltdb
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
config
Package configs provides tools for managing configurations
Package configs provides tools for managing configurations
config/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.
config/remote
Package source implements a configuration client backed by a config server
Package source implements a configuration client backed by a config server
crypto
Package crypto provides tools for data encryption and certificates management
Package crypto provides tools for data encryption and certificates management
dao
Package dao provides abstraction of persistence layer used by pydio services.
Package dao provides abstraction of persistence layer used by pydio services.
event
Package event wraps protobuf events to add context information
Package event wraps protobuf events to add context information
forms
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.
log
Package log define and configure the Pydio loggers based on zap.
Package log define and configure the Pydio loggers based on zap.
mocks
Package mocks should provide utils used by tests to mock various layers.
Package mocks should provide utils used by tests to mock various layers.
proto
## Protobuf Definitions This folder contains all Protobufs used by services to communicate
## Protobuf Definitions This folder contains all Protobufs used by services to communicate
proto/activity
Package activity is a generated protocol buffer package.
Package activity is a generated protocol buffer package.
proto/auth
Package auth is a generated protocol buffer package.
Package auth is a generated protocol buffer package.
proto/cert
Package cert is a generated protocol buffer package.
Package cert is a generated protocol buffer package.
proto/chat
Package chat is a generated protocol buffer package.
Package chat is a generated protocol buffer package.
proto/ctl
Package ctl is a generated protocol buffer package.
Package ctl is a generated protocol buffer package.
proto/docstore
Package docstore is a generated protocol buffer package.
Package docstore is a generated protocol buffer package.
proto/encryption
Package encryption is a generated protocol buffer package.
Package encryption is a generated protocol buffer package.
proto/idm
Package idm is a generated protocol buffer package.
Package idm is a generated protocol buffer package.
proto/install
Package install is a generated protocol buffer package.
Package install is a generated protocol buffer package.
proto/jobs
Package jobs is a generated protocol buffer package.
Package jobs is a generated protocol buffer package.
proto/log
Package log is a generated protocol buffer package.
Package log is a generated protocol buffer package.
proto/mailer
Package mailer is a generated protocol buffer package.
Package mailer is a generated protocol buffer package.
proto/object
Package object is a generated protocol buffer package.
Package object is a generated protocol buffer package.
proto/rest
Package rest is a generated protocol buffer package.
Package rest is a generated protocol buffer package.
proto/rest/cmd
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
proto/sync
Package sync is a generated protocol buffer package.
Package sync is a generated protocol buffer package.
proto/tree
Package tree is a generated protocol buffer package.
Package tree is a generated protocol buffer package.
proto/update
Package update is a generated protocol buffer package.
Package update is a generated protocol buffer package.
registry
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.
service
Package service acts as a factory for all Pydio services.
Package service acts as a factory for all Pydio services.
service/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
service/defaults
Package defaults initializes the defaults GRPC clients and servers used by services
Package defaults initializes the defaults GRPC clients and servers used by services
service/frontend
Package frontend provides tools to publish static data from within any micro service It implements a simple Union HttpFS to be exposed by a standard net.HttpFileServer interface.
Package frontend provides tools to publish static data from within any micro service It implements a simple Union HttpFS to be exposed by a standard net.HttpFileServer interface.
service/proto
Package service is a generated protocol buffer package.
Package service is a generated protocol buffer package.
service/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.
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
sql/index
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern * Copyright (c) 2018.
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern * Copyright (c) 2018.
sql/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
utils
Package utils provides swiss-knife tools for all services
Package utils provides swiss-knife tools for all services
views
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.
## Data Management services.
## Data Management services.
changes
Package changes implements backward-compatible Change api as defined in older version of Pydio
Package changes implements backward-compatible Change api as defined in older version of Pydio
docstore
Docstore provides an indexed JSON document store.
Docstore provides an indexed JSON document store.
docstore/grpc
Package grpc exposes the document store api in GRPC
Package grpc exposes the document store api in GRPC
docstore/rest
Package rest exposes a REST API to CRUD and query the document store.
Package rest exposes a REST API to CRUD and query the document store.
key
Package key implements a keystore for managing encryption keys attached to files.
Package key implements a keystore for managing encryption keys attached to files.
key/grpc
Package grpc provides a pydio GRPC service for managing files encryption keys
Package grpc provides a pydio GRPC service for managing files encryption keys
meta
Package meta provides storage for files and folders metadata.
Package meta provides storage for files and folders metadata.
meta/grpc
Package meta provides a GRPC access to the underlying persistence layer for files metadata
Package meta provides a GRPC access to the underlying persistence layer for files metadata
meta/rest
Package rest provides a REST API for querying the tree metadata.
Package rest provides a REST API for querying the tree metadata.
search
Package search implements a search engine for indexing nodes
Package search implements a search engine for indexing nodes
search/dao
Package dao abstract the indexation engine and provides a bleve-based implementation.
Package dao abstract the indexation engine and provides a bleve-based implementation.
search/dao/bleve
Package bleve implements the search engine using a Bleve indexer.
Package bleve implements the search engine using a Bleve indexer.
search/dao/stub
Package stub is a helper for testing indexation
Package stub is a helper for testing indexation
search/grpc
Package grpc provides the Pydio grpc service for querying indexer.
Package grpc provides the Pydio grpc service for querying indexer.
search/rest
Package rest provides a REST service for querying the search engine
Package rest provides a REST service for querying the search engine
source
Folder source contains the three services composing a datasource : objects, index and sync
Folder source contains the three services composing a datasource : objects, index and sync
source/index
Package index provides indexation for datasources * Copyright (c) 2018.
Package index provides indexation for datasources * Copyright (c) 2018.
source/index/grpc
Package grpc provides a pydio GRPC service for CRUD-ing the datasource index.
Package grpc provides a pydio GRPC service for CRUD-ing the datasource index.
source/index/sessions
Package sessions is used during indexation to start/stop a session an speed-up the process
Package sessions is used during indexation to start/stop a session an speed-up the process
source/objects
Package objects is in charge of exposing the content of the datasource with the S3 protocol.
Package objects is in charge of exposing the content of the datasource with the S3 protocol.
source/objects/grpc
Package grpc wraps a Minio server for exposing the content of the datasource with the S3 protocol.
Package grpc wraps a Minio server for exposing the content of the datasource with the S3 protocol.
source/sync
Package sync ties the "objects" and "index" together
Package sync ties the "objects" and "index" together
source/sync/grpc
Package grpc is a pydio service running synchronization between objects and index.
Package grpc is a pydio service running synchronization between objects and index.
source/sync/lib/cmd
Package main provides a command line version of sync
Package main provides a command line version of sync
source/sync/lib/common
Package common defines vars and constants for the sync package
Package common defines vars and constants for the sync package
source/sync/lib/endpoints
Package endpoints provides implementations of various synchronization endpoints Currently supported are FS, S3 and in-memory DB
Package endpoints provides implementations of various synchronization endpoints Currently supported are FS, S3 and in-memory DB
source/sync/lib/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
source/sync/lib/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
source/sync/lib/task
Package task defines a synchronization task
Package task defines a synchronization task
tree
Tree service dynamically aggregates the datasources nodes streams
Tree service dynamically aggregates the datasources nodes streams
tree/grpc
Package grpc provides a GRPC service for aggregating all indexes from all datasources
Package grpc provides a GRPC service for aggregating all indexes from all datasources
tree/rest
Package rest exposes a simple API used by admins to query the whole tree directly without going through routers.
Package rest exposes a simple API used by admins to query the whole tree directly without going through routers.
versions
Package versions provides a versioning mechanism for files modifications
Package versions provides a versioning mechanism for files modifications
versions/grpc
Package grpc is in charge of storing versions metadata
Package grpc is in charge of storing versions metadata
versions/lang
Package lang provides i18n strings for versions service
Package lang provides i18n strings for versions service
## Core services.
## Core services.
config
Package config provides both a db-based configs server and the REST api to manage configs
Package config provides both a db-based configs server and the REST api to manage configs
config/lang
Package lang provides config-related i18n strings
Package lang provides config-related i18n strings
config/rest
Package rest implements the REST api for managing configurations
Package rest implements the REST api for managing configurations
consul
Package consul embeds a Consul.io service for services discovery
Package consul embeds a Consul.io service for services discovery
install/lib
Package lib is in charge of installing cells.
Package lib is in charge of installing cells.
install/rest
Package rest is used once at install-time when running install via browser
Package rest is used once at install-time when running install via browser
nats
Package nats provides access to a service registry based on Nats.io.
Package nats provides access to a service registry based on Nats.io.
update
Package update provides connection to a remote update server for upgrading cells binary
Package update provides connection to a remote update server for upgrading cells binary
update/grpc
Package grpc is in charge of detecting updates and applying them
Package grpc is in charge of detecting updates and applying them
update/lang
Package lang provides update-related i18n strings
Package lang provides update-related i18n strings
update/rest
Package rest provides a REST gateway to the update service
Package rest provides a REST gateway to the update service
## Frontend-related services.
## Frontend-related services.
front-srv/rest
Package rest is a service for serving specific requests directly to frontend
Package rest is a service for serving specific requests directly to frontend
front-srv/web
Package web is a service for providing additional plugins to PHP frontend
Package web is a service for providing additional plugins to PHP frontend
## Identity Management services.
## Identity Management services.
data
Package gateway spins an S3 gateway for serving files using the Amazon S3 protocol.
Package gateway spins an S3 gateway for serving files using the Amazon S3 protocol.
dav
Package dav provides a REST gateway to communicate with pydio backend via the webdav protocol.
Package dav provides a REST gateway to communicate with pydio backend via the webdav protocol.
micro
Package micro starts a micro web service in API mode to dispatch all REST calls to the underlying services
Package micro starts a micro web service in API mode to dispatch all REST calls to the underlying services
proxy
Package proxy loads a Caddy service to provide a unique access to all services and serve the PHP frontend
Package proxy loads a Caddy service to provide a unique access to all services and serve the PHP frontend
websocket
Package websocket starts a WebSocket service forwarding internal events to http clients
Package websocket starts a WebSocket service forwarding internal events to http clients
websocket/api
Package api starts the actual WebSocket service
Package api starts the actual WebSocket service
wopi
Package wopi implements communication with the backend via the WOPI API.
Package wopi implements communication with the backend via the WOPI API.
idm
## Frontend-related services.
## Frontend-related services.
acl
Package acl provides persistence and access to Access Control List
Package acl provides persistence and access to Access Control List
acl/grpc
Package grpc provides a service for storing and CRUD-ing ACLs
Package grpc provides a service for storing and CRUD-ing ACLs
acl/rest
Package rest is a REST gateway to the grpc ACL service
Package rest is a REST gateway to the grpc ACL service
auth
Package auth provides all authentication related features
Package auth provides all authentication related features
auth/grpc
Package grpc spins an OpenID Connect Server using the coreos/dex implementation
Package grpc spins an OpenID Connect Server using the coreos/dex implementation
auth/lang
Package lang provides auth-related i18n strings
Package lang provides auth-related i18n strings
auth/rest
Package rest provides access to the TokenServiceApi
Package rest provides access to the TokenServiceApi
graph/rest
Package rest exposes a REST API to aggregate data from various services.
Package rest exposes a REST API to aggregate data from various services.
key
Package key provides a persistence layer for user key.
Package key provides a persistence layer for user key.
key/grpc
Package grpc is a simple encryption key persistence layer
Package grpc is a simple encryption key persistence layer
meta
Package meta add persistence layer for meta data defined by the end users to enrich the nodes.
Package meta add persistence layer for meta data defined by the end users to enrich the nodes.
meta/grpc
Package grpc provides persistence layer for user-defined metadata
Package grpc provides persistence layer for user-defined metadata
meta/namespace
Package namespace provides operations for managing user-metadata namespaces
Package namespace provides operations for managing user-metadata namespaces
meta/rest
Package provides a gateway to the underlying grpc service
Package provides a gateway to the underlying grpc service
policy
Package policy provides advanced policy features to fine tune end-user permissions.
Package policy provides advanced policy features to fine tune end-user permissions.
policy/conditions
Package conditions provides implementation of basic condition rules to enable building elaborated policies.
Package conditions provides implementation of basic condition rules to enable building elaborated policies.
policy/grpc
Package grpc is the policy engine service
Package grpc is the policy engine service
policy/lang
Package lang provides policy-related i18n strings
Package lang provides policy-related i18n strings
policy/rest
Package rest is a gateway to the underlying grpc service
Package rest is a gateway to the underlying grpc service
role
Package role is in charge of managing user roles
Package role is in charge of managing user roles
role/grpc
Package grpc provides persistence layer for CRUD-ing roles
Package grpc provides persistence layer for CRUD-ing roles
role/rest
Package rest provides a gateway to the underlying grpc server
Package rest provides a gateway to the underlying grpc server
share/grpc
Package grpc exposes a meta provider for share information.
Package grpc exposes a meta provider for share information.
share/rest
Package rest exposes a REST API to manage shared rooms.
Package rest exposes a REST API to manage shared rooms.
user
Package user implements basic user and group persistence layer.
Package user implements basic user and group persistence layer.
user/grpc
Package grpc provides the gRPC service to communicate with the Pydio's user persistence layer.
Package grpc provides the gRPC service to communicate with the Pydio's user persistence layer.
user/rest
Package rest provides a gateway to the underlying grpc service
Package rest provides a gateway to the underlying grpc service
workspace
Package workspace implements workspace persistence layer.
Package workspace implements workspace persistence layer.
workspace/grpc
Package grpc provides the persistence for workspaces
Package grpc provides the persistence for workspaces
workspace/rest
Package rest provides a gateway to the underlying grpc service
Package rest provides a gateway to the underlying grpc service
## Scheduler services.
## Scheduler services.
actions
Package actions provides interfaces to manage tasks and provides default implementation for common actions.
Package actions provides interfaces to manage tasks and provides default implementation for common actions.
actions/archive
Package archive provides implementation of actions to work with archive files.
Package archive provides implementation of actions to work with archive files.
actions/changes
Package archive provides implementation of actions to work with archive files.
Package archive provides implementation of actions to work with archive files.
actions/cmd
Package cmd provides default implementation for command-line-like actions.
Package cmd provides default implementation for command-line-like actions.
actions/images
Package images provides default implementation of image related tasks.
Package images provides default implementation of image related tasks.
actions/scheduler
Package scheduler provides default implementation for basic scheduler tasks.
Package scheduler provides default implementation for basic scheduler tasks.
actions/tree
Package tree provides default implementation for tree related tasks.
Package tree provides default implementation for tree related tasks.
jobs
Package jobs implements persistence of the job definition.
Package jobs implements persistence of the job definition.
jobs/grpc
Package grpc provides a gRPC service to access the store for scheduler job definitions.
Package grpc provides a gRPC service to access the store for scheduler job definitions.
jobs/rest
Package rest provides a REST gateway to the job definition repository.
Package rest provides a REST gateway to the job definition repository.
lang
Package lang provide scheduler-related i18n strings
Package lang provide scheduler-related i18n strings
tasks
Package tasks provides workers that effectively run the instances of the scheduled jobs.
Package tasks provides workers that effectively run the instances of the scheduled jobs.
tasks/grpc
Package grpc provides a gRPC service to effectively run task instances on multiple workers.
Package grpc provides a gRPC service to effectively run task instances on multiple workers.
timer
Package timer produces events that start scheduler jobs on pre-defined dates and/or intervals.
Package timer produces events that start scheduler jobs on pre-defined dates and/or intervals.
timer/grpc
Package grpc provides a gRPC service that triggers scheduler events based on ISO 8601 patterns.
Package grpc provides a gRPC service that triggers scheduler events based on ISO 8601 patterns.

Jump to

Keyboard shortcuts

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