Skip to main content

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/
  • 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 to true in the server-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.