データ初期化
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.
Casdoorの公式Dockerイメージを使用している場合、init_data.jsonをコンテナにマウントするのに役立つスクリプトがいくつかあります。
init_data.jsonのテンプレートはこちらで提供されています:init_data.json.template。 使用する前にinit_data.jsonに名前を変更してください。
Docker用
Dockerを使ってCasdoorをデプロイする場合、volumeコマンドを使用してinit_data.jsonをコンテナにマウントできます。
docker run ... -v /path/to/init_data.json:/init_data.json
Kubernetes用
Kubernetesを使ってCasdoorをデプロイする場合、configmapを使用してinit_data.jsonを保存できます。
apiVersion: v1
kind: ConfigMap
metadata:
name: casdoor-init-data
data:
init_data.json:
Casdoorのpodsにデータをマウントするには、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の設定データをすべてファイルにエクスポートして、データ移行を行うこともできます。 TestDumpToFile()というGoテストがこちらで提供されています: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 | ドキュメント |
| モデル | ストラクト | |
| 権限 | ストラクト | ドキュメント |
| 支払い | ストラクト | ドキュメント |
| 製品 | ストラクト | ドキュメント |
| リソース | ストラクト | ドキュメント |
| ロール | ストラクト | ドキュメント |
| 同期器 | ストラクト | ドキュメント |
| トークン | ストラクト | ドキュメント |
| ウェブフック | ストラクト | ドキュメント |
| グループ | ストラクト | ドキュメント |
| アダプター | ストラクト | ドキュメント |
| エンフォーサー | ストラクト | |
| プラン | ストラクト | ドキュメント |
| 価格設定 | ストラクト | ドキュメント |
| 招待状 | ストラクト | ドキュメント |
| 記録 | ストラクト | |
| セッション | ストラクト | |
| サブスクリプション | ストラクト | doc |
| トランザクション | ストラクト |
このテンプレートの記入にまだ混乱している場合は、RESTful APIを呼び出すか、ブラウザのデバッグモードを使用してこれらのオブジェクトに対するGetXXXのレスポンスを確認できます。 レスポンスはinit_data.jsonと同じフォーマットです。