Licensing

CoSync Licensing #

Philosophy #

CoSync Inc, headquartered in Cary, North Carolina, wholeheartedly embraces the values of the open-source community. The company’s approach to monetization revolves around tailoring software enhancements to its open engines, providing software support, and offering subscriptions to the CoSync Portal. The CoSync Portal acts as a web-based user interface tool for effectively managing CoSync Auth hosts and CoSync AssetLink instances.

CoSync’s decision to open-source its software is driven by the following motivations:

  • Reducing adoption risks for developers.
  • Offering an affordable and predictable pricing alternative for authentication services.
  • Giving control of user authentication data back to developers.
  • Allowing developers to host the authentication stack within their infrastructure.
  • Preventing lock-in to critical infrastructure by a SAAS provider.

The CoSync software offerings comprise the following five components:

  • CoSync Portal - used to manage hosts, applications, and users
  • Self-Hosted CoSync Auth Server - used to implement a CoSync Auth host on a developer’s server
  • CoSync SDKs - used to integrate CoSync Auth services on mobile and web platforms
  • CoSync Samples - sample code for mobile and web platforms
  • CoSync AssetLink Server Side code - code to handle bridge between CoSync AssetLink and MongoDB App Service Application

CoSync Portal #

The CoSync Portal is a web application designed for developers to manage CoSync Self-Hosted servers, applications, and their associated users. It is free for evaluation purposes, but for commercial use, developers are charged $29 per month. While not mandatory for effectively using the CoSync Auth Self-Hosted server, the CoSync Portal significantly enhances productivity and integration.

The CoSync Portal can be found here.

The Service Level Agreement that regulates the CoSync Portal can be found here.

Self-Hosted CoSync Auth Server #

The Self-Hosted CoSync Auth Server is a Node.js applicaiton that allows a developer to deploy a CoSync Auth Host on their own servers. The CoSync company goal is to build a strong programming community around its self-hosted CoSync Auth server offering. For developers who are familiar with MongoDB Atlas and Microsoft Azure, setting up this product is a straightforward process. CoSync made the decision to release the software under the MongoDB Server Side Public License (SSPL) as it is a partner of MongoDB and develops various complementary tools for MongoDB Realm developers. You can find a detailed description of the SSPL license here.

In essence, the SSPL license shares similarities with the GNU AGPL license, but it provides stronger safeguards when offering the self-hosted CoSync Auth product as a service without contributing modifications back to the community.

The Self-Hosted CoSync Auth Server can be found on the following gitHub repository.

git@github.com:CoSync/CoSyncJWT-Server.git

CoSync SDKs #

The CoSync SDKs include packages and frameworks that developers can integrate into their mobile applications to access the functionality of the CoSync Auth REST API or the CoSync AssetLink service. All these SDKs are released under the Apache 2.0 license.

The Swift Package Github repository for iOS Swift access to CoSync Auth is named CoSyncJWTSwift.

The Android Gradle Github repository for Android Kotlin access to CoSync Auth is named CoSyncJWTKotlin.

The React library repository for React Native access to CoSync Auth is named CoSyncJWTReact.

The Swift Package Github repository for iOS Swift access to CoSync AssetLink service is named CoSyncStorageSwift.

CoSync Samples #

CoSync provides Sample Application Code for both the CoSync AssetLink module and the CoSync Auth service. All of the CoSync Sample Application Code is open source, and is released under the Apache 2.0 license.

The first step is to go to our public GitHub repository and download the code examples to your machine CoSyncSamples.

The directory structure of the CoSyncSamples GitHub repository contains samples for both the CoSync AssetLink and CoSync Auth services. These samples are for the three languages bindings: Swift on iOS, Kotlin on Android, and ReactNative for cross-platform.

CoSyncSamples
│
├── CoSyncStorage
│   ├── Swift
│   ├── Kotlin
│   └── React-Native
│
└── CoSyncJWT
    ├── Swift
    ├── Kotlin
    └── React-Native

The CoSync AssetLink Server-Side code comprises a set of functions and triggers that the CoSync Portal installs during the configuration of a CoSync Application for the CoSync AssetLink module. The code for the Server-Side is written in Javascript and is licensed under the MongoDB Server Side Public License (SSPL). You can find a detailed description of the SSPL license here.

CoSyncFlow

The CoSync AssetLink Server Side portion of the CoSync AssetLink module is responsible for interfacing with the Amazon S3 Storage service, for handling asset management on behalf a client device and collaborative application.

The CoSync AssetLink Server Side triggers that are installed by the CoSync Portal during configuration of a MongoDB App Services Application for the CoSync AssetLink module include the following

  • CoSyncRemoveAssetTrigger

The CoSync AssetLink Server Side functions that are installed include:

functions that are callable by the client application:

  • CosyncInitAsset
  • CosyncCreateAsset
  • CosyncRefreshAsset
  • CosyncClearAsset

functions for internal support:

  • CosyncCountS3DirectorySize
  • CosyncCountUserS3Directory
  • CosyncEmptyS3Directory
  • CosyncEmptyUserS3Directory
  • CosyncRemoveS3File
  • CosyncGetAssetUrl
  • CosyncCreatePresignedURL
  • CosyncRemoveAssetTriggerFunc
  • CosyncSanitizeFileName