組み込みサーバプロジェクトにおけるディレクトリファイル管理

プロジェクトでは、ユーザー、グループ、パーミッションを格納する、新しい directory.json ファイルを導入しました。これにより、アプリケーション内の複数の部分において、設定やコードまたはコードによって認証、制限、許可をすることが可能になります。ここでは、組み込みされたサーバプロジェクトにおけるこのファイルの使用法に関する新しい改善点を見てみましょう。

リマインダー

プロジェクトでは、ユーザー、グループ、そして一部のパーミッションはディレクトリファイルに保存されます。この仕組みについて振り返るためには、こちらのプレゼンテーションのブログ記事 をもう一度読むか、またはこちらのビデオ をご覧ください。

ディレクトリファイル

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

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

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

ビルドアプリケーションプロセス中にファイルを埋め込む

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

<BuildApp>
<CS>
<ServerEmbedsProjectDirectoryFile>True</ServerEmbedsProjectDirectoryFile>

この新しい設定は、アプリケーションビルドダイアログでも利用可能であることに注意してください。

blank

サーバー側の振る舞い

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

技術アカウント

ユーザーとグループは、一般的には4D開発者が技術的なアカウントとして使用します。これは、ツールボックスを使用するか、あるいは4Dコードを使用して、現在のユーザー名を Current user でチェックするか、または現在のグループのメンバーシップをUser in group で調べます。このような場合、これらのユーザーとグループが永続的であることを確認するために、サーバーの起動時にチェックすることができますし、その後の変更は自動的にデータディレクトリファイルに保存されます

Avatar
- プロダクトオーナー - Damien Fuzeauは、2019年2月に4D Productチームに参加しました。プロダクトオーナーとして、ユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換することを担当しています。また、実装された機能が顧客のニーズを満たしているかどうかを確認することも彼の役割です。ナント大学のソフトウェア工学科を卒業。前職の会社では最初は開発者として(1997年に4Dを発見)、後にエンジニアリングマネージャーとソフトウェアアーキテクトとして、23年以上勤務しました。この会社は、4DのOEMパートナーであり、現在は数千のユーザーと数百のサーバーに向けて4Dベースのビジネスソフトを展開しています。ですから、Damienは、多言語環境での4D開発・導入に慣れています。