)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b424c7ca_a70c871a","updated":"2024-12-17 01:17:35.000000000","message":"Thank you for the patch. Please kindly find my comments.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"8367cdfb83d95b9fa933e61f815aa481f44a1736","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7b8a9486_f7f019f5","updated":"2024-12-16 23:34:05.000000000","message":"recheck - for a failure no-related part of codes.","commit_id":"e0d798872b575c6f65f3bff6f59c24ff04f037fa"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"d652354524b8a5fa019debac69e381ea0d72e89d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c59fb707_009fbf5b","updated":"2024-12-17 07:13:36.000000000","message":"I think it\u0027s better to choose one of the following folder structures:\n(1) Create a \"tools\" directory for documentation under doc\n* doc/source/admin/ext_oauth2_server/base_realm.json\n-\u003e doc/tools/ext_oauth2_server/base_realm.json\n* doc/source/admin/ext_oauth2_server/gen_keycloak.sh\n-\u003e doc/tools/ext_oauth2_server/gen_keycloak.sh\n* doc/source/admin/external_oauth2_usage_guide.rst\n-\u003e same\n\n(2) Create a \"tools\" directory in the same location as the documentation\n* doc/source/admin/ext_oauth2_server/base_realm.json\n-\u003e doc/source/admin/ext_oauth2_server/tools/base_realm.json\n* doc/source/admin/ext_oauth2_server/gen_keycloak.sh\n-\u003e doc/source/admin/ext_oauth2_server/tools/gen_keycloak.sh\n* doc/source/admin/external_oauth2_usage_guide.rst\n-\u003e doc/source/admin/ext_oauth2_server/index.rst\n\n(2) is similar to the folder configuration policy in v2 GettingStarted.\n* https://opendev.org/openstack/tacker/src/branch/stable/2024.2/doc/source/user/v2/getting_started\n\nWhat do you think?","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d3072a69_048d2f46","in_reply_to":"59c274a6_27468f5a","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"59c274a6_27468f5a","in_reply_to":"c59fb707_009fbf5b","updated":"2024-12-17 08:17:03.000000000","message":"I think (1) is preferable because (2) effects folder structure, filename and other files like  `doc/source/admin/index.rst`.\nI moved ext_oauth2_server folder to /doc/tools folder.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6f9cfe34_c4b40970","updated":"2024-12-17 12:18:23.000000000","message":"Thank you for rework. I got a few more comment during testing different authentication methods with this script. Sorry for putting comments multiple times.","commit_id":"196be16c2b008708c725a043124de89cd280a759"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"43a8da61148619a144b39a035467008e83060dee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"38450a53_9f34988f","updated":"2024-12-18 08:02:50.000000000","message":"Thank you for your hard work. I\u0027m sorry, just one more thing. I\u0027ll give +1 after this comment is resolved.","commit_id":"9ad42ccdbdc0546418eb622a345511d7d80d0249"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"7ca4840b2571bda864c289aad562126d2ef6ad66","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"4863479d_d484ce77","updated":"2024-12-18 08:35:44.000000000","message":"Thanks for your patch, please kindly find my comments.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"daec3130b49eae35a46620e5bec8c3412f6df0fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"9a2a8637_f4d8898d","updated":"2024-12-19 02:33:36.000000000","message":"Sorry, I have mistakenly submitted the previous PS. Reverted it.","commit_id":"d1b429cd47c276be107f164855d12f73e1f5ed95"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1388ed72_e1b01130","updated":"2024-12-19 23:39:28.000000000","message":"Thanks for the reviews. Please, kindly find my fixes and replies.","commit_id":"a9eb3a68d8ae1688fb2024a9f7acf9a5716f6b1f"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"02bb0ca80c29d99cdb2e037de1b6278802a3d592","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"555da6f8_8a89e9d5","updated":"2024-12-20 00:14:18.000000000","message":"Thanks for your rework, LGTM.","commit_id":"a9eb3a68d8ae1688fb2024a9f7acf9a5716f6b1f"}],"doc/source/admin/ext_oauth2_server/gen_keycloak.sh":[{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":26,"context_line":"ISSUER\u003d\u0027tacker_service\u0027"},{"line_number":27,"context_line":"SUBJECT\u003d\u0027tacker_service\u0027"},{"line_number":28,"context_line":"SCOPE\u003d\u0027tacker_scope\u0027"},{"line_number":29,"context_line":"OID_URL\u003dhttp://${keycloak_host}:8080/realms/testrealm/.well-known/openid-configuration"},{"line_number":30,"context_line":"HTTP_ENDPOINT\u003dhttp://${keycloak_host}:${keycloak_http_port}/realms/testrealm/protocol/openid-connect/token"},{"line_number":31,"context_line":"HTTPS_ENDPOINT\u003dhttps://${keycloak_host}:${keycloak_https_port}/realms/testrealm/protocol/openid-connect/token"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"745cec0f_58f0b720","line":29,"updated":"2024-12-17 01:17:35.000000000","message":"```suggestion\nOID_URL\u003dhttp://${keycloak_host}:${keycloak_http_port}/realms/testrealm/.well-known/openid-configuration\n```","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":26,"context_line":"ISSUER\u003d\u0027tacker_service\u0027"},{"line_number":27,"context_line":"SUBJECT\u003d\u0027tacker_service\u0027"},{"line_number":28,"context_line":"SCOPE\u003d\u0027tacker_scope\u0027"},{"line_number":29,"context_line":"OID_URL\u003dhttp://${keycloak_host}:8080/realms/testrealm/.well-known/openid-configuration"},{"line_number":30,"context_line":"HTTP_ENDPOINT\u003dhttp://${keycloak_host}:${keycloak_http_port}/realms/testrealm/protocol/openid-connect/token"},{"line_number":31,"context_line":"HTTPS_ENDPOINT\u003dhttps://${keycloak_host}:${keycloak_https_port}/realms/testrealm/protocol/openid-connect/token"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"3babc864_be1247c4","line":29,"in_reply_to":"745cec0f_58f0b720","updated":"2024-12-17 07:15:52.000000000","message":"Fixed.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":306,"context_line":"  local file\u003d\"${keycloak_conf_dir}/${keycloak_realm_file}\""},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"  while true; do"},{"line_number":309,"context_line":"    read -p \"Enter OS user id: \" os_user_id"},{"line_number":310,"context_line":"    if [ -n \"${os_user_id}\" ]; then"},{"line_number":311,"context_line":"      replace_string ${file} \"os_tacker_user_id\" ${os_user_id} \\"},{"line_number":312,"context_line":"      \"Successfully set OS user id with ${os_user_id}\""}],"source_content_type":"text/x-sh","patch_set":2,"id":"8b85fb8d_07138e8e","line":309,"updated":"2024-12-17 01:17:35.000000000","message":"Maybe it\u0027s better to ask for the id and name in reverse order. User may feel \"Oops the default name is `nfv_user` I chose a different one\". The same is true for project and domain.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":306,"context_line":"  local file\u003d\"${keycloak_conf_dir}/${keycloak_realm_file}\""},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"  while true; do"},{"line_number":309,"context_line":"    read -p \"Enter OS user id: \" os_user_id"},{"line_number":310,"context_line":"    if [ -n \"${os_user_id}\" ]; then"},{"line_number":311,"context_line":"      replace_string ${file} \"os_tacker_user_id\" ${os_user_id} \\"},{"line_number":312,"context_line":"      \"Successfully set OS user id with ${os_user_id}\""}],"source_content_type":"text/x-sh","patch_set":2,"id":"bb9d35f4_4c052856","line":309,"in_reply_to":"8b85fb8d_07138e8e","updated":"2024-12-17 07:15:52.000000000","message":"I totally agree with you.\nI fixed as you suggested.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":364,"context_line":"wait_server() {"},{"line_number":365,"context_line":"  # Main loop to check API"},{"line_number":366,"context_line":"  echo -en Waiting Keycloak Server to start......"},{"line_number":367,"context_line":"  while true; do"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    # Get HTTP response code"},{"line_number":370,"context_line":"    RESPONSE\u003d$(echo -en $(curl -I ${OID_URL} 2\u003e/dev/null \\"}],"source_content_type":"text/x-sh","patch_set":2,"id":"489c743d_bd0e654d","line":367,"range":{"start_line":367,"start_character":0,"end_line":367,"end_character":2},"updated":"2024-12-17 01:17:35.000000000","message":"Better to set timeout.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":364,"context_line":"wait_server() {"},{"line_number":365,"context_line":"  # Main loop to check API"},{"line_number":366,"context_line":"  echo -en Waiting Keycloak Server to start......"},{"line_number":367,"context_line":"  while true; do"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    # Get HTTP response code"},{"line_number":370,"context_line":"    RESPONSE\u003d$(echo -en $(curl -I ${OID_URL} 2\u003e/dev/null \\"}],"source_content_type":"text/x-sh","patch_set":2,"id":"4a152a01_5fc188b5","line":367,"range":{"start_line":367,"start_character":0,"end_line":367,"end_character":2},"in_reply_to":"489c743d_bd0e654d","updated":"2024-12-17 07:15:52.000000000","message":"I added the TIME_OUT.\nTIME_OUT is set to (approximately)10min by default as, in my machine, docker container take about 5min usually.\nAnd added some message for the case of timeout.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":true,"context_lines":[{"line_number":17,"context_line":"keycloak_host\u003d\"127.0.0.1\""},{"line_number":18,"context_line":"keycloak_realm_file\u003d\"base_realm.json\""},{"line_number":19,"context_line":"keycloak_realm_default_dir\u003d\"/opt/keycloak/data/import/example-realm.json\""},{"line_number":20,"context_line":"client_key_file\u003d\"client.key\""},{"line_number":21,"context_line":"client_cert_file\u003d\"client.pem\""},{"line_number":22,"context_line":"client_csr_file\u003d\"client.csr\""},{"line_number":23,"context_line":"CLIENT_ID\u003d\u0027tacker_service\u0027"}],"source_content_type":"text/x-sh","patch_set":7,"id":"ac14613f_baaa92d4","line":20,"updated":"2024-12-17 12:18:23.000000000","message":"Ok, but technically, Tacker should have its own priv/pub keys. If it\u0027s not hard work please consider to generate another key pair for Tacker and print the paths of that key pair as well as client key pair.","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"0fbb8c712035778d1806cf6e79306913be5c4953","unresolved":true,"context_lines":[{"line_number":17,"context_line":"keycloak_host\u003d\"127.0.0.1\""},{"line_number":18,"context_line":"keycloak_realm_file\u003d\"base_realm.json\""},{"line_number":19,"context_line":"keycloak_realm_default_dir\u003d\"/opt/keycloak/data/import/example-realm.json\""},{"line_number":20,"context_line":"client_key_file\u003d\"client.key\""},{"line_number":21,"context_line":"client_cert_file\u003d\"client.pem\""},{"line_number":22,"context_line":"client_csr_file\u003d\"client.csr\""},{"line_number":23,"context_line":"CLIENT_ID\u003d\u0027tacker_service\u0027"}],"source_content_type":"text/x-sh","patch_set":7,"id":"e12c9f17_c749e7dc","line":20,"in_reply_to":"ac14613f_baaa92d4","updated":"2024-12-18 03:26:44.000000000","message":"Sure. I added the generation of key and certificate for tacker.\nAnd I added printing out of paths and improved the look of prints a little bit.","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"43a8da61148619a144b39a035467008e83060dee","unresolved":false,"context_lines":[{"line_number":17,"context_line":"keycloak_host\u003d\"127.0.0.1\""},{"line_number":18,"context_line":"keycloak_realm_file\u003d\"base_realm.json\""},{"line_number":19,"context_line":"keycloak_realm_default_dir\u003d\"/opt/keycloak/data/import/example-realm.json\""},{"line_number":20,"context_line":"client_key_file\u003d\"client.key\""},{"line_number":21,"context_line":"client_cert_file\u003d\"client.pem\""},{"line_number":22,"context_line":"client_csr_file\u003d\"client.csr\""},{"line_number":23,"context_line":"CLIENT_ID\u003d\u0027tacker_service\u0027"}],"source_content_type":"text/x-sh","patch_set":7,"id":"0377ebdb_ec21dc4a","line":20,"in_reply_to":"e12c9f17_c749e7dc","updated":"2024-12-18 08:02:50.000000000","message":"Done","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":true,"context_lines":[{"line_number":93,"context_line":"  fi"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  cat \u003c\u003c-EOF \u003e ./extfile"},{"line_number":96,"context_line":"\tsubjectAltName\u003dIP.1:127.0.0.1"},{"line_number":97,"context_line":"\tEOF"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  openssl genrsa -out \"${local_cert_dir}/${ca_key_file}\" 4096"}],"source_content_type":"text/x-sh","patch_set":7,"id":"b3db069c_e32fa916","line":96,"updated":"2024-12-17 12:18:23.000000000","message":"```suggestion\n\tsubjectAltName\u003dIP.1:${keycloak_host}\n```\n\nI guess 127.0.0.1 will cause an validation error if user change ${keycloak_host} or even the endpoint of tacker service.","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"43a8da61148619a144b39a035467008e83060dee","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  fi"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  cat \u003c\u003c-EOF \u003e ./extfile"},{"line_number":96,"context_line":"\tsubjectAltName\u003dIP.1:127.0.0.1"},{"line_number":97,"context_line":"\tEOF"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  openssl genrsa -out \"${local_cert_dir}/${ca_key_file}\" 4096"}],"source_content_type":"text/x-sh","patch_set":7,"id":"a029fdef_07c7d051","line":96,"in_reply_to":"00f895d2_005be1d8","updated":"2024-12-18 08:02:50.000000000","message":"Done","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"0fbb8c712035778d1806cf6e79306913be5c4953","unresolved":true,"context_lines":[{"line_number":93,"context_line":"  fi"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  cat \u003c\u003c-EOF \u003e ./extfile"},{"line_number":96,"context_line":"\tsubjectAltName\u003dIP.1:127.0.0.1"},{"line_number":97,"context_line":"\tEOF"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  openssl genrsa -out \"${local_cert_dir}/${ca_key_file}\" 4096"}],"source_content_type":"text/x-sh","patch_set":7,"id":"00f895d2_005be1d8","line":96,"in_reply_to":"b3db069c_e32fa916","updated":"2024-12-18 03:26:44.000000000","message":"Changed.","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"4e87b32cb1b3193aa37f07f1dde04edfa4a4308b","unresolved":true,"context_lines":[{"line_number":144,"context_line":"}"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"# Function to generate client_assertion"},{"line_number":147,"context_line":"creat_client_assertion(){"},{"line_number":148,"context_line":"  KEY_TYPE\u003d$1"},{"line_number":149,"context_line":"  AUDIENCE\u003d$2"},{"line_number":150,"context_line":"  # Set create (iat) and expire (exp) times"}],"source_content_type":"text/x-sh","patch_set":8,"id":"5dacc7f5_e12176c3","line":147,"updated":"2024-12-17 07:40:02.000000000","message":"nit: creat -\u003e create","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"}"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"# Function to generate client_assertion"},{"line_number":147,"context_line":"creat_client_assertion(){"},{"line_number":148,"context_line":"  KEY_TYPE\u003d$1"},{"line_number":149,"context_line":"  AUDIENCE\u003d$2"},{"line_number":150,"context_line":"  # Set create (iat) and expire (exp) times"}],"source_content_type":"text/x-sh","patch_set":8,"id":"9ff1754e_962187bb","line":147,"in_reply_to":"3c7786fd_ccb3e8af","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[{"line_number":144,"context_line":"}"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"# Function to generate client_assertion"},{"line_number":147,"context_line":"creat_client_assertion(){"},{"line_number":148,"context_line":"  KEY_TYPE\u003d$1"},{"line_number":149,"context_line":"  AUDIENCE\u003d$2"},{"line_number":150,"context_line":"  # Set create (iat) and expire (exp) times"}],"source_content_type":"text/x-sh","patch_set":8,"id":"3c7786fd_ccb3e8af","line":147,"in_reply_to":"5dacc7f5_e12176c3","updated":"2024-12-17 08:17:03.000000000","message":"Fixed.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"d652354524b8a5fa019debac69e381ea0d72e89d","unresolved":true,"context_lines":[{"line_number":265,"context_line":"        echo \"${filename} will overwrite\""},{"line_number":266,"context_line":"        return 0"},{"line_number":267,"context_line":"        ;;"},{"line_number":268,"context_line":"      * ) "},{"line_number":269,"context_line":"        echo \"Existing file will be used\""},{"line_number":270,"context_line":"        echo \"-------------------------\""},{"line_number":271,"context_line":"        echo \"\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"1ea87f24_7caa87f8","line":268,"updated":"2024-12-17 07:13:36.000000000","message":"There is an unnecessary space.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[{"line_number":265,"context_line":"        echo \"${filename} will overwrite\""},{"line_number":266,"context_line":"        return 0"},{"line_number":267,"context_line":"        ;;"},{"line_number":268,"context_line":"      * ) "},{"line_number":269,"context_line":"        echo \"Existing file will be used\""},{"line_number":270,"context_line":"        echo \"-------------------------\""},{"line_number":271,"context_line":"        echo \"\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"29d4762e_9f9bbdaf","line":268,"in_reply_to":"1ea87f24_7caa87f8","updated":"2024-12-17 08:17:03.000000000","message":"Deleted unnecessary space.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        echo \"${filename} will overwrite\""},{"line_number":266,"context_line":"        return 0"},{"line_number":267,"context_line":"        ;;"},{"line_number":268,"context_line":"      * ) "},{"line_number":269,"context_line":"        echo \"Existing file will be used\""},{"line_number":270,"context_line":"        echo \"-------------------------\""},{"line_number":271,"context_line":"        echo \"\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"f0627819_502196ba","line":268,"in_reply_to":"29d4762e_9f9bbdaf","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"d652354524b8a5fa019debac69e381ea0d72e89d","unresolved":true,"context_lines":[{"line_number":269,"context_line":"        echo \"Existing file will be used\""},{"line_number":270,"context_line":"        echo \"-------------------------\""},{"line_number":271,"context_line":"        echo \"\""},{"line_number":272,"context_line":"        return 1 "},{"line_number":273,"context_line":"        ;;"},{"line_number":274,"context_line":"    esac"},{"line_number":275,"context_line":"  else"}],"source_content_type":"text/x-sh","patch_set":8,"id":"7f8bca01_cad9057b","line":272,"updated":"2024-12-17 07:13:36.000000000","message":"There is an unnecessary space.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        echo \"Existing file will be used\""},{"line_number":270,"context_line":"        echo \"-------------------------\""},{"line_number":271,"context_line":"        echo \"\""},{"line_number":272,"context_line":"        return 1 "},{"line_number":273,"context_line":"        ;;"},{"line_number":274,"context_line":"    esac"},{"line_number":275,"context_line":"  else"}],"source_content_type":"text/x-sh","patch_set":8,"id":"dd6fb66d_34d0e6a0","line":272,"in_reply_to":"696a6169_71054911","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[{"line_number":269,"context_line":"        echo \"Existing file will be used\""},{"line_number":270,"context_line":"        echo \"-------------------------\""},{"line_number":271,"context_line":"        echo \"\""},{"line_number":272,"context_line":"        return 1 "},{"line_number":273,"context_line":"        ;;"},{"line_number":274,"context_line":"    esac"},{"line_number":275,"context_line":"  else"}],"source_content_type":"text/x-sh","patch_set":8,"id":"696a6169_71054911","line":272,"in_reply_to":"7f8bca01_cad9057b","updated":"2024-12-17 08:17:03.000000000","message":"Deleted unnecessary space.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"d652354524b8a5fa019debac69e381ea0d72e89d","unresolved":true,"context_lines":[{"line_number":340,"context_line":"    if [ -n \"${os_project_id}\" ]; then"},{"line_number":341,"context_line":"      replace_string ${file} \"os_tacker_project_id\" ${os_project_id} \\"},{"line_number":342,"context_line":"      \"Successfully set OS Project id with ${os_project_id}\"; break"},{"line_number":343,"context_line":"    else            "},{"line_number":344,"context_line":"    echo \"You have to set OS user id\""},{"line_number":345,"context_line":"    fi"},{"line_number":346,"context_line":"  done"}],"source_content_type":"text/x-sh","patch_set":8,"id":"0a6a1bd0_2d53782e","line":343,"updated":"2024-12-17 07:13:36.000000000","message":"There are unnecessary spaces.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[{"line_number":340,"context_line":"    if [ -n \"${os_project_id}\" ]; then"},{"line_number":341,"context_line":"      replace_string ${file} \"os_tacker_project_id\" ${os_project_id} \\"},{"line_number":342,"context_line":"      \"Successfully set OS Project id with ${os_project_id}\"; break"},{"line_number":343,"context_line":"    else            "},{"line_number":344,"context_line":"    echo \"You have to set OS user id\""},{"line_number":345,"context_line":"    fi"},{"line_number":346,"context_line":"  done"}],"source_content_type":"text/x-sh","patch_set":8,"id":"a36753b0_c3977678","line":343,"in_reply_to":"0a6a1bd0_2d53782e","updated":"2024-12-17 08:17:03.000000000","message":"Deleted unnecessary space.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    if [ -n \"${os_project_id}\" ]; then"},{"line_number":341,"context_line":"      replace_string ${file} \"os_tacker_project_id\" ${os_project_id} \\"},{"line_number":342,"context_line":"      \"Successfully set OS Project id with ${os_project_id}\"; break"},{"line_number":343,"context_line":"    else            "},{"line_number":344,"context_line":"    echo \"You have to set OS user id\""},{"line_number":345,"context_line":"    fi"},{"line_number":346,"context_line":"  done"}],"source_content_type":"text/x-sh","patch_set":8,"id":"b8947684_37608c37","line":343,"in_reply_to":"a36753b0_c3977678","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"4e87b32cb1b3193aa37f07f1dde04edfa4a4308b","unresolved":true,"context_lines":[{"line_number":514,"context_line":"    \"client-jwt\" \"Set auth type to private key signed JWT.\""},{"line_number":515,"context_line":"    LAST_MSG\u003d\"private_key: ${KEY_PATH}\""},{"line_number":516,"context_line":"    set_private_key"},{"line_number":517,"context_line":"    CLIENT_ASSERTION\u003d$(creat_client_assertion privatekey ${AUDIENCE})"},{"line_number":518,"context_line":"    base_command\u003d\"${base_command} \\"},{"line_number":519,"context_line":"    -d \u0027client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\u0027 \\"},{"line_number":520,"context_line":"    -d \u0027client_assertion\u003d${CLIENT_ASSERTION}\u0027\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"6cbd8c80_32d4ccf2","line":517,"updated":"2024-12-17 07:40:02.000000000","message":"ditto","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[{"line_number":514,"context_line":"    \"client-jwt\" \"Set auth type to private key signed JWT.\""},{"line_number":515,"context_line":"    LAST_MSG\u003d\"private_key: ${KEY_PATH}\""},{"line_number":516,"context_line":"    set_private_key"},{"line_number":517,"context_line":"    CLIENT_ASSERTION\u003d$(creat_client_assertion privatekey ${AUDIENCE})"},{"line_number":518,"context_line":"    base_command\u003d\"${base_command} \\"},{"line_number":519,"context_line":"    -d \u0027client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\u0027 \\"},{"line_number":520,"context_line":"    -d \u0027client_assertion\u003d${CLIENT_ASSERTION}\u0027\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"d4c415b1_2aa34058","line":517,"in_reply_to":"6cbd8c80_32d4ccf2","updated":"2024-12-17 08:17:03.000000000","message":"Fixed.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[{"line_number":514,"context_line":"    \"client-jwt\" \"Set auth type to private key signed JWT.\""},{"line_number":515,"context_line":"    LAST_MSG\u003d\"private_key: ${KEY_PATH}\""},{"line_number":516,"context_line":"    set_private_key"},{"line_number":517,"context_line":"    CLIENT_ASSERTION\u003d$(creat_client_assertion privatekey ${AUDIENCE})"},{"line_number":518,"context_line":"    base_command\u003d\"${base_command} \\"},{"line_number":519,"context_line":"    -d \u0027client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\u0027 \\"},{"line_number":520,"context_line":"    -d \u0027client_assertion\u003d${CLIENT_ASSERTION}\u0027\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"553c6d18_2c2be601","line":517,"in_reply_to":"d4c415b1_2aa34058","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"4e87b32cb1b3193aa37f07f1dde04edfa4a4308b","unresolved":true,"context_lines":[{"line_number":524,"context_line":"    \"client_credential_grant_flow_type\" \"client-secret-jwt\" \\"},{"line_number":525,"context_line":"    \"Set auth type to client secret signed JWT.\""},{"line_number":526,"context_line":"    LAST_MSG\u003d\"client_secret: ${CLIENT_SECRET}\""},{"line_number":527,"context_line":"    CLIENT_ASSERTION\u003d$(creat_client_assertion secret ${AUDIENCE})"},{"line_number":528,"context_line":"    base_command\u003d\"${base_command} \\"},{"line_number":529,"context_line":"    -d \u0027client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\u0027 \\"},{"line_number":530,"context_line":"    -d \u0027client_assertion\u003d${CLIENT_ASSERTION}\u0027\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"03c8c4c5_e02767ea","line":527,"updated":"2024-12-17 07:40:02.000000000","message":"ditto","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[{"line_number":524,"context_line":"    \"client_credential_grant_flow_type\" \"client-secret-jwt\" \\"},{"line_number":525,"context_line":"    \"Set auth type to client secret signed JWT.\""},{"line_number":526,"context_line":"    LAST_MSG\u003d\"client_secret: ${CLIENT_SECRET}\""},{"line_number":527,"context_line":"    CLIENT_ASSERTION\u003d$(creat_client_assertion secret ${AUDIENCE})"},{"line_number":528,"context_line":"    base_command\u003d\"${base_command} \\"},{"line_number":529,"context_line":"    -d \u0027client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\u0027 \\"},{"line_number":530,"context_line":"    -d \u0027client_assertion\u003d${CLIENT_ASSERTION}\u0027\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"7c427cbc_f7f75431","line":527,"in_reply_to":"03c8c4c5_e02767ea","updated":"2024-12-17 08:17:03.000000000","message":"Fixed.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[{"line_number":524,"context_line":"    \"client_credential_grant_flow_type\" \"client-secret-jwt\" \\"},{"line_number":525,"context_line":"    \"Set auth type to client secret signed JWT.\""},{"line_number":526,"context_line":"    LAST_MSG\u003d\"client_secret: ${CLIENT_SECRET}\""},{"line_number":527,"context_line":"    CLIENT_ASSERTION\u003d$(creat_client_assertion secret ${AUDIENCE})"},{"line_number":528,"context_line":"    base_command\u003d\"${base_command} \\"},{"line_number":529,"context_line":"    -d \u0027client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\u0027 \\"},{"line_number":530,"context_line":"    -d \u0027client_assertion\u003d${CLIENT_ASSERTION}\u0027\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"47330e77_1779f82f","line":527,"in_reply_to":"7c427cbc_f7f75431","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"}],"doc/source/admin/external_oauth2_usage_guide.rst":[{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":113,"context_line":"  You selected: client_secret_basic"},{"line_number":114,"context_line":"  -------------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Enable Oauth2 certificate-bounded token? (y/n) [default:n] :y"},{"line_number":117,"context_line":"  Oauth2 certificate-bounded token is enabled."},{"line_number":118,"context_line":"  -------------------------"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"abe2755f_4ac7f294","line":116,"updated":"2024-12-17 01:17:35.000000000","message":"I wonder if this example should use a certificate-bounded token. Users who are not familiar with OAuth2.0 might confuse what is related to client_secret_basic and what is related to a certificate-bound token.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  You selected: client_secret_basic"},{"line_number":114,"context_line":"  -------------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Enable Oauth2 certificate-bounded token? (y/n) [default:n] :y"},{"line_number":117,"context_line":"  Oauth2 certificate-bounded token is enabled."},{"line_number":118,"context_line":"  -------------------------"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"03ad4d72_9b1edbb7","line":116,"in_reply_to":"0a6828b1_1dbee6e8","updated":"2024-12-17 12:18:23.000000000","message":"Done","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":false,"context_lines":[{"line_number":113,"context_line":"  You selected: client_secret_basic"},{"line_number":114,"context_line":"  -------------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Enable Oauth2 certificate-bounded token? (y/n) [default:n] :y"},{"line_number":117,"context_line":"  Oauth2 certificate-bounded token is enabled."},{"line_number":118,"context_line":"  -------------------------"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c061eb11_229901ec","line":116,"in_reply_to":"0a6828b1_1dbee6e8","updated":"2024-12-17 12:18:23.000000000","message":"Done","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":113,"context_line":"  You selected: client_secret_basic"},{"line_number":114,"context_line":"  -------------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  Enable Oauth2 certificate-bounded token? (y/n) [default:n] :y"},{"line_number":117,"context_line":"  Oauth2 certificate-bounded token is enabled."},{"line_number":118,"context_line":"  -------------------------"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"0a6828b1_1dbee6e8","line":116,"in_reply_to":"abe2755f_4ac7f294","updated":"2024-12-17 07:15:52.000000000","message":"Yes, I agree with you.\nA certificate-bounded token is not necessery in this example. \nTo simplify the understanding, I changed the tutorial to use HTTP and no certificate-bounded token.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":367,"context_line":"     cafile\u003d/etc/tacker/ca.pem"},{"line_number":368,"context_line":"     insecure\u003dFalse"},{"line_number":369,"context_line":"     thumbprint_verify\u003dTrue"},{"line_number":370,"context_line":"     mapping_project_id\u003dproject_info.id"},{"line_number":371,"context_line":"     mapping_project_name\u003dproject_info.name"},{"line_number":372,"context_line":"     mapping_project_domain_id\u003dproject_info.domain.id"},{"line_number":373,"context_line":"     mapping_project_domain_name\u003dproject_info.domain.name"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ae8b452_213688d5","line":370,"range":{"start_line":370,"start_character":24,"end_line":370,"end_character":36},"updated":"2024-12-17 01:17:35.000000000","message":"```suggestion\n     mapping_project_id\u003duser.id\n```\n\n?\n\nIn my environment, project_info is not appeared in the mapper.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":false,"context_lines":[{"line_number":367,"context_line":"     cafile\u003d/etc/tacker/ca.pem"},{"line_number":368,"context_line":"     insecure\u003dFalse"},{"line_number":369,"context_line":"     thumbprint_verify\u003dTrue"},{"line_number":370,"context_line":"     mapping_project_id\u003dproject_info.id"},{"line_number":371,"context_line":"     mapping_project_name\u003dproject_info.name"},{"line_number":372,"context_line":"     mapping_project_domain_id\u003dproject_info.domain.id"},{"line_number":373,"context_line":"     mapping_project_domain_name\u003dproject_info.domain.name"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a5a24ff3_bbfc76d0","line":370,"range":{"start_line":370,"start_character":24,"end_line":370,"end_character":36},"in_reply_to":"633b5c11_c61e1efc","updated":"2024-12-17 12:18:23.000000000","message":"Thanks, it works. Something in my previous environment was wrong. I withdraw my comment, sorry for the confusion.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":367,"context_line":"     cafile\u003d/etc/tacker/ca.pem"},{"line_number":368,"context_line":"     insecure\u003dFalse"},{"line_number":369,"context_line":"     thumbprint_verify\u003dTrue"},{"line_number":370,"context_line":"     mapping_project_id\u003dproject_info.id"},{"line_number":371,"context_line":"     mapping_project_name\u003dproject_info.name"},{"line_number":372,"context_line":"     mapping_project_domain_id\u003dproject_info.domain.id"},{"line_number":373,"context_line":"     mapping_project_domain_name\u003dproject_info.domain.name"}],"source_content_type":"text/x-rst","patch_set":2,"id":"633b5c11_c61e1efc","line":370,"range":{"start_line":370,"start_character":24,"end_line":370,"end_character":36},"in_reply_to":"9ae8b452_213688d5","updated":"2024-12-17 07:15:52.000000000","message":"Do you mean there is no project_info claim in token?\nI tested again in my environment.\nThere was project_info as shown below.\n\nAnd please note, client used for introspect `tacker_service` doesn\u0027t consist of project_info.\n```sh\ncurl -s -X POST http://127.0.0.1:8080/realms/testrealm/protocol/openid-connect/token   -u \"tacker_api_proj:iIK6lARLzJgoQQyMyoymNYrGTDuR0733S\"   -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\"\n\n{\"access_token\":\"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJyY1dNLUZGTnV0WDE2LW82Ni0ybjlLRTR0N1VNQk5xa3lwZEdib0xJLTJVIn0.eyJleHAiOjE3MzQ0MTcwNTMsImlhdCI6MTczNDQxNjc1MywianRpIjoiNzk0M2MzMWEtYzhhYy00ODViLWFmNGItNTMwMTk0NzkwZmM5IiwiaXNzIjoiaHR0cDovLzEyNy4wLjAuMTo4MDgwL3JlYWxtcy90ZXN0cmVhbG0iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiN2QzZTU5MjktNGJiZS00ZWY0LTkwZTMtOGZkNGI0NDVlZDdmIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoidGFja2VyX2FwaV9wcm9qIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiIsImRlZmF1bHQtcm9sZXMtdGVzdHJlYWxtIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJjbGllbnRIb3N0IjoiMTcyLjE3LjAuMSIsInJvbGVfaW5mbyI6ImFkbWluLG1lbWJlcixyZWFkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzZXJ2aWNlLWFjY291bnQtdGFja2VyX2FwaV9wcm9qIiwiY2xpZW50QWRkcmVzcyI6IjE3Mi4xNy4wLjEiLCJ1c2VyIjp7ImRvbWFpbiI6eyJuYW1lIjoiZGVmYXVsdCIsImlkIjoiZGVmYXVsdCJ9LCJuYW1lIjoibmZ2X3VzZXIiLCJpZCI6IjM1Yzg4NGQ4YTY1NDRkMzhhYmNlMzNjMDAwM2M4MzMxIn0sImNsaWVudF9pZCI6InRhY2tlcl9hcGlfcHJvaiIsInByb2plY3RfaW5mbyI6eyJkb21haW4iOnsiaWQiOiJkZWZhdWx0IiwibmFtZSI6IkRlZmF1bHQifSwiaWQiOiJjZTViMTlhOTMzMzU0YmRmODdhYzZkNjk4NDk0YWQ0NyIsIm5hbWUiOiJuZnYifX0.NtvHE8ixtnvaP0N4GQCRmzrNloi1BFVeB8YYNxKg-eBWDOCUlVC_AByQ4rYAYQpc0fOdECwTFMjRtlI5GNWASMtERgtXM7HCS8T1ybyWSaJOQjX2wNWObqYqzhgBP3fAB6AIb7QgVOsxP4jIkheeidenkMEUnCGthoH3Yb2ET4HPdFSUxUkdsNmMU9dcI7AUOOqVoZOGamii_Iw37Kw9HQ7JNmFBtrNzkqrA21EBp8f27nxxMJazKA-ibK1nhHZwIZ3kYpvSMjEe1Ds5QaaEaoZY31OxhUnSzZCHEmde6XS-JDTImbtWkA39C-ErLdrId_SGrtOcJv8RvwwIuuMRtw\",\"expires_in\":300,\"refresh_expires_in\":0,\"token_type\":\"Bearer\",\"not-before-policy\":0,\"scope\":\"email profile\"}\n```\n\n```json\n{\n  \"exp\": 1734417053,\n  \"iat\": 1734416753,\n\n...\n\n  \"client_id\": \"tacker_api_proj\",\n  \"project_info\": {\n    \"domain\": {\n      \"id\": \"default\",\n      \"name\": \"Default\"\n    },\n    \"id\": \"ce5b19a933354bdf87ac6d698494ad47\",\n    \"name\": \"nfv\"\n  }\n}\n```","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":637,"context_line":"  $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":638,"context_line":"  -u \"tacker_api_proj:iIK6lARLzJgoQQyMyoymNYrGTDuR0733S\" \\"},{"line_number":639,"context_line":"  -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":640,"context_line":"  --cacert ca.pem \\"},{"line_number":641,"context_line":"  --cert client.pem \\"},{"line_number":642,"context_line":"  --key client.key"},{"line_number":643,"context_line":"  HTTP/2 200"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1d5c3074_f520dd48","line":640,"updated":"2024-12-17 01:17:35.000000000","message":"I wonder if this example should use a certificate-bounded token. Users who are not familiar with OAuth2.0 might misunderstand the following three options are required to use client_secret_basic.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":637,"context_line":"  $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":638,"context_line":"  -u \"tacker_api_proj:iIK6lARLzJgoQQyMyoymNYrGTDuR0733S\" \\"},{"line_number":639,"context_line":"  -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":640,"context_line":"  --cacert ca.pem \\"},{"line_number":641,"context_line":"  --cert client.pem \\"},{"line_number":642,"context_line":"  --key client.key"},{"line_number":643,"context_line":"  HTTP/2 200"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6faaa57e_fded3121","line":640,"in_reply_to":"1d5c3074_f520dd48","updated":"2024-12-17 07:15:52.000000000","message":"I simplified the tutorial by changing the protocol to HTTP and not using certificate-bounded token.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":false,"context_lines":[{"line_number":637,"context_line":"  $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":638,"context_line":"  -u \"tacker_api_proj:iIK6lARLzJgoQQyMyoymNYrGTDuR0733S\" \\"},{"line_number":639,"context_line":"  -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":640,"context_line":"  --cacert ca.pem \\"},{"line_number":641,"context_line":"  --cert client.pem \\"},{"line_number":642,"context_line":"  --key client.key"},{"line_number":643,"context_line":"  HTTP/2 200"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c70eaa67_1e056307","line":640,"in_reply_to":"6faaa57e_fded3121","updated":"2024-12-17 12:18:23.000000000","message":"Done","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":655,"context_line":"  \"token_type\":\"Bearer\",\"not-before-policy\":0,\"scope\":\"email profile\"}"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"  $ curl -i -X GET https://$tacker_host_name:8890/v1.0/vims \\"},{"line_number":659,"context_line":"  -H \"Authorization: Bearer $access_token\" \\"},{"line_number":660,"context_line":"  --cacert ca.pem \\"},{"line_number":661,"context_line":"  --cert client.pem \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da901fd8_a09a3af7","line":658,"updated":"2024-12-17 01:17:35.000000000","message":"ditto","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":false,"context_lines":[{"line_number":655,"context_line":"  \"token_type\":\"Bearer\",\"not-before-policy\":0,\"scope\":\"email profile\"}"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"  $ curl -i -X GET https://$tacker_host_name:8890/v1.0/vims \\"},{"line_number":659,"context_line":"  -H \"Authorization: Bearer $access_token\" \\"},{"line_number":660,"context_line":"  --cacert ca.pem \\"},{"line_number":661,"context_line":"  --cert client.pem \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a13416b_d15d7ed6","line":658,"in_reply_to":"c9654b70_25c7b373","updated":"2024-12-17 12:18:23.000000000","message":"Done","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":655,"context_line":"  \"token_type\":\"Bearer\",\"not-before-policy\":0,\"scope\":\"email profile\"}"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"  $ curl -i -X GET https://$tacker_host_name:8890/v1.0/vims \\"},{"line_number":659,"context_line":"  -H \"Authorization: Bearer $access_token\" \\"},{"line_number":660,"context_line":"  --cacert ca.pem \\"},{"line_number":661,"context_line":"  --cert client.pem \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c9654b70_25c7b373","line":658,"in_reply_to":"da901fd8_a09a3af7","updated":"2024-12-17 07:15:52.000000000","message":"ditto","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":764,"context_line":""},{"line_number":765,"context_line":"   .. code-block:: console"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"     $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":768,"context_line":"     -d \"client_id\u003dtacker_api_proj\" -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":769,"context_line":"     -d \"client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\" \\"},{"line_number":770,"context_line":"     -d \"client_assertion\u003d$client_assertion\" \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a757bab8_ef60b1b9","line":767,"updated":"2024-12-17 01:17:35.000000000","message":"Should it be https? Other examples use http.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"43a8da61148619a144b39a035467008e83060dee","unresolved":false,"context_lines":[{"line_number":764,"context_line":""},{"line_number":765,"context_line":"   .. code-block:: console"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"     $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":768,"context_line":"     -d \"client_id\u003dtacker_api_proj\" -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":769,"context_line":"     -d \"client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\" \\"},{"line_number":770,"context_line":"     -d \"client_assertion\u003d$client_assertion\" \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"05c6c045_2034f13a","line":767,"in_reply_to":"435ddb28_f0e9c396","updated":"2024-12-18 08:02:50.000000000","message":"Thank you!","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":764,"context_line":""},{"line_number":765,"context_line":"   .. code-block:: console"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"     $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":768,"context_line":"     -d \"client_id\u003dtacker_api_proj\" -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":769,"context_line":"     -d \"client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\" \\"},{"line_number":770,"context_line":"     -d \"client_assertion\u003d$client_assertion\" \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d5b269a5_3edea01b","line":767,"in_reply_to":"a757bab8_ef60b1b9","updated":"2024-12-17 07:15:52.000000000","message":"It doesn\u0027t have to be https necessarily. But this is the example when HTTPS is used in Keycloak server.\nSo, I want to leave it as it is.\nDo you have any reason or opinion to change it to http.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":true,"context_lines":[{"line_number":764,"context_line":""},{"line_number":765,"context_line":"   .. code-block:: console"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"     $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":768,"context_line":"     -d \"client_id\u003dtacker_api_proj\" -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":769,"context_line":"     -d \"client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\" \\"},{"line_number":770,"context_line":"     -d \"client_assertion\u003d$client_assertion\" \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d689f4d3_b38e550d","line":767,"in_reply_to":"d5b269a5_3edea01b","updated":"2024-12-17 12:18:23.000000000","message":"I don\u0027t want to mix the \"https\" thing and OAuth2.0 thing because using OAuth2.0 with Keycloak is already complex enough. If my understanding is correct, all authentication methods except for `tls_client_auth` can use \"http\" and we can write like \"If you want to use HTTPS, please see `Configuring HTTPS/mTLS for Tacker APIs`_\" with a note like \"Note: We highly recommend to use HTTPS in a production environment to secure the secrets.\"","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"0fbb8c712035778d1806cf6e79306913be5c4953","unresolved":true,"context_lines":[{"line_number":764,"context_line":""},{"line_number":765,"context_line":"   .. code-block:: console"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"     $ curl -i -X POST https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token \\"},{"line_number":768,"context_line":"     -d \"client_id\u003dtacker_api_proj\" -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":769,"context_line":"     -d \"client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\" \\"},{"line_number":770,"context_line":"     -d \"client_assertion\u003d$client_assertion\" \\"}],"source_content_type":"text/x-rst","patch_set":2,"id":"435ddb28_f0e9c396","line":767,"in_reply_to":"d689f4d3_b38e550d","updated":"2024-12-18 03:26:44.000000000","message":"Thanks for the explanation. I understand the reason.\nI remove https from the examples and added the notes.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"544f0a80fdb41f0a3a55a2066c9d58e6980a1013","unresolved":true,"context_lines":[{"line_number":768,"context_line":"     -d \"client_id\u003dtacker_api_proj\" -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":769,"context_line":"     -d \"client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\" \\"},{"line_number":770,"context_line":"     -d \"client_assertion\u003d$client_assertion\" \\"},{"line_number":771,"context_line":"     --cacert ca.pem"},{"line_number":772,"context_line":"     HTTP/2 200"},{"line_number":773,"context_line":"     cache-control: no-store"},{"line_number":774,"context_line":"     pragma: no-cache"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fd4d0445_de8d04c3","line":771,"updated":"2024-12-17 01:17:35.000000000","message":"If the answer for the above is http, please remove this line.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"e633e0be820ae6d5bc2ca03404f451e3cba9aff6","unresolved":true,"context_lines":[{"line_number":768,"context_line":"     -d \"client_id\u003dtacker_api_proj\" -d \"scope\u003dproject_scope\" -d \"grant_type\u003dclient_credentials\" \\"},{"line_number":769,"context_line":"     -d \"client_assertion_type\u003durn:ietf:params:oauth:client-assertion-type:jwt-bearer\" \\"},{"line_number":770,"context_line":"     -d \"client_assertion\u003d$client_assertion\" \\"},{"line_number":771,"context_line":"     --cacert ca.pem"},{"line_number":772,"context_line":"     HTTP/2 200"},{"line_number":773,"context_line":"     cache-control: no-store"},{"line_number":774,"context_line":"     pragma: no-cache"}],"source_content_type":"text/x-rst","patch_set":2,"id":"22b2d7f3_e1f752c0","line":771,"in_reply_to":"fd4d0445_de8d04c3","updated":"2024-12-17 07:15:52.000000000","message":"I want to leave it as HTTPS.\nDo you have any reason or opinion to change it to http.","commit_id":"5345f2387f4df912d6408e169bddf52408346450"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"3513bb3f5e59f7a13a987b746ac31e01e87ce7ad","unresolved":true,"context_lines":[{"line_number":534,"context_line":"        certfile\u003d/etc/tacker/tacker_client.pem"},{"line_number":535,"context_line":"        keyfile\u003d/etc/tacker/tacker_client.key"},{"line_number":536,"context_line":"        cafile\u003d/etc/tacker/ca.pem"},{"line_number":537,"context_line":"        jwt_algorithm\u003dHS512"},{"line_number":538,"context_line":"        jwt_bearer_time_out\u003d7200"},{"line_number":539,"context_line":"        insecure\u003dFalse"},{"line_number":540,"context_line":"        thumbprint_verify\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":7,"id":"db0156e5_fbdc665a","line":537,"updated":"2024-12-17 12:18:23.000000000","message":"```suggestion\n        jwt_algorithm\u003dHS256\n```\n?","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"43a8da61148619a144b39a035467008e83060dee","unresolved":false,"context_lines":[{"line_number":534,"context_line":"        certfile\u003d/etc/tacker/tacker_client.pem"},{"line_number":535,"context_line":"        keyfile\u003d/etc/tacker/tacker_client.key"},{"line_number":536,"context_line":"        cafile\u003d/etc/tacker/ca.pem"},{"line_number":537,"context_line":"        jwt_algorithm\u003dHS512"},{"line_number":538,"context_line":"        jwt_bearer_time_out\u003d7200"},{"line_number":539,"context_line":"        insecure\u003dFalse"},{"line_number":540,"context_line":"        thumbprint_verify\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":7,"id":"93a85f83_82136744","line":537,"in_reply_to":"637065d2_cb3c8533","updated":"2024-12-18 08:02:50.000000000","message":"Understood. I withdraw my comment.","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"0fbb8c712035778d1806cf6e79306913be5c4953","unresolved":true,"context_lines":[{"line_number":534,"context_line":"        certfile\u003d/etc/tacker/tacker_client.pem"},{"line_number":535,"context_line":"        keyfile\u003d/etc/tacker/tacker_client.key"},{"line_number":536,"context_line":"        cafile\u003d/etc/tacker/ca.pem"},{"line_number":537,"context_line":"        jwt_algorithm\u003dHS512"},{"line_number":538,"context_line":"        jwt_bearer_time_out\u003d7200"},{"line_number":539,"context_line":"        insecure\u003dFalse"},{"line_number":540,"context_line":"        thumbprint_verify\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":7,"id":"637065d2_cb3c8533","line":537,"in_reply_to":"db0156e5_fbdc665a","updated":"2024-12-18 03:26:44.000000000","message":"Keycloak accepte HS512,too. \nAnd this configuration is also tested, so, keystonemiddleware is also supported.\nI don\u0027t think it has to be changed.","commit_id":"240997e6910fb7a8f640e3c08071b0b0fc05db0a"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"d652354524b8a5fa019debac69e381ea0d72e89d","unresolved":true,"context_lines":[{"line_number":175,"context_line":"  ###################################"},{"line_number":176,"context_line":"  client_secret: iIK6lARLzJgoQQyMyoymNYrGTDuR0733S"},{"line_number":177,"context_line":"  client_id: tacker_service, tacker_api_proj, tacker_api_domain"},{"line_number":178,"context_line":"  HTTP endpoint: http://$keycloak_host_name:8080/realms/testrealm/protocol/openid-connect/token"},{"line_number":179,"context_line":"  HTTPS endpoint: https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token"},{"line_number":180,"context_line":"  scope: project_scope, domain_scope"},{"line_number":181,"context_line":"  root_ca_cert: SCRIPT_PATH/etc/ssl/localcerts/ca.pem (Use as root certificate to sign client certificate for tacker.conf)"}],"source_content_type":"text/x-rst","patch_set":8,"id":"8b15f9f4_8e977899","line":178,"updated":"2024-12-17 07:13:36.000000000","message":"Is the port number fixed?\nIf there is a possibility of another number, it is better to write it as a variable.\nIf you fix it, please horizontally expand it to other places as well.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"ab0de7925326f8c33023ae6b36d8e71945b9986f","unresolved":false,"context_lines":[{"line_number":175,"context_line":"  ###################################"},{"line_number":176,"context_line":"  client_secret: iIK6lARLzJgoQQyMyoymNYrGTDuR0733S"},{"line_number":177,"context_line":"  client_id: tacker_service, tacker_api_proj, tacker_api_domain"},{"line_number":178,"context_line":"  HTTP endpoint: http://$keycloak_host_name:8080/realms/testrealm/protocol/openid-connect/token"},{"line_number":179,"context_line":"  HTTPS endpoint: https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token"},{"line_number":180,"context_line":"  scope: project_scope, domain_scope"},{"line_number":181,"context_line":"  root_ca_cert: SCRIPT_PATH/etc/ssl/localcerts/ca.pem (Use as root certificate to sign client certificate for tacker.conf)"}],"source_content_type":"text/x-rst","patch_set":8,"id":"2569420a_fe4fc680","line":178,"in_reply_to":"860c4527_541efe40","updated":"2024-12-18 00:42:52.000000000","message":"Acknowledged","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"b12ae7641b2c5c1a8e663a1751b0b88db8d9b613","unresolved":true,"context_lines":[{"line_number":175,"context_line":"  ###################################"},{"line_number":176,"context_line":"  client_secret: iIK6lARLzJgoQQyMyoymNYrGTDuR0733S"},{"line_number":177,"context_line":"  client_id: tacker_service, tacker_api_proj, tacker_api_domain"},{"line_number":178,"context_line":"  HTTP endpoint: http://$keycloak_host_name:8080/realms/testrealm/protocol/openid-connect/token"},{"line_number":179,"context_line":"  HTTPS endpoint: https://$keycloak_host_name:8443/realms/testrealm/protocol/openid-connect/token"},{"line_number":180,"context_line":"  scope: project_scope, domain_scope"},{"line_number":181,"context_line":"  root_ca_cert: SCRIPT_PATH/etc/ssl/localcerts/ca.pem (Use as root certificate to sign client certificate for tacker.conf)"}],"source_content_type":"text/x-rst","patch_set":8,"id":"860c4527_541efe40","line":178,"in_reply_to":"8b15f9f4_8e977899","updated":"2024-12-17 08:17:03.000000000","message":"As Keycloak HTTP port and HTTPS port can be changed in the shell script variables,\nI changed them to variables.","commit_id":"2a14f0120c32bad5405b3c68c3dbc8ac69f09d83"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"43a8da61148619a144b39a035467008e83060dee","unresolved":true,"context_lines":[{"line_number":219,"context_line":"The Keycloak server that is configured and started by using the script has"},{"line_number":220,"context_line":"three clients preconfigured. One of them is prepared for Tacker and the other"},{"line_number":221,"context_line":"two are prepared for users."},{"line_number":222,"context_line":"Here\u0027s the MD table converted to Sphinx RST format:"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":".. list-table::"},{"line_number":225,"context_line":"    :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":11,"id":"a770a361_2aa87c77","line":222,"updated":"2024-12-18 08:02:50.000000000","message":"Sorry, could you remove this line? I think users don\u0027t have to know this.","commit_id":"9ad42ccdbdc0546418eb622a345511d7d80d0249"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"05ec399ffd31ed73d1c5dac7935de4051d216ea3","unresolved":true,"context_lines":[{"line_number":219,"context_line":"The Keycloak server that is configured and started by using the script has"},{"line_number":220,"context_line":"three clients preconfigured. One of them is prepared for Tacker and the other"},{"line_number":221,"context_line":"two are prepared for users."},{"line_number":222,"context_line":"Here\u0027s the MD table converted to Sphinx RST format:"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":".. list-table::"},{"line_number":225,"context_line":"    :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":11,"id":"b4bfebef_9599a0cc","line":222,"in_reply_to":"a770a361_2aa87c77","updated":"2024-12-18 08:10:24.000000000","message":"Thanks for the notice. \nRemoved.","commit_id":"9ad42ccdbdc0546418eb622a345511d7d80d0249"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"7ca4840b2571bda864c289aad562126d2ef6ad66","unresolved":true,"context_lines":[{"line_number":33,"context_line":"server, and the domain name used by the Tacker server is ``$tacker_host_name``."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Setup External Authorization Server"},{"line_number":36,"context_line":"------------------------------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In this guide, Keycloak server will be configured and started as a docker"},{"line_number":39,"context_line":"container by running the script. But the Keycloak server prepared in other way"}],"source_content_type":"text/x-rst","patch_set":12,"id":"05ed3cd9_00750bfd","line":36,"range":{"start_line":36,"start_character":35,"end_line":36,"end_character":36},"updated":"2024-12-18 08:35:44.000000000","message":"nit: Could you remove extra hyphen character?","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":true,"context_lines":[{"line_number":33,"context_line":"server, and the domain name used by the Tacker server is ``$tacker_host_name``."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Setup External Authorization Server"},{"line_number":36,"context_line":"------------------------------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In this guide, Keycloak server will be configured and started as a docker"},{"line_number":39,"context_line":"container by running the script. But the Keycloak server prepared in other way"}],"source_content_type":"text/x-rst","patch_set":12,"id":"1193019e_b7411f21","line":36,"range":{"start_line":36,"start_character":35,"end_line":36,"end_character":36},"in_reply_to":"05ed3cd9_00750bfd","updated":"2024-12-19 23:39:28.000000000","message":"Removed.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"02bb0ca80c29d99cdb2e037de1b6278802a3d592","unresolved":false,"context_lines":[{"line_number":33,"context_line":"server, and the domain name used by the Tacker server is ``$tacker_host_name``."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Setup External Authorization Server"},{"line_number":36,"context_line":"------------------------------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In this guide, Keycloak server will be configured and started as a docker"},{"line_number":39,"context_line":"container by running the script. But the Keycloak server prepared in other way"}],"source_content_type":"text/x-rst","patch_set":12,"id":"4317eaff_c4f421ea","line":36,"range":{"start_line":36,"start_character":35,"end_line":36,"end_character":36},"in_reply_to":"1193019e_b7411f21","updated":"2024-12-20 00:14:18.000000000","message":"Acknowledged","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"7ca4840b2571bda864c289aad562126d2ef6ad66","unresolved":true,"context_lines":[{"line_number":335,"context_line":"   You can use the following sample configuration to use keycloak server"},{"line_number":336,"context_line":"   started above section."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"   .. code-block:: console"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"     [DEFAULT]"},{"line_number":341,"context_line":"     use_ssl\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":12,"id":"233d5c3d_605b1db4","line":338,"range":{"start_line":338,"start_character":19,"end_line":338,"end_character":26},"updated":"2024-12-18 08:35:44.000000000","message":"The strings copy is seems not to work well after it is converted to html file.\n(strings before $ are not copied)\n\nCould you fix by changing from `console` or other way?\nPlease modify other similar configuration.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":true,"context_lines":[{"line_number":335,"context_line":"   You can use the following sample configuration to use keycloak server"},{"line_number":336,"context_line":"   started above section."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"   .. code-block:: console"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"     [DEFAULT]"},{"line_number":341,"context_line":"     use_ssl\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":12,"id":"c3c63963_95ac4223","line":338,"range":{"start_line":338,"start_character":19,"end_line":338,"end_character":26},"in_reply_to":"233d5c3d_605b1db4","updated":"2024-12-19 23:39:28.000000000","message":"Thanks for the notice. \nChanged to `ini`.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"02bb0ca80c29d99cdb2e037de1b6278802a3d592","unresolved":false,"context_lines":[{"line_number":335,"context_line":"   You can use the following sample configuration to use keycloak server"},{"line_number":336,"context_line":"   started above section."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"   .. code-block:: console"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"     [DEFAULT]"},{"line_number":341,"context_line":"     use_ssl\u003dFalse"}],"source_content_type":"text/x-rst","patch_set":12,"id":"e89c8077_98381967","line":338,"range":{"start_line":338,"start_character":19,"end_line":338,"end_character":26},"in_reply_to":"c3c63963_95ac4223","updated":"2024-12-20 00:14:18.000000000","message":"I\u0027ve confirmed that other parts have also been fixed. Thanks!","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"}],"doc/tools/ext_oauth2_server/gen_keycloak.sh":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5c9a6053fb76039dbd81fd7443026f73a740e403","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# Function to display help"},{"line_number":46,"context_line":"display_help() {"},{"line_number":47,"context_line":"  cat \u003c\u003c-EOF"},{"line_number":48,"context_line":"\tUsage: $0 [options]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\tDescription:"}],"source_content_type":"text/x-sh","patch_set":12,"id":"2f71cd59_15b07b05","line":47,"range":{"start_line":47,"start_character":9,"end_line":47,"end_character":12},"updated":"2024-12-18 09:14:56.000000000","message":"nit: EOS(End of String) is more appropriate than EOF.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# Function to display help"},{"line_number":46,"context_line":"display_help() {"},{"line_number":47,"context_line":"  cat \u003c\u003c-EOF"},{"line_number":48,"context_line":"\tUsage: $0 [options]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\tDescription:"}],"source_content_type":"text/x-sh","patch_set":12,"id":"6dcd125b_273dc390","line":47,"range":{"start_line":47,"start_character":9,"end_line":47,"end_character":12},"in_reply_to":"2f71cd59_15b07b05","updated":"2024-12-19 23:39:28.000000000","message":"Changed to `EOS`.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5c9a6053fb76039dbd81fd7443026f73a740e403","unresolved":true,"context_lines":[{"line_number":45,"context_line":"# Function to display help"},{"line_number":46,"context_line":"display_help() {"},{"line_number":47,"context_line":"  cat \u003c\u003c-EOF"},{"line_number":48,"context_line":"\tUsage: $0 [options]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\tDescription:"},{"line_number":51,"context_line":"\tThis script will allow you to build and start Keycloak Docker with predefined"}],"source_content_type":"text/x-sh","patch_set":12,"id":"fa21e33c_5bfe6eb2","line":48,"updated":"2024-12-18 09:14:56.000000000","message":"All the tab should be replaced with blanks as a convention.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"6f26cacf0881b7ee8ccc3af0a6a0e1342d95b126","unresolved":true,"context_lines":[{"line_number":45,"context_line":"# Function to display help"},{"line_number":46,"context_line":"display_help() {"},{"line_number":47,"context_line":"  cat \u003c\u003c-EOF"},{"line_number":48,"context_line":"\tUsage: $0 [options]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\tDescription:"},{"line_number":51,"context_line":"\tThis script will allow you to build and start Keycloak Docker with predefined"}],"source_content_type":"text/x-sh","patch_set":12,"id":"d047319b_890b71fa","line":48,"in_reply_to":"64c5c416_e22b368f","updated":"2024-12-20 07:50:45.000000000","message":"thanks","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"a72fefc4cbb2f8704986eda3b59789787161f496","unresolved":true,"context_lines":[{"line_number":45,"context_line":"# Function to display help"},{"line_number":46,"context_line":"display_help() {"},{"line_number":47,"context_line":"  cat \u003c\u003c-EOF"},{"line_number":48,"context_line":"\tUsage: $0 [options]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\tDescription:"},{"line_number":51,"context_line":"\tThis script will allow you to build and start Keycloak Docker with predefined"}],"source_content_type":"text/x-sh","patch_set":12,"id":"64c5c416_e22b368f","line":48,"in_reply_to":"72e0848e_25700fa1","updated":"2024-12-20 06:53:37.000000000","message":"I understand.\nRemoved tabs across the script.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"2a57df1d8533fa9f610783ef67b11d35bc8b5399","unresolved":true,"context_lines":[{"line_number":45,"context_line":"# Function to display help"},{"line_number":46,"context_line":"display_help() {"},{"line_number":47,"context_line":"  cat \u003c\u003c-EOF"},{"line_number":48,"context_line":"\tUsage: $0 [options]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\tDescription:"},{"line_number":51,"context_line":"\tThis script will allow you to build and start Keycloak Docker with predefined"}],"source_content_type":"text/x-sh","patch_set":12,"id":"72e0848e_25700fa1","line":48,"in_reply_to":"ce38025b_508a422b","updated":"2024-12-20 05:48:36.000000000","message":"Ah, understand why you use tabs for just showing help msg. I don\u0027t know such a trick:)\nHowever, we usually don\u0027t care to indent here docs in a block. IMO, it\u0027s better to remove tabs to understand how the message is displayed directly. Thanks.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":true,"context_lines":[{"line_number":45,"context_line":"# Function to display help"},{"line_number":46,"context_line":"display_help() {"},{"line_number":47,"context_line":"  cat \u003c\u003c-EOF"},{"line_number":48,"context_line":"\tUsage: $0 [options]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\tDescription:"},{"line_number":51,"context_line":"\tThis script will allow you to build and start Keycloak Docker with predefined"}],"source_content_type":"text/x-sh","patch_set":12,"id":"ce38025b_508a422b","line":48,"in_reply_to":"fa21e33c_5bfe6eb2","updated":"2024-12-19 23:39:28.000000000","message":"Sorry if I am wrong.\nBut I think this is the only way to indent in here-document.\n(\u003c\u003c-)only ignore the tabs but not the blanks, so, for the readiblity, I want to leave it as it is now.\n[Here-document](https://www.gnu.org/software/bash/manual/html_node/Redirections.html#Here-Documents:~:text\u003d3.6.6%20Here%20Documents)","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5c9a6053fb76039dbd81fd7443026f73a740e403","unresolved":true,"context_lines":[{"line_number":77,"context_line":"}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# Function to check if a command exists and handle errors"},{"line_number":80,"context_line":"check_command() {"},{"line_number":81,"context_line":"  local command\u003d\"$1\""},{"line_number":82,"context_line":"  local error_message\u003d\"$2\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-sh","patch_set":12,"id":"4d79a197_94fcc9e1","line":80,"updated":"2024-12-18 09:14:56.000000000","message":"Pls define function with \"function\".","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":true,"context_lines":[{"line_number":77,"context_line":"}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# Function to check if a command exists and handle errors"},{"line_number":80,"context_line":"check_command() {"},{"line_number":81,"context_line":"  local command\u003d\"$1\""},{"line_number":82,"context_line":"  local error_message\u003d\"$2\""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-sh","patch_set":12,"id":"bd22a64d_790df60b","line":80,"in_reply_to":"4d79a197_94fcc9e1","updated":"2024-12-19 23:39:28.000000000","message":"Changed all of the function defination to `function`.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5c9a6053fb76039dbd81fd7443026f73a740e403","unresolved":true,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# Function to check if a command exists and handle errors"},{"line_number":80,"context_line":"check_command() {"},{"line_number":81,"context_line":"  local command\u003d\"$1\""},{"line_number":82,"context_line":"  local error_message\u003d\"$2\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  if ! ${command} \u003e /dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-sh","patch_set":12,"id":"464bf8d7_38436ace","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":15},"updated":"2024-12-18 09:14:56.000000000","message":"You\u0027d better to avoid such a general word as a variable in general.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":true,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"# Function to check if a command exists and handle errors"},{"line_number":80,"context_line":"check_command() {"},{"line_number":81,"context_line":"  local command\u003d\"$1\""},{"line_number":82,"context_line":"  local error_message\u003d\"$2\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  if ! ${command} \u003e /dev/null 2\u003e\u00261; then"}],"source_content_type":"text/x-sh","patch_set":12,"id":"d0a6d74e_236e32d4","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":15},"in_reply_to":"464bf8d7_38436ace","updated":"2024-12-19 23:39:28.000000000","message":"Changed.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"7ca4840b2571bda864c289aad562126d2ef6ad66","unresolved":true,"context_lines":[{"line_number":184,"context_line":"  fi"},{"line_number":185,"context_line":"  HEADER_BASE64\u003d$(base64url_encode \"${HEADER}\")"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"# Create JWT payload"},{"line_number":188,"context_line":"  PAYLOAD\u003d\u0027{"},{"line_number":189,"context_line":"  \"iss\": \"\u0027${ISSUER}\u0027\","},{"line_number":190,"context_line":"  \"sub\": \"\u0027${SUBJECT}\u0027\","}],"source_content_type":"text/x-sh","patch_set":12,"id":"7172f1da_8495e7cf","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":1},"updated":"2024-12-18 08:35:44.000000000","message":"nit: Could you adjust the indentation to L188?\n```suggestion\n  # Create JWT payload\n```","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"02bb0ca80c29d99cdb2e037de1b6278802a3d592","unresolved":false,"context_lines":[{"line_number":184,"context_line":"  fi"},{"line_number":185,"context_line":"  HEADER_BASE64\u003d$(base64url_encode \"${HEADER}\")"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"# Create JWT payload"},{"line_number":188,"context_line":"  PAYLOAD\u003d\u0027{"},{"line_number":189,"context_line":"  \"iss\": \"\u0027${ISSUER}\u0027\","},{"line_number":190,"context_line":"  \"sub\": \"\u0027${SUBJECT}\u0027\","}],"source_content_type":"text/x-sh","patch_set":12,"id":"ef73d419_550e67be","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":1},"in_reply_to":"7172f1da_8495e7cf","updated":"2024-12-20 00:14:18.000000000","message":"Acknowledged","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5c9a6053fb76039dbd81fd7443026f73a740e403","unresolved":true,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"# Function to replace a string in a file"},{"line_number":304,"context_line":"replace_string() {"},{"line_number":305,"context_line":"  local file\u003d\"$1\""},{"line_number":306,"context_line":"  local search\u003d\"$2\""},{"line_number":307,"context_line":"  local replace\u003d\"$3\""},{"line_number":308,"context_line":"  local message\u003d\"$4\""}],"source_content_type":"text/x-sh","patch_set":12,"id":"484f9e5e_bb8c42ef","line":305,"updated":"2024-12-18 09:14:56.000000000","message":"Better to avoid such a general words as L.81.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"},{"author":{"_account_id":36938,"name":"Kyaw Myo Thant","display_name":"Kyaw Myo Thant","email":"kyawmyothant@ntt-at.co.jp","username":"AT-Kyawmyothant"},"change_message_id":"342611ec500ed1a362c10f111d0f55321f9b1792","unresolved":true,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"# Function to replace a string in a file"},{"line_number":304,"context_line":"replace_string() {"},{"line_number":305,"context_line":"  local file\u003d\"$1\""},{"line_number":306,"context_line":"  local search\u003d\"$2\""},{"line_number":307,"context_line":"  local replace\u003d\"$3\""},{"line_number":308,"context_line":"  local message\u003d\"$4\""}],"source_content_type":"text/x-sh","patch_set":12,"id":"afdd3a0a_54a018ea","line":305,"in_reply_to":"484f9e5e_bb8c42ef","updated":"2024-12-19 23:39:28.000000000","message":"Searched and changed the general words across the script.","commit_id":"2fbbf8df3e09fb0532ebcf62b51786f889f77d1d"}]}
