MongoDB Resources

Get a list of collection names belonging to the given instance database

GET /mongodb/<instance_name>/databases/<database_name>/collections/

Response:

{
    "data": [
        "Collection1",
        "Collection2",
        "Collection3"
    ]
}

Create a new collection in the specified instance database

POST /mongodb/<instance_name>/databases/<database_name>/collections/

Request:

{
    "name": "Name123",
    "shard_keys": [
        {
            "hashed": true,
            "key": "Key123"
        }
    ]
}

Response:

{
    "data": "Successfully added collection: 'Name123' to database: 'Database123'"
}

Get details on a collection belonging to the given instance database

GET /mongodb/<instance_name>/databases/<database_name>/collections/<collection_name>/

Response:

{
    "data": {
        "count": 0,
        "indexSizes": {
            "_id_": 8176
        },
        "lastExtentSize": 8192,
        "nindexes": 1,
        "ns": "Database123.Collection1",
        "numExtents": 1,
        "ok": 1.0,
        "paddingFactor": 1.0,
        "primary": "90a85209de63519f0c04728a1bdb9313",
        "sharded": false,
        "size": 0,
        "storageSize": 8192,
        "systemFlags": 1,
        "totalIndexSize": 8176,
        "userFlags": 0
    }
}

Get the compaction state of the specified instance

GET /mongodb/<instance_name>/compaction/

Response:

{
    "data": {
        "balancer_stopped_by_check": false,
        "shards": [
            {
                "members": [
                    {
                        "finish": {
                            "$date": 1435767398910
                        },
                        "name": "sydclus2br2vz18.syd.objectrocket.com:31134",
                        "start": {
                            "$date": 1435767133858
                        },
                        "state": "compressed",
                        "updated": "2015-07-01 16:16:38.910703"
                    },
                    {
                        "finish": {
                            "$date": 1435768000703
                        },
                        "name": "sydclus2br1vz18.syd.objectrocket.com:31134",
                        "start": {
                            "$date": 1435767721868
                        },
                        "state": "compressed",
                        "updated": "2015-07-01 16:26:40.703653"
                    }
                ],
                "primary_at_stepdown_request_time": "sydclus2br0vz18.syd.objectrocket.com:31134",
                "shardstr": "5db16d02db25b9673ff2f72440366df0/sydclus2br0vz18.syd.objectrocket.com:31134,sydclus2br1vz18.syd.objectrocket.com:31134,sydclus2br2vz18.syd.objectrocket.com:31134",
                "start": {
                    "$date": 1435767109046
                },
                "state": "stepdown_requested",
                "updated": "2015-08-27 21:27:03.311787",
                "updated_ts": 1440710823
            },
            {
                "members": [
                    {
                        "finish": {
                            "$date": 1435870302785
                        },
                        "name": "sydclus1br1vz10.syd.objectrocket.com:31166",
                        "start": {
                            "$date": 1435869429763
                        },
                        "state": "compressed",
                        "updated": "2015-07-02 20:51:42.785514"
                    },
                    {
                        "finish": {
                            "$date": 1435873901764
                        },
                        "name": "sydclus1br0vz10.syd.objectrocket.com:31166",
                        "start": {
                            "$date": 1435870940030
                        },
                        "state": "compressed",
                        "updated": "2015-07-02 21:51:41.764637"
                    }
                ],
                "primary_at_stepdown_request_time": "sydclus1br2vz10.syd.objectrocket.com:31166",
                "shardstr": "90a85209de63519f0c04728a1bdb9313/sydclus1br0vz10.syd.objectrocket.com:31166,sydclus1br1vz10.syd.objectrocket.com:31166,sydclus1br2vz10.syd.objectrocket.com:31166",
                "start": {
                    "$date": 1435869401045
                },
                "state": "awaiting_stepdown_request",
                "updated": "2015-07-02 22:06:44.482812",
                "updated_ts": 1435874804
            }
        ],
        "start": {
            "$date": 1435767108256
        },
        "state": "awaiting_stepdown",
        "updated": "2015-08-27 21:27:03.311798"
    }
}

Schedule the specified instance for compaction

POST /mongodb/<instance_name>/compaction/

Response:

{
    "data": "Success"
}

Get a list of databases and their statistics belonging to the given

GET /mongodb/<instance_name>/databases/

Response:

{
    "data": [
        {
            "average_object_size_in_bytes": 67.0,
            "collection_count": 3,
            "data_size_in_bytes": 676,
            "file_size_in_bytes": 50331648,
            "index_count": 3,
            "index_size_in_bytes": 24528,
            "name": "Database123",
            "object_count": 10,
            "storage_size_in_bytes": 36864
        },
        {
            "average_object_size_in_bytes": 0.0,
            "collection_count": 0,
            "data_size_in_bytes": 0,
            "file_size_in_bytes": 0,
            "index_count": 0,
            "index_size_in_bytes": 0,
            "name": "database1",
            "object_count": 0,
            "storage_size_in_bytes": 0
        },
        {
            "average_object_size_in_bytes": 62.0,
            "collection_count": 3,
            "data_size_in_bytes": 2700,
            "file_size_in_bytes": 50331648,
            "index_count": 10,
            "index_size_in_bytes": 81760,
            "name": "db1",
            "object_count": 43,
            "storage_size_in_bytes": 36864
        },
        {
            "average_object_size_in_bytes": 0.0,
            "collection_count": 0,
            "data_size_in_bytes": 0,
            "file_size_in_bytes": 0,
            "index_count": 0,
            "index_size_in_bytes": 0,
            "name": "test",
            "object_count": 0,
            "storage_size_in_bytes": 0
        }
    ]
}

Create a database and user on the specified instance

POST /mongodb/<instance_name>/databases/

Request:

{
    "name": "name_of_database",
    "password": "example_password",
    "username": "example_username"
}

Response:

{
    "data": {
        "avgObjSize": 69.0,
        "dataSize": 488,
        "fileSize": 50331648,
        "indexSize": 16352,
        "indexes": 2,
        "nsSize": 16777216,
        "numExtents": 3,
        "objects": 7,
        "ok": 1.0,
        "raw": {
            "41f59478b82ac344e8f8e229d8e080f3/iadclus22br0vz10.iad.objectrocket.com:12345,iadclus22br1vz10.iad.objectrocket.com:12345,iadclus22br2vz10.iad.objectrocket.com:12345": {
                "avgObjSize": 69.71428571428571,
                "collections": 3,
                "dataFileVersion": {
                    "major": 4,
                    "minor": 5
                },
                "dataSize": 488,
                "db": "name_of_database",
                "fileSize": 50331648,
                "indexSize": 16352,
                "indexes": 2,
                "nsSizeMB": 16,
                "numExtents": 3,
                "objects": 7,
                "ok": 1.0,
                "storageSize": 20480
            }
        },
        "storageSize": 20480
    }
}

Get details on a database belonging to the given instance

GET /mongodb/<instance_name>/databases/<database_name>/

Response:

{
    "data": {
        "avgObjSize": 67.0,
        "dataSize": 676,
        "extentFreeList": {
            "num": 0,
            "totalSize": 0
        },
        "fileSize": 50331648,
        "indexSize": 24528,
        "indexes": 3,
        "nsSize": 16777216,
        "numExtents": 5,
        "objects": 10,
        "ok": 1.0,
        "raw": {
            "90a85209de63519f0c04728a1bdb9313/sydclus1br0vz10.syd.objectrocket.com:31166,sydclus1br1vz10.syd.objectrocket.com:31166,sydclus1br2vz10.syd.objectrocket.com:31166": {
                "avgObjSize": 67.6,
                "collections": 5,
                "dataFileVersion": {
                    "major": 4,
                    "minor": 5
                },
                "dataSize": 676,
                "db": "Database123",
                "fileSize": 50331648,
                "indexSize": 24528,
                "indexes": 3,
                "nsSizeMB": 16,
                "numExtents": 5,
                "objects": 10,
                "ok": 1.0,
                "storageSize": 36864
            }
        },
        "storageSize": 36864
    }
}

Delete a database from the specified instance

DELETE /mongodb/<instance_name>/databases/<database_name>/

Response:

{
    "data": "Successfully deleted Database \"Database123\" from Instance \"Test123\"."
}

Get opcounters per second for the given instance

GET /mongodb/<instance_name>/opcounters/persecond/

Note

Operation may take 30+ seconds to complete (adjust timeout settings if need be).

Response:

{
    "data": [
        {
            "5db16d02db25b9673ff2f72440366df0": {
                "sydclus2br0vz18.syd.objectrocket.com:31134": {
                    "command": 81,
                    "delete": 0,
                    "getmore": 6,
                    "insert": 0,
                    "query": 0,
                    "update": 0
                },
                "sydclus2br1vz18.syd.objectrocket.com:31134": {
                    "command": 62,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br2vz18.syd.objectrocket.com:31134": {
                    "command": 57,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 0,
                    "update": 0
                }
            },
            "90a85209de63519f0c04728a1bdb9313": {
                "sydclus1br0vz10.syd.objectrocket.com:31166": {
                    "command": 71,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus1br1vz10.syd.objectrocket.com:31166": {
                    "command": 77,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus1br2vz10.syd.objectrocket.com:31166": {
                    "command": 83,
                    "delete": 0,
                    "getmore": 8,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                }
            },
            "fc0c163bd79c4de0b3d5127ec9e5156d": {
                "sydclus2br0vz28.syd.objectrocket.com:32795": {
                    "command": 43,
                    "delete": 0,
                    "getmore": 8,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br1vz28.syd.objectrocket.com:32795": {
                    "command": 40,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br2vz28.syd.objectrocket.com:32795": {
                    "command": 41,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                }
            }
        },
        {
            "5db16d02db25b9673ff2f72440366df0": {
                "sydclus2br0vz18.syd.objectrocket.com:31134": {
                    "command": 81,
                    "delete": 0,
                    "getmore": 6,
                    "insert": 0,
                    "query": 0,
                    "update": 0
                },
                "sydclus2br1vz18.syd.objectrocket.com:31134": {
                    "command": 62,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br2vz18.syd.objectrocket.com:31134": {
                    "command": 57,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 0,
                    "update": 0
                }
            },
            "90a85209de63519f0c04728a1bdb9313": {
                "sydclus1br0vz10.syd.objectrocket.com:31166": {
                    "command": 71,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus1br1vz10.syd.objectrocket.com:31166": {
                    "command": 77,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus1br2vz10.syd.objectrocket.com:31166": {
                    "command": 83,
                    "delete": 0,
                    "getmore": 8,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                }
            },
            "fc0c163bd79c4de0b3d5127ec9e5156d": {
                "sydclus2br0vz28.syd.objectrocket.com:32795": {
                    "command": 43,
                    "delete": 0,
                    "getmore": 8,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br1vz28.syd.objectrocket.com:32795": {
                    "command": 40,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br2vz28.syd.objectrocket.com:32795": {
                    "command": 41,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                }
            }
        },
        {
            "5db16d02db25b9673ff2f72440366df0": {
                "sydclus2br0vz18.syd.objectrocket.com:31134": {
                    "command": 81,
                    "delete": 0,
                    "getmore": 6,
                    "insert": 0,
                    "query": 0,
                    "update": 0
                },
                "sydclus2br1vz18.syd.objectrocket.com:31134": {
                    "command": 62,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br2vz18.syd.objectrocket.com:31134": {
                    "command": 57,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 0,
                    "update": 0
                }
            },
            "90a85209de63519f0c04728a1bdb9313": {
                "sydclus1br0vz10.syd.objectrocket.com:31166": {
                    "command": 71,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus1br1vz10.syd.objectrocket.com:31166": {
                    "command": 77,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus1br2vz10.syd.objectrocket.com:31166": {
                    "command": 83,
                    "delete": 0,
                    "getmore": 8,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                }
            },
            "fc0c163bd79c4de0b3d5127ec9e5156d": {
                "sydclus2br0vz28.syd.objectrocket.com:32795": {
                    "command": 43,
                    "delete": 0,
                    "getmore": 8,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br1vz28.syd.objectrocket.com:32795": {
                    "command": 40,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                },
                "sydclus2br2vz28.syd.objectrocket.com:32795": {
                    "command": 41,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 0,
                    "query": 7,
                    "update": 0
                }
            }
        }
    ]
}

Get opcounters for the given instance

GET /mongodb/<instance_name>/opcounters/

Response:

{
    "data": [
        {
            "5db16d02db25b9673ff2f72440366df0": {
                "sydclus2br0vz18.syd.objectrocket.com:31134": {
                    "command": 47303591,
                    "delete": 0,
                    "getmore": 2455092,
                    "insert": 22,
                    "query": 1169077,
                    "update": 52
                },
                "sydclus2br1vz18.syd.objectrocket.com:31134": {
                    "command": 11198942,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 363001,
                    "update": 0
                },
                "sydclus2br2vz18.syd.objectrocket.com:31134": {
                    "command": 11199560,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 362131,
                    "update": 0
                }
            },
            "90a85209de63519f0c04728a1bdb9313": {
                "sydclus1br0vz10.syd.objectrocket.com:31166": {
                    "command": 10905633,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 357189,
                    "update": 0
                },
                "sydclus1br1vz10.syd.objectrocket.com:31166": {
                    "command": 10907327,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 356649,
                    "update": 0
                },
                "sydclus1br2vz10.syd.objectrocket.com:31166": {
                    "command": 67116108,
                    "delete": 0,
                    "getmore": 17865167,
                    "insert": 2,
                    "query": 1834450,
                    "update": 32
                }
            }
        },
        {
            "5db16d02db25b9673ff2f72440366df0": {
                "sydclus2br0vz18.syd.objectrocket.com:31134": {
                    "command": 47303591,
                    "delete": 0,
                    "getmore": 2455092,
                    "insert": 22,
                    "query": 1169077,
                    "update": 52
                },
                "sydclus2br1vz18.syd.objectrocket.com:31134": {
                    "command": 11198942,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 363001,
                    "update": 0
                },
                "sydclus2br2vz18.syd.objectrocket.com:31134": {
                    "command": 11199560,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 362131,
                    "update": 0
                }
            },
            "90a85209de63519f0c04728a1bdb9313": {
                "sydclus1br0vz10.syd.objectrocket.com:31166": {
                    "command": 10905633,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 357189,
                    "update": 0
                },
                "sydclus1br1vz10.syd.objectrocket.com:31166": {
                    "command": 10907327,
                    "delete": 0,
                    "getmore": 0,
                    "insert": 1,
                    "query": 356649,
                    "update": 0
                },
                "sydclus1br2vz10.syd.objectrocket.com:31166": {
                    "command": 67116108,
                    "delete": 0,
                    "getmore": 17865167,
                    "insert": 2,
                    "query": 1834450,
                    "update": 32
                }
            }
        }
    ]
}

Get a list of replica sets belonging to the given instance

GET /mongodb/<instance_name>/replicasets/

Response:

{
    "data": [
        {
            "5db16d02db25b9673ff2f72440366df0": [
                "sydclus2br0vz18.syd.objectrocket.com:31134",
                "sydclus2br1vz18.syd.objectrocket.com:31134",
                "sydclus2br2vz18.syd.objectrocket.com:31134"
            ]
        },
        {
            "90a85209de63519f0c04728a1bdb9313": [
                "sydclus1br0vz10.syd.objectrocket.com:31166",
                "sydclus1br1vz10.syd.objectrocket.com:31166",
                "sydclus1br2vz10.syd.objectrocket.com:31166"
            ]
        }
    ]
}

Get a list of shards belonging to the given instance

GET /mongodb/<instance_name>/shards/

Response:

{
    "data": [
        {
            "id": "5db16d02db25b9673ff2f72440366df0",
            "name": "5db16d02db25b9673ff2f72440366df0",
            "plan": 5,
            "shardstr": "5db16d02db25b9673ff2f72440366df0/sydclus2br0vz18.syd.objectrocket.com:31134,sydclus2br1vz18.syd.objectrocket.com:31134,sydclus2br2vz18.syd.objectrocket.com:31134",
            "zone": "AP-Sydney"
        },
        {
            "id": "90a85209de63519f0c04728a1bdb9313",
            "name": "90a85209de63519f0c04728a1bdb9313",
            "plan": 5,
            "shardstr": "90a85209de63519f0c04728a1bdb9313/sydclus1br0vz10.syd.objectrocket.com:31166,sydclus1br1vz10.syd.objectrocket.com:31166,sydclus1br2vz10.syd.objectrocket.com:31166",
            "zone": "AP-Sydney"
        }
    ]
}

Add a shard to the given instance

POST /mongodb/<instance_name>/shards/

Response:

{
    "data": [
        {
            "id": "5db16d02db25b9673ff2f72440366df0",
            "name": "5db16d02db25b9673ff2f72440366df0",
            "plan": 5,
            "shardstr": "5db16d02db25b9673ff2f72440366df0/sydclus2br0vz18.syd.objectrocket.com:31134,sydclus2br1vz18.syd.objectrocket.com:31134,sydclus2br2vz18.syd.objectrocket.com:31134",
            "zone": "AP-Sydney"
        },
        {
            "id": "90a85209de63519f0c04728a1bdb9313",
            "name": "90a85209de63519f0c04728a1bdb9313",
            "plan": 5,
            "shardstr": "90a85209de63519f0c04728a1bdb9313/sydclus1br0vz10.syd.objectrocket.com:31166,sydclus1br1vz10.syd.objectrocket.com:31166,sydclus1br2vz10.syd.objectrocket.com:31166",
            "zone": "AP-Sydney"
        },
        {
            "id": "fc0c163bd79c4de0b3d5127ec9e5156d",
            "name": "fc0c163bd79c4de0b3d5127ec9e5156d",
            "plan": 5,
            "shardstr": "fc0c163bd79c4de0b3d5127ec9e5156d/sydclus2br0vz28.syd.objectrocket.com:32795,sydclus2br1vz28.syd.objectrocket.com:32795,sydclus2br2vz28.syd.objectrocket.com:32795",
            "zone": "AP-Sydney"
        }
    ]
}

Get space usage statistics from the specified instance

GET /mongodb/<instance_name>/spaceusage/

Response:

{
    "data": {
        "maximum_capacity": 10737418240,
        "percentages": {
            "data": 0.00014640390872955322,
            "index": 0.0015990436077117918,
            "ns": 0.9375,
            "remaining": 89.09790970385075,
            "storage": 9.962844848632812
        },
        "total_data_size": 15720,
        "total_file_size": 1308098560,
        "total_index_size": 171696,
        "total_ns_size": 100663296,
        "total_storage_size": 1069752320
    }
}

Get the current stepdown window configuration of the specified instance

GET /mongodb/<instance_name>/stepdown/

Response:

{
    "data": {
        "enabled": false,
        "end": "",
        "ran_in_window": false,
        "requestor": "autocompact",
        "scheduled": true,
        "start": "",
        "weekly": false
    }
}

Update the stepdown window configuration of the specified instance

POST /mongodb/<instance_name>/stepdown/

Note

The start and end fields must be a floating point Unix timestamp specified in UTC.

Request:

{
    "enabled": "True",
    "end": "1440716239",
    "scheduled": "True",
    "start": "1440715239",
    "weekly": "True"
}

Response:

{
    "data": {
        "enabled": true,
        "end": {
            "$date": 1440715240000
        },
        "ran_in_window": false,
        "requestor": "autocompact",
        "scheduled": true,
        "start": {
            "$date": 1440715239000
        },
        "weekly": true
    }
}

Get details on backups

GET /mongodb/<instance_name>/backups/

Response:

{
    "data": [
        {
            "_id": {
                "$oid": "55deb5eb5559613b75119698"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150827_0001",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 61 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150827_0001.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150827_0001.tgz",
                "config_server": "config_35023_20150827_0001.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440633661943
            },
            "timestamp_formatted": "2015/08/27 00:01:01"
        },
        {
            "_id": {
                "$oid": "55dd6a5c555961145f1272c7"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150826_0026",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 60 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150826_0026.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150826_0026.tgz",
                "config_server": "config_35023_20150826_0026.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440548783512
            },
            "timestamp_formatted": "2015/08/26 00:26:23"
        },
        {
            "_id": {
                "$oid": "55dc14435559616003a3dc09"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150825_0006",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 60 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150825_0006.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150825_0006.tgz",
                "config_server": "config_35023_20150825_0006.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440461206147
            },
            "timestamp_formatted": "2015/08/25 00:06:46"
        },
        {
            "_id": {
                "$oid": "55dac762555961378eb382c6"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150824_0026",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 61 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150824_0026.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150824_0026.tgz",
                "config_server": "config_35023_20150824_0026.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440375989115
            },
            "timestamp_formatted": "2015/08/24 00:26:29"
        },
        {
            "_id": {
                "$oid": "55d975bc555961096b58f48e"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150823_0025",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 61 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150823_0025.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150823_0025.tgz",
                "config_server": "config_35023_20150823_0025.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440289550658
            },
            "timestamp_formatted": "2015/08/23 00:25:50"
        },
        {
            "_id": {
                "$oid": "55d81e9355596154582cb22d"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150822_0001",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 61 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150822_0001.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150822_0001.tgz",
                "config_server": "config_35023_20150822_0001.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440201702535
            },
            "timestamp_formatted": "2015/08/22 00:01:42"
        },
        {
            "_id": {
                "$oid": "55d6d2cc5559612d0a6568f8"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150821_0026",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 60 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150821_0026.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150821_0026.tgz",
                "config_server": "config_35023_20150821_0026.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440116767655
            },
            "timestamp_formatted": "2015/08/21 00:26:07"
        },
        {
            "_id": {
                "$oid": "55d581485559617d7142b5bd"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150820_0026",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 61 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150820_0026.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150820_0026.tgz",
                "config_server": "config_35023_20150820_0026.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1440030363417
            },
            "timestamp_formatted": "2015/08/20 00:26:03"
        },
        {
            "_id": {
                "$oid": "55d42fd955596150431970e4"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150819_0026",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 61 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150819_0026.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150819_0026.tgz",
                "config_server": "config_35023_20150819_0026.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1439943979791
            },
            "timestamp_formatted": "2015/08/19 00:26:19"
        },
        {
            "_id": {
                "$oid": "55d2dd5355596121fdca8a0a"
            },
            "backup_directory": "/backups/55410c7f5b335278490a5be8/20150818_0021",
            "backup_host": "sydbackups0.syd.objectrocket.com",
            "error_msg": "Successful, completed in 60 seconds",
            "filenames": {
                "5db16d02db25b9673ff2f72440366df0": "5db16d02db25b9673ff2f72440366df0_20150818_0021.tgz",
                "90a85209de63519f0c04728a1bdb9313": "90a85209de63519f0c04728a1bdb9313_20150818_0021.tgz",
                "config_server": "config_35023_20150818_0021.tgz"
            },
            "instance_id": {
                "$oid": "55410c7f5b335278490a5be8"
            },
            "instance_name": "test123",
            "instance_type": "mongodb_sharded",
            "login": "donovan@heydonovan.io",
            "port": 35023,
            "timestamp": {
                "$date": 1439857318463
            },
            "timestamp_formatted": "2015/08/18 00:21:58"
        }
    ]
}

Get log details

GET /mongodb/<instance_name>/logs/

Response:

{
    "data": {
        "Config": [
            [
                "iadcfg0-0vz14.iad.objectrocket.com:12345",
                {
                    "log": [
                        [
                            "Thu Sep 10 12:37:27.500",
                            "[initandlisten] connection accepted from 10.57.1.13:58990 #3356139 (30 connections now open)"
                        ],
                        [ ... ]
                    ],
                    "ok": 1.0,
                    "totalLinesWritten": 10108657
                }
            ],
            [
                "iadcfg0-1vz14.iad.objectrocket.com:12345",
                {
                    "log": [
                        [ ... ]
                    ],
                    "ok": 1.0,
                    "totalLinesWritten": 10128429
                }
            ],
            [
                "iadcfg0-2vz14.iad.objectrocket.com:12345",
                {
                    "log": [
                        [ ... ]
                    ],
                    "ok": 1.0,
                    "totalLinesWritten": 10123552
                }
            ]
        ],
        "MongoD": [
            [
                "41f59478b82ac344e8f8e229d8e080f3",
                [
                    [
                        "iadclus22br0vz10.iad.objectrocket.com:12345",
                        {
                            "log": [
                                [ ... ]
                            ],
                            "ok": 1.0,
                            "totalLinesWritten": 302115
                        }
                    ],
                    [
                        "iadclus22br1vz10.iad.objectrocket.com:12345",
                        {
                            "log": [
                                [ ... ]
                            ],
                            "ok": 1.0,
                            "totalLinesWritten": 144292
                        }
                    ],
                    [
                        "iadclus22br2vz10.iad.objectrocket.com:12345",
                        {
                            "log": [
                                [ ... ]
                            ],
                            "ok": 1.0,
                            "totalLinesWritten": 144605
                        }
                    ]
                ]
            ]
        ],
        "MongoS": [
            [
                "iadapp0-0vz14.iad.objectrocket.com:12345",
                {
                    "log": [
                        [ ... ]
                    ],
                    "ok": 1.0,
                    "totalLinesWritten": 63002615
                }
            ],
            [
                "iadapp0-1vz14.iad.objectrocket.com:12345",
                {
                    "log": [
                        [ ... ]
                    ],
                    "ok": 1.0,
                    "totalLinesWritten": 62904381
                }
            ],
            [
                "iadapp0-2vz14.iad.objectrocket.com:12345",
                {
                    "log": [
                        [ ... ]
                    ],
                    "ok": 1.0,
                    "totalLinesWritten": 63092115
                }
            ],
            [
                "iadapp0-3vz14.iad.objectrocket.com:12345",
                {
                    "log": [
                        [ ... ]
                    ],
                    "ok": 1.0,
                    "totalLinesWritten": 63122580
                }
            ]
        ]
    }
}

MongoDB Database User Management (RBAC)

The MongoDB RBAC API calls enable more visibility and granular control over the Role Based Access of your MongoDB users, such as create/delete/update users’ MongoDB defined roles and access, get a list of existing users, and update user passwords.

We currently support the following MongoDB defined access roles:

  • read

  • readWrite

  • dbOwner

  • dbAdmin

Should you have questions, contact the support team support@objectrocket.com

Reference: Built-In Roles in Self-Managed Deployments

Note

Review the MongoDB Database User Management GUI (RBAC) to create,update and delete the user through GUI.

Get a list of users belonging to the given instance database

GET mongodb/<instance_id>/databases/<database_name>/users

Response:

{
   "data": [
        {
            "name": "myuser",
            "roles": [
                {
                    "role": "readWrite",
                    "db": "test"
                },
                {
                    "role": "dbAdmin",
                    "db": "test"
                }
            ]
        }
   ]
}

Create a new user in the specified instance database

POST mongodb/<instance_id>/databases/<database_name>/users

Request:

{
  "username": "new_user",
  "password": "mypassword",
  "roles": [
      {
         "role": "read",
         "db": "test"
      },
      {
         "role": "readWrite",
         "db": "test"
      }
  ]
}

Response:

{
    "data": "Successfully added user to instance."
}

Update an existing user’s password or role in a specific instance database

PATCH /mongodb/<instance_id>/databases/<database_name>/users/<username>

Request:

{
  "password": "changed_password",
  "roles": [
      {
        "role": "read",
        "db": "test"
      },
      {
         "role": "readWrite",
         "db": "test"
      }
  ]
}

Response:

{
   "message": "Successfully updated user details."
}

Note

You can update either the password or role but the scope cannot be changed.

Grant roles to a existing user in a specific instance database

PATCH /mongodb/<instance_id>/databases/<database_name>/users/<username>/grantRoles

Note

You can only grant roles using this API.

Request:

{
  "roles": [
      {
        "role": "read",
        "db": "test"
      },
      {
        "role": "readWrite",
        "db": "sampledb"
      }
  ]
}

Response:

{
   "message": "Successfully updated user Role details."
}

Revoke roles from an existing user in a specific instance database

PATCH /mongodb/<instance_id>/databases/<database_name>/users/<username>/revokeRoles

Note

You can only revoke roles using this API.

Request:

{
  "roles": [
      {
        "role": "read",
        "db": "test"
      },
      {
        "role": "readWrite",
        "db": "sampledb"
      }
  ]
}

Response:

{
   "message": "Successfully updated user Role details."
}

Delete an existing user from a specific instance database

DELETE /mongodb/<instance_id>/databases/<database_name>/users/<username>

Response:

{
    "data": "Successfully deleted User \"<username>\" from Database \"<database_name>\"."
}

MongoDB Instance Level User Management (RBAC)

The MongoDB RBAC API calls enable more visibility and granular control over the Role Based Access of your MongoDB users at the Instance Level, such as create/delete/update users’ MongoDB defined roles and access, get a list of existing users, and update user passwords.

We currently support the following MongoDB defined access roles for Instance Level (RBAC):

  • read

  • readWrite

  • dbOwner

  • dbAdmin

  • userAdmin

  • clusterMonitor

  • readAnyDatabase

  • readWriteAnyDatabase

  • dbAdminAnyDatabase

Should you have questions, contact the support team support@objectrocket.com

Reference: Built-In Roles - Database Manual v8.0 - MongoDB Docs

Get a list of all users belonging to the given MongoDB instance

GET mongodb/<instance_id>/users

Response:

{
   "data": [
        {
            "name": "myuser",
            "roles": [
                {
                    "role": "readWrite",
                    "db": "test"
                },
                {
                    "role": "readAnyDatabase",
                    "db": "admin"
                }
            ],
            "customData":{
                "Department": "Accounts"
            }
        }
   ]
}

Get individual user information belongs to the given MongoDB instance

GET mongodb/<instance_id>/users/<username>

Response:

{
  "data": {
      "user": "testuser",
      "db": "admin",
      "customData": {
          "Deapartment": "Accounts"
      },
      "roles": [
          {
              "role": "dbOwner",
              "db": "testdb"
          },
          {
              "role": "dbOwner",
              "db": "test"
          },
          {
              "role": "readAnyDatabase",
              "db": "admin"
          },
          {
              "role": "clusterMonitor",
              "db": "admin"
          }
      ]
  }
}

Create a new user in the specific MongoDB instance

POST mongodb/<instance_id>/users

Note

The Instance-level user will be created in admin database by default.

1. For Instance-level roles like readWriteAnyDatabase, readAnyDatabase, dbAdminAnyDatabase no need to provide any scope.

Request:

{
     "username": "test_user",
     "password": "Pass1234",
     "roles": [
         {
             "role": "readWriteAnyDatabase"
         },
         {
             "role": "readAnyDatabase"
         }
     ],
     "customData":{"Department":"Accounts","login":"some_login"}
}

Response:

{
"data": {
    "message": "Successfully added an Instance Level user '{username}' to instance '{instance_name}'."
     }
}

2. For Databse-level roles like read , readWrite, dbAdmin, dbOwner, userAdmin the scope must be a list of databases or a single database present in the instance.

Request:

{
     "username": "test_user",
     "password": "password1234",
     "roles": [
         {
             "role": "dbOwner",
             "scope": ["test_db", "testing"]
         },
         {
             "role": "readWrite",
             "scope": ["test"]
         }
     ],
     "customData":{"Department":"Accounts"}
}

Response:

{
"data": {
    "message": "Successfully added an Instance Level user '{username}' to instance '{instance_name}'."
     }
}

3. For cluster Monitor the scope must be admin only.

Request:

{
    "username": "test_user",
    "password": "mypassword",
    "roles": [
         {
            "role": "clusterMonitor",
            "scope": "admin"
         }
    ]
}

Response:

 {
"data": {
    "message": "Successfully added an Instance Level user '{username}' to instance '{instance_name}'."
     }
}

Note

The field customData is optional. If omitted, it defaults to an empty dictionary ({}).

Update an existing user’s password or roles or a scope for a specific instance

PATCH mongodb/<instance_id>/users/<username>

Note

You can update the password, roles, scope and custom data at a time or individually.

1. To update roles, password, scope and custom data:

Request:

{
     "password": "mypassword",
     "roles": [
         {
             "role": "read",
             "scope":["test","testdb"]

         },
         {
             "role": "dbAdminAnyDatabase"
         },
         {
             "role": "clusterMonitor",
             "scope":["admin"]
         }
     ],
     "customData":{"Department":"Accounts"}
}

Response:

{
 "data": {
     "message": "Successfully updated {user} ["roles", "password", "custom_data"] details on instance {instance_name}."
      }
 }

2. To update only password:

Request:

{
     "password": "mypassword"
}

Response:

{
"data": {
    "message": "Successfully updated {user} ["password"] details on instance {instance_name}."
     }
}

3. To update only roles:

Request:

{
  "roles": [
        {
            "role": "read",
            "scope":["test","testdb"]

        },
        {
            "role": "dbAdminAnyDatabase"
        },
        {
            "role": "clusterMonitor",
            "scope":["admin"]
        }
} ]

Response:

{
"data": {
    "message": "Successfully updated {user} ["roles"] details on instance {instance_name}."
     }
}

4. To update only customData:

Request:

{
   "customData":{"Department":"Accounts"}
}

Response:

{
"data": {
    "message": "Successfully updated {user} ["custom_data"] details on instance {instance_name}."
     }
}

Grant roles to an existing user for a specific instance

PATCH mongodb/<instance_id>/users/<username>/grantRoles

Note

You can only grant roles using this API.

Request:

{
     "roles": [
         {
             "role": "read",
             "scope":["test","testdb"]

         },
         {
             "role": "dbAdminAnyDatabase"
         },
         {
             "role": "clusterMonitor",
             "scope":["admin"]
         }
     ]
}

Response:

{
 "data": {
     "message": "Successfully updated {user} ["roles"] details on instance {instance_name}."
      }
 }

Revoke roles from an existing user for a specific instance

PATCH mongodb/<instance_id>/users/<username>/revokeRoles

Note

You can only revoke roles using this API.

Request:

{
     "roles": [
         {
             "role": "read",
             "scope":["test","testdb"]

         },
         {
             "role": "dbAdminAnyDatabase"
         },
         {
             "role": "clusterMonitor",
             "scope":["admin"]
         }
     ]
}

Response:

{
 "data": {
     "message": "Successfully updated {user} ["roles"] details on instance {instance_name}."
      }
 }

Delete an existing user from a specific instance

DELETE /mongodb/<instance_id>/users/<username>

Response:

{
    "data": {"message": "Successfully deleted user '{username}' from instance '{instance_name}}'."
}