数据初始化
如果你正在将Casdoor与其他服务一起部署为一个完整的应用,你可能希望为用户提供一个开箱即用的功能。 这意味着用户可以直接使用应用程序,无需任何配置。
在这种情况下,您可以使用数据初始化通过配置文件在Casdoor中注册您的服务。 此文件可以预先定义,或由您自己的服务动态生成。
Here we give a tutorial for importing or exporting config data.
导入配置数据
如果在Casdoor的根目录中有一个名为init_data.json
的配置文件,它将被用来初始化Casdoor中的数据。 你只需要将此文件放在Casdoor将要运行的根目录中。
如果您正在使用Casdoor的官方Docker镜像,这里有一些脚本可以帮助您将init_data.json
挂载到容器中。
A template for init_data.json
is provided at: init_data.json.template. Rename it to init_data.json
before using it.
For Docker
如果你使用Docker部署Casdoor,你可以使用volume
命令将init_data.json
挂载到容器中。
docker run ... -v /path/to/init_data.json:/init_data.json
For Kubernetes
如果你使用Kubernetes部署Casdoor,你可以使用configmap
来存储init_data.json
。
apiVersion: v1
kind: ConfigMap
metadata:
name: casdoor-init-data
data:
init_data.json:
您可以通过挂载 configmap
将数据挂载到Casdoor的pods
中。 您可以按照以下方式修改您的deployment
:
apiVersion: apps/v1
kind: Deployment
...
spec:
template:
...
spec:
containers:
...
volumeMounts:
- mountPath: /init_data.json
name: casdoor-init-data-volume
subPath: init_data.json
volumes:
- configMap:
name: casdoor-init-data
name: casdoor-init-data-volume
Export Config Data
You can also export all of Casdoor configuration data into a file for data migration. A Go test named TestDumpToFile()
is provided at: init_data_dump_test.go
go test ./object -v -run TestDumpToFile
After running this Go test, a file named init_data_dump.json
will be generated in same directory. This file contains your full Casdoor configuration data. If you want to migrate the data into another Casdoor instance, just rename init_data_dump.json
to init_data.json
and move it to root directory of target Casdoor folder.
References
All Casdoor objects supported by the data initialization are as follows:
对象 | Go 结构体 | 文档 |
---|---|---|
组织机构 | struct | doc |
应用 | struct | doc |
用户 | struct | doc |
证书 | struct | |
提供商 | struct | doc |
ldaps | struct | doc |
models | struct | |
permissions | struct | doc |
payments | struct | doc |
products | struct | doc |
resources | struct | doc |
roles | struct | doc |
syncers | struct | doc |
tokens | struct | doc |
webhooks | struct | doc |
groups | struct | doc |
adapters | struct | doc |
enforcers | struct | |
plans | struct | doc |
pricings | struct | doc |
invitations | struct | doc |
records | struct | |
sessions | struct | |
subscriptions | struct | doc |
transactions | struct |
如果你对填写这个模板仍然感到困惑,你可以调用RESTful API,或者使用浏览器的调试模式来查看GetXXX
对这些对象的响应。 响应的格式与init_data.json
相同。