Инициализация данных
Если вы развертываете Casdoor вместе с другими сервисами как полноценное приложение, вы можете предоставить пользователям функцию «из коробки». Это означает, что пользователи могут напрямую использовать приложение без какой-либо настройки.
В такой ситуации вы можете использовать инициализацию данных для регистрации вашего сервиса в Casdoor через файл конфигурации. Этот файл может быть предопределенным или динамически сгенерированным вашим собственным сервисом.
Здесь мы предоставляем учебник по импорту или экспорту конфигурационных данных.
Импорт конфигурационных данных
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.
Если вы используете официальный образ Docker для Casdoor, вот некоторые скрипты, которые могут помочь вам смонтировать init_data.json в контейнер.
Шаблон для init_data.json предоставлен по адресу: init_data.json.template. Переименуйте его в init_data.json перед использованием.
Для Docker
Если вы развертываете Casdoor с помощью Docker, вы можете использовать команду volume для монтирования init_data.json в контейнер.
docker run ... -v /path/to/init_data.json:/init_data.json
Для Kubernetes
Если вы развертываете Casdoor с помощью Kubernetes, вы можете использовать configmap для хранения init_data.json.
apiVersion: v1
kind: ConfigMap
metadata:
name: casdoor-init-data
data:
init_data.json:
Вы можете смонтировать данные в pods Casdoor, смонтировав configmap. Вы можете изменить ваш 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
Экспорт конфигурационных данных
Вы также можете экспортировать все конфигурационные данные Casdoor в файл для миграции данных. Go тест с именем TestDumpToFile() предоставлен по адресу: init_data_dump_test.go
go test ./object -v -run TestDumpToFile
После выполнения этого Go теста, файл с именем init_data_dump.json будет сгенерирован в той же директории. Этот файл содержит полные конфигурационные данные Casdoor. Если вы хотите мигрировать данные в другой экземпляр Casdoor, просто переименуйте init_data_dump.json в init_data.json и переместите его в корневой каталог целевой папки Casdoor.
Ссылки
Все объекты Casdoor, поддерживаемые инициализацией данных, перечислены ниже:
| Объект | Структура Go | Документация |
|---|---|---|
| организации | struct | doc |
| приложения | struct | doc |
| пользователи | struct | doc |
| сертификаты | struct | doc |
| провайдеры | struct | doc |
| ldap | struct | документация |
| модели | struct | |
| разрешения | struct | документация |
| платежи | struct | документация |
| продукты | struct | документация |
| ресурсы | struct | документация |
| роли | struct | документация |
| синхронизаторы | struct | документация |
| токены | struct | документация |
| вебхуки | struct | документация |
| группы | struct | документация |
| адаптеры | struct | документация |
| принудители | struct | |
| планы | struct | документация |
| ценообразование | struct | документация |
| приглашения | struct | документация |
| записи | struct | |
| сессии | struct | |
| подписки | struct | doc |
| транзакции | struct |
Если вы все еще чувствуете себя сбитым с толку при заполнении этого шаблона, вы можете вызвать RESTful API или использовать режим отладки вашего браузера, чтобы увидеть ответ GetXXX на эти объекты. Ответы представлены в том же формате, что и init_data.json.