Application Server The Cloud CMS Application Server offers an easy way for customers to assemble powerful, front-end custom APIs and web sites for Cloud CMS. It is completely free and runs on top of the popular Node.js technology stack. With Cloud CMS, customers have a choice of using any front-end presentation technology they wish. In many cases, customers already have a technology investment (such as C#, PHP, Java or Ruby) and thus a preference for continuing to build on that technology stack.

Our definitions are based on JSON schema and, as such, the default is to use strings for dates. The date controls in our forms engine let you customize the format string so that you can store ISO 8601 or other formats (perhaps simplified formats) as per your preference. The advantage here is simplicity with these controls and compatibility with JSON schema. The disadvantage is that MongoDB provides a lot of very powerful capabilities for range query and sorting that do not play as nicely with th

Tags Cloud CMS lets you manage your tag hierarchy and assign those tags to your content. Content that is tagged is automatically marked with the tag information (within the tags property) and will also maintain an a:has_tag association in the content graph that points back to the tag instance. Tags are first class citizens within Cloud CMS. They are content like everything else. Once content is tagged, you will see it reflected in the user interface as such. You will be able to navigate your con

Features Features are aspect-oriented, cross-cutting concerns that can be applied to nodes. Once applied, they may introduce new behaviors and metadata to your content objects. You can use features to describe cross-cutting or aspect-oriented concerns that can be plugged onto your content nodes at any time. Features may participate in the inheritance tree of content types or they may be injected anywhere and at any point. There are a number of out-of-the-box features provided by Cloud CMS, inclu

Server Tags Model Variables The framework keeps track of specific model variables which are accessible within your templates: user - information about the current user page - information about the current page selected - information about the currently selected content item session - information about the current user application session history - information about the navigation history request - information about the request Here is an example template that displays the user's click path histo

Clustering The Cloud CMS Application Server supports running on a single Node process as well as multiple Node processes. Node processes can run on a single server instance or can be spread across multiple server instances behind a load balancer. By default, the Application Server starts up and allocates itself to a single CPU. This is known as single mode. Even if you have a server with more than one CPU on it, the Application Server will still only bind to 1 of those CPUs. When the Application

@form A form can be rendered from Cloud CMS by identifying the definition and form key. Forms are rendered on the client-side using Alpaca Forms. For a working example, see: https://github.com/gitana/sdk/tree/master/appserver-form-sample Parameters parameter required description definition yes the type definition QName form yes the form key list no the data list to populate successUrl no the URL to redirect to upon success failureUrl no the URL to redirect to upon failure formId no override the

Yes, Cloud CMS supports SSO (Single Sign On) with a variety of authentication providers. Many of these providers are offered out-of-the-box -- including providers for Keycloak, Google, CAS and more. In addition, we allow you to implement your own SSO providers and customize the authentication handshake. To learn more about how Cloud CMS authentication providers work, check out the following documentation: https://www.cloudcms.com/documentation/appserver/services/auth.html Custom Authenticators a

Taggable QName: f:taggable Indicates that a node should support tagging. Nodes that support tagging maintain a:has_tag associations to n:tag nodes that serve as master tag entries. A single tag entry may have multiple associations linking it to nodes that bear its tag. In addition, taggable nodes maintain a tags array which contains a local array of all of the tags that the node has been assigned. In this way, tags can be traversed using graph-based lookup or they can be queried directly based o

Duster The Duster Service provides template rendering using the LinkedIn Dust.js template engine. The Duster Service loads output templates for you, executes Dust across them and outputs markup like HTML and JSON. It allows you to build full web sites or custom APIs using a powerful template engine. Tags The Cloud CMS Application Server provides a library of * Dust Tags available out of the box. These are listed in more detail on the left-hand side menu. Fragment Caching Some Dust tags support c

Create/Edit Content In a Project you can find your content a number of ways: Content (left Nav) - Content listed under Content Types Folders (left Nav) - Folder/File view of the content Search (left Nav for a detailed search or top right for a keyword search) Viewing a Content item With any of the options above, to find or list the content, click on the 'title' of the content item to open the 'Document Overview': Note: your tenant may be configured such that the options available in the left nav

Web Content Management The Application Server provides the runtime for the Cloud CMS Web Content Management solution. Web Content Management is a term that enterprise vendors have been using for years to distinguish between the role that a CMS (content management system) plays for an organization - it may be used to collaborate around your internal documents, legal records, digital assets and many other content items in addition to your web and mobile content. Cloud CMS provides a Web Content Ma

Behavior QName: f:behavior This features indicates that a node provides the implementation of a behavior. This feature simply tags the node as a behavior implementation. The node must be a script or a rule. Configuration This feature does need configuration. Behavior Example {
"title": "My JavaScript file",
"_features": {
"f:behavior": {
}
}
}

Docker Cloud CMS offers the option to run development and production installations of its software on-premise or within a virtual private cloud. This option is available to subscription customers and can be utilized in both a development and production capacity. The actual installation and management of the various services involved in a full-scale production-ready Cloud CMS deployment is facilitated greatly through the use of Docker. Docker provides a way for all of the various tiers to be enca

@fragment Used to identify a section of output that can be cached based on the presently known request-time dependencies or any dependencies resolved by nested elements or nested @dependency tags. Parameters There are no parameters for this tag. Examples Example #1: Restaurant List Here is a template block that lists restaurants: {@fragment}
{@query sort="title" skip="2" limit="7" type="custom:restaurant"}

There are a few places where this either occurs automatically if you're using our hosted service or can occur optionally if you're either running within Docker containers on your own or integrating to custom CDN endpoints. First, the API itself can be fronted by a CDN that supports fallback lookup to an origin server. In this case, we recommend Amazon CloudFront with short-lived TTLs on cache headers. More specifically, you can use Amazon's API Gateway to get caching coverage across multiple geo

In Dust, there is the notion of a context which has a stack running underneath it. As you drill down into tags, a new context is pushed that can write new context variables as well as access previous variables from previous stack frames. What we're doing in cloudcms-server is providing a dependency tracker so that each tag gets to declare the output (the HTML that was generated) and the set of dependencies that it depended on in order to generate the output. As an example, a query might run an u

Actions Cloud CMS provides a large number of actions that can be bound to links sections within configuration blocks. This allows you to customize dropdowns, button toolbars and action links at various places within the user interface. It also provides a way for you to override action implementation classes for your own users. For a list of these actions, see Actions on the lower left-hand menu. account change-password addon install-addon uninstall-addon applications delete_applications new_appl

You can retrieve content by their document library path using the CMS API using the Node API. For example, you can paginate through the children of a node using this call: http://api.cloudcms.com/docs#!/node/get_repositories_repositoryId_branches_branchId_nodes_nodeId_children GET /repositories/{repositoryId}/branches/{branchId}/nodes/{nodeId}/children?path={path} In this case, you would set "nodeId" to the value "root" to indicate the root node. And then use "path" to describe the offset. If yo

List Items List Items exist in multiple places in CloudCMS UI. They consist of an icon on the left and some detailed descriptions on the right. Below is an example of some list items configured with the default template. You can customize the description on the right using Templates. The Default Template Currently list items on these pages are configurable: Content Types, Documents, and Search on project level. All list items on above pages are using the following UI template by default. Once yo

Locking Cloud CMS locking is a "data lock" approach which is a transactional lock is taken out when the write of multiple documents begins. This is a transactional lock in the sense that it blocks other write operations against those documents and fails entirely with rollback if any of the documents fail individually. We have transactional writes for multiple documents. We have a changeset-driven versioning model where each transaction writes onto it's own changeset. N number of documents may wr