Saltar al contenido principal

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:

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:

ObjetoEstructura de GoDocumentación
organizacionesstructdoc
aplicacionesstructdoc
usuariosstructdoc
certificadosstructdoc
proveedoresstructdoc
ldapsstructdoc
modelosestructura
permisosstructdoc
pagosstructdoc
productosestructuradoc
recursosestructuradoc
rolesestructuradoc
sincronizadoresestructuradoc
tokensestructuradoc
webhooksestructuradoc
gruposestructuradoc
adaptadoresestructuradoc
aplicadoresestructura
planesstructdoc
preciosstructdoc
invitacionesestructuradoc
registrosstruct
sesionesestructura
suscripcionesestructuradoc
transaccionesestructura

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.