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 channelPOST
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 uid
s 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 POST
ed to cfserver
by the ErrorBoundary
in our react.js
dashboard.
Connect with us