Skip to content

Direction of INTER Mediator Development

Masayuki Nii edited this page Oct 26, 2024 · 47 revisions

(English is available following to Japanese.)

INTER-Mediatorの方向性(2024-10-26更新)

INTER-Mediator Directive Committee

今後の開発課題

Ver.14以降の取り組み予定

  • バッチ処理の定義をできるようにする(バッチ処理に対応するための構想
  • End-to-End Testの結果から保証された機能を出力(テストのドキュメント化と要求仕様への還元)
  • Webサービスやマイクロサービスをデータソースとして利用できるようにする
  • アプリケーション内でWeb APIを作成しやすくする仕組みを提供する
  • navigator.userAgentData対応
  • End-to-End Testの充実
  • Email以外の2要素認証動作の提供
  • LLM等を利用したドキュメント検索
  • ファイルアップロードコンポーネントの高性能バージョン
  • JavaScript実行環境のモダナイズ
  • サイトのナビゲーションを自動生成する機能
  • OAuth対応をどうするのか?

Ver.14での重点開発項目

  • PHPのサポートバージョンを、Ver.8.1以降とする
  • passkeyをサポートする(SAML経由でkeycloakを使うという手段があり、一度検証する)
  • グラフ表示などを行うためのコンポーネント基盤
  • パスワード記述をレポジトリ外にできるようにする
  • ページファイル(HTMLファイル)を部品化して合成する仕組み

最近に終了しているバージョン

Ver.13(2024-10-26)

  • 電子メールによる2要素認証(2要素認証の実装
  • End-to-End Testの充実(電子メール認証、ユーザやグループの認可、ファイル表示と送信)
  • ページネーションに見えている「更新」ボタンを既定で非表示にした
  • ログインパネルのカスタマイズポイントを増加(説明文やボタンの定義など)
  • 電子メールでのユーザ登録とパスワード変更のサンプルアプリをリライト
  • サンプルとして、メールのテンプレートレコードのエディタを追加
  • SAML認証のバグ修正と属性値の合成が可能に
  • INTERMediatorOnPage.loguoutメソッドがSAML対応(どんな場合でもこのメソッドだけを呼び出すのでOK)
  • 認証関連を中心にサーバの応答処理をリファクタリング
  • XMLHttpRequestを利用している箇所をfetch関数に置き換え

Ver.12(2024-02-07)

  • チュートリアル(学習コンテンツ)が、Ver.12対応となった
  • PHP 7.4以降を運用環境として、PHPのコードで型の記述を既定とした
  • Service Serverの起動処理として利用していたforeverの開発が止まったので、nodemonに切り替えた
  • スキーマの自動生成機能を実装した。不足するフィールドやテーブルを自動的に作成可能となった(スキーマを認識してデータベース定義を自動化
  • マスター/ディテール形式のページを別々のページファイルで構成する場合のサポートを追加した(一覧/詳細形式のUIで一覧に戻った時の処理)
  • 'instanciate'とミススペルしている箇所がプラグイン・外部ライブラリにあり、これらを直した
  • End-to-End Testとして、マスター/ディテール形式、クライアント間同期、検索ページの動作について検証できるようになった

Ver.11(2023-07-27)

  • 定義ファイルをYAML/JSONで供給可能に(定義ファイルのYAML化
  • エクスポートのクラスを定義し、エクスポート処理がより簡単に
  • ページの言語対応(ローカライズ)処理の実装(サイトのローカライズ
  • ファイル保存で、fileをスキームとしたURLをパスとして保存可能に
  • クライアント間の同期処理については、案件で利用する機会があり、デバッグ等が進んだ
  • Swiftmailerを取り除き、Symphony Mailerベースに切り替えた
  • End-to-EndテストをGitHub Actionsで実行可能になった。加えて、CIプロセスも失敗しないように。phpunit v10対応も

Ver.10(2022-10-13)

  • トライアルVMを改め、Dockerで稼働するトライアルコンテナを用意(https://github.com/INTER-Mediator/IMApp_Trial)
  • テキストフィールドで編集した結果を5秒後に自動的に保存する
  • データベースのフィールドとバインドしているテキストフィールドの内容を、Control+Shift+Zでページを表示した時の値に戻す
  • サービスサーバーの稼働を既定値ではオフとした
  • 処理中を示すギアの画面の表示を0.3秒以上処理をしている時に限定した
  • ファイルの保存先としてDropboxを利用できるようになった(検索時の演算子とDropbox対応
  • プラグインとして、QRCodeとMermaidに対応した
  • ローカルコンテキストを利用した検索条件指定で、複数の検索条件の論理演算や、検索キーワードのスペースによる分離などに対応した(検索時の演算子とDropbox対応
  • 削除ボタンなど自動的に生成されるボタンのclass属性に追加するクラス名を指定できるようになり、CSSフレームワークとの連動がやりやすくなった
  • 削除や追加ボタンの後にダイアログボックスが表示される場合、そのメッセージを、定義ファイルのコンテキスト定義でカスタマイズできるようになった
  • サーバーサイドのログを、PHPのエラーログに出力させることができるようになった
  • リピータやエンクロジャーの構築後に呼び出されるメソッドを名前規則から定義できるようになり、定義ファイルのコンテキスト定義での指定がなくても利用できるようになった。
  • PHPのクラスを検索するパスを追加で指定できるようになった。
  • 操作ログの処理をさらにカスタマイズできるようなり、クラスを定義して追加のフィールドへの記録処理を記述できるようになった

Ver.9(2022-01-31)

  • PHPでのデータベース処理を容易に記述できるようにするProxy_ExtSupportトレイトを導入(アドバイザクラスを作りやすく、及び、最近の修正から)、加えてDB\Proxyクラスでトランザクション(Commit/Rollback)に対応
  • LDAP認証、ネイティブ認証の仕組みを取り除いた。LDAPサーバを利用して認証したい場合は、SAML認証を利用する。これに伴い、SAML認証についてのマニュアルテスト結果をレポジトリに記録するようにした
  • composerによってINTER-Mediatorをインストールできるようにした。INTER-Mediatorを使ったアプリケーションには、INTER-Mediatorを含めないでも良くなった。トライアルセットハンズオンで作るBBSを、アプリケーションの一例として公開している。
  • クロステーブルで、行や列の合計を自動的に計算して表示できるようにした
  • エラーメッセージ、デバッグメッセージに加え、警告メッセージを扱えるようにした。警告メッセージはログに表示されるとともに、ユーザにはダイアログボックスで通知される

Ver.8(2021-07-22)

  • 認証に関する部分でのSHA-1の利用箇所をSHA-2に移行
  • 従来のハッシュ値を使えるようにしつつ、新たにハッシュ生成する場合はSHA-2になる仕組みも導入
  • 認証のクレデンシャル情報を、http-onlyのクッキーに記録するようにした
  • SAML認証を可能にした(SimpleSAMLphpを利用)

Ver.7(2021-03-20)

  • クライアント間同期をINTER-Mediator単体で稼働できるようにする(Ver.6ではPusherの実装を一旦取り除いている)
  • CSV/TSVファイルのアップロードとレコードの追加

Ver.6(2020-11-29)

  • データベースから読み出す時のAJAX通信の非同期化し、クライアントとサーバー間の通信は全て非同期になった
  • PHP 5をサポート対象から外し、PHP 7以降がサーバー側の要件となったが、事実上、PHP 7.1以降となる
  • ECMAScript 6の機能で実装を進める。ブラウザはPromise, async/awaitの実装を必須とするため、Internet Explorerをサポート対象から外した
  • Node.jsベースのサーバー(サービスサーバー)も稼働させ、主にサーバーサイドでValidationを実施できるようにした
  • JavaScriptの単体テストをjestで実行できるようにした
  • 単体で稼働できるような機能や、外部のライブラリを使う仕組みをプラグインとして独立させた
  • 電子メールの送信をSwiftMailerを使うようにし、テンプレートを向上させるとともに、テンプレート自体をデータベースに保存できるようにした(メール送信(Ver.6)
  • Slackへのメッセージ送信ができるようになった(Slackにメッセージを送信する
  • composerを利用してライブラリの統合を行うようにした。また、composerのスクリプト内でnpmをインストールし、JavaScriptのライブラリについても自動的にインストールされるようにした。ただし、composer updateコマンドの実施が必須となった(ダウンロードとインストール(Ver.6以降)
  • ファイル保存場所として、Amazon S3に対応した(時差対応、S3対応のデモ
  • ブラウザのタイムゾーンに合わせて時刻の表示や変更ができるようにした(時差に対応した時刻処理の実装時差対応、S3対応のデモ
  • Post-Onlyモードで、ファイルのアップロードができるようになった(ファイルのアップロードとダウンロード
  • サーバーへのリクエストをデータベースに記録できるようにした(サーバー利用ログ作成機能
  • ルックアップ、つまりマスターから取り出した値をフィールドに入力する機能を実装した(ルックアップの実装

Ver.5.x系列

  • 2023年末にサポートを終了しました。

==========

Direction of INTER-Mediator (Updated at 2024-10-26)

INTER-Mediator Directive Committee

Future Development Plans

Plan of Efforts after Ver.14

  • Enabling the definition of batch processing(The plan for batch processing - Japanese).
  • Assured features generated from the annotations of End-to-End Test code (Documenting Test and feed-back to requirements - Japanese)
  • Enabling the use of web services and microservices as data sources.
  • The least support version of PHP is going to 7.4, and describing type within PHP code.
  • A lot of mis-spelling 'instanciate' has to correct in entirely multiple repositories.
  • Using the navigator.userAgentData for browser checking.
  • More end-to-end test has to be developed.
  • 2-factor authentication other than e-mail.
  • Document search system with LLM.
  • File uploading component with extreme features JS library.
  • Modernizing JavaScript execution envrionment.
  • Automatic generating the site navigation.
  • How to support OAuth?

Ver.14, Focusing below:

  • Supporting PHP version is going to up to Ver.8.1.
  • Passkey support (or supporting with SAML2 platform).
  • Foundation of JavaScript component with context based binding to add the Chart one.
  • Avoiding any sensitive string as like password within repository.
  • HTML components for building a page file.

Recently Completed Versions

Ver.13(2024-10-26)

  • 2-factor authentication with email (Implementing 2-factor authentication - Japanese).
  • Added some End-to-End Tests (authentication by email, authorization, file display and upload).
  • The Update button on pagination goes invisible by default.
  • Added customizing points for the login panel (Explanation and buttons).
  • The sample app to enroll and reset password with email are rewritten.
  • The sample app for editing mail templates is added.
  • Bug fix for SAML authentication, also it's possible to combine some SAML attributes.
  • INTERMediatorOnPage.loguout method supports SAML, and it can log out on any cases.
  • Refactoring the server code especially authentication and authorization parts.
  • XMLHttpRequest is replaced with fetch function.

Ver.12(2024-02-07)

  • Tutorial(Step-by-Step cookbook) supports current version Ver.12.
  • The least support version of PHP is going to 7.4, and describing type within PHP code.
  • The forever for booting Service Server stop to update, so the booting is handled by the nodemon.
  • Generating schema feature is available. It can automatically create any fields/tables that don't defined. (Recognizing Schema from Application, and Automatic Database Schema Creation
  • APIs for master/detail style pages that are different pages are added. (On the Master/Detail UI, How is bacing to Master from Detail)
  • Wrong spelling as 'instanciate' in plug-ins and libraries are corrected.
  • Some End-to-End Tests are added, as the master/detail pages, synchronization with clients and searching page.

Ver.11(2023-07-27)

  • Definition file can be described with YAML/JSON format.
  • Defined the exporting class and get easier to develop that functions.
  • Localizing features realize to support multiple languages in on page.
  • In the file uploading features, the file url can be handled to store the file path.
  • Synchronization within clients are debugged because it adapted to a development case.
  • Moved from Swiftmailer to Symphony Mailer.
  • End-to-end tests are added as GitHub Actions, and ci process succeeded, also phpunit v10 adapted.

Ver.10(2022-10-13)

  • The trial VM is retired, and the Docker container which can work for trial purpose is prepared (https://github.com/INTER-Mediator/IMApp_Trial).
  • The edited text field value is going to store to the db in 5 seconds automatically.
  • The value in text field that binds to the field of the db can retrieve to the initial value of the page loaded with Control+Shift+Z.
  • Service Server still works but it doesn't boot in default.
  • The gear presentation which shows INTER-Mediator working starts to appear after 0.3 seconds in case of still working.
  • Dropbox can use for storing files.
  • Newly plug-in supports QRCode and Mermaid.
  • The condition with local context can define the operation with multiple items, also the term can divide with space and handle multiple items.
  • Automatic generating button's class attribute can contain any custom names. It's good for corroborating with CSS frameworks.
  • The dialog box message after Delete/Insert buttons can customize with context definitions in the definition file.
  • The operation log is more customizable, also the class which assign any value to more fields can define.
  • The naming convention is introduced to the methods called after generating repeater and enclosure without defining in the context.
  • The additional path to search PHP class can be defined in the params.php file.
  • Any messages from the server side processing can store in the PHP error log file.

Ver.9(2022-01-31)

  • Introduced the DB\Proxy_ExtSupport trait for creating db operations on PHP (Easier coding in Advicor Class, Also Latest Updates), and the DB\Proxy class supports the transaction (Commit/Rollback).
  • Eliminated the LDAP and Native Authentications. If you require to authenticate with LDAP server, you can use the SAML features. The result of manual testing with SAML features recorded on the file within this repository
  • INTER-Mediator can be installed from composer. You can create the application without any INTER-Mediator files. Trial Set and Simple BBS in Hands-on Session are examples of INTER-Mediator-based application.
  • You can add the summary line and column on the cross table.
  • Adding to error and debug messages, the warning message is introduced. It will be logging and show on dialog box.

Ver.8(2021-07-22)

  • The hash algorithm for authentication uses SHA-2 instead of SHA-1.
  • As far as the hash operations go, the interoperability has for working existing applications.
  • The credential of authentication stores http-only cookies on client.
  • SAML authentication with SimpleSAMLphp.

Ver.7 (2021-03-20)

  • Enable client-to-client synchronization to run on INTER-Mediator alone (Pusher implementation has been removed in Ver.6)
  • Uploading CSV/TSV file and adding records for each line.

Ver.6 (2020-11-29)

  • AJAX communication when reading from the database is asynchronous, and all communication between the client and server is asynchronous.
  • PHP 5 was removed from supported platforms, and PHP 7 or later became a server-side requirement, but in effect it will be PHP 7.1 or later.
  • Implement with ECMAScript 6 features. Internet Explorer is no longer supported because browsers require implementation of Promise and async / await.
  • We also started a Node.js-based server (service server) so that validation can be performed mainly on the server side.
  • JavaScript unit tests can now be run with jest
  • Independent functions that can be operated independently and mechanisms that use external libraries as plug-ins
  • SwiftMailer is now used to send emails, improving templates and allowing the templates themselves to be stored in the database(Sending Mail (Ver.6/Japanese)
  • You can now send messages to Slack (Send Messages to Slack)
  • Using composer to integrate libraries. Also, npm is going to be installed in the composer script so that the JavaScript library is also installed automatically. However, it is now mandatory to execute the composer update command (Download and Installation (Ver.6 or later))
  • Compatible with Amazon S3 as a file storage location (Time Difference and S3 Compatible Demo
  • Enabled to display and change the time according to the time zone of the browser (Implementation of Time Processing Corresponding to Time Difference, Time Difference and S3 Compatible Demo)
  • You can now upload files in Post-Only mode (File Upload and Download)
  • Enabled to record the request to the server in the database (Server Usage Logging)
  • Implemented lookup, that is, the function to input the value fetched from the master into the field (Implementation of Lookup)

Ver.5.x Series

  • Ver.5.x went to out of support at the end of 2023.