Engineering

February 12, 2024

Rethinking Data Objects and Permissions

Improvements to our data model and permissions system for enhanced power and flexibility.

Thumbnail

Rethinking Data Objects and Permissions at Synergy

At Synergy, we've embarked on a significant transformation of our data model and permissions system. Our objective was twofold: to enhance the system's capabilities by introducing more features while simultaneously simplifying its conceptual understanding and usability. This balance aims to empower our users with a robust system that remains intuitive to navigate.

A Recap of Synergy Data Objects

Before diving into the changes, let's review the core data objects within Synergy:

alt text

Objects by Category

  • Drive: Features traditional folder trees and tags.
  • CRM: Encompasses Projects, Contacts, Companies, and Contracts.

Items (Document/File Items)

  • Files: Traditional files like Office documents, PDFs, and text files.
  • Notes: CRM-associated records tracking activities like calls or meetings.
  • Tasks: CRM-related records for task assignments.
  • Emails: Emails associated with CRM entities, saved from your email server to Synergy.
  • Conversations: Threaded discussions akin to git issues.

The Evolution of Synergy's Data Objects and Permissions System

Historically, Synergy differentiated between Drive data objects (folders, standard tags, files) and CRM data objects (Projects, Contacts, etc.), each with its own permissions system. While this granularity offered flexibility, it introduced complexity and usability challenges, particularly when expanding the system with custom data objects.

The New System: A Unified Approach

In response to feedback and collaboration with design partners, we've overhauled our data model and permissions system. Here's what's new:

  • Directory (primary relation): Folders: Now, all items must be children of a folder, simplifying the primary driver of permissions.
  • Containers (secondary relations): Tags: A unified tagging system merges Drive and CRM containers, allowing items to be associated with multiple secondary containers (Standard Tags, Projects, Contacts, etc.). Customers can also create custom secondary containers (for example, customer support tickets).
  • Items: Includes all items with a uniform data structure, encompassing files, notes, tasks, emails, conversations. Customers can also create custom item data objects.
alt text

Now let's look at an example. All items must have a parent folder (primary relation) and can optionally have as many secondary relations as desired:

alt text

Permissions under the New System

Directory: Folders

Folder permissions are the foundational element of the system, organized into three categories:

  • Inherited Permissions: Permissions that are passed down from the parent folder. These permissions automatically apply to the folder based on the settings of its parent.
  • Cascade Permissions: Permissions assigned to a folder that automatically extend to all its subfolders, affecting them recursively. These permissions are also displayed in the 'Inherited Permissions' section of each subfolder to indicate their source and scope.
  • Custom Permissions: Permissions tailored to a specific folder that do not extend to subfolders. Users with custom permissions can view all immediate contents of the folder, including both subfolders and items. If they lack further permissions for the subfolders, they can see these subfolders exist (enhancing discoverability) but cannot access their contents.
alt text

Containers: Tagging System

Secondary containers (Standard Tags, Projects, Contacts, etc.) act as Synergy's tagging system and are visible to all team members, with the permission system allowing only the visibility or hiding of records' metadata. For example, while everyone can see the names of projects, permissions can restrict the visibility of confidential metadata details, such as the project's monetary value and involved personnel.

Items

All items inherit permissions from their direct parent folder (Inherited + Cascade + Custom). Additionally, custom permissions for items have been introduced. This is useful when needing to share specific items (e.g., a file) without granting access to the containing folder. Items shared directly are accessible under a new "Shared with me" section in the file explorer.

Why This Change?

The restructuring addresses key challenges:

  • Simplification: Centralizing permissions around folders aligns with how companies organize and think about access control.
  • Flexibility: The unified tagging system allows for custom secondary containers, accommodating diverse use cases without complicating the user experience.

Benefits for Users

This evolution in our permissions system is designed with our users' needs at the forefront:

  • Enhanced Power and Flexibility: Users gain a more capable system that supports a wider range of functionalities.
  • Improved Usability: The system is now easier to understand and use, streamlining the management of permissions across different entities.

Looking Ahead

Our commitment to refining Synergy's functionalities continues. We believe these changes in the permissions system will significantly enhance both the power and user-friendliness of our platform. As always, we value your feedback and look forward to supporting your work with these new improvements.


The SynergyOS team