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

Deeplからの自動翻訳

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

リマインダー

プロジェクトでは、ユーザー、グループ、一部のパーミッションはディレクトリファイルに保存されます。この仕組みについて思い出すために、このプレゼンテーションのブログ記事をもう一度読むか、このビデオを見ることができます。

ディレクトリファイル

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

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

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

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

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

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

この新しい設定は、Build Applicationダイアログでも利用可能であることに注意してください。

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開発・導入に慣れています。