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 の最上位レベルでは現在、次のオプションが提供されています。
最上位レベルの設定オプション
| オプション | 説明 |
|---|---|
|
| コンソールのブランディングオプション。 |
|
| ログインページの設定。 |
|
| about モーダル設定。 |
|
| コンソールに表示しないプラグインのリスト。 |
|
| 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 リンクのコピーリンクがクリップボードにコピーされました!
About 設定では、HawtIO の About モーダルに表示される情報をカスタマイズするオプションが提供されます。
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 プラグインプロジェクトの例は こちら にあります。