Hasura上的客户端数据备份

时间:2020-05-07 05:31:47

标签: javascript reactjs postgresql apollo hasura

问题是:如何获得客户端备份,以便用户可以将自己的数据获取到可下载的文件中,然后可以在以后将其用于还原所有数据?

有关我的堆栈的信息:

我在前端使用React,mobx,apollo。 我在后端使用Hasura和Postgresql。

我的应用程序将是多租户,但我尚未实现多租户,但是可能会发生,以便每个租户共享相同的Hasura数据库,并且tenant_id将允许他们仅访问自己的数据。

数据本身是建立在具有一对多关系的多个表上的。因此,备份实质上必须是用户全部数据的一种映像,其中包含必要的信息,以便在还原时,所有关系都像以前一样工作。

首先,我以一种幼稚的方式解决了这个问题(或者至少我认为这是幼稚的),这意味着我在客户端添加了一个按钮来下载数据,按下该按钮会导致阿波罗查询数据从Hasura中导出,并将数据导出为JSON以供客户端下载。

现在,在我的脑海中,我认为有一种更可靠,更安全的方法可以做到这一点。当然,我不希望用户能够从数据库中获取整个转储,而只能从用户有权访问的所有记录中获取。

1 个答案:

答案 0 :(得分:0)

创建两个负责导出和导入数据的Hasura动作。这些操作将指向2个微服务,这些微服务将根据我们对数据安全性/卫生性的确切要求对数据库进行查询/变异。