プロジェクトでは、ユーザー、グループ、パーミッションを含む新しい directory.json ファイルを導入しました。これにより、アプリケーションのいくつかの部分において、設定やコードによる認証、制限、パーミッションが可能になります。ここでは、マージされたサーバプロジェクトにおけるこのファイルの使用に関する新しい改善点を見てみましょう。
リマインダー
プロジェクトでは、ユーザー、グループ、一部のパーミッションはディレクトリファイルに保存されます。この仕組みについて思い出すために、このプレゼンテーションのブログ記事をもう一度読むか、このビデオを見ることができます。
ディレクトリファイル
プロジェクトディレクトリファイルは 、プロジェクトのユーザー設定フォルダ(使用するプロジェクトのプロジェクトフォルダの隣にある設定フォルダ)にあるdirectory.jsonファイルです。
データディレクトリファイルは、データのユーザー設定フォルダ(使用中のデータファイルの隣のSettingsフォルダ)内にあるdirectory.jsonファイルです。
アプリケーションディレクトリーファイルは、アプリケーションのユーザー設定フォルダー(マージしたサーバーアプリケーションのServer Databaseフォルダー内のSettingsフォルダー)内にあるdirectory.jsonファイルです。
ビルドアプリケーションプロセス中にファイルを埋め込む
ここまでは、アプリケーションのビルド処理後にマージされたサーバーにディレクトリファイルを含めるための作業でした。アプリケーションのパッケージやデータファイルの横にディレクトリファイルを含めないと、実行中にすべてのユーザーがDesignerアカウントとそのすべての権利を使用することになります。
そこで、v19R5から、より安全で簡単にするために、新しいbuildAppキーが自由に使用できるようになりました。このキーは、ビルドアプリケーションプロセス中に、マージされたサーバーにプロジェクトディレクトリファイルを自動的に埋め込みます。
<BuildApp>
<CS>
<ServerEmbedsProjectDirectoryFile>True</ServerEmbedsProjectDirectoryFile>
この新しい設定は、Build Applicationダイアログでも利用可能であることに注意してください。
サーバーサイドの動作
現在の動作は維持されます:4Dサーバーは、データディレクトリが存在する場合、それを読み込みます。それ以外の場合は、アプリケーションディレクトリ がロードされます。
しかし、今後は、マージされたサーバープロジェクトにおいて、実行中にユーザー、グループ、およびパーミッションに加えられたすべての変更は、自動的にデータディレクトリファイルに保存されます。 アプリケーション・ディレクトリ・ファイルは決して触れられず、初期化ディレクトリ・ファイルと見なすことができます。これにより、アプリケーションの署名がmacOS上で安全に残ることが保証され、また、サーバーアプリケーションを読み取り専用フォルダーに配置しても、エラーになることはありません。
サーバー起動時に、データディレクトリーファイルが存在しない場合、アプリケーションディレクトリーファイルに保存されているユーザー、グループ、パーミッションが存在すれば、それが読み込まれます。その後、ユーザー、グループ、パーミッションに変更が加えられると、データ・ディレクトリ・ファイルに保存されます。
技術アカウント
ユーザーとグループは、4D開発者が技術的なアカウントとして使用することがよくあります。これは、ツールボックスを使用するか、4Dコードで、現在のユーザー名を Current userまたはグループメンバーとして User in group.このような場合、これらのユーザーとグループが永続的であることを確認するために、サーバーの起動時にチェックすることができますし、その後の変更も自動的にデータディレクトリ・ファイルに保存されます