Inicialização de Dados
Se você está implantando o Casdoor com outros serviços como uma aplicação completa, você pode querer fornecer um recurso pronto para uso para os usuários. Isto significa que os usuários podem usar a aplicação diretamente sem qualquer configuração.
Nessa situação, você pode usar a inicialização de dados para registrar seu serviço no Casdoor por meio de um arquivo de configuração. Este arquivo pode ser pré-definido ou gerado dinamicamente pelo seu próprio serviço.
Aqui nós damos um tutorial para importar ou exportar dados de configuração.
Importar Dados de Configuração
By default, if there is a configuration file named init_data.json at the root directory of Casdoor, it will be used to initialize data in Casdoor. You can also specify a custom path for the initialization file by setting the initDataFile parameter in conf/app.conf:
initDataFile = /path/to/your/init_data.json
If no custom path is specified, Casdoor will look for init_data.json in the root directory where Casdoor runs.
Se você está usando a imagem oficial do Docker do Casdoor, aqui estão alguns scripts que podem ajudá-lo a montar init_data.json no contêiner.
Um modelo para init_data.json é fornecido em: init_data.json.template. Renomeie para init_data.json antes de usá-lo.
Para Docker
Se você implantar o Casdoor com o Docker, você pode usar o comando volume para montar init_data.json no contêiner.
docker run ... -v /path/to/init_data.json:/init_data.json
Para Kubernetes
Se você implantar o Casdoor com o Kubernetes, você pode usar o configmap para armazenar init_data.json.
apiVersion: v1
kind: ConfigMap
metadata:
name: casdoor-init-data
data:
init_data.json:
Você pode montar os dados nos pods do Casdoor montando o configmap. Você pode modificar sua implantação da seguinte forma:
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
Exportar Dados de Configuração
You can export all Casdoor configuration data to a file for backup or migration purposes. There are two methods available:
Using the Binary (Recommended)
If you're running Casdoor from a binary, use the -export flag to dump the database to a JSON file:
# Export to default location (init_data_dump.json)
./casdoor -export
# Export to a custom path
./casdoor -export -exportPath /path/to/backup.json
The export runs after database initialization but before the server starts, then exits automatically. This method works with any deployment method (binary, Docker, Kubernetes) and doesn't require Go toolchain or source code access.
Using Go Test
If you have access to the source code, you can use the test method:
go test ./object -v -run TestDumpToFile
This will generate init_data_dump.json in the same directory.
Migrating Data
After exporting, rename init_data_dump.json to init_data.json and place it in the root directory of your target Casdoor installation. On startup, Casdoor will automatically import the data.
Referências
Todos os objetos do Casdoor suportados pela inicialização de dados são os seguintes:
| Objeto | Estrutura Go | Documentação |
|---|---|---|
| organizações | struct | doc |
| aplicações | struct | doc |
| usuários | struct | doc |
| certificados | struct | doc |
| fornecedores | struct | doc |
| ldaps | struct | doc |
| modelos | estrutura | |
| permissões | struct | doc |
| pagamentos | struct | doc |
| produtos | estrutura | doc |
| recursos | estrutura | doc |
| papéis | estrutura | doc |
| sincronizadores | estrutura | doc |
| tokens | estrutura | doc |
| webhooks | estrutura | doc |
| grupos | estrutura | doc |
| adaptadores | estrutura | doc |
| executores | estrutura | |
| planos | struct | doc |
| preços | struct | doc |
| convites | estrutura | doc |
| registros | struct | |
| sessões | estrutura | |
| assinaturas | estrutura | doc |
| transações | estrutura |
Se você ainda se sente confuso sobre como preencher este modelo, você pode chamar a API RESTful ou usar o modo de depuração do seu navegador para ver a resposta de GetXXX para esses objetos. As respostas estão no mesmo formato que init_data.json.