Backend Services
Overview
SynergyOS offers a comprehensive suite of backend services designed to provide a seamless and robust user experience. This documentation outlines each service, detailing their responsibilities, configurations, and integration points within the SynergyOS ecosystem.
Terminology
In the context of SynergyOS, the term items refers to the following:
- Folders
- Files
- Emails
- Calendar events
- Notes
- Tasks
- Chats
Throughout this documentation, services will interact with or manage these items to deliver various functionalities.
Core Services
Membership Service
Overview
The Membership Service manages authentication, repositories, and the central user database. It serves as the cornerstone for access control across all services, enforcing filters and token validations to secure interactions. The Internal Service is the only exception, operating without these validations.
Key Features
- User authentication and authorization
- Repository management
- Centralized user database
- Token validation across services
Integration
- All services depend on the Membership Service for access control, except for the Internal Service.
Sync Service
Overview
The Sync Service is responsible for managing metadata of items and handling core operations such as creation, movement, and renaming of items. It also manages smart folders, tags, bookmarks, and comments associated with items.
Key Features
- Metadata management for items
- Core operations: create, move, rename items
- Management of smart folders, tags, bookmarks, and comments
Async Service
Overview
The Async Service handles asynchronous operations related to items, such as uploads, downloads, duplication, and tracking the status of upload queues, including uploaded, failed, and processing items.
Key Features
- Management of item uploads and downloads
- Duplication of items
- Upload queue status tracking
Pusher Service
Overview
The Pusher Service sends real-time notifications to the frontend using WebSockets. It informs connected users about operations that require UI refreshes. For example, when a new item is added to a repository, all users connected to that repository receive a notification, prompting an automatic interface refresh to display the new item.
Key Features
- Real-time notifications via WebSockets
- Automatic UI refresh for connected users
- High availability message delivery using Redis
Configuration
- High Availability: Utilizes Redis to ensure reliable message delivery.
- WebSockets: Ensure that the frontend is configured to handle WebSocket connections for real-time updates.
Text Indexer Service
Overview
The Text Indexer Service extracts text from items, processes it, and indexes it in Elasticsearch. This service is pivotal for enabling search functionality within the content of items.
Key Features
- Text extraction and processing from items
- Indexing content in Elasticsearch
- Utilizes an Akka Actors architecture for efficient processing
Architecture
- Akka Actors: Implements a multi-step process to handle text extraction and indexing efficiently.
Search Service
Overview
The Search Service facilitates searching for items beyond basic metadata. It enables full-text searches within the content of items, providing highlighted results for better visibility.
Key Features
- Metadata search (name, type, tags)
- Full-text search within items
- Highlighted search results
- Relies on text indexing for comprehensive search capabilities
Scheduler Service
Overview
The Scheduler Service reindexes item content when initial indexing fails or is incomplete. Each item undergoes up to five indexing attempts to ensure searchability.
Key Features
- Automated reindexing of item content
- Retry mechanism with up to five attempts per item
Thumbnail Service
Overview
Upon item upload, the Thumbnail Service performs two asynchronous operations: indexing text for search and creating thumbnails for items. It employs an actor-based architecture similar to the Text Indexer, with specific handling for different item types.
Key Features
- Thumbnail creation for items
- Text indexing for search functionality
- Actor-based processing for various item types
Email Service
Overview
The Email Service handles the dispatch of email notifications related to account activities such as creation, activation, password resets, and subscription updates.
Key Features
- Account-related email notifications
- Subscription-related email communications
Assistant Node
Overview
The Assistant Node is maintained by the frontend team and integrates with AI agents. The backend supports this service by handling image creation and infrastructure deployment.
Key Features
- Integration with AI agents
- Support for image creation and deployment
Pandoc Server
Overview
The Pandoc Server facilitates item conversions using Pandoc. It utilizes the official Pandoc Docker image for its operations, supporting various document formats.
Key Features
- Item conversion using Pandoc
- Supports multiple document formats
Resources
Internal Service
Overview
The Internal Service operates exclusively within the infrastructure, bypassing the Kubernetes ingress to provide solutions for internal queries. It allows other services to access databases without the need for tokens.
Key Features
- Internal-only access
- Database querying without token requirements
Scraper Service
Overview
The Scraper Service supports workflows by populating company information based on domain names during company creation. It retrieves logos, descriptions, and other relevant data from the internet.
Key Features
- Automated retrieval of company information
- Logo and description scraping based on domain
Integration Services
SynergyOS integrates with various external systems to enhance functionality and provide seamless user experiences. This section consolidates services related to Microsoft integrations, including Office Online, SharePoint, SCIM, and Azure Active Directory.
Microsoft Integration Services
Overview
The Microsoft Integration Services enable SynergyOS to seamlessly interact with key Microsoft platforms, providing collaboration, item management, and identity provisioning capabilities within the SynergyOS environment.
WOPI Service
Overview
The WOPI (Web Application Open Platform Interface) Service integrates Office Online, allowing users to open and collaboratively edit items directly within SynergyOS.
Key Features
- Real-time collaborative editing with Office Online
- Support for item editing within the SynergyOS platform
Configuration
- Host Settings: Update the
wopi.html
file with the correct host URL before deployment. - Environment Settings: Set the correct environment (development or production) in the
Constants
class.- Development URL:
https://dev.msoffice.synergyos.com/
- Production URL:
https://msoffice.synergyos.com/
- Development URL:
- Kubernetes Ingress: Ensure WOPI is configured with the appropriate ingress in Kubernetes.
SharePoint Integration
Overview
The SharePoint Integration allows users to upload, co-author, and sync items with SharePoint. It supports co-editing sessions and ensures that changes made in SharePoint are synchronized back to SynergyOS.
Key Features
- Item upload and synchronization with SharePoint
- Co-authoring sessions with SharePoint
- Synchronization of items post-session back to SynergyOS
Configuration
- Azure Integration: Requires an Azure application with permissions to generate tokens for SharePoint integration. Ensure the application is correctly configured for token management.
SCIM Service
Overview
The SCIM (System for Cross-domain Identity Management) Service integrates with Azure Active Directory to synchronize user and group data into SynergyOS. It facilitates Single Sign-On (SSO) and ensures that user accounts in Azure Active Directory are reflected in SynergyOS.
Key Features
- Synchronization of users and groups from Azure Active Directory
- Single Sign-On (SSO) integration
Resources
Azure Active Directory (AAD) Integration
Overview
Azure Active Directory (AAD) integration enables SynergyOS to manage user authentication and provisioning. The integration includes support for SharePoint and SSO management through the SCIM Service.
Key Applications
- SharePoint App: Manages item uploads, co-authoring, and synchronization with SharePoint.
- Synergy SSO: Facilitates Single Sign-On for users and groups, enabling seamless authentication across SynergyOS and Azure Active Directory.
Configuration
- SharePoint App: Ensure a valid certificate is configured in both the Azure application and the PostgreSQL SharePoint database table. This is required for generating tokens and integrating with SharePoint.
- SSO: To enable SSO for a specific company, set the
sso_enabled
flag totrue
in theserver-info
database. This ensures the frontend recognizes and displays the Single Sign-On login option.
Resources
- Refer to the SCIM Service documentation for detailed configuration steps.
Collabora Services
Collabora Online
Overview
Collabora Online integrates LibreOffice functionality, allowing users to open, edit, and convert items within SynergyOS. It serves as an alternative to Office Online for document editing.
Key Features
- LibreOffice integration for item editing
- Item conversion capabilities
Configuration
- Deployment: Use Helm to deploy Collabora Online.
helm upgrade -i collabora-online ./collabora-online
- Configuration File: Modify
values.yaml
for environment-specific settings. - Dockerfile: Includes additional fonts; the default Collabora image is used as per
values.yaml
. - Kubernetes Ingress: Requires specific ingress configuration in the
collabora
namespace.
Resources
Collabora Service
Overview
The Collabora Service interfaces with the Collabora Online server, adhering to the WOPI protocol for seamless item editing and collaboration.
Key Features
- Communication with Collabora Online server
- Compliance with WOPI protocol standards
Conclusion
SynergyOS's architecture leverages a combination of robust core and integration services to deliver comprehensive functionality, from real-time notifications and item editing to user management and search capabilities. Proper configuration and integration of these services within your infrastructure ensure a scalable and efficient operational environment.
For further assistance or inquiries, please refer to the SynergyOS support channels or consult the respective service documentation links provided above.