メインコンテンツにスキップ

データ初期化

Casdoorを他のサービスと一緒に完全なアプリケーションとしてデプロイする場合、ユーザーにすぐに使える機能を提供したいかもしれません。 これは、ユーザーが何の設定もせずにアプリケーションを直接使用できることを意味します。

このような状況では、設定ファイルを通じてCasdoorにサービスを登録するためにデータ初期化を使用できます。 このファイルは事前に定義されているか、または独自のサービスによって動的に生成されることがあります。

ここでは、設定データのインポートまたはエクスポートのチュートリアルを提供します。

設定データのインポート

Casdoorのルートディレクトリにinit_data.jsonという名前の設定ファイルがある場合、それはCasdoorでのデータ初期化に使用されます。 あなたがする必要があるのは、このファイルをCasdoorが実行されるルートディレクトリに配置することです。

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 ストラクトドキュメンテーション
組織structdoc
アプリケーションstructdoc
ユーザーstructdoc
証明書struct
プロバイダーstructdoc
LDAPstructdoc
モデルストラクト
権限ストラクトドキュメント
支払いストラクトドキュメント
製品ストラクトドキュメント
リソースストラクトドキュメント
ロールストラクトドキュメント
同期器ストラクトドキュメント
トークンストラクトドキュメント
ウェブフックストラクトドキュメント
グループストラクトドキュメント
アダプターストラクトドキュメント
エンフォーサーストラクト
プランストラクトドキュメント
価格設定ストラクトドキュメント
招待状ストラクトドキュメント
記録ストラクト
セッションストラクト
サブスクリプションストラクトドキュメント
トランザクションストラクト

このテンプレートの記入にまだ混乱している場合は、RESTful APIを呼び出すか、ブラウザのデバッグモードを使用してこれらのオブジェクトに対するGetXXXのレスポンスを確認できます。 レスポンスはinit_data.jsonと同じフォーマットです。