从高角度来看,我想记录集合的所有更改。
我的第一种方法是使用另一个foxx服务: 假设我有foxx服务A。在A中,我执行删除操作。我想使用foxx服务B将已删除的数据与其他时间戳信息一起记录到另一个审核集合中。A每次删除某些内容时都会调用B。
我的问题是:
答案 0 :(得分:1)
据我所知,Arango不包括开箱即用的审计功能。下面是有关如何处理Foxx中的服务依赖关系的说明。官方文档可以在here中找到。该文档对我来说似乎很混乱,所以一旦弄清楚,便会写一些注释:)
假设我们有包含function1的service1。我们想从service2调用function1。
1.--在service1导出功能1的顶层main.js文件中
module.exports.function1 = function1;
2.--在service1的清单中添加一个Provides部分:
"provides" :{
"@generic/generic" : "0.0.1"
},
–在上面,“ @ generic”是一个命名空间,“ generic”是将用于引用此特殊依赖性的名称。请注意,名称空间不必为此一项服务唯一,而可以在其他服务中使用(例如“ @ generic / helper”)
3.-修改service2的清单,该清单将消耗依赖项,以便它知道依赖项。
"generic": {
"name": "@generic/generic",
"version": "^0.0.1",
"description": "Generic collection get",
"required": false,
"multiple":false
}
–在上面,顶层标签(“通用”)是依赖项的别名,只要它在清单中列出的所有依赖项中是唯一的,它实际上就可以是任何东西。 “名称”是指在service1清单上定义的依赖项。其他选项不言自明。
4.-在Arango Web Gui中,转到service2的设置,然后单击“依赖项”按钮以添加依赖项的安装点(右上角)。如果未启用该按钮,请确保已保存对service2清单的更改,并且已在Arango中更新了该服务)
/generic
5.-最后,在service2的代码中,使用上下文对象的依赖项引用该依赖项
var generic = module.context.dependencies.generic;
const collection = generic.function1(param1,...);