Manifest
To avoid compatibility problems with future versions of ArangoDB you should always specify the field, e.g.:
Previously Foxx distinguished between exports
and controllers
, each of which could be specified as an object. In ArangoDB 3.0 these have been merged into a single main
field specifying an entry file.
The easiest way to migrate services using multiple exports and/or controllers is to create a separate entry file that imports these files:
Old (manifest.json):
{
"exports": {
"doodads": "doodads.js",
"dingbats": "dingbats.js"
},
"controllers": {
"/dingbats": "routes/dingbats.js",
"/": "routes/root.js"
}
New (manifest.json):
{
"main": "index.js"
}
New (index.js):
Old:
{
// no defaultDocument
}
New:
{
}
This also means it is no longer necessary to specify the defaultDocument
field with an empty value to prevent the redirect and be able to serve requests at the /
(root) path of the mount point:
Old:
New:
// no defaultDocument
}
The assets
field is no longer supported in ArangoDB 3.0 outside of legacy compatibility mode.
Old:
{
"assets": {
"client.js": {
"files": ["assets/client.js"],
"contentType": "application/javascript"
}
}
New:
If you relied on being able to specify multiple files that should be concatenated, you will have to use build tools outside of ArangoDB to prepare these files accordingly.
The rootElement
field is no longer supported and has been removed entirely.
If your controllers relied on this field being available you need to adjust your schemas and routes to be able to handle the full JSON structure of incoming documents.
The field is no longer supported. The presence or absence of the field had no effect in most recent versions of ArangoDB 2.x and has now been removed entirely.