フォームからジョブフローを実行したときのエラーの影響について

コメント

13件のコメント

  • 正式なコメント
    Ichiro Takahashi

    ご確認ありがとうございます。

    ログに含まれるジョブフロー(CaSshCmdExec、_APIExecJobflow、J0020)は、
    フォームXで起動されるジョブフロー(J0020)と
    そのジョブフローから呼び出されるサブジョブフロー(CaSshCmdExec、_APIExecJobflow)で、
    実行ユーザにはグループを介して実行権限が付与されており、

    上記の条件ですと、以下ご推察いただいているとおりとなります。

    フォームにて実行ボタンを押下した後に遷移するプロセス詳細画面にて、ジョブフローのタブがあります。
    画面としては、コンソールタブがアクティブになっていますが、
    当該画面を定期的に更新する際に、
    当該ジョブフローを参照し、上記エラーログが発生しているのではないか

    実行中のプロセス詳細画面ではジョブフローの実行箇所を表示していますが、その際にジョブフローオブジェクトにアクセスするため、読み込み権限のないジョブフローを表示しようとするたびにエラーログが記録されることになります(弊社内でも同様の挙動を確認いたしました)。

    以上、よろしくお願いいたします。

     

    コメントアクション パーマリンク
  • Ichiro Takahashi

    フィックスポイントの高橋です。

    「Kompira内のアクセス権限を絞ったユーザでログインし、フォームからジョブフローを実行したとき」とのことですので、フォームを表示あるいは操作しているときに、当該ユーザが読み取り権限のないオブジェクトへのアクセスがありログが記録されているのではないかと推測いたします。

    弊社内で再現確認のために、当該のフォームが具体的にどのような定義になっているかをご提示いただくことは可能でしょうか。

    以上、よろしくお願いいたします。

    0
    コメントアクション パーマリンク
  • auto_ope

    ご確認ありがとうございました。

    弊社内で再現確認のために、当該のフォームが具体的にどのような定義になっているかをご提示いただくことは可能でしょうか。

    以下の権限を付与しています。

    フォーム→読み取り、実行 ジョブフロー※→実行 ※フォームから起動されるもの、及びそこのジョブフローから起動されるもの

     

    0
    コメントアクション パーマリンク
  • Ichiro Takahashi

    ご回答ありがとうございます。

    フォームと実行ジョブフローの権限につきましては承知いたしました。ただ、この情報だけでは原因の特定は難しい状況です。

    上記のような権限を持つ単純なジョブフローとフォームを用意して、フォームからジョブフローを起動するというだけでは、問題なくジョブフローの実行までできてご報告いただいているようなログは出現いたしませんでした。

    ログが kompirad.log であればジョブフロー開始後のジョブフロー動作内部でのエラーなどが記録されますが、kompira.log ということですのでジョブフロー開始前のブラウザ操作や API アクセス時のエラーが記録されているということは予想できます。

    フォームの定義によっては画面操作時に Kompira サーバに対して API アクセスを行なうこともあることから、その設定内容に影響をうけるような操作時エラーが記録されている可能性は考えられます。

    以下のようなフォーム編集画面で定義している、フォームの具体的な設定内容についての情報をいただけますでしょうか。

    あるいは、該当するフォームオブジェクトおよび呼び出すジョブフローオブジェクトをエクスポートしてご提供いただくことは可能でしょうか。

     

    0
    コメントアクション パーマリンク
  • auto_ope

    ご回答ありがとうございました。

    それぞれ以下となります。お手数ですがご確認のほど

    よろしくお願いいたします。

    sample_form_masked.json

    [{
        "id": 155848,
        "owner": "xxxxxxxxxx",
        "fields": {
            "submitObject": "/user/app/xxxxxxxxx_zzzz/Packages/zzzz_Package/Programs/Jobflows/Jobs/J0020",
            "fieldNames": [
                "code",
                "status",
                "start_index"
            ],
            "fieldDisplayNames": [
                "ワークフロー番号",
                "ステータス",
                "実行コマンド"
            ],
            "fieldTypes": [
                "Enum#{\n    \"enum\": [\n        \"aaaaaa-bbbb-cccc\"\n    ],\n    \"default\": \"aaaaaa-bbbb-cccc\",\n    \"no_empty\": true\n}",
                "Enum#{\n    \"enum\": [\n        \"受付\"\n    ],\n    \"default\": \"受付\",\n    \"no_empty\": true\n}",
                "Enum#{\n    \"enum\": [\n        [\n            1,\n            \"1:未:Command1 ¥xxx\"\n        ],\n        [\n            2,\n            \"2:未:Command2 yyy¥\"\n        ],\n        [\n            3,\n            \"3:未:¥¥¥¥Command3 zzz\"\n        ],\n        [\n            4,\n            \"4:未:Command2¥¥¥ yyy\"\n        ],\n        [\n            5,\n            \"5:未:Command2¥¥ yyy\"\n        ]\n    ],\n    \"default\": 1,\n    \"no_empty\": true\n}"
            ]
        },
        "user_permissions": {},
        "group_permissions": {
            "smtb_operator": {
                "readable": true,
                "writable": false,
                "executable": true,
                "priority": 0
            }
        },
        "created": "2023-08-28T18:43:20.333431+09:00",
        "updated": "2023-08-28T18:43:20.382991+09:00",
        "display_name": "実行",
        "description": "",
        "parent_object": "/user/data/xxxxxxxxx_zzzz/Forms/Exec",
        "objpath": "aaaaaa_bbbb_cccc",
        "typepath": "/system/types/Form"
    }]

     

    sample_jobflow_masked.json

    [{
        "id": 144517,
        "owner": "xxxxxxxxxx",
        "fields": {
            "source": "|code|\r\n|status|\r\n|start_index|\r\n以下省略\r\n",
            "multiplicity": null,
            "defaultCheckpointMode": false,
            "defaultMonitoringMode": "NOTHING"
        },
        "user_permissions": {},
        "group_permissions": {
            "smtb_operator": {
                "readable": false,
                "writable": false,
                "executable": true,
                "priority": 0
            }
        },
        "created": "2023-07-03T20:41:24.545840+09:00",
        "updated": "2023-09-01T19:29:18.672249+09:00",
        "display_name": "開始要求",
        "description": "",
        "parent_object": "/user/app/xxxxxxxxx_zzzz/Packages/zzzz_Package/Programs/Jobflows/Jobs",
        "objpath": "J0020",
        "typepath": "/system/types/Jobflow"
    }]
    0
    コメントアクション パーマリンク
  • Ichiro Takahashi

    フォームとジョブフローのサンプルご提供ありがとうございます。

    いただいたデータをもとに社内環境 (KE v1.6.8.post2) で再現確認を行なってみました。権限が制限されたユーザで当該フォームを表示、パラメータの選択、ジョブフローの実行などを行なってみましたが、ご報告いただいているようなログは出現いたしませんでした。

    御社環境でこのような操作でログが再現するか、あるいは同時期に他の端末やブラウザで異なる操作を行なっていなかったか、改めてご確認いただくことは可能でしょうか。

     

    0
    コメントアクション パーマリンク
  • auto_ope

    ご確認ありがとうございます。

    ・本件、当方v1.6.7を使用しているのですが、当該バージョン以降で修正されている可能性などはないのでしょうか?

    御社環境でこのような操作でログが再現するか、あるいは同時期に他の端末やブラウザで異なる操作を行なっていなかったか、改めてご確認いただくことは可能でしょうか。

    →該当操作はありません。

    0
    コメントアクション パーマリンク
  • auto_ope

    ・本件、当方v1.6.7を使用しているのですが、当該バージョン以降で修正されている可能性などはないのでしょうか?

    上記いかがでしょうか?

    0
    コメントアクション パーマリンク
  • Ichiro Takahashi

    ご返信遅くなり申し訳ございません。

    社内にで CentOS8 上に KE 1.6.7 を新規にインストールして、いただいたものと同等のフォームとジョブフローを作成して再現確認を行なってみました。

    前回同様に、権限が制限されたユーザで当該フォームを表示、パラメータの選択、ジョブフローの実行などを行なってみましたが、ご報告いただいているようなログは出現いたしませんでした。

    フォームから実行するジョブフローは制限ユーザでは閲覧不可になっているため、当該ユーザでジョブフローの画面を開こうとすると(例:フォーム画面からジョブフローのリンクをクリックすると)以下のようなエラーログが記録されますが、フォームの操作やフォームからのジョブフロー実行ではエラーログの記録はありませんでした。

    [2023-09-12 16:58:58,023:37464:mod_wsgi:Dummy-13] ERROR: HandleExceptionMiddleware._process_exception: PermissionDenied("'/root/test_limited_form/test_jobflow' は読み取り不可です",)

    いただいたフォームとジョブフローを見る限り、実行(開始)が出来ているのであればジョブフローの動作への影響があるとは考えにくいです(影響があれば kompirad.log にエラーが記録されていたり、プロセスが異常終了していると考えられます)。

    最初の投稿の2行のエラーログは、ブラウザまたは API によって権限がないオブジェクトへのアクセスがなされたことを示すログですので、回避策としてはそうしたアクセスを無くすことになります。現状では、フォーム操作とは別に要因があるように感じますが詳細は不明です。さらに HTTP のログを調査すれば、新たな情報を得られる可能性はあるかと思います。

    御社環境でのフォーム操作によるログの再現性についてはいかがでしょうか?

     

    0
    コメントアクション パーマリンク
  • auto_ope

    ご回答ありがとうございます。
    フォームXからジョブフローを実行しながら、ログを確認してみたところ、
    画面上は特にエラーが表示されることなく、kompira.logに以下のログが出力されていました。

    [2023-09-14 09:20:10,040:343588:mod_wsgi:Dummy-2] ERROR: api_exception_handler: PermissionDenied("'/user/app/xxxxx/Jobflows/Utils/CaSshCmdExec' は読み取り不可です",) on view <kompira.views.extends.object.APIView object at 0x7f2ffb1749e8>
    [2023-09-14 09:20:25,381:343588:mod_wsgi:Dummy-9] ERROR: api_exception_handler: PermissionDenied("'/user/app/xxxxx/Jobflows/Utils/_APIExecJobflow' は読み取り不可です",) on view <kompira.views.extends.object.APIView object at 0x7f2ffb0d2a58>
    [2023-09-14 09:20:30,455:309063:mod_wsgi:Dummy-8] ERROR: api_exception_handler: PermissionDenied("'/user/app/xxxxx/Jobflows/Jobs/J0020' は読み取り不可です",) on view <kompira.views.extends.object.APIView object at 0x7f2ff85e5eb8>

    ログに含まれるジョブフロー(CaSshCmdExec、_APIExecJobflow、J0020)は、
    フォームXで起動されるジョブフロー(J0020)と
    そのジョブフローから呼び出されるサブジョブフロー(CaSshCmdExec、_APIExecJobflow)で、
    実行ユーザにはグループを介して実行権限が付与されており、
    操作中特にエラーなどは発生しませんでした。
    可能性としてですが、フォームにて実行ボタンを押下した後に遷移するプロセス詳細画面にて、ジョブフローのタブがあります。
    画面としては、コンソールタブがアクティブになっていますが、
    当該画面を定期的に更新する際に、
    当該ジョブフローを参照し、上記エラーログが発生しているのではないかと推察していますが、
    その可能性はないでしょうか?

    0
    コメントアクション パーマリンク
  • auto_ope

    お忙しいところ恐れ入ります。

    上記、ご見解いただけますと幸いです。

    0
    コメントアクション パーマリンク
  • Ichiro Takahashi

    9/15 に回答させていただきました。「正式なコメント」と設定したためコメント欄の一番上部に表示されているかと思いますので、ご確認いただけますでしょうか。

    0
    コメントアクション パーマリンク
  • auto_ope

    大変失礼いたしました。

    ご回答ありがとうございます。

    0
    コメントアクション パーマリンク

サインインしてコメントを残してください。