-
Notifications
You must be signed in to change notification settings - Fork 21
Metadata Structure
{
"name":"CollectionMetadataFacadeCollectionDropOrDecrementAttribute",
"internal-name":"collection.collectionmetadatafacadecollectiondropordecrementattribute_0",
"project-id":"default",
"attributes":{
"attribute 1":{
"attribute-name":"attribute 1",
"attribute-constraints":[ "isNumber", "lessThan:3"],
"attribute-count":1,
"child-attributes":{
"child":{
"attribute-name":"child",
"attribute-constraints":[],
"attribute-count":1,
"child-attributes":{
}
}
}
}
},
"last-time-used": ISODate("2017-03-24T17:04:10.989 Z"),
"recently-used-documents":[]
}name is name of collection given by user,
internal-name is actual name of the collection,
project-id is project ID,
attributes is a document, keys are names of the attributes, values are documents with metadata,
attribute-constraints is array of strings with constraints configurations,
attribute-count is a number of documents in collection that contain the attribute,
child-attributes are attributes of nested documents,
last-time-used is the time when collection was used for the last time,
recently-used-documents is an array of IDs of documents in collection, the first is the one most recently used.
There are three collections in the system database used by ConfigurationFacade to store configuration:
_config_user_config_project_config_organization
Each of these collections has the following structure:
{
"name": "organizationId/projectId/userEmail",
"config": {
"attribute1": "some value",
"attribute2": "some other value"
},
"flags": ["attribute1_restricted"]
}The only difference is in the name field which is organizationId/projectId for project configuration and just organizationId for organization configuration.
{
"_meta-create-date" : "date",
"_meta-update-date" : "date",
"_meta-creator-user" : "user_name",
"_meta-update-user" : "user_name",
… (rest of the document) …
}_meta-create-date is date of creation document,
_meta-update-date is date of last update of document,
_meta-creator-user is user who create the document,
_meta-update-user is user who perform last update on document,
{
"name":"viewCreateInitialMetadata",
"view-id":0,
"type":"default",
"configuration":{
}
}name is name of view given by user,
view-id is unique number generated by SequenceFacade,
type is view type,
configuration is nested document with arbitrary keys and values.
{
"_id":{"_id" : "idOfDocument", "_meta-version" : 3},
// rest of document is same as in DocumentMetadataFacade
}{
"project": "projectId",
"fromCollection": "collection1",
"toCollection" : "collection2",
"role" : "role"
}fromCollection is name of first collection
toCollection is name of second collection
project is the name of project
role is name of role which specify link between collections
{
"type-id": "typeId",
"from-id" : "id1",
"to-id" : "id2",
"attributes" : {
"attr1" : "value1",
....
}
}type-id is the id from linking type collection
fromId is the id of first document,
toId is the id of second document,
attributes are some custom attributes of link instance
{
"project-id" : "projId",
"organization-id" : "orgId",
"project-name" : "name",
"users" : [
{"user" : "user1", "user-roles":["role1", "role2", "role3"]},
{"user" : "user2", "user-roles":["role15", "role26", "role31"]},
{"user" : "user3", "user-roles":["role2", "role3", "role4"]},
{"user" : "user4", "user-roles":["role2", "role3", "role5"]},
],
"_meta-icon": "icon",
"_meta-color" : "color",
"_meta-default-roles" : ["role1", "role15"]
}project-id is unique id of the project,
organization-id is id of the organization,
project-name is unique name of the project,
users is array of users and their roles,
_meta-icon is icon of the project,
_meta-color is default color of the project,
_meta-default-roles are default role for newly created users
{
"organization-id" : "orgId",
"organization-name" : "name",
"organization-info-data" : {
"attribute1": "value1",
"attribute2": "value2",
...
},
"users" : [
{ "user" : "user1", "user-roles" : ["role1", "role2", "role3"] },
{ "user" : "user2", "user-roles" : ["role4", "role10", "role12"] },
{ "user" : "user3", "user-roles" : ["role3", "role52", "role9"] }
],
"_meta-icon" : "icon",
"_meta-color" : "color",
"_meta-default-roles" : ["role1", "role2"]
} organization-id is unique id of the organization,
organization-name is unique name of the organization,
organization-info-data is a list of additional organization pieces of information,
users is an array of users and their roles,
_meta-icon is an icon of the organization,
_meta-color is default color of the organization,
_meta-default-roles are default roles for newly created users in the organization
{
"organization-id" : "orgId",
"project-id" : "projId",
"user-role" : "role1",
"core-roles" : ["core1", "core2", "core3"]
}organization-id is id of the organization,
project-id is unique id of the project,
user-role is the name of the defined role,
core-roles are core roles that define user-role
{
"organization-id":"project1",
"roles":{
"manage":{
"users": ["user1", "user2"],
"groups": ["group1"]
},
"write":{
"users": [],
"groups": ["group2"]
}
},
}{
"project-id":"project1",
"source-type":"project",
"roles":{
"manage":{
"users": ["user1", "user2"],
"groups": ["group1"]
},
"write":{
"users": [],
"groups": ["group2"]
}
},
}{
"project-id":"project1",
"source-id":"my collection",
"source-type":"collection",
"roles":{
"manage":{
"users": ["user1", "user2"],
"groups": ["group1"]
},
"write":{
"users": [],
"groups": ["group2"]
},
"read":{
"users": [],
"groups": []
},
"share":{
"users": [],
"groups": ["group2"]
}
},
}{
"project-id":"project1",
"source-id":"my view",
"source-type":"view",
"roles":{
"manage":{
"users": ["user1", "user2"],
"groups": ["group1"]
},
"read":{
"users": [],
"groups": ["group2"]
},
"clone":{
"users": [],
"groups": []
}
},
}source-id is name of collection, or id of view, or id of project,
source-type is collection, view or project,
project-id is id of project where the collection/view belongs.