Inicialización de Datos
Si estás desplegando Casdoor con otros servicios como una aplicación completa, es posible que quieras proporcionar una característica listo para usar para los usuarios. Esto significa que los usuarios pueden usar directamente la aplicación sin ninguna configuración.
En tal situación, puedes usar la inicialización de datos para registrar tu servicio en Casdoor a través de un archivo de configuración. Este archivo puede ser predefinido o generado dinámicamente por tu propio servicio.
Aquí damos un tutorial para importar o exportar datos de configuración.
Importar Datos de Configuración
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.
Si estás utilizando la imagen oficial de Docker de Casdoor, aquí hay algunos scripts que pueden ayudarte a montar init_data.json en el contenedor.
Una plantilla para init_data.json se proporciona en: init_data.json.template. Renómbralo a init_data.json antes de usarlo.
Para Docker
Si despliegas Casdoor con Docker, puedes usar el comando volume para montar init_data.json en el contenedor.
docker run ... -v /path/to/init_data.json:/init_data.json
Para Kubernetes
Si despliegas Casdoor con Kubernetes, puedes usar el configmap para almacenar init_data.json.
apiVersion: v1
kind: ConfigMap
metadata:
name: casdoor-init-data
data:
init_data.json:
Puedes montar los datos en los pods de Casdoor montando el configmap. Puedes modificar tu deployment de la siguiente manera:
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 Datos de Configuración
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.
Referencias
Todos los objetos de Casdoor soportados por la inicialización de datos son los siguientes:
| Objeto | Estructura de Go | Documentación |
|---|---|---|
| organizaciones | struct | doc |
| aplicaciones | struct | doc |
| usuarios | struct | doc |
| certificados | struct | doc |
| proveedores | struct | doc |
| ldaps | struct | doc |
| modelos | estructura | |
| permisos | struct | doc |
| pagos | struct | doc |
| productos | estructura | doc |
| recursos | estructura | doc |
| roles | estructura | doc |
| sincronizadores | estructura | doc |
| tokens | estructura | doc |
| webhooks | estructura | doc |
| grupos | estructura | doc |
| adaptadores | estructura | doc |
| aplicadores | estructura | |
| planes | struct | doc |
| precios | struct | doc |
| invitaciones | estructura | doc |
| registros | struct | |
| sesiones | estructura | |
| suscripciones | estructura | doc |
| transacciones | estructura |
Si todavía te sientes confundido sobre cómo llenar esta plantilla, puedes llamar a la API RESTful o usar el modo de depuración de tu navegador para ver la respuesta de GetXXX a estos objetos. Las respuestas están en el mismo formato que init_data.json.