从高层次的角度来看,我想记录集合的所有更改。
我的第一种方法是使用另一个foxx服务:假设我有foxx服务A.在A中,我执行删除操作。我想使用foxx服务B将已删除的数据与其他时间戳信息一起记录到另一个审计集合中.A每次删除某些内容时都会调用B.
我的问题是:
据我所知,Arango不包括开箱即用的审计。以下是关于如何处理Foxx中的服务依赖性的笔记。官方文档可以找到here。这个文档似乎让我感到困惑,所以一旦我弄明白,我就会记下一些笔记:)
假设我们有service1,其中包含function1。我们想从服务2调用功能。
1.-在service1 export function1的顶级main.js文件中
module.exports.function1 = function1;
2.-在service1的清单中添加一个提供部分:
"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
}
- 在上面,顶级标签(“generic”)是依赖项的别名,它实际上可以是任何东西,只要它在清单中列出的所有依赖项中是唯一的。 “name”是指在service1的清单上定义的依赖关系。其他选项是自我解释的。
4.-在Arango web Gui中,转到service2的设置并单击依赖项按钮以添加依赖项的挂载点(右上角)。如果未启用该按钮,请确保已保存对service2清单的更改并且已在Arango中更新了服务)
/generic
5.-最后,在service2的代码中,使用上下文对象的依赖项引用依赖项
var generic = module.context.dependencies.generic;
const collection = generic.function1(param1,...);