3.5. HawtIO のカスタムブランディング設定
hawtconfig.json
は、HawtIO のフロントエンドコンソールを設定するためのエントリーポイント JSON ファイルです。これを使用して、コンソールのさまざまな部分 (ブランディング、スタイル、ログインページやバージョン情報モーダルなどの基本的な UI 部分、および一部の HawtIO プラグインのコンソール固有の動作) をカスタマイズできます。
以下は、hawtconfig.json
のファイルの例です。
hawtconfig.json の例:
{ "branding": { "appName": "HawtIO Management Console", "showAppName": false, "appLogoUrl": "hawtio-logo.svg", "companyLogoUrl": "hawtio-logo.svg", "css": "", "favicon": "favicon.ico" }, "login": { "description": "Login page for HawtIO Management Console.", "links": [ { "url": "#terms", "text": "Terms of Use" }, { "url": "#help", "text": "Help" }, { "url": "#privacy", "text": "Privacy Policy" } ] }, "about": { "title": "HawtIO Management Console", "description": "A HawtIO reimplementation based on TypeScript + React.", "imgSrc": "hawtio-logo.svg", "productInfo": [ { "name": "ABC", "value": "1.2.3" }, { "name": "XYZ", "value": "7.8.9" } ], "copyright": "© HawtIO project" }, "disabledRoutes": [ "/disabled" ] }
3.5.1. hawtconfig.json
の設定オプション
hawtconfig.json
の最上位レベルでは現在、次のオプションが提供されています。
最上位レベルの設定オプション
オプション | 説明 |
---|---|
| コンソールのブランディングオプション。 |
| ログインページの設定。 |
| モーダル設定。 |
| コンソールに表示しないプラグインのリスト。 |
| JMX プラグインの設定。 |
| HawtIO Online 設定。 |
3.5.1.1. ブランディング
branding
設定では、アプリケーション名、ロゴ、スタイル、ファビコン (favicon) など、コンソールのブランディングをカスタマイズするオプションが提供されます。
ブランディング設定オプション
オプション | デフォルト | 説明 |
---|---|---|
|
| コンソールのアプリケーション名をカスタマイズします。名前はブラウザーのタイトルヘッダーで使用され、オプションでコンソールページのヘッダーでも使用されます。 |
|
| コンソールページのヘッダーにアプリケーション名を表示します。 |
|
| アプリケーションロゴの代わりに URL を使用します。 |
|
| 会社のロゴの代わりに URL を使用します。 |
| コンソールに適用するカスタム CSS を提供します。 | |
| ファビコンの代わりに URL を使用します。 |
hawtconfig.json
での branding
設定は次のようになります。
"branding": { "appName": "HawtIO Management Console", "showAppName": false, "appLogoUrl": "hawtio-logo.svg", "companyLogoUrl": "hawtio-logo.svg", "css": "", "favicon": "favicon.ico" }
3.5.1.2. ログイン
login
設定では、HawtIO ログインページに表示される情報をカスタマイズするオプションが提供されます。
ログイン設定オプション
オプション | デフォルト | 説明 |
---|---|---|
| ログインページに表示されるテキストを設定します。 | |
| [ ] |
ログインページの下部にリンクを提供します。値は、 |
hawtconfig.json
での login
設定は次のようになります。
"login": { "description": "Login page for HawtIO Management Console.", "links": [ { "url": "#terms", "text": "Terms of Use" }, { "url": "#help", "text": "Help" }, { "url": "#privacy", "text": "Privacy Policy" } ] }
3.5.1.3. 概要
About
設定では、HawtIO の About モーダルに表示される情報をカスタマイズするオプションが提供されます。
設定オプションについて
オプション | デフォルト | 説明 |
---|---|---|
|
| About モーダルのタイトルをカスタマイズします。 |
| About モーダルに説明テキストを入力します。 | |
|
| URL を使用して、About モーダルのロゴイメージを置き換えます。 |
| [ ] |
コンソールで使用される追加コンポーネントの名前とバージョンの情報を提供します。値は、 |
| バージョン情報モーダルで著作権情報を設定します。 |
hawtconfig.json
の about
設定は次のようになります。
"about": { "title": "HawtIO Management Console", "description": "A HawtIO reimplementation based on TypeScript + React.", "imgSrc": "hawtio-logo.svg", "productInfo": [ { "name": "ABC", "value": "1.2.3" }, { "name": "XYZ", "value": "7.8.9" } ], "copyright": "© HawtIO project" }
3.5.1.4. 無効なルート
disabledRoutes
設定では、コンソールからプラグインを非表示にするオプションが提供されます。
オプションの値は、表示しないプラグインのパスを表す文字列の配列である必要があります。
hawtconfig.json
での disabledRoutes
設定は次のようになります。
"disabledRoutes": [ "/disabled" ]
3.5.1.5. JMX プラグイン
JMX プラグインは hawtconfig.json
の jmx
設定を介してカスタマイズできます。
デフォルトでは、HawtIO は JMX プラグインを介してすべての MBean をワークスペースにロードします。場合によっては、アプリケーションの負荷を軽減するために、カスタム HawtIO コンソールで MBean の一部のみをロードする必要がある場合があります。jmx
設定には、ワークスペースにロードされる MBean を制限するオプションが用意されています。
JMX プラグイン設定オプション
オプション | デフォルト | 説明 |
---|---|---|
| JMX プラグインワークスペースにロードする MBean ドメインとオブジェクト名のリストを指定します。 |
このオプションでは、false
を設定してワークスペースを完全に無効にするか、次の形式で MBean パスの配列を指定できます。
<domain>/<prop1>=<value1>,<prop2>=<value2>,...
ワークスペースにロードする MBean を微調整します。
ワークスペースを無効にすると、ワークスペースによって提供される MBean に依存するすべてのプラグインも非アクティブになります。
hawtconfig.json
での jmx
設定は次のようになります。
"jmx": { "workspace": [ "hawtio", "java.lang/type=Memory", "org.apache.camel", "no.such.domain" ] }
3.5.1.6. HawtIO オンライン
HawtIO Online のフロントエンド要素は、hawtconfig.json
の Online
設定で指定できます。
HawtIO オンライン設定オプション
オプション | デフォルト | 説明 |
---|---|---|
|
プロジェクトの監視に使用するセレクターを設定します。これは、HawtIO デプロイメントタイプが | |
|
OpenShift Web コンソールリンクを設定します。HawtIO デプロイメントが |
ConsoleLink 設定オプション
オプション | デフォルト | 説明 |
---|---|---|
| リンクのテキスト表示を設定します。 | |
|
リンクが表示されるアプリケーションメニューのセクションを設定します。これは、HawtIO デプロイメントタイプが | |
|
アプリケーションメニューのリンクの前に使用されるアイコンのパスを、HawtIO ステータス URL を基準として設定します。これは、 |
hawtconfig.json
での HawtIO online
設定は次のようになります。
"online": { "projectSelector": "myproject", "consoleLink": { "text": "HawtIO Management Console", "section": "HawtIO", "imageRelativePath": "/online/img/favicon.ico" } }
3.5.2. hawtconfig.json
のデプロイ
3.5.2.1. Quarkus
Quarkus アプリケーションの場合、hawtconfig.json
ファイルと、CSS ファイルやイメージなど、他に付随する静的リソースは、プロジェクトの src/main/resources
ディレクトリーにある META-INF/resources/hawtio
の下に配置する必要があります。
Quarkus プロジェクトの例は こちら にあります。
3.5.2.2. Spring Boot
Spring Boot アプリケーションの場合、hawtconfig.json
ファイルや CSS ファイルやイメージなどの他の静的リソースは、プロジェクトの src/main/resources
ディレクトリーの hawtio-static
の下に配置する必要があります。
Spring Boot プロジェクトの例は こちらで ご覧いただけます。
3.5.3. プラグインからのカスタマイズ
プラグインはコンソールに hawtconfig.json
ファイル自体を直接指定できませんが、メインのコンソールアプリケーションからファイルが読み込まれた後に設定をカスタマイズできます。
@hawtio/react
NPM パッケージは configManager
API を提供します。プラグインの index.ts
でこの API を使用して、プラグインの読み込み中に hawtconfig.json
の設定をカスタマイズできます。
プラグインから hawtconfig.json
設定をカスタマイズする方法の例を次に示します。
import { HawtIOPlugin, configManager } from '@hawtio/react' ... /** * The entry function of your plugin. */ export const plugin: HawtIOPlugin = () => { ... } // Register the custom plugin version to HawtIO // See package.json "replace-version" script for how to replace the version placeholder with a real version configManager.addProductInfo('HawtIO Sample Plugin', '__PACKAGE_VERSION_PLACEHOLDER__') /* * This example also demonstrates how branding and styles can be customised from a WAR plugin. * * The Plugin API `configManager` provides `configure(configurer: (config: Hawtconfig) => void)` method * and you can customise the `Hawtconfig` by invoking it from the plugin's `index.ts`. */ configManager.configure(config => { // Branding & styles config.branding = { appName: 'HawtIO Sample WAR Plugin', showAppName: true, appLogoUrl: '/sample-plugin/branding/Logo-RedHat-A-Reverse-RGB.png', css: '/sample-plugin/branding/app.css', favicon: '/sample-plugin/branding/favicon.ico', } // Login page config.login = { description: 'Login page for HawtIO Sample WAR Plugin application.', links: [ { url: '#terms', text: 'Terms of use' }, { url: '#help', text: 'Help' }, { url: '#privacy', text: 'Privacy policy' }, ], } // About modal if (!config.about) { config.about = {} } config.about.title = 'HawtIO Sample WAR Plugin' config.about.description = 'About page for HawtIO Sample WAR Plugin application.' config.about.imgSrc = '/sample-plugin/branding/Logo-RedHat-A-Reverse-RGB.png' if (!config.about.productInfo) { config.about.productInfo = [] } config.about.productInfo.push( { name: 'HawtIO Sample Plugin - simple-plugin', value: '1.0.0' }, { name: 'HawtIO Sample Plugin - custom-tree', value: '1.0.0' }, ) // If you want to disable specific plugins, you can specify the paths to disable them. //config.disabledRoutes = ['/simple-plugin'] })
WAR プラグインプロジェクトの例は こちら にあります。