# 設定ファイル

設定ファイル（hul_gtw_config.yml）では、HULFT10 API Gatewayを使用するために、サーバー関連の情報、ログおよびデータベース関連の項目を設定します。設定ファイルの更新はテキストエディタで行ってください。

設定ファイル（hul_gtw_config.yml）は以下にあります。

    $HULFT_API_GATEWAY_PATH/etc/hul_gtw_config.yml

## 項目一覧

設定ファイル（hul_gtw_config.yml）の設定項目は以下のとおりです。

表4.1 設定ファイル（hul_gtw_config.yml）

項目名 | タグ名 | 初期値 | 設定値 | 要否
--- | --- | --- | --- | ---
サーバー関連定義 | server |  |  |
| ポート番号 | port | 8080 | 1～65535 | 必須
| シャットダウンタイムアウト | shutdown-timeout | 30 | 10～259200 | 必須
| TLSポート番号 | tls-port |  | 1～65535(*1) | 任意(*2)
| TLS秘密鍵 | tls-secret-key |  | ファイルパスとして有効な文字列 | 任意(*2)
| TLS証明書 | tls-crt |  | ファイルパスとして有効な文字列 | 任意(*2)
| サービス名 | service-name |  | 30バイト以内の英文字、数字、半角スペース | 設定不可(*3)
データベース関連定義 | database |  |  |
| ホスト名 | host |  | hulgtw | 必須
| ポート番号 | port | 5432 | 1～65535 | 必須
| データベース名 | dbname | hulgtw |  | 必須
| ユーザー名 | username |  |  | 必須
| パスワード | password |  |  | 必須
| 接続リトライ回数 | connect-retry-count | 10 | 0～9999 | 任意(*4)
| テーブルプレフィックス | table-prefix | hulft | 12バイト以内の英小文字、数字 | 必須
| カラム暗号化キー | column-encryption-key | HULFTENCRYPTKEY | 1024バイト以内の英文字、数字 | 必須
| SSLモード | ssl-mode | disable | disable、require、verify-ca、verify-full | 任意
| SSLルート証明書 | ssl-root-cert |  | ファイルパスとして有効な文字列 | 任意(*5)
ログ定義 | log |  |  |
| ログレベル | level | info | off、info、warn、error | 必須
| ファイルパス | filepath | ./ | ファイルパスとして有効な文字列 | 任意
| ファイルサイズ | max-size | 1024 | 0、10～10240 | 必須

*1 | : | ポート番号と異なる番号で設定してください。
*2 | : | TLS通信を有効にしたい場合は、TLSポート番号 TLS秘密鍵 TLS証明書をすべて指定してください。
*3 | : | サービス名には、サービス登録コマンドを実行する際に指定したサービス名が入ります。 サービス登録コマンドを実行する際にサービス名を指定しなかった場合は、サービス名は空文字になります。
*4 | : | 接続リトライ回数は省略された場合、“0”と指定されます。
*5 | : | SSLモードに“verify-ca”または“verify-full”を指定した場合は、SSLルート証明書を指定してください。

## 各項目の説明

設定ファイルの各項目について説明します。

### サーバー関連定義（server）

ポート番号（port）

  HTTPリッスン時に使用されるポート番号

シャットダウンタイムアウト（shutdown-timeout）

  サーバー終了命令を出した後に強制終了まで待機する時間（単位：秒）

TLSポート番号（tls-port）

  HTTPSリッスン時（TLS通信）に使用されるポート番号

  tls-crt 、tls-secret-key と同時に指定することでHTTPSリッスン起動になります。

TLS秘密鍵（tls-secret-key）

  HTTPSリッスン時（TLS通信）に指定するTLS秘密鍵ファイルのパス

  tls-port、tls-crt と同時に指定することでHTTPSリッスン起動になります。

TLS証明書（tls-crt）

  HTTPSリッスン時（TLS通信）に指定するTLS証明書ファイルのパス

  tls-port、tls-secret-key と同時に指定することでHTTPSリッスン起動になります。

サービス名（service-name）

  指定したサービス名

  Windowsの指定するサービスが起動されます。

### データベース関連定義（database）

ホスト名（host）

  接続するデータベースのホスト名

ポート番号（port）

  接続するデータベースのポート番号

データベース名（dbname）

  アプリケーションで使用するデータベース名

ユーザー名（username）

  データベースへの接続に使用するユーザー名

パスワード（password）

  データベースへの接続に使用するパスワード

接続リトライ回数（connect-retry-count）

  データベースへの接続をリトライする回数

  リトライ回数の上限に達した場合、サーバーがエラーで終了します。

  “0”を指定すると、リトライはしません。

テーブルプレフィックス（table-prefix）

  データベースに作成されるテーブル名の先頭に付加される文字列

  既存のテーブルが無い場合、データベースの起動時に新規にテーブルが作成されます。新しいテーブルの名前の先頭にテーブルプレフィックス（table-prefix）で指定した値が付加されます。

カラム暗号化キー（column-encryption-key）

  認証情報カラムの暗号化に使用されるキー情報

SSLモード（ssl-mode）

  データベースとのSSL通信レベル

  - disable

    SSLを使用しません。

  - require

    SSLを必須としますが、SSLルート証明書の有効性検証は必須としません。

  - verify-ca

    SSLを必須とし、SSLルート証明書のCA検証を行います。

  - verify-full

    SSLを必須とし、SSLルート証明書のCA検証およびホスト名検証を行います。

  詳しい設定については、PostgreSQLの公式ドキュメントを参照してください。

SSLルート証明書（ssl-root-cert）

  SSL通信に使用されるルート証明書ファイルのパス

### ログ定義（log）

ログレベル（level）

  アプリケーションログの出力レベル

  - off

    ログの出力なし

  - info

    正常に動作していることを把握するための情報が表示

  - warn

    システムの動作に影響する可能性がある問題を特定するための情報が表示

  - error

    エラーの内容や対処方法など、システムの復旧を目的とした情報が表示

  出力されるログの優先度は以下のとおりです。

      ←優先度低     優先度高→
      off < info < warn < error

  優先度が指定したログレベル以上のログが出力されます。

  例）ログレベル（level）に“warn”を指定した場合、“info”のログは出力されません。“warm”および“error”のログが出力されます。

ファイルパス（filepath）

  アプリケーションログ（hul_gtw_console.log）の出力先となるファイルパス

  省略した場合は、ログの出力先は実行モジュールと同じ階層になります。

  フルパスでの入力をお勧めします。

ファイルサイズ（max-size）

  アプリケーションログがローテーションされるファイルサイズ（単位：MiB）

  “0”を指定する場合、ログファイルは切り替えられません。