Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions services/app-provider/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# App Provider

The `app-provider` service provides the CS3 App Provider API for OpenCloud. It is responsible for managing and serving applications that can open files based on their MIME types.

The service works in conjunction with the `app-registry` service, which maintains the registry of available applications and their supported MIME types. When a client requests to open a file with a specific application, the `app-provider` service handles the request and coordinates with the application to provide the appropriate interface.

## Integration

The `app-provider` service integrates with:
- `app-registry` - For discovering which applications are available for specific MIME types
- `frontend` - The frontend service forwards app provider requests (default endpoint `/app`) to this service

## Configuration

The service can be configured via environment variables. Key configuration options include:
- `APP_PROVIDER_EXTERNAL_ADDR` - External address where the gateway service can reach the app provider

## Scalability

The app-provider service can be scaled horizontally as it primarily acts as a coordinator between applications and the OpenCloud backend services.
29 changes: 29 additions & 0 deletions services/groups/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Groups

The `groups` service provides the CS3 Groups API for OpenCloud. It is responsible for managing group information and memberships within the OpenCloud instance.

This service implements the CS3 identity group provider interface, allowing other services to query and manage groups. It works as a backend provider for the `graph` service when using the CS3 backend mode.

## Backend Integration

The groups service can work with different storage backends:
- LDAP integration through the graph service
- Direct CS3 API implementation

When using the `graph` service with the CS3 backend (`GRAPH_IDENTITY_BACKEND=cs3`), the graph service queries group information through this service.

## API

The service provides CS3 gRPC APIs for:
- Listing groups
- Getting group information
- Finding groups by name or ID
- Managing group memberships

## Usage

The groups service is only used internally by other OpenCloud services and not being accessed directly by clients. The `frontend` and `ocs` services translate HTTP API requests into CS3 API calls to this service.

## Scalability

Since the groups service queries backend systems (like LDAP through the configured identity backend), it can be scaled horizontally without additional configuration when using stateless backends.
42 changes: 42 additions & 0 deletions services/sharing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Sharing

The `sharing` service provides the CS3 Sharing API for OpenCloud. It manages user shares and public link shares, implementing the core sharing functionality.

## Overview

The sharing service handles:
- User-to-user shares (share a file or folder with another user)
- Public link shares (share via a public URL)
- Share permissions and roles
- Share lifecycle management (create, update, delete)

This service works in conjunction with the storage providers (`storage-shares` and `storage-publiclink`) to persist and manage share information.

## Integration

The sharing service integrates with:
- `frontend` and `ocs` - Provide HTTP APIs that translate to CS3 sharing calls
- `storage-shares` - Stores and manages received shares
- `storage-publiclink` - Manages public link shares
- `graph` - Provides LibreGraph API for sharing with roles

## Share Types

The service supports different types of shares:
- **User shares** - Share resources with specific users
- **Group shares** - Share resources with groups
- **Public link shares** - Create public URLs for sharing
- **Federated shares** - Share with users on other OpenCloud instances (via `ocm` service)

## Configuration

Share behavior can be configured via environment variables:
- Password enforcement for public shares
- Auto-acceptance of shares
- Share permissions and restrictions

See the `frontend` service README for more details on share-related configuration options.

## Scalability

The sharing service depends on the configured storage backends for share metadata. Scalability characteristics depend on the chosen storage backend configuration.
37 changes: 37 additions & 0 deletions services/storage-publiclink/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Storage PublicLink

The `storage-publiclink` service provides storage backend functionality for public link shares in OpenCloud. It implements the CS3 storage provider interface specifically for working with public link shared resources.

## Overview

This service is part of the storage services family and is responsible for:
- Providing access to publicly shared resources
- Handling anonymous access to shared content

## Integration

The storage-publiclink service integrates with:
- `sharing` service - Manages and persists public link shares
- `frontend` and `ocdav` - Provide HTTP/WebDAV access to public links
- Storage drivers - Accesses the actual file content

## Storage Registry

The service is registered in the gateway's storage registry with:
- Provider ID: `7993447f-687f-490d-875c-ac95e89a62a4`
- Mount point: `/public`
- Space types: `grant` and `mountpoint`

See the `gateway` README for more details on storage registry configuration.

## Access Control

Public link shares can be configured with:
- Password protection
- Expiration dates
- Read-only or read-write permissions
- Download limits

## Scalability

The storage-publiclink service can be scaled horizontally.
33 changes: 33 additions & 0 deletions services/storage-shares/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Storage Shares

The `storage-shares` service provides storage backend functionality for user and group shares in OpenCloud. It implements the CS3 storage provider interface specifically for working with shared resources.

## Overview

This service is part of the storage services family and is responsible for:
- Providing a virtual view of received shares
- Handling access to resources shared by other users

## Integration

The storage-shares service integrates with:
- `sharing` service - Manages and persists shares
- `storage-users` service - Accesses the underlying file content
- `frontend` and `ocdav` - Provide HTTP/WebDAV access to shares

## Virtual Shares Folder

The service provides a virtual "Shares" folder for each user where all received shares are mounted. This allows users to access all files and folders that have been shared with them in a centralized location.

## Storage Registry

The service is registered in the gateway's storage registry with:
- Provider ID: `a0ca6a90-a365-4782-871e-d44447bbc668`
- Mount point: `/users/{{.CurrentUser.Id.OpaqueId}}/Shares`
- Space types: `virtual`, `grant`, and `mountpoint`

See the `gateway` README for more details on storage registry configuration.

## Scalability

The storage-shares service can be scaled horizontally.
28 changes: 28 additions & 0 deletions services/users/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Users

The `users` service provides the CS3 Users API for OpenCloud. It is responsible for managing user information and authentication within the OpenCloud instance.

This service implements the CS3 identity user provider interface, allowing other services to query and manage user accounts. It works as a backend provider for the `graph` service when using the CS3 backend mode.

## Backend Integration

The users service can work with different storage backends:
- LDAP integration through the graph service
- Direct CS3 API implementation

When using the `graph` service with the CS3 backend (`GRAPH_IDENTITY_BACKEND=cs3`), the graph service queries user information through this service.

## API

The service provides CS3 gRPC APIs for:
- Listing users
- Getting user information
- Finding users by username, email, or ID

## Usage

The users service is only used internally by other OpenCloud services and not being accessed directly by clients. The `frontend`, `ocs`, and `graph` services translate HTTP API requests into CS3 API calls to this service.

## Scalability

Since the users service queries backend systems (like LDAP through the configured identity backend), it can be scaled horizontally without additional configuration when using stateless backends.