-
-
Notifications
You must be signed in to change notification settings - Fork 10
Direction of INTER Mediator Development
Masayuki Nii edited this page May 9, 2026
·
56 revisions
(English is available following to Japanese.)
INTER-Mediator Directive Committee
- バッチ処理の定義をできるようにする(バッチ処理に対応するための構想)
- End-to-End Testの結果から保証された機能を出力(テストのドキュメント化と要求仕様への還元)
- セキュリティレベルを高めるための検知機能の組み込み(セキュリティを高める施策の検討)
- デバッグをアクティブにしていることを目立たせるために、画面に大きくメッセージを出すようにする
- SHA-1ベースの認証機能を取り除き、SHA-256のみとする。また、ソルトの長さも16バイトと長いものにする
- REST APIの自動生成で、クレデンシャルを伝達する方法を提供する
- Webサービスやマイクロサービスをデータソースとして利用できるようにする
- navigator.userAgentData対応
- End-to-End Testの充実
- LLM等を利用したドキュメント検索
- ファイルアップロードコンポーネントの高性能バージョン
- JavaScript実行環境のモダナイズ
- サイトのナビゲーションを自動生成する機能
- OAuth対応を広める
- passkeyによる認証に対応。passkeyを登録するページの作成サポート機能も用意した。(Passkeyによる認証)
- Authenticatorによる2要素認証に対応した。また、登録ページの作成サポートや、コード入力のUIのカスタマイズもできるようにした。(Authenticatorによる二要素認証)
- AIによるコーディング向けのプロンプトとして、関連テーブルを定義して編集を行う仕組みを追加できるものを追加した。
- リストの並び順に影響のあるフィールドの変更を行った場合に直後に並べ替えを行うようにした。
- コンテキスト定義を元にWeb APIを提供する仕組みを追加した。(定義ファイルからREST APIを生成)
- アップロードしたファイルのファイル名をカスタマイズできるようになった。
- インポートの前後に呼び出されるメソッドを定義でき、AfterImportあるいはBeforeImportをインプリメントして利用できるようにした。
- data-im-format="markdown"の指定により、テキストの内容をマークダウンとして解釈してレイアウトができるようになった。
- 認証のブルートフォース攻撃対応のため、一定時間内に一定数以上の認証の失敗があるIPアドレスに対して通信を遮断する機能を追加した。既定値ではオフとなっている。(認証のブルートフォース攻撃対策)
- 認証情報を保持するクッキーのSameSite属性をStrictにした。
- WebDriverIOのVer.9でEnd-to-End Testを実行できるようにしたが、一部のテストはVer.9で全く稼働せず、Ver.8の動作環境も別ディレクトリに用意した。
- ショートムービーによる解説を公開した。(INTER-Mediator紹介ビデオ(2025))
- PHPのサポートバージョンを、Ver.8.1以降とした
- FX.php経由のFileMaker Serverサポートは、PHPのバージョン対応の問題があるため、非サポートとした。FileMaker Serverを使う場合は、ESSないしはData APIを使ってください。
- LLM用のプロンプトを公開しました。Windsurfでの自動プログラミングに利用できます(Webアプリを自動生成、ここまでできる!)
- OAuth2による認証機能が復活しました。Google、Facebookに対応しています。
- マイナンバーカード認証がOAuth2プロバイダとして実装(マイナンバーカード認証サービスの利用)(マイナンバーカードでユーザ登録)
- passkeyを理論的にはサポート可能なことを確認(SAML経由でkeycloakを使うという手段があり、keycloakでのSAML認証は確認できた)
- chart.jsを使用したグラフ機能が実装(data-im-widget-alone属性を使用)(チャート作成プラグイン)
- パスワード記述をレポジトリ外にできるようにした(パスワードを他の場所に、及び、HTMLの部品化)
- ページファイル(HTMLファイル)を部品化して合成する仕組みを組み込んだ(パスワードを他の場所に、及び、HTMLの部品化)
- Docker用のGitHub Action「container-build.yml」の追加
- TinyMCEプラグインがHugeRTEプラグインに置き換え
- ユーザー名の大文字・小文字変換機能を導入
- OAuthとマイナンバーカード認証のための手動テスト手順が追加
- 電子メールによる2要素認証(2要素認証の実装)
- End-to-End Testの充実(電子メール認証、ユーザやグループの認可、ファイル表示と送信)
- ページネーションに見えている「更新」ボタンを既定で非表示にした
- ログインパネルのカスタマイズポイントを増加(説明文やボタンの定義など)
- 電子メールでのユーザ登録とパスワード変更のサンプルアプリをリライト
- サンプルとして、メールのテンプレートレコードのエディタを追加
- SAML認証のバグ修正と属性値の合成が可能に
- INTERMediatorOnPage.loguoutメソッドがSAML対応(どんな場合でもこのメソッドだけを呼び出すのでOK)
- 認証関連を中心にサーバの応答処理をリファクタリング
- XMLHttpRequestを利用している箇所をfetch関数に置き換え
- チュートリアル(学習コンテンツ)が、Ver.12対応となった
- PHP 7.4以降を運用環境として、PHPのコードで型の記述を既定とした
- Service Serverの起動処理として利用していたforeverの開発が止まったので、nodemonに切り替えた
- スキーマの自動生成機能を実装した。不足するフィールドやテーブルを自動的に作成可能となった(スキーマを認識してデータベース定義を自動化)
- マスター/ディテール形式のページを別々のページファイルで構成する場合のサポートを追加した(一覧/詳細形式のUIで一覧に戻った時の処理)
- 'instanciate'とミススペルしている箇所がプラグイン・外部ライブラリにあり、これらを直した
- End-to-End Testとして、マスター/ディテール形式、クライアント間同期、検索ページの動作について検証できるようになった
- 定義ファイルをYAML/JSONで供給可能に(定義ファイルのYAML化)
- エクスポートのクラスを定義し、エクスポート処理がより簡単に
- ページの言語対応(ローカライズ)処理の実装(サイトのローカライズ)
- ファイル保存で、fileをスキームとしたURLをパスとして保存可能に
- クライアント間の同期処理については、案件で利用する機会があり、デバッグ等が進んだ
- Swiftmailerを取り除き、Symphony Mailerベースに切り替えた
- End-to-EndテストをGitHub Actionsで実行可能になった。加えて、CIプロセスも失敗しないように。phpunit v10対応も
- トライアルVMを改め、Dockerで稼働するトライアルコンテナを用意(https://github.com/INTER-Mediator/IMApp_Trial)
- テキストフィールドで編集した結果を5秒後に自動的に保存する
- データベースのフィールドとバインドしているテキストフィールドの内容を、Control+Shift+Zでページを表示した時の値に戻す
- サービスサーバーの稼働を既定値ではオフとした
- 処理中を示すギアの画面の表示を0.3秒以上処理をしている時に限定した
- ファイルの保存先としてDropboxを利用できるようになった(検索時の演算子とDropbox対応)
- プラグインとして、QRCodeとMermaidに対応した
- ローカルコンテキストを利用した検索条件指定で、複数の検索条件の論理演算や、検索キーワードのスペースによる分離などに対応した(検索時の演算子とDropbox対応)
- 削除ボタンなど自動的に生成されるボタンのclass属性に追加するクラス名を指定できるようになり、CSSフレームワークとの連動がやりやすくなった
- 削除や追加ボタンの後にダイアログボックスが表示される場合、そのメッセージを、定義ファイルのコンテキスト定義でカスタマイズできるようになった
- サーバーサイドのログを、PHPのエラーログに出力させることができるようになった
- リピータやエンクロジャーの構築後に呼び出されるメソッドを名前規則から定義できるようになり、定義ファイルのコンテキスト定義での指定がなくても利用できるようになった。
- PHPのクラスを検索するパスを追加で指定できるようになった。
- 操作ログの処理をさらにカスタマイズできるようなり、クラスを定義して追加のフィールドへの記録処理を記述できるようになった
- PHPでのデータベース処理を容易に記述できるようにするProxy_ExtSupportトレイトを導入(アドバイザクラスを作りやすく、及び、最近の修正から)、加えてDB\Proxyクラスでトランザクション(Commit/Rollback)に対応
- LDAP認証、ネイティブ認証の仕組みを取り除いた。LDAPサーバを利用して認証したい場合は、SAML認証を利用する。これに伴い、SAML認証についてのマニュアルテスト結果をレポジトリに記録するようにした
- composerによってINTER-Mediatorをインストールできるようにした。INTER-Mediatorを使ったアプリケーションには、INTER-Mediatorを含めないでも良くなった。トライアルセットやハンズオンで作るBBSを、アプリケーションの一例として公開している。
- クロステーブルで、行や列の合計を自動的に計算して表示できるようにした
- エラーメッセージ、デバッグメッセージに加え、警告メッセージを扱えるようにした。警告メッセージはログに表示されるとともに、ユーザにはダイアログボックスで通知される
- 認証に関する部分でのSHA-1の利用箇所をSHA-2に移行
- 従来のハッシュ値を使えるようにしつつ、新たにハッシュ生成する場合はSHA-2になる仕組みも導入
- 認証のクレデンシャル情報を、http-onlyのクッキーに記録するようにした
- SAML認証を可能にした(SimpleSAMLphpを利用)
- クライアント間同期をINTER-Mediator単体で稼働できるようにする(Ver.6ではPusherの実装を一旦取り除いている)
- CSV/TSVファイルのアップロードとレコードの追加
- データベースから読み出す時の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モードで、ファイルのアップロードができるようになった(ファイルのアップロードとダウンロード)
- サーバーへのリクエストをデータベースに記録できるようにした(サーバー利用ログ作成機能)
- ルックアップ、つまりマスターから取り出した値をフィールドに入力する機能を実装した(ルックアップの実装)
- 2023年末にサポートを終了しました。
==========
INTER-Mediator Directive Committee
- Enable batch processing definitions (Concept for supporting batch processing)
- Output guaranteed features based on End-to-End Test results (Documenting tests and feeding back to requirement specifications)
- Integrate detection mechanisms to enhance security levels (Examining measures to improve security)
- Display a prominent on-screen message when debugging is active
- Remove SHA-1-based authentication and use SHA-256 only. Also increase salt length to 16 bytes
- Provide a method to transmit credentials in auto-generated REST APIs
- Enable web services and microservices to be used as data sources
- Support for navigator.userAgentData
- Expand End-to-End Test coverage
- Document search using LLMs and similar technologies
- High-performance version of the file upload component
- Modernize the JavaScript execution environment
- Auto-generate site navigation
- Broaden OAuth support
- Added support for passkey authentication. Also provided a helper for creating passkey registration pages. (Authentication with Passkey証)
- Added support for two-factor authentication with Authenticator. Also provided registration page creation support and customizable UI for code entry. (Two-factor Authentication with Authenticator)
- Added a prompt for AI-assisted coding that enables defining and editing related tables.
- When a field that affects list sort order is modified, the list is now re-sorted immediately afterward.
- Added a mechanism to provide Web APIs based on context definitions. (Generating REST API from Definition File)
- Uploaded file names can now be customized.
- Methods can now be defined to be called before and after import, implemented via the AfterImport or BeforeImport interfaces.
- Specifying data-im-format="markdown" now allows text content to be interpreted and rendered as Markdown.
- To counter brute-force authentication attacks, added a feature that blocks communication from IP addresses with a certain number of authentication failures within a given time period. This is disabled by default. (Responding the Brute-Force Attack for Breaking Authentication)
- Added the SameSite attribute of the authentication cookie and set to Strict.
- Updated End-to-End Tests to run on WebDriverIO Ver.9, though some tests do not work at all on Ver.9, so a separate directory with a Ver.8 environment was also prepared.
- Manual in short movies are created (talking with Japanese) (Short Movies Introducing INTER-Mediator(2025))
- PHP support version has been updated to Ver. 8.1 and later
- FileMaker Server support via FX.php is no longer supported due to PHP version compatibility issues. If you need to use FileMaker Server, please use ESS or Data API.
- LLM prompts have been published. They can be used for automatic programming in Windsurf (Web app auto-generation, look how far we've come!)
- OAuth2 authentication functionality has been restored. Google and Facebook are supported.
- My Number Card authentication has been implemented as an OAuth2 provider (Using My Number Card Authentication Service)(User Registration with My Number Card)
- Confirmed support for passkey theoretically (through SAML via keycloak, and SAML authentication with keycloak has been verified)
- Graph functionality using chart.js has been implemented (using data-im-widget-alone attribute) (Chart Creation Plugin)
- Enabled sensitive string to be stored outside the repository (Passwords in Other Locations, and HTML Component System)
- Implemented a mechanism to modularize and combine page files (HTML files) (Passwords in Other Locations, and HTML Component System)
- Added "container-build.yml" GitHub Action for Docker
- TinyMCE plugin replaced with HugeRTE plugin
- Introduced case conversion feature for usernames
- Added manual testing procedures for OAuth and My Number Card authentication
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 went to out of support at the end of 2023.