複数のツリーをホスティングするためのセットアップ¶
デフォルトでは、Gramps Webは構成ファイルで指定された単一の家系図データベース(「ツリー」)へのアクセスのみを許可します。
しかし、Gramps Web APIバックエンドのバージョン0.7.0以降、単一のインストールから複数のツリーを提供することも可能です。ただし、現在のところ各ユーザーは単一のツリーに結びついているため、このセットアップはユーザー間でツリーを共有するのには適しておらず、複数の孤立したGramps Webインスタンスをホスティングするためのものです。
マルチツリーサポートを有効にする¶
マルチツリーサポートを有効にするには、TREE構成オプションを単一のアスタリスク*に設定する必要があります。例えば、構成ファイルでは次のようになります。
TREE = "*"
これにより、サーバーのGrampsデータベースディレクトリ内のすべてのツリーにアクセスできるようになります(十分なユーザー権限がある場合)。ツリーのIDはサブディレクトリの名前です。次のコマンドを使用して、既存のツリー(名前とID)をリストできます。
python -m gramps_webapi --config /app/config/config.cfg tree list
さらに、MEDIA_PREFIX_TREE構成オプションをTrueに設定して、メディアファイルが別のサブフォルダに保存されるようにすることをお勧めします。そうしないと、ユーザーは権限のないツリーに属するメディアファイルにアクセスできてしまいます!
特定のツリーにユーザーアカウントを追加する¶
特定のツリーにユーザーを追加するには、ユーザー追加コマンドに--tree TREEIDコマンドラインオプションを追加するだけです。また、JSONペイロードにtreeプロパティを設定して/users/エンドポイントにPOSTすることもできます。
ユーザー名とメールアドレスは、すべてのツリーで一意である必要があります。
新しいツリーを作成する¶
新しいツリーを作成するには、Gramps CLIを使用するのではなく、/trees/エンドポイントにPOSTすることをお勧めします。これにより、ツリーIDとしてUUIDv4が使用され、名前が推測できないため、追加のセキュリティが提供されます。現在、新しく作成されたツリーにはSQLiteのみがサポートされています。
認証¶
認証(トークンを取得する)には、ユーザー名とパスワードのみが必要です。これは単一ツリーモードと同様で、各ユーザーに対してツリーIDが既知であるため、提供する必要はありません。
既存のメディアファイルを移行する¶
既存のGramps Webインスタンスをマルチツリーサポートに移行したい場合、ローカルメディアファイルを使用している場合は、それらをツリーIDを名前とする元の場所のサブフォルダに移動するだけで済みます。
S3にホストされているメディアファイルを使用している場合は、gramps-web-apiリポジトリのscriptsディレクトリに提供されているスクリプトを使用できます。
python scripts/s3_rename.py BUCKET_NAME TREE_ID
これは、関連するアクセスキーがすでに環境変数として設定されていることを前提としています。
既存のユーザーデータベースを移行する¶
マルチツリーサポートを有効にし、既存のユーザーを再利用したい場合は、彼らを特定のツリーに割り当てる必要があります。この目的のために提供されている次のコマンドを使用できます。
python -m gramps_webapi --config /app/config/config.cfg user fill-tree TREE_ID
フロントエンドをカスタマイズする¶
ログインページからアクセスできる登録ページは、マルチツリーセットアップでは機能しません。登録にはツリーを指定する必要があるためです。したがって、フロントエンド構成でhideRegisterLinkをtrueに設定することをお勧めします。