Documentation ¶
Overview ¶
Cozy Cloud is a personal platform as a service with a focus on data. Cozy Cloud can be seen as 4 layers, from inside to outside:
1. A place to keep your personal data
2. A core API to handle the data
3. Your web apps, and also the mobile & desktop clients
4. A coherent User Experience
It's also a set of values: Simple, Versatile, Yours. These values mean a lot for Cozy Cloud in all aspects. From an architectural point, it declines to:
- Simple to deploy and understand, not built as a galaxy of optimized microservices managed by kubernetes that only experts can debug.
- Versatile, can be hosted on a Raspberry Pi for geeks to massive scale on multiple servers by specialized hosting. Users can install apps.
- Yours, you own your data and you control it. If you want to take back your data to go elsewhere, you can.
Directories ¶
Path | Synopsis |
---|---|
Package cmd is where the CLI commands and options are defined.
|
Package cmd is where the CLI commands and options are defined. |
browser
Package browser provides utilities for interacting with users' browsers.
|
Package browser provides utilities for interacting with users' browsers. |
model
|
|
bitwarden
Package bitwarden is used for managing the ciphers, encrypted on the client side.
|
Package bitwarden is used for managing the ciphers, encrypted on the client side. |
contact
Package contact is for managing the io.cozy.contacts documents and their groups.
|
Package contact is for managing the io.cozy.contacts documents and their groups. |
instance
Package instance is for the instance model, with domain, locale, settings, etc.
|
Package instance is for the instance model, with domain, locale, settings, etc. |
job
Package job is for the scheduling and execution of asynchronous jobs via the workers.
|
Package job is for the scheduling and execution of asynchronous jobs via the workers. |
nextcloud
Package nextcloud is a client library for NextCloud.
|
Package nextcloud is a client library for NextCloud. |
note
Package note is the glue between the prosemirror models, the VFS, redis, the hub for realtime, etc.
|
Package note is the glue between the prosemirror models, the VFS, redis, the hub for realtime, etc. |
notification/huawei
Package huawei can be used to send notifications via the Huawei Push Kit APIs.
|
Package huawei can be used to send notifications via the Huawei Push Kit APIs. |
oauth
Package oauth declares the OAuth client, and things related to them, from the certification of the flagship app to the creation of the access codes in the OAuth2 flow.
|
Package oauth declares the OAuth client, and things related to them, from the certification of the flagship app to the creation of the access codes in the OAuth2 flow. |
office
Package office is for interactions with an OnlyOffice server to allow users to view/edit their office documents online.
|
Package office is for interactions with an OnlyOffice server to allow users to view/edit their office documents online. |
permission
Package permission is used to store the permissions for each webapp, konnector, sharing, etc.
|
Package permission is used to store the permissions for each webapp, konnector, sharing, etc. |
sharing
Package sharing is where all the magic happen when documents/files are shared between several Cozy instances, from managing the recipients to replicating the changes.
|
Package sharing is where all the magic happen when documents/files are shared between several Cozy instances, from managing the recipients to replicating the changes. |
vfs
Package vfs is for storing files on the cozy, including binary ones like photos and movies.
|
Package vfs is for storing files on the cozy, including binary ones like photos and movies. |
vfs/vfsafero
Package vfsafero is the implementation of the Virtual File System by using afero.
|
Package vfsafero is the implementation of the Virtual File System by using afero. |
vfs/vfsswift
Package vfsswift is the implementation of the Virtual File System by using Swift from the OpenStack project.
|
Package vfsswift is the implementation of the Virtual File System by using Swift from the OpenStack project. |
pkg
|
|
assets/statik
Package statik contains an HTTP file system that works with zip contents.
|
Package statik contains an HTTP file system that works with zip contents. |
config/config
Package config is where the configuration from the configuration files, the command line parameters, and the environment variables is used to fill some structs, and initializes connections (to Swift for example).
|
Package config is where the configuration from the configuration files, the command line parameters, and the environment variables is used to fill some structs, and initializes connections (to Swift for example). |
consts
Package consts is only for declaring some constants used by the stack, like some slugs, IDs, doctypes, etc.
|
Package consts is only for declaring some constants used by the stack, like some slugs, IDs, doctypes, etc. |
couchdb/stream
The stream package can be used for streaming CouchDB responses in JSON format from the CouchDB cluster to a client, with the stack doing stuff like filtering some fields.
|
The stream package can be used for streaming CouchDB responses in JSON format from the CouchDB cluster to a client, with the stack doing stuff like filtering some fields. |
jsonapi
Package jsonapi is for using the JSON-API format: parsing, serialization, checking the content-type, etc.
|
Package jsonapi is for using the JSON-API format: parsing, serialization, checking the content-type, etc. |
manager
Package manager is used for interacting with the cloudery.
|
Package manager is used for interacting with the cloudery. |
metadata
Package metadata is used for manipulating the cozyMetadata field of the documents.
|
Package metadata is used for manipulating the cozyMetadata field of the documents. |
pdf
Package pdf is for manipulating PDF files.
|
Package pdf is for manipulating PDF files. |
safehttp
Package safehttp can be used for making http requests when the hostname is not trusted (user inputs).
|
Package safehttp can be used for making http requests when the hostname is not trusted (user inputs). |
shortcut
Package shortcut can be used to manipulate files in the .url format (from windows).
|
Package shortcut can be used to manipulate files in the .url format (from windows). |
statik
Package contains a program that generates code to register a directory and its contents as zip data for statik file system.
|
Package contains a program that generates code to register a directory and its contents as zip data for statik file system. |
webdav
Package webdav is a webdav client library.
|
Package webdav is a webdav client library. |
scripts
|
|
tests
|
|
Package web Cozy Stack API.
|
Package web Cozy Stack API. |
apps
Package apps is the HTTP frontend of the application package.
|
Package apps is the HTTP frontend of the application package. |
auth
Package auth provides register and login handlers
|
Package auth provides register and login handlers |
bitwarden
Package bitwarden exposes an API compatible with the Bitwarden Open-Soure apps.
|
Package bitwarden exposes an API compatible with the Bitwarden Open-Soure apps. |
conncheck
Package conncheck returns HTTP 204 No Content for connectivity check
|
Package conncheck returns HTTP 204 No Content for connectivity check |
contacts
Package contacts exposes a route for the myself document.
|
Package contacts exposes a route for the myself document. |
data
Package data provide simple CRUD operation on couchdb doc
|
Package data provide simple CRUD operation on couchdb doc |
files
Package files is the HTTP frontend of the vfs package.
|
Package files is the HTTP frontend of the vfs package. |
instances
Package instances is used for the admin endpoint to manage instances.
|
Package instances is used for the admin endpoint to manage instances. |
middlewares
Package middlewares is used for the HTTP middlewares, ie functions that takes an echo context to do stuff like checking permissions or caching requests.
|
Package middlewares is used for the HTTP middlewares, ie functions that takes an echo context to do stuff like checking permissions or caching requests. |
notes
Package notes is about the documents of cozy-notes.
|
Package notes is about the documents of cozy-notes. |
permissions
Package permissions is the HTTP handlers for managing the permissions on a Cozy (creating a share by link for example).
|
Package permissions is the HTTP handlers for managing the permissions on a Cozy (creating a share by link for example). |
public
Package public adds some public routes that can be used to give information to anonymous users, or to the not yet authentified cozy owner on its login page.
|
Package public adds some public routes that can be used to give information to anonymous users, or to the not yet authentified cozy owner on its login page. |
remote
Package remote is the used for the /remote routes.
|
Package remote is the used for the /remote routes. |
settings
Package settings regroups some API methods to facilitate the usage of the io.cozy settings documents.
|
Package settings regroups some API methods to facilitate the usage of the io.cozy settings documents. |
sharings
Package sharings is the HTTP routes for the sharing.
|
Package sharings is the HTTP routes for the sharing. |
shortcuts
Package shortcuts is about the .url shortcuts.
|
Package shortcuts is about the .url shortcuts. |
status
Package status is here just to say that the API is up and that it can access the CouchDB databases, for debugging and monitoring purposes.
|
Package status is here just to say that the API is up and that it can access the CouchDB databases, for debugging and monitoring purposes. |
version
Package version gives informations about the version of the cozy-stack
|
Package version gives informations about the version of the cozy-stack |
worker
|
|
archive
Package archive is for the archive worker, that can zip and unzip files.
|
Package archive is for the archive worker, that can zip and unzip files. |
exec
Package exec is for the exec worker, which covers both konnector and service execution.
|
Package exec is for the exec worker, which covers both konnector and service execution. |
push
Package push is the worker that sends push notifications to mobile apps.
|
Package push is the worker that sends push notifications to mobile apps. |
share
Package share is where the workers for Cozy to Cozy sharings are defined.
|
Package share is where the workers for Cozy to Cozy sharings are defined. |