cells

command module
v5.0.0-...-b98a0e9 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: AGPL-3.0 Imports: 137 Imported by: 0

README

Homepage | Dev Guide | GitHub-Repository | Issue-Tracker

License Badge GoDoc Go Report Card

-------------
WORK IN PROGRESS - CELLS V5 - USE THIS BRANCH AT YOUR OWN RISKS
-------------

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 the Deployment section below for notes on how to deploy the project on a live system.

A - Prerequisites

The following elements are required to compile and run Pydio Cells on your machine:

  • Go language v1.21 or higher and a correctly configured Go toolchain,
  • MySQL database 5.6 or higher (or MariaDB equivalent).

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

B - Build From Sources

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

# Retrieve the code
git clone https://github.com/pydio/cells
# Enter cells directory
cd cells
# Build your binary
make dev

C - Configure Environment

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 official documentation for additional information.
./cells configure

D - Start Server

./cells start

Access the default site https://localhost:8080/ and you are good to go. Learn more about Cells features and advanced configuration in the Documentation.

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.

Pre-built Binaries

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

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us. You can find a comprehensive Developer Guide on our website. Our online docs are open-source as well, feel free to improve them by contributing!

We are also looking for help to translate the Cells interface in various languages. It is really easy to participate: just navigate to our page in the Crowdin translation tool, create an account and get started.

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

Versioning & Branches

Please note that git main branch moved from master for Cells v1 to v3 (vendoring, no modules) to main for Cells v4 (go modules).

We use Semantic Versioning. For all available versions, see the release list.

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 code that can be found under frontend/assets.

License

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

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package broker provides events-related services.
Package broker provides 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/service
Package service is the GRPC persistence service for all activities.
Package service is the GRPC 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/service
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/service
Package service provides a Pydio GRPC service for managing chat rooms.
Package service 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/service
Package service provides a Pydio GRPC service for querying the logs
Package service provides a Pydio GRPC service for querying the logs
log/rest/service
Package service exposes a simple REST API for communicating with the GRPC package.
Package service 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/service
Package service provides the actual logic for posting emails to queue or to mail servers
Package service 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/service
Package service exposes a simple API for posting emails
Package service 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.
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
config
Package config provides tools for managing configurations
Package config provides tools for managing configurations
crypto
Package crypto provides tools for data encryption and certificates management
Package crypto provides tools for data encryption and certificates management
crypto/storage
Package storage provide an URLOpener for certmagic.Storage interfaces
Package storage provide an URLOpener for certmagic.Storage interfaces
errors/langerr
Package lang provides i18n strings related to activities
Package lang provides i18n strings related to activities
etl
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.
middleware
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
nodes
Package nodes provides high-level clients for talking to the main data tree in certain context.
Package nodes provides high-level clients for talking to the main data tree in certain context.
nodes/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
nodes/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.
permissions
Package permissions provides high-level tools for computing permissions from ACLs
Package permissions provides high-level tools for computing permissions from ACLs
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/service
Package service provides protobuf "any" types used by other proto's
Package service provides protobuf "any" types used by other proto's
service/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
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.
storage/sql/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
storage/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
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.
sync/endpoints/cells/transport
Package transport provides a ready to use SDK to use the Cells REST API in Go language.
Package transport provides a ready to use SDK to use the Cells REST API in Go language.
sync/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
sync/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.
sync/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.
sync/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
sync/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
sync/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
sync/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
sync/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.
sync/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
sync/task
Package task defines a synchronization task
Package task defines a synchronization task
telemetry
Package telemetry groups all observability tools for application monitoring: logging, tracing, metrics and profiling
Package telemetry groups all observability tools for application monitoring: logging, tracing, metrics and profiling
telemetry/log
Package log define and configure the Pydio loggers based on zap.
Package log define and configure the Pydio loggers based on zap.
telemetry/metrics
Package metrics abstract various providers around OpenTelemetry metric.Reader
Package metrics abstract various providers around OpenTelemetry metric.Reader
telemetry/metrics/otlp
Package otlp provides an OpenTelemetry protocol exporter for metrics
Package otlp provides an OpenTelemetry protocol exporter for metrics
telemetry/metrics/prometheus
Package prometheus provides a Prometheus collector and the required cells HTTP services to expose metrics.
Package prometheus provides a Prometheus collector and the required cells HTTP services to expose metrics.
telemetry/otel
Package otel groups together some common types for telemetry
Package otel groups together some common types for telemetry
telemetry/profile
Package profile provides an abstraction of pprof profiles generations.
Package profile provides an abstraction of pprof profiles generations.
telemetry/profile/http_pull
Package http_pull provides a profiling implementation that exposes PProf profiles on an HTTP endpoint
Package http_pull provides a profiling implementation that exposes PProf profiles on an HTTP endpoint
telemetry/profile/pyroscope
Package pyroscope provides a Push-implementation of profiling traces to Grafana Pyroscope server
Package pyroscope provides a Push-implementation of profiling traces to Grafana Pyroscope server
telemetry/tracing
Package tracing provides an abstraction of OpenTelemetry SpanExporter
Package tracing provides an abstraction of OpenTelemetry SpanExporter
utils
Package utils provides swiss-knife tools for all services
Package utils provides swiss-knife tools for all services
utils/i18n/languages
Package languages provides tools to find language in context
Package languages provides tools to find language in context
utils/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.
utils/openurl
Package openurl provides helpers for URLMux and URLOpeners in portable APIs.
Package openurl provides helpers for URLMux and URLOpeners in portable APIs.
utils/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
utils/std
Package std provides tools for standard types (strings, int, floats, etc).
Package std provides tools for standard types (strings, int, floats, etc).
Package data provides Data Management services.
Package data provides Data Management services.
docstore
Package docstore provides an indexed JSON document store.
Package docstore provides an indexed JSON document store.
docstore/grpc/service
Package service exposes the document store api in GRPC
Package service exposes the document store api in GRPC
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/service
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/service
Package service provides a GRPC access to the underlying persistence layer for files metadata
Package service provides a GRPC access to the underlying persistence layer for files metadata
meta/rest/service
Package service provides a REST API for querying the tree metadata.
Package service provides a REST API for querying the tree metadata.
search
Package search abstract the indexation engine and provides a bleve-based implementation.
Package search abstract the indexation engine and provides a bleve-based implementation.
search/dao/commons
Package commons implements the search engine
Package commons implements the search engine
search/dao/stub
Package stub is a helper for testing indexation
Package stub is a helper for testing indexation
search/grpc/service
Package service provides the Pydio grpc service for querying indexer.
Package service provides the Pydio grpc service for querying indexer.
search/lang
Package lang provides i18n strings for mailer-related data.
Package lang provides i18n strings for mailer-related data.
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/index
Package index provides indexation for datasources
Package index provides indexation for datasources
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/service
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/sync
Package sync provides service for synchronizing objects to indexes
Package sync provides service for synchronizing objects to indexes
source/sync/service
Package sync ties the "objects" and "index" together
Package sync ties the "objects" and "index" together
templates/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.
tree
Package tree dynamically aggregates the datasources nodes streams
Package tree dynamically aggregates the datasources nodes streams
tree/grpc/service
Package service provides a GRPC service for aggregating all indexes from all datasources
Package service 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/service
Package service is in charge of storing versions metadata
Package service 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
discovery
config/lang
Package lang provides config-related i18n strings
Package lang provides config-related i18n strings
health/rest/service
Package service exposes a REST API to manage shared rooms.
Package service exposes a REST API to manage shared rooms.
install/assets
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.
install/lib
Package lib is in charge of installing cells.
Package lib is in charge of installing cells.
install/rest/service
Package service is used once at install-time when running install via browser
Package service is used once at install-time when running install via browser
install/web/service
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
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/service
Package service is a GRPC service in charge of detecting updates and applying them
Package service is a GRPC service 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/service
Package service provides a REST gateway to the update service
Package service provides a REST gateway to the update service
Package frontend contains services required to serve the web interface.
Package frontend contains services required to serve the web interface.
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
web
web/service
Package web is serving the main entry points for the JS frontend
Package web is serving the main entry points for the JS frontend
gateway
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.
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/service
Package service starts the actual WebSocket service
Package service 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
acl
Package acl provides persistence and access to Access Control List
Package acl provides persistence and access to Access Control List
acl/grpc/service
Package service provides a GRPC service for storing and CRUD-ing ACLs
Package service provides a GRPC service for storing and CRUD-ing ACLs
acl/rest/service
Package service is a REST gateway to the grpc ACL service
Package service is a REST gateway to the grpc ACL service
graph/rest/service
Package service exposes a REST API to aggregate data from various services.
Package service 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/service
Package service is a GRPC encryption key persistence layer
Package service is a GRPC 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/service
Package service provides a GRPC persistence layer for user-defined metadata
Package service provides a GRPC persistence layer for user-defined metadata
meta/rest/service
Package service provides a REST gateway to the underlying grpc service
Package service provides a REST gateway to the underlying grpc service
oauth
Package oauth provides OAuth service
Package oauth provides OAuth service
oauth/grpc/service
Package service spins an OpenID Connect Server
Package service spins an OpenID Connect Server
oauth/lang
Package lang provides auth-related i18n strings
Package lang provides auth-related i18n strings
oauth/rest/service
Package service provides REST access to the TokenServiceApi
Package service provides REST access to the TokenServiceApi
oauth/web/service
Package service spins an OpenID Connect Server
Package service spins an OpenID Connect Server
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/service
Package service provides a GRPC policy engine service
Package service provides a GRPC policy engine service
policy/lang
Package lang provides policy-related i18n strings
Package lang provides policy-related i18n strings
policy/rest/service
Package service is a REST gateway to the underlying grpc service
Package service is a REST 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/service
Package service provides the GRPC persistence layer for CRUD-ing roles
Package service provides the GRPC persistence layer for CRUD-ing roles
role/rest/service
Package service provides a REST gateway to the underlying grpc server
Package service provides a REST gateway to the underlying grpc server
share/rest
Package rest implements all the share logic for Cells and Links.
Package rest implements all the share logic for Cells and Links.
share/rest/service
Package service exposes a REST API to manage shared rooms.
Package service 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/service
Package service provides the gRPC service to communicate with the Pydio's user persistence layer.
Package service provides the gRPC service to communicate with the Pydio's user persistence layer.
user/rest/service
Package service provides a REST gateway to the underlying grpc service
Package service provides a REST gateway to the underlying grpc service
workspace
Package workspace implements workspace persistence layer.
Package workspace implements workspace persistence layer.
workspace/grpc/service
Package service provides the GRPC persistence for workspaces
Package service provides the GRPC 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
workspace/rest/service
Package service provides a REST gateway to the workspaces
Package service provides a REST gateway to the workspaces
Package scheduler implements a fully functional background-task manager for the application.
Package scheduler implements a fully functional background-task manager for the application.
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/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/service
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/service
Package service provides a REST gateway to the job definition repository.
Package service 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/service
Package service provides a gRPC service to effectively run task instances on multiple workers.
Package service 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/service
Package service provides a gRPC service that triggers scheduler events based on ISO 8601 patterns.
Package service 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