What’s new in v22.2LTS-patch20220423


New builtins

New service

General changes

  • Qmonus独自認証認可でRFCライクなメッセージフォーマットに対応。尚、従来のX-Xaas-Api-Key, X-Xaas-Auth-Tokenによる認証認可は引き続き利用可能です。(issue #48)
0. ログインAPI鍵なし(限定トークン返る)
curl -i -X POST -H "Content-Type: application/json" -d '{"username":"example", "password":"example123"}' localhost:9099/logon
HTTP/1.1 200 OK
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/json
Date: Fri, 22 Apr 2022 04:30:50 GMT
Connection: close
Content-Length: 311

{"accessToken":"cpY0bL9Trqh2QwfpkzBnqmQEZoJZqLon3v1FmyG0F5K/GLXuZGHCBFzTLumpiUy/g3S1wjXD+iJ5lZjETAYgv3SWyduDvioqRlwWjp9zc43xoa5vG96X7zLQhpADaLfCbttqEYfsW7SSefnKNv3VFg==","expire":"2022-04-23T13:30:50.622583+09:00","limited":true,"role":{"name":"test","authorities":[{"regex":"/v1/examples","methods":["GET"]}]}}

1. ログインAPI鍵不正
curl -i -X POST -H "Content-Type: application/json" -H "refreshToken:r28BG6ESVQCMg7QLMAPLEsslGVVfadZMWcG8saHUzV3jLZ7P7gg7QQsbvxZLi6ge" -d '{"username":"example", "password":"example123"}' localhost:9099/logon 
HTTP/1.1 400 
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/problem+json
Date: Fri, 22 Apr 2022 04:28:18 GMT
Connection: close
Content-Length: 88

{"errorCode":400,"errorMessage":"invalid_grant","moreInfo":"Audience validation failed"}

2. ログインユーザ不正
curl -i -X POST -H "Content-Type: application/json" -H "refreshToken:r28BG6ESVQCMg7QLMAPLEsslGVVfadZMWcG8saHUzV3jLZ7P7gg7QQsbvxZLi6gr" -d '{"username":"examplehoge", "password":"example123"}' localhost:9099/logon
HTTP/1.1 400 
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/problem+json
Date: Fri, 22 Apr 2022 04:32:25 GMT
Connection: close
Content-Length: 88

{"errorCode":400,"errorMessage":"invalid_grant","moreInfo":"Audience validation failed"}

3. ログインパスワード不正
curl -i -X POST -H "Content-Type: application/json" -H "refreshToken:r28BG6ESVQCMg7QLMAPLEsslGVVfadZMWcG8saHUzV3jLZ7P7gg7QQsbvxZLi6gr" -d '{"username":"example", "password":"example1234"}' localhost:9099/logon
HTTP/1.1 400 
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/problem+json
Date: Fri, 22 Apr 2022 04:32:51 GMT
Connection: close
Content-Length: 88

{"errorCode":400,"errorMessage":"invalid_grant","moreInfo":"Audience validation failed"}

4. ログイン正常
curl -i -X POST -H "Content-Type: application/json" -H "refreshToken:r28BG6ESVQCMg7QLMAPLEsslGVVfadZMWcG8saHUzV3jLZ7P7gg7QQsbvxZLi6gr" -d '{"username":"example", "password":"example123"}' localhost:9099/logon
HTTP/1.1 200 OK
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/json
Date: Fri, 22 Apr 2022 04:28:31 GMT
Connection: close
Content-Length: 312

{"accessToken":"njID9kaTuPihcxUGYZwYUkHnQZnE/2GmmV4XsB9To/qGaamQJ+VQFKwi14aafq1dk3szSR7jb7j9ShmIQlq3/2m9RyNJEgNQY4pygmQaB0Kme5DF8+ZdWeGiDK9eZQG80O5wvL6L0Ujfq+W2L9x6FA==","expire":"2022-04-23T13:28:31.865247+09:00","limited":false,"role":{"name":"test","authorities":[{"regex":"/v1/examples","methods":["GET"]}]}}

5. トークン無しリソースアクセス
curl -i localhost:9099/v1/examples
HTTP/1.1 401 
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/problem+json
Date: Fri, 22 Apr 2022 04:33:19 GMT
Connection: close
Www-Authenticate: Bearer realm="token_required"
Content-Length: 37

{"cause":"Credentials not specified"}

6. 不正トークンリソースアクセス
curl -i -H "Authorization: Bearer +i/OUVy7cLOh/TUpqjsU7KHjnG434IYISLuuIpGTbHOgDw9rodBDuL5s+KzFp7s/vkgvk/MIW+ZsM48FmQWOxbKVeJu+7AV3aDO79Ld8Vkf76Q1G8KY95qT2r+S/f35V9/g1WJBXhZf5EtlhRGurAQ==" localhost:9099/v1/examples
HTTP/1.1 401 
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/problem+json
Date: Fri, 22 Apr 2022 04:36:04 GMT
Connection: close
Www-Authenticate: Bearer error="invalid_token"
Content-Length: 50

{"cause":"Do not have access to GET /v1/examples"}

7. 権限無しトークンリソースアクセス
curl -i -H "Authorization: Bearer +i/OUVy7cLOh/TUpqjsU7KHjnG434IYISLuuIpGTbHOgDw9rodBDuL5s+KzFp7s/vkgvk/MIW+ZsM48FmQWOxbKVeJu+7AV3aDO79Ld8Vkf76Q1G8KY95qT2r+S/f35V9/g1WJBXhZf5EtlfRGurAQ==" localhost:9099/routings  
HTTP/1.1 403 
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/problem+json
Date: Fri, 22 Apr 2022 04:38:02 GMT
Connection: close
Www-Authenticate: Bearer error="insufficient_scope"
Content-Length: 47

{"cause":"Do not have access to GET /routings"}

8. 正常トークンリソースアクセス
curl -i -H "Authorization: Bearer +i/OUVy7cLOh/TUpqjsU7KHjnG434IYISLuuIpGTbHOgDw9rodBDuL5s+KzFp7s/vkgvk/MIW+ZsM48FmQWOxbKVeJu+7AV3aDO79Ld8Vkf76Q1G8KY95qT2r+S/f35V9/g1WJBXhZf5EtlfRGurAQ==" localhost:9099/v1/examples
HTTP/1.1 200 OK
Server: Qmonus/v22.2LTS-patch20220423
Content-Type: application/json
Date: Fri, 22 Apr 2022 04:34:59 GMT
Connection: close
Etag: "2248ee2fa0aaaad99178531f924bf00b4b0a8f4e"
Content-Length: 17

{"hello":"world"}


  • MUオブジェクトの__repr__、getメソッドをdict互換に変更(issue #49)
  • NOT NULLでimmutableな外部キーフィールドを設定したい(issue #43)

Modules

Bug fixes

  • シナリオのW292を回避する改行が自動消去されてしまう問題の修正(issue #47)
  • request_validationのresourcesスキーマでinteger型のバリデーションが正しく行われない問題の修正(issue #39)
  • SQL関数にSQL文字列を指定した場合にエラーとなる問題の修正(issue #46)
  • waitfor_transactionのretry_intervalが適切に処理されない問題の修正(issue #45)
  • CLI組み込み関数でnetmikoのみを使用するように修正(issue #40)
  • ATOM継承で同一フィールド名をオーバーライドした場合にインスタンス出力表示がおかしくなる問題の修正(issue #41)
  • bodyがarray構造のAPIでtestcaseが進行しなくなる問題の修正(issue #44)
  • 順序変更していないフィールドのカラムソートが発生する問題とソート時に予約語のカラム名がエラーとなる問題の修正(issue #52)