プロジェクトでは、ユーザー、グループ、パーミッションを格納する、新しい directory.json ファイルを導入しました。これにより、アプリケーション内の複数の部分において、設定やコードまたはコードによって認証、制限、許可をすることが可能になります。ここでは、組み込みされたサーバプロジェクトにおけるこのファイルの使用法に関する新しい改善点を見てみましょう。
リマインダー
プロジェクトでは、ユーザー、グループ、そして一部のパーミッションはディレクトリファイルに保存されます。この仕組みについて振り返るためには、こちらのプレゼンテーションのブログ記事 をもう一度読むか、またはこちらのビデオ をご覧ください。
ディレクトリファイル
プロジェクトディレクトリファイルは、プロジェクトのユーザー設定フォルダ(使用しているプロジェクトのProject フォルダの隣にあるSettings フォルダ) 内にあるdirectory.json ファイルです。

データディレクトリファイルは、データのユーザー設定フォルダ(使用しているデータファイルの隣のSettings フォルダ) 内にあるdirectory.json ファイルです。

アプリケーションディレクトリファイルは、アプリケーションのユーザー設定フォルダー(組み込みサーバーアプリケーションのServer Database フォルダー内のSettings フォルダ)内にあるdirectory.jsonファイルです。

ビルドアプリケーションプロセス中にファイルを埋め込む
これまでは、アプリケーションのビルド処理後に組み込みされたサーバーにディレクトリファイルを含めるのは開発者の仕事でした。ディレクトリファイルをアプリケーションのパッケージ内やデータファイルの隣に含めなかった場合、アプリケーション実行中はすべてのユーザーがDesigner アカウントとそのすべての権利を使用できることになってしまいます。
そこで、v19R5 から、この作業をより安全で簡単にするために、新しいbuildApp キーが自由に使用できるようになりました。このキーは、ビルドアプリケーションプロセス中に、組み込みされたサーバーにプロジェクトディレクトリファイルを自動的に埋め込みます。
<BuildApp>
<CS>
<ServerEmbedsProjectDirectoryFile>True</ServerEmbedsProjectDirectoryFile>
この新しい設定は、アプリケーションビルドダイアログでも利用可能であることに注意してください。

サーバー側の振る舞い
現在の動作は維持されます:4Dサーバーは、データディレクトリファイルが存在する場合、それを読み込みます。それ以外の場合は、アプリケーションディレクトリファイルがロードされます。
しかし、今後は、組み込みされたサーバープロジェクトにおいて、実行中にユーザー、グループ、およびパーミッションに加えられたすべての変更は、自動的にデータディレクトリファイルに保存されます。 アプリケーションディレクトリファイルは決して変更されず、そのため初期化ディレクトリ・ファイルと見なすことができます。これにより、アプリケーションの署名がmacOS 上で安全に残ることが保証され、また、サーバーアプリケーションを読み取り専用フォルダーに配置しても、エラーになることはありません。
サーバー起動時に、データディレクトリファイルが存在しない場合、アプリケーションディレクトリファイルに保存されているユーザー、グループ、パーミッション情報が存在すれば、それがロードされます。その後、ユーザー、グループ、パーミッションに変更が加えられると、それらはデータディレクトリファイルに保存されます。
技術アカウント
ユーザーとグループは、一般的には4D開発者が技術的なアカウントとして使用します。これは、ツールボックスを使用するか、あるいは4Dコードを使用して、現在のユーザー名を Current user でチェックするか、または現在のグループのメンバーシップをUser in group で調べます。このような場合、これらのユーザーとグループが永続的であることを確認するために、サーバーの起動時にチェックすることができますし、その後の変更は自動的にデータディレクトリファイルに保存されます
