The Soda Data Content Management System

Soda is a data content management system (DCMS).

A content management system (CMS) manages the creation and modification of digital content. It typically supports multiple users in a collaborative environment. (See Wikipedia).

A web content management system (WCM or WCMS) is a CMS designed to support the management of the content of Web pages. Most popular CMSs are also WCMSs. Web content includes text and embedded graphics, photos, video, audio, maps, and program code (e.g., for applications) that displays content or interacts with the user. 

Soda is a WCMS that supports the creation, management and display of data, as well as text, images, and other digital content. This is what distinguishes it and makes it a Data CMS.

How Content is Organized

Soda enables the creation, management and display of data in connected sources. These can be sources that you create, sources created by others, or shared sources in which you and others work collaboratively.

Each source contains workspaces. A workspace is similar to a directory or folder on a computer. It can contain pages, views, uploaded files, and sub-workspaces. A page (like the one that you are reading now) displays text, and can include uploaded images and views of the data in the sources. A view can display data and can also enable you to create, change, or delete it.

Workspaces, pages, views and files are stored as data in the data sources. You can create, change and delete them using views, but Soda has dedicated facilities for working with them and it is usually more convenient to use these facilities.


Each item of data has two access levels. One determines who can read it, the other determines who can read or write it. Each user has, at any given time, a role, which is essentially an access level. The user can read an item of data if, and only if, the role access level is the same as or superior to the item's read level, or the same as or superior to the item's write level. The user can write an item of data if, and only if, the role access level is the same as or superior to the item's write level.

A user can work in different roles at different times. The default role is the public role. Any user can work in this role. To work in another role, the user must establish his, her or (for programmatic access) its identity, and the system must be configured to allow the identity to work in the role.

Every source has an administrator role. This is often, but not necessarily, named admin. A user working in this role can connect and disconnect sources, create workspaces, define named items, define named access levels (including roles), and configure which identities can work in which roles. The administrator can also give some of these privileges to other roles.