Qmonus Documents /
SDK Portal /9.起動パラメータ

起動パラメータ

SDK Portalの様々な設定を起動時に指定することができます
起動オプションはyaml形式のコンフィグファイルとしても記述可能で、デプロイ環境毎に作成・管理し、ファイル指定で起動時するような利用方法も可能です。

Qmonus-SDK Labをご利用の際は、起動オプションはいずれもGUIから指定することが可能です。

  • グローバル設定
  • Site設定
  • 外部認証連携設定
  • 認証プロキシー設定
  • ログ保存設定
  • セッション管理
  • SDK Core 環境設定
  • SDK Portal プラグイン設定
  • SDK Portal 機能拡張設定(オプション機能)

  •  

    グローバル設定

    オプション デフォルト 必須 説明
    1 +disable_superuser boolean false Qmonusメンテナンス用のアカウントによるログインを許容するか否か
    2 +disable_axislogin boolean false Qmonusアカウントによるキー/パスワードによるログインを許容するか否か(trueの場合は、外部プロバイダ連携設定が必須となります)[注意] false でkey/passによるログインを許容する場合は、WAF等でアクセス制限することを推奨します
    3 +allow_ws_upgrades boolean true ブラウザからWebsocketへのupgradeを許容するか。falseの場合は、ロングポーリングを実施
    4 +enable_user_logon_notify boolean false ユーザログイン時に通知を出す
    5 +admin_token string - 管理用コンソールのログイントークン(Basic認証) 指定した場合は、8880ポートで管理コンソールに接続が可能になります。username:password をbase64でエンコードした文字列を指定します。
    6 +authentication_provider object - 外部認証連携設定を行います(外部認証連携の章を参照)
    7 +environments array - * 接続先SDK Coreサーバーの設定を行います。必須情報です。

     

    Site設定

    ログイン画面に表示されるタイトルやアイコン、ポータルのテーマなどのカスタマイズを行います

    オプション デフォルト 必須 説明
    1 +site.name string - ログイン画面のタイトルを指定できます。
    2 +site.icon string(url) - ログイン画面に表示するアイコンを指定できます。外部サイトのイメージURLを指定してください。
    3 +site.copyright string - ログイン画面に表示するコピーライトを指定できます。
    4 +site.theme string dark デフォルトのポータル表示テーマを指定します light / dark
    5 +site.lang string en デフォルトの言語設定を指定します(JA / EN)
    6 +site.color string - ポータルのヘッダカラーを変更します。カラーコードでの指定が可能ですが、テーマとの親和性から [ yellow / red / blue / green / crimson ] のいずれかの仕様を推奨します
    Tip

    開発環境毎を使い分ける場合には、site.color をカスタマイズすることを推奨します。
    例えば商用環境では crimson を、商用維持環境では yellow を指定するなどルール化することで誤操作防止に役立ちます。

     

    外部認証連携設定

    authentication_provider に以下のように複数の外部認証プロバイダ設定を指定することができます。
    ログイン画面でそれぞれのプロバイダに対応するアイコンが表示されるので、ユーザがログイン方法を選択することができます。

    以下の [provider1] と指定しているキーワードは、任意に指定が可能です。ここで指定したキーワードで、認証連携時のコールバックAPIが生成されます。下記の場合には、https://XXXXX/auth/provider1/callback のようにURLでコールバックパスが指定されます

    boot_params
    authentication_provider : provider1: provider : google default_role : forced_role : allowed_account : "^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@ntt.com$" use_on : - 8881 properties : provider2: . . .

    プロバイダ設定(共通)

    オプション デフォルト 必須 説明
    1 provider string - * 認証方式を指定します。利用できる認証方式は [ qmonus / google / github / gitlab / slack / auth0 / saml / openid ] のいずれかです。それぞれで指定するpropertiesの値が異なります
    2 default_role string - このプロバイダ経由でログインしたアカウントのロールが指定されていない場合に設定するロールを指定します。
    3 forced_role string - このプロバイダ経由でログインしたアカウントのロールを指定したロールに強制的に固定します
    4 allowed_account string 指定した正規表現ルールにマッチするアカウントのみログインを許可します
    5 use_on array このプロバイダ経由でログインしたアカウントが制御可能なポータルサービスを制限することができます
    6 properties object * 認証・認可の方式のオプション設定です。認証方式によって指定する値が異なります。
    アカウントのロールバインディングについて

    SDKポータルのログインは、SDKのアカウント/ロールと連動しており、外部プロバイダで認証したアカウントIDが、SDKのアカウント情報に存在するかどうかでログイン可否を判断します。アカウントのロール特定が必要になるためです。
    そのため、外部プロバイダで認証されたアカウントがSDKのアカウント情報に存在しない場合はログインができません。事前に対応するアカウント情報の作成が必要になります。

    しかし実際のユースケースでは、アカウントを事前にプラグインとして作成しておくことが困難なケースもあります。
    上記の[default_role / forced_role ]を指定してロール判定を固定する、もしくは外部認証プロバイダ側にSDKロールとのバインドルール(Google IAMなど)を設定することでロール判定が可能な場合は、アカウントが存在しない場合でも当該ロールのSDKアカウントをSDK Portalが自動で作成しログインを実施させることができます。(ただしこの場合においてもロール情報は事前に作成しておく必要があります。)

    認証設定例
    • 別のSDKポータル連携の場合の設定例
    boot-params
    authentication_provider : provider1: strategy : qmonus properties : base_url : https://XXXXX pass_code : ************************** pass_phrase : ************* enableSLO : true
    SDKポータル連携オプション デフォルト 必須 説明
    1 base_url string - * SDKポータルのエンドポイントを指定します
    2 pass_code string - * SDKポータルの起動パラメータで指定している認証パスコードを指定します
    3 pass_phrase string - * SDKポータルの起動パラメータで指定している認証パスフレーズを指定します
    4 enableSLO boolean false trueの場合、ApiFrontの/logout に連動してSDKポータルからログアウトします。
    • Google連携の場合の設定例
    boot-params
    authentication_provider : provider1: strategy : google properties : project_id : ************************** client_id : ************************** client_secret : ************* callbackProto : https role_prefix : "hogefuga_"
    Google連携オプション デフォルト 必須 説明
    1 project_id string - GCPプロジェクト名を指定します。指定した場合はGCPのIAM情報をもとにロールバインディングを行います
    2 client_id string - * OAuthクライアントIDを指定します
    3 client_secret string - * OAuthクライアントのシークレットを指定します
    4 callbackProto string https
    5 role_prefix string axis_ Googleの該当ProjectのカスタムロールのIDで、QmonusSDKのログインロールを指定することができます。そのバインドするための検索Prefixを指定します。たとえば、[‘projects/{project_id}/roles/hogefuga_admin’ ]のようなカスタムロールがログインアカウントに指定されている場合は、[admin] をQmonusロールと識別することができます。
    • [v23.2 New] AzureAD連携の場合の設定例

    シンプルなOIDC連携の例 (ログインロール固定の場合)

    boot-params
    authentication_provider : azuread: provider : azuread default_role : guest #SDKのプラグインで定義されたロール名 properties: identityMetadata : "https://login.microsoftonline.com/xxxxxx/.well-known/openid-configuration" client_id : "xxxx" client_secret : "xxxx" redirectUrl: "https://xxxxx/auth/azuread/callback" response_type: "id_token code" response_mode: "form_post"

    Graph APIを用いてAzureAD側のロール設定と連動することも可能です。

    boot-params(ロール連動)
    authentication_provider : azuread: provider : azuread # providerロール と Qmonusロールとのマッピングルール # azureの場合はユーザには複数グループが設定されている前提。どのロールを適用するか決定するためrole_mapping_rulesの記載順に最初にヒットした1つがQmonusロールとして利用される。 role_mapping_rules : ROLE_E : owner ROLE_A : admin ROLE_B : member ROLE_ALL : member default_role : guest #default_roleと併用することで上記のルールにマッチしない場合のロール指定も可能 properties: identityMetadata : "https://login.microsoftonline.com/xxxxxx/.well-known/openid-configuration" client_id : "xxxx" client_secret : "xxxx" redirectUrl: "https://xxxxx/auth/azuread/callback" response_type: "id_token code" response_mode: "form_post" # Qmonus roleに紐付けるAzureのリソース(現時点ではgroupのみ対応) role_bind_resource : group
    Azure連携オプション デフォルト 必須 説明
    1 identityMetadata string - * https://login.microsoftonline.com/「テナントID」/.well-known/openid-configuration を指定します
    2 client_id string - * OAuthクライアントIDを指定します
    3 client_secret string - OAuthクライアントのシークレットを指定します。response_typeが「id_token」以外の場合は指定する必要があります
    4 role_bind_resource string group groupを指定した場合、Microsoft Graph API を用いて、ログインユーザのグループロールを参照し、SDKロールとバインドを行います。指定しない場合はロールバインドは行われません。default_role / forced_role によりログインロールを指定する必要があります
    5 response_type string id_token code 応答タイプを指定します。。「code」を指定した場合は認可コードが返却されます。「id_token」を指定した場合はIDトークンが返却されます
    6 response_mode string form_post 要求されたトークンをアプリにどのように返すかを指定します。「query」を指定した場合はリダイレクト URI のクエリー部に入ります。「fragment」を指定した場合はリダイレクト URI のフラグメント部に入ります。「form_post」を指定した場合はHTML FORMに入ります
    7 loggingNoPII string false passport-azure-adを使用したAzure OIDC認証連携で詳細ログを出力しないかを指定します。デフォルトはTrueです

     

    認証プロキシー設定

    ApiFrontや他のSDK Portalから、認証プロバイダとして動作させるための設定です。
    利用側のコンフィグで指定する値と、ここで指定する pass_code/pass_phrase は一致させる必要があります。
    セキュティを考慮し、ホワイトリストを設定して運用してください。

    オプション デフォルト 必須 説明
    1 +authentication_proxy.pass_code string - * 認証パスコード
    2 +authentication_proxy.pass_phrase string - * 認証パスフレーズ
    3 +authentication_proxy.allowed_uri allowed_uri [] リダイレクトを許可するURIのホワイトリスト。いずれかのサイトに前方一致するURLのみにリダイレクトを許可します。正規表現の利用が可能です。
    Tip

    起動ファイルでは、以下のように指定できます

    boot-params
    authentication_proxy: pass_code: xxxx pass_phrase: xxxx allowed_uri: - "https://[\S]*.hogehoge.com"

     

    ログ保存設定

    APIモニターログは、Portalサーバのストレージにファイルとして保存されます。ファイルは自動的にローテートされます。
    お使いのストレージの容量に合わせて保存設定を変更できます。デフォルトは 700m(100m*7世代)です。

    オプション デフォルト 必須 説明
    1 +logrotate.monitor.size string 100m ログファイルの保存上限です。
    2 +logrotate.monitor.count number 7 ログファイルの保存世代です。
    3 +logging.access string terminal アクセスログをコンテナログに表示させるかを指定します。
    4 +logging.monitor number ./var/log/monitor.log ログファイルの保存先です。
    Tip

    起動ファイルでは、以下のように指定できます

    boot-params
    logrotate : monitor: size : '100m' count : 75

     

    セッション管理

    ユーザのログイン状態はセッションストアで管理され、セッション識別用のIDはCookieでブラウザに保存されます。

    オプション デフォルト 必須 説明
    1 +session.cookieMaxAge number 82,800,000 クッキーの有効期限を指定します(ミリ秒)デフォルトは[82,800,000]ミリ秒 = 23時間です。
    2 +session.cookieSecure boolean false クッキーのSecure属性です。デフォルトは[false]です。
    3 +session.store string “File” セッションストアのタイプを指定します。File / Memory のいずれかを指定します

     

    SDK Core 環境設定

    接続先 SDK Coreの環境設定です。SDK Portalから複数環境への接続も可能なため、配列で指定します。複数設定されている場合は、ログインページでログイン環境を選択するプルダウンが表示されます。

    オプション デフォルト 必須 説明
    1 +environments.0.name string - * SDK Portalで表示される環境識別名です。
    2 +environments.0.default boolean false 複数環境設定した場合に、デフォルト環境を宣言するフラグです。
    3 +environments.0.description string - 環境補足情報です
    4 +environments.0.apikey string - * SDK Coreサーバーとの認証に利用するキー情報です。SDK Coreの設定と一致させる必要があります。
    5 +environments.0.super_username string - SDK Coreサーバーとの認証に利用するSUPERアカウント情報です。SDK Coreの起動パラメータ SDK > settings > options > apigw > super_usernameと一致させる必要があります。
    6 +environments.0.super_password string - SDK Coreサーバーとの認証に利用するSUPERアカウント情報です。SDK Coreの起動パラメータ SDK > settings > options > apigw > super_passwordと一致させる必要があります。
    7 +environments.0.enable_push_heartbeat boolean false SDK Coreサーバーからのheartbeat契機でアクセス先エンドポイントを追加するかどうか設定できます。詳細は以下のTipsを参考。
    8 +environments.0.axis_nodes array - 接続先のサーバのendpointを指定します。enable_push_heartbeat が false の場合は必須項目です
    9 +environments.0.metadata object - 環境に設定するメタ情報です。認可のカスタマイズ機能で利用します。
    10 +environments.0.port number 19090 SDK Core環境へのプロキシーサーバの起動ポートを指定することができます。指定しない場合は、19090 で起動します。 複数環境指定した場合は、19090からインクリメントされていきます。
    11 +environments.0.type string - 用途に合わせて表示を切り替えることができます。“all-in-one” / “automation” / “labo” / “dev” / “prod” / “staging” のいずれかを指定すると…
    Tip SDKサーバーのエンドポイントディスカバリ

    アクセス先 SDK Core サーバーの、エンドポイントディスカバリには、2つの方法があります。

    • アクティブ:
      起動パラメータのaxis_nodesで、明示的にエンドポイントを指定する方法です。SDK Portal起動直後から指定したエンドポイントへのアクセスを開始します。
    boot_params
    environments: - name : env1 enable_push_heartbeat : false apikey : XX axis_nodes : - https://apigw - https://scenario - https://transaction
    • パッシブ :
      enable_push_heartbeat が true の場合は、SDK Coreサーバーからのheartbeatを契機に、エンドポイントを学習します。SDK Coreの設定でPortalのエンドポイントの指定が必要です。
    boot_params
    environments: - name : env1 apikey : XX enable_push_heartbeat : true

    いずれの方式でも、apikey / super_username /super_password はSDK Coreサーバーの設定と一致させる必要があります。

    Tip

    環境に設定するメタ情報を使って、以下のような認可のカスタマイズも可能です

    boot_params
    custom_authorizations: - code: 403 message: アクセス可能な環境ではありません script: ( profile , env )=> env.metadata.tenant !== profile.metadata.tenant

     

    SDK Portal プラグイン設定

    カスタムダッシュボードなどのPortalのプラグインを利用する際に設定する項目です。IDEとしてだけ利用する際は特に設定は不要です。

    • plugins

      カスタムダッシュボードやカスタムサービスポータル、ウィジェットなど、ポータルのプラグインの設定を行います。
      content_dir で読み込みディレクトリを設定することができます。


      +plugins.content_dir=/var/plugins/xxxx
    • config_dir [非推奨]

      作成したポータルプラグインを編集不可能なビルトイン機能としてバンドルする際に利用します。この機能は非推奨のため、今後のメンテナンスは行われません。


      +config_dir=/var/builtins/xxxx
    • spa_dir

      E2E試験を利用する際に指定するディレクトリです。

    • e2e_report_dir

      E2E試験結果を保存するディレクトリを指定します。

    • e2e_endpoint

      E2E試験に関するAPIのEndpointを指定します。SDK Labで自動設定するパラメーターのため編集は非推奨です。

    • fileshare

      GUIアセット開発に利用する際に指定するディレクトリです。ApiFrontの開発をポータル上で行う際に指定します。SDK Labで自動設定するパラメーターのため編集は非推奨です。

     

    SDK Portal 機能拡張設定(オプション機能)

    その他の機能拡張用の設定です。いずれも任意設定です。

    • dashboard_provider

      カスタムダッシュボードを別のアプリケーションとして起動する設定です。指定したポート番号でダッシュボード機能のみを起動させることができます。


      +dashboard_provider.port=8889
    • links

      ポータルのDashboard as a Serviceメニューに指定した画面リンクを追加することができます。

      boot_params
      links: [ { "id": "任意の文字列", "name": "link name", "description": "desc of link", "url": "http://xxxx" } ],
    • publication [非推奨]

      メール通知用API(/apis/publication)の設定を行います。この機能は非推奨のため、今後のメンテナンスは行われません。

    • httpproxy

    • wsproxy

    • apiproxy

      SDK Portalサーバーにプロキシ設定を追加することができます。

      boot_params
      httpproxy:{ // port : url 9991 : "http://hoge" ## 別ポートでプロキシ起動 }, wsproxy:{ // port : url 9992 : "http://hoge" ## 別ポートでプロキシ起動 }, apiproxy : { // name : url "path_to_api": "https://xxxx" ## 起動ポートの /apis/path_to_api/proxy でアクセス可能 }
    10.API
    8.E2E Testチュートリアル