Database > Collections




Static Data

By “static data” we mean data held in the database that does not change particularly often, and certainly not through regular use of the CloudForest platform. This could perhaps be thought of as the high-level configuration data for the system.

options

Our options collection stores configuration options influence how cfserver operates. There are four main categories:

  • server, containing options related to server setup and operation

  • aws, containing AWS-related options (including credentials)

  • comms, containing communication-related options (e.g., Slack channel POST url)

  • and metrics, containing a description of the metrics server

By storing these options online in the database we make online administration possible. Options can be changed and the server “reloaded” with these updated settings from our Admin page, without ever having to actually log in the the instance running cfserver.

awsdata

The awsdata collection holds data on AWS instances that can be used in the platform. Specifically, awsdata is a collection of json objects describing EC2 instances along with any internal flags like availability (whether we allow the instance or not).

templates

The templates collection keeps the pug templates used to construct the emails we send corresponding to various events. Templates are identified by their name and have body and subject fields (as strings in pug markup form), a description, and a dictionary of variables the pug templates for the body and subject will expect.

Dynamic Data

By “dynamic data” we mean data held in the database that does change often, and primarily through regular use of the CloudForest platform.

shadow

The shadow collection holds platform secrets like user passwords (in unix-hashed form, never cleartext) and API keys. There are no large-scale access routines for data from shadow written into cfserver.

users

Data about who can use the system is stored in the users collection. Each user is primarily identified by their uid, has name details, stores group memberships by MongoDB _id and name:

{ 
    "_id" : ObjectId("xxxxxxxxxxxxxxxxxxxxxxxx"), 
    "uid" : "cfuser", 
    ... 
    "groups" : {
        "xxxxxxxxxxxxxxxxxxxxxxxx" : "test-group", 
        "xxxxxxxxxxxxxxxxxxxxxxxx" : "facultyA"
    }, 
    "name" : {
        "first" : "Some", 
        "middle" : "C. F.", 
        "last" : "User", 
        "display" : "C. F. User"
    }
}

There is other data, particularly a user profile, history, created/updated times, as well.

groups

The groups collection stores information about the CloudForest groups. Groups are mainly identified by their name, but can also hold a description, have a list of admins (the uids of the admin users), a list of members (by _id, with name and “rights” in the group), a list of instances the group currently has (by _id and name), and a history of all instances the group has had (by _id and name).

requests

instances

volumes

alerts

Any alert sent to cfserver from an instance, AWS Lambda functions, or from kapacitor is stored in the alerts collection.

emails

The emails collection holds a permanent record of the emails cfserver sends to users of the platform via AWS’s SES service. This includes the Destination (all to, cc, and Bcc recipients), Message (body and subject), source, state (e.g., sent), and an SES messageId.

errors

The errors collection holds errors that are POSTed to cfserver by the ErrorBoundary in our react.js dashboard.

Was this page useful?   or