ArangoDB-我可以使用foxx创建审计服务来记录所有更改

问题描述 投票:0回答:1

从高层次的角度来看,我想记录集合的所有更改。

我的第一种方法是使用另一个foxx服务:假设我有foxx服务A.在A中,我执行删除操作。我想使用foxx服务B将已删除的数据与其他时间戳信息一起记录到另一个审计集合中.A每次删除某些内容时都会调用B.

我的问题是:

  1. 这是标准/可能的方法吗?或者arango有其他内部审计方法吗?
  2. 有没有关于如何从1个服务调用其他服务的示例?
arangodb foxx
1个回答
1
投票

据我所知,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,...);
© www.soinside.com 2019 - 2024. All rights reserved.