Compare commits

..

572 Commits

Author SHA1 Message Date
shimoda.m
3d9a254b63 2025/1/27 PH1エンハンス 本番リリース
メンテナンス告知文削除
2025-01-24 04:04:55 +00:00
shimoda.m
ff5533b647 Merged PR 1010: 2025/1/27 本番リリース 2025-01-21 05:23:54 +00:00
shimoda.m
b3845187f6 Merged PR 1009: Revert "Merged PR 1006: 2025/1/27 PH1エンハンス 本番リリース"
Revert "Merged PR 1006: 2025/1/27 PH1エンハンス 本番リリース"

Reverted commit `b5293888`.

デプロイミスによる切り戻し
2025-01-21 04:47:21 +00:00
shimoda.m
019c818a19 Merged PR 1008: Revert "2025/1/27 PH1エンハンス 本番リリース
Revert "2025/1/27 PH1エンハンス 本番リリース
メンテナンス文言削除"

Reverted commit `1137d826`.

デプロイミスによる切り戻し。
2025-01-21 04:46:02 +00:00
shimoda.m
1137d826ae 2025/1/27 PH1エンハンス 本番リリース
メンテナンス文言削除
2025-01-21 04:00:54 +00:00
shimoda.m
b529388871 Merged PR 1006: 2025/1/27 PH1エンハンス 本番リリース 2025-01-21 02:59:31 +00:00
shimoda.m
aef17893d9 Merged PR 1004: 2025/1/27 本番リリース メンテナンス文言追加
## 概要

2025/1/27の本番リリースに向けて、トップページにメンテナンス文言を追加

リテラルは以下で確認中。(日付を変えただけなので問題ない認識)
OMDS_IS-459 【リリース】エンハンスリリース(1/27)のスケジュールについて

## UIの変更内容
![image.png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/1004/attachments/image.png)
2025-01-21 01:52:47 +00:00
nik.n
4f598b0017 Merged PR 988: pipelineエラー解消のためglobal npmアップデート削除
### 概要
Dockerfileから `RUN npm install -g npm` 削除。Node.js(v18.17.1)とnpm(11.0.0)のバージョン互換性の問題により、pipeline が失敗していたためです。
現在のNode.jsイメージに含まれている npmバージョン(9.6.7)でプロジェクトの要件は満たされているため、グローバルnpmのアップグレードは不要と判断した

### 参考リンク
失敗した Pipeline ビルド
- [#1931 • Merged PR 986: 保守対応の内容反映](https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_build/results?buildId=1931&view=results)
2025-01-08 04:36:06 +00:00
SAITO-PC-3\saito.k
b71ec627d7 特別な文字列をエスケープしてからreplaceAllするように修正 2024-12-11 14:07:39 +09:00
SAITO-PC-3\saito.k
af56f8ccad Supportページにリンク追加。
画面デザイン修正
2024-12-04 10:07:12 +09:00
SAITO-PC-3\saito.k
0b451ed62f NotificationHub登録方法修正 2024-11-27 11:16:46 +09:00
saito.k
11395279af Merged PR 954: NotificationHubへのデバイス登録方法を修正
## 概要
[Task4580: NotificationHubへのデバイス登録方法を修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4580)

- NotificationHubのデバイス登録時に付与するInstallationIDをuuidからuserIdに変更

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 修正範囲がNotificationHubのserviceに閉じているため、既存のテストが通ることを確認したのみ

## 補足
- 相談、参考資料などがあれば
2024-11-26 08:45:27 +00:00
x.itou.t
a07cfe51aa Merged PR 948: PH1エンハンス先行リリース対応
## 概要
[ユーザー ストーリー 4489: 【PH1エンハンス】Dictation Finishedになったファイルのステータスを変更したい](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation-2nd/_workitems/edit/4489)
[ユーザー ストーリー 4491: 【PH1エンハンス】通知にユーザーIDを付加する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation-2nd/_workitems/edit/4491)
2024-11-11 05:23:38 +00:00
saito.k
ad397f6fe7 Merged PR 933: Functions修正
## 概要
[Task4557: Functions修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4557)

- 国情報を追加
- テスト修正

## レビューポイント
- 特になし

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-10-16 07:40:27 +00:00
saito.k
85fdec2e5a Merged PR 922: Functions
## 概要
[Task4485: Functions](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4485)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-09-25 01:06:33 +00:00
saito.k
f1b75a7ff0 Merged PR 921: API修正
## 概要
[Task4478: API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4478)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-09-18 01:35:28 +00:00
saito.k
6690302ac3 Merged PR 920: API修正
## 概要
[Task4336: API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4336)

- 文字起こし完了時のメールを文字起こし担当のTypistに送信しないようにする

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認
- ほかのテストケースがすべて通ることを確認
- メール送信処理を確認するテストケースを追加

## 補足
- 相談、参考資料などがあれば
2024-08-09 07:47:33 +00:00
saito.k
1320222d79 Update azure-pipelines-staging.yml for Azure Pipelines 2024-08-09 06:13:40 +00:00
saito.k
baea8ce5e5 Update azure-pipelines-staging.yml for Azure Pipelines 2024-08-09 04:57:41 +00:00
saito.k
d69126a980 Update azure-pipelines-staging.yml for Azure Pipelines 2024-08-09 04:55:36 +00:00
SAITO-PC-3\saito.k
79a2b9f0a3 yml修正 2024-08-09 13:42:37 +09:00
SAITO-PC-3\saito.k
2a755f2bd3 使用するVM修正 2024-08-09 12:27:25 +09:00
SAITO-PC-3\saito.k
edb8a79f94 docker-composeをダウンロードするymlに修正 2024-08-09 12:24:00 +09:00
SAITO-PC-3\saito.k
4a5136deee yml修正3 2024-08-09 11:47:36 +09:00
SAITO-PC-3\saito.k
f2eaba7e5f yml修正2 2024-08-09 11:39:51 +09:00
SAITO-PC-3\saito.k
3b576c6a47 パイプラインのYamlを修正 2024-08-09 11:36:06 +09:00
saito.k
557fc48d05 Merged PR 919: 画面修正
## 概要
[Task4331: 画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4331)

- サポートページにアプリダウンロードリンクを追加

## レビューポイント
- 特になし

## 動作確認状況
- ローカルで確認
- サポートページのみで他画面に影響なし

## 補足
- 相談、参考資料などがあれば
2024-08-09 01:23:21 +00:00
saito.k
353d5ad462 Merged PR 918: analysisLicenses修正
## 概要
[Task4313: analysisLicenses修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4313)

- ライセンス推移CSVの出力内容を修正
  - 移行ライセンスの利用状況も出力する
  - 出力する移行ライセンスの条件は以下
     - 第五階層
     - 割り当て済
     - 有効期限が当日以降
     - 年間ライセンス
- テスト修正
  - 移行ライセンスの取得・変換ロジックのテスト修正

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-07-23 03:35:55 +00:00
saito.k
df55be5e19 Merged PR 917: 画面遷移してもインターバルが初期化されないように修正
## 概要
[Task4248: 画面遷移してもインターバルが初期化されないように修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4248)

- UpdateTokenTimerを修正
  - F5キーリロードの時もトークンをチェックする
- UpdateTokenTimerを各画面ごとではなくApp.tsxに配置する
  - 画面遷移のたびにSetIntervalが初期化されるのを防ぐ
- 各画面のUpdateTokenTimerを削除
  - App.tsxで管理するため

## レビューポイント
- いかの問題が解消されるかを可能であれば確認してほしい。
  - Dictation画面でトークンのチェック~自動更新ができること
  - 画面遷移をしてもトークンチェックのインターバルが初期化されないこと
  - F5キーリロードをした時にトークンチェックが走ること

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - 各画面で取得系の処理が正しく動作することを確認

## 補足
- 相談、参考資料などがあれば
2024-07-02 06:43:41 +00:00
SAITO-PC-3\saito.k
35425c576a ローカル環境のDBスキーマの参照先を変更 2024-06-14 16:14:11 +09:00
SAITO-PC-3\saito.k
d4abc0fcfb スキーマを変更 2024-06-14 11:57:28 +09:00
SAITO-PC-3\saito.k
11c0937214 メンテナンス告知を削除 2024-06-14 11:54:27 +09:00
SAITO-PC-3\saito.k
12fe7ac9bb 本番環境で参照するスキーマはomdsのため参照先を修正 2024-06-13 17:06:53 +09:00
SAITO-PC-3\saito.k
b997b928b8 Merge branch 'release-ccb' into hotfix-task4228 2024-06-13 16:45:30 +09:00
SAITO-PC-3\saito.k
10f57c6aeb Merge branch 'develop' into release-ccb 2024-06-12 14:50:18 +09:00
SAITO-PC-3\saito.k
254cbdf0d6 リテラル反映漏れ修正 2024-06-12 14:04:16 +09:00
SAITO-PC-3\saito.k
6b1286ba13 Merge branch 'develop' into release-ccb 2024-06-11 17:00:35 +09:00
saito.k
aea66f4616 Merged PR 914: ユーザー削除API修正
## 概要
[Task4223: ユーザー削除API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4223)

- Authorの削除条件の修正
  - Authorが作成したタスクがある場合は削除できない
- Typistの削除条件の修正
  - 文字起こし担当のタスクがある場合は削除できないように修正
    - 挙動は変わらない(記述を修正した)
- リテラル反映
- テストケース追加

## レビューポイント
- テストケースは足りているか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- 64行目のクエリ(Author/Typistともに)
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%AF%E3%82%A8%E3%83%AA/Task4223?csf=1&web=1&e=UsjxWP

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - Authorが作成したタスクがある場合にそのAuthorは削除できないことを確認(タスクのステータスはFinished・Backup)
    - AuthorのAuthorIDが設定されているタスクがある場合はそのAuthorは削除できないことを確認(すべてのステータス)
    - Typistが文字起こし担当のタスクがある場合そのTypistは削除できないことを確認(タスクのステータスはFinished・Backup)

## 補足
- 相談、参考資料などがあれば
2024-06-11 05:05:53 +00:00
SAITO-PC-3\saito.k
c73340ec51 Merge branch 'develop' into release-ccb 2024-06-11 11:20:34 +09:00
saito.k
07904c35e6 Merged PR 885: メンテナンス通知画面実装
## 概要
[Task4148: メンテナンス通知画面実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4148)

- TOPページにメンテナンス通知を追加

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Hotfix4148?csf=1&web=1&e=aGsZP6

## 動作確認状況
- ローカルで確認
- TOPページに文言を追加したのみ
  - 画面サイズを小さくしてもデザインが崩れないことを確認

## 補足
- メンテナンスモードに入る日時については未定のため、OMDS定例で決まり次第修正し、決められた日時にmainにマージする
2024-06-11 01:24:52 +00:00
saito.k
474cdd56c6 Merged PR 913: ライセンス取得APIの修正
## 概要
[Task4220: ライセンス取得APIの修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4220)

- 割り当て可能ライセンス取得APIを修正
  - 有効期限が当日のライセンスは割り当て可能としないように修正
    - 有効期限が翌日以降のライセンスを取得
- テスト修正
- ライセンス割り当ての処理にコメント追加
  - 結果として有効期限が当日のライセンスは割り当てられないので問題はないが、記述方法が紛らわしいのでコメントを追加した。

## レビューポイント
- テストケースは足りているか
- 追加したコメントの意図は伝わるか

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- クエリ部分を修正したが、基準となる日付を変更したのみなので、クエリ自体に変更はなし
  - Before/Afterで確認したが、変更はなかった

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - テストを追加して、デグレがないことを検証した

## 補足
- 相談、参考資料などがあれば
2024-06-10 02:31:35 +00:00
saito.k
83732fa1b5 Merged PR 911: 画面修正(ファイル名変更ボタンのデザイン)
## 概要
[Task4213: 画面修正(ファイル名変更ボタンのデザイン)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4213)

- ファイル名変更ボタンのデザイン修正
  - 言語を英語以外にすると、ファイル名の入力欄と重なってしまうのを修正
    - ボタンの位置を入力欄の下に修正
- リテラル修正も含めて対応
  - https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2036-1?workitem=4214

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task4213?csf=1&web=1&e=ftBwWm

## 動作確認状況
- ローカルで確認
- デザインの修正のみのためデグレは発生しない

## 補足
- 修正したデザインに対してはOMDS様に確認済み
2024-06-06 07:36:17 +00:00
saito.k
6b1650a634 Merged PR 910: メール文面修正&ユーザー一括登録のテンプレートファイル修正
## 概要
[Task4190: メール文面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4190)
[Task4191: ユーザー一括登録のテンプレートファイル修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4191)

- ユーザー一括追加時に送信するメールの内容を修正
  - SCVとなっていたところをCSVに修正
- ユーザー一括追加用のエクセルの項目名を画面上の項目名と合わせる
  - auto_renewとなっていたところをauto_assignに修正

## レビューポイント
- 修正内容の認識は合っているか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - CSV変換のテストが通ることを確認
    - メール内容はdev動作確認で確認

## 補足
- 相談、参考資料などがあれば
2024-06-04 06:54:42 +00:00
makabe.t
4f7d65f0e8 Merged PR 905: POST /accounts/worktypes/{id}
## 概要
[Task3986: POST /accounts/worktypes/{id}](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3986)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-06-04 04:25:54 +00:00
SAITO-PC-3\saito.k
1f10a3f096 Merge branch 'develop' into release-ccb 2024-06-04 13:07:39 +09:00
saito.k
909c2a6d55 Merged PR 909: 画面修正(CSVファイルの変換処理)
## 概要
[Task4202: 画面修正(CSVファイルの変換処理)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4202)

- CSVデータの変換関数を修正
  - author_id,encryption_passwordが数値のみの場合でも、文字列として扱うようにする

## レビューポイント
- ほかに確認したほうが良いテストケースはあるか

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - 既存のテストはすべて通ることを確認

## 補足
- 相談、参考資料などがあれば
2024-06-03 06:36:05 +00:00
saito.k
37666a00c7 Merged PR 908: API修正(タスク削除条件のステータスチェックを修正)
## 概要
[Task4201: API修正(タスク削除条件のステータスチェックを修正)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4201)

- タスク削除不可条件を修正
  - Pendingの時も削除できないようにする

## レビューポイント
- 修正の認識があっているか

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - タスクの各ステータスで削除可否を確かめられるように修正

## 補足
- 相談、参考資料などがあれば
2024-06-03 05:39:53 +00:00
saito.k
b7925f311b Merged PR 907: 画面修正(タスク削除ボタンの活性条件を修正)
## 概要
[Task4200: 画面修正(タスク削除ボタンの活性条件を修正)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4200)

- タスク削除ボタンの活性条件を修正
  - Pendingの時は削除できないようにする

## レビューポイント
- 特になし

## UIの変更
- https://ndstokyo.sharepoint.com/:i:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task4200/Pending%E5%89%8A%E9%99%A4%E4%B8%8D%E5%8F%AF.png?csf=1&web=1&e=ATzEZ8

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - Inprogressのステータスで削除できないこと
  - Uploaded・Finished・backupで削除できる

## 補足
- 相談、参考資料などがあれば
2024-06-03 05:07:08 +00:00
SAITO-PC-3\saito.k
97620881d3 Merge branch 'develop' into release-ccb 2024-05-31 14:05:54 +09:00
saito.k
0e68f26c57 Merged PR 906: ユーザー認証API修正
## 概要
[Task4182: ユーザー認証API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4182)

- 認証済みチェックをパスワード変更より先に行うように修正
- パスワード変更に失敗したら、認証済みフラグをfalseにするリカバリ処理追加
  - リカバリに失敗したら手動復旧ログを出力
- メール送信に失敗したらエラーを返すように修正
  - メール送信に失敗したらリカバリ処理を行うように修正
    - リカバリに失敗したら手動復旧ログを出力
- テスト修正
  - リカバリ処理を考慮したケースを追加

## レビューポイント
- リカバリ処理の記述
- メール送信でエラーが起きたときにエラーを握りつぶさないようにしたが問題ないか
  - メール送信で失敗したときにエラーを握りつぶすと、ユーザーは届かないメールを待つしかなくなる
    - 失敗を伝えて、リカバリをしてあげると再実行してもらうことができる。

## クエリの変更
- クエリの変更はなし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 既存のテストケースをDBを使うテストに置き換え
    - 結果は変えずに通ることを確認
  - テストケースを追加し、新たな観点でテストを作成

## 補足
- 相談、参考資料などがあれば
2024-05-30 00:18:59 +00:00
makabe.t
9736d23653 Merged PR 904: POST /accounts/worktypes
## 概要
[Task3985: POST /accounts/worktypes](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3985)

- `POST /accounts/worktypes`のリクエストバリデータにテストを追加しました。

## レビューポイント
- テストケースに不足はないか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - テストの追加のみなので影響なし
2024-05-28 05:58:17 +00:00
makabe.t
261a5afbdd Merged PR 903: POST /notification/register
## 概要
[Task3983: POST /notification/register](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3983)

- `POST /notification/register`APIのバリデータに対するテストを追加しました。

## レビューポイント
- テストケースに不足はないか。

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - テストの追加のみなのでほかに影響なし。
2024-05-28 05:38:33 +00:00
SAITO-PC-3\saito.k
3a7c1765ee Merge branch 'main' into develop
# Conflicts:
#	dictation_client/src/translation/de.json
#	dictation_client/src/translation/en.json
#	dictation_client/src/translation/es.json
#	dictation_client/src/translation/fr.json
2024-05-24 17:26:50 +09:00
SAITO-PC-3\saito.k
c16a8b023c Merge branch 'develop' into release-ccb 2024-05-24 16:17:03 +09:00
saito.k
4b16e6a004 Merged PR 900: 画面修正(フッターに規約リンク追加)
## 概要
[Task4084: 画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4084)

- フッターに規約リンクを追加
  - デザインはOMDS様に確認済み
- サポートページにフッターを追加

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Hotfix4084?csf=1&web=1&e=bQBkQI

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-05-24 05:23:26 +00:00
saito.k
bd8f035c46 Merged PR 902: POST /files/audio/upload-finished
## 概要
[Task3982: POST /files/audio/upload-finished](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3982)

- /files/audio/upload-finished のバリデーションテスト作成

## レビューポイント
- テストケースで抜けているところはないか
  - IsNotEmpty()は一つに省略

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - テスト追加のため既存機能に影響なし

## 補足
- 相談、参考資料などがあれば
2024-05-23 07:26:04 +00:00
makabe.t
bdcce37b5a Merged PR 898: 対応
## 概要
[Task4174: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4174)

- アカウント情報画面からディーラーを変更する際に、同名ディーラーがいてもそれぞれ別個に指定できるようにIDで検索するように修正しました。

## レビューポイント
- 対応方針は認識通りでしょうか?

## UIの変更
- なし

## クエリの変更
- クライアントのみ変更なのでなし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - ローカルで同名ディーラーでそれぞれを指定して変更できることを確認
2024-05-23 01:12:31 +00:00
SAITO-PC-3\saito.k
7af5c50a27 Merge branch 'develop' into release-ccb 2024-05-20 13:57:26 +09:00
saito.k
5860da285e Merged PR 899: 階層構造変更API修正
## 概要
[Task4179: 階層構造変更API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4179)

- 階層構造変更API修正
  - 第四⇔第五の切り替え処理の時は国・リージョンの一致を確認しない
  - 不要なエラーコード・エラーハンドリングを削除
- テスト修正

## レビューポイント
- 修正箇所の認識は合っているか
- テストケースは足りているか

## 動作確認状況
- ローカルで確認
  - 国の違うDealerに付け替える処理を行い成功した
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - 国の違う第四⇔第五間の付け替えのテストが成功することを確認
    - ほかのテストが成功することを確認

## 補足
- 相談、参考資料などがあれば
2024-05-17 06:49:26 +00:00
SAITO-PC-3\saito.k
3ece576476 Merge branch 'develop' into release-ccb 2024-05-16 14:06:54 +09:00
SAITO-PC-3\saito.k
4dac420bed typeORMのモジュール設定が漏れていたので修正 2024-05-15 17:00:20 +09:00
makabe.t
ddf338bc72 Merged PR 890: 翻訳情報反映
## 概要
[Task4058: 翻訳情報反映](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4058)

- 6月末リリース分の翻訳をクライアントに適用しました。
  - いただいた翻訳内容は開発の管理ファイルに反映しています。(メンテナンスについては未反映です。)
[ラベル・メッセージ管理](https://sonyjpn.sharepoint.com//r/sites/S127-OMDS-EXTERNAL-NDS/_layouts/15/doc2.aspx?sourcedoc=%7BCBFBB1F9-3AB4-4E2E-A21D-572684D20B29%7D&file=%E3%83%A9%E3%83%99%E3%83%AB%E3%83%BB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E7%AE%A1%E7%90%86_dictation.xlsx&action=default&mobileredirect=true)

## レビューポイント
- 翻訳の適用は適切か?

## UIの変更
- 翻訳の適用

## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - リテラルの内容のみなので影響なし
2024-05-15 07:15:35 +00:00
saito.k
0cca61517c Merged PR 896: バージョンアップ用SQLを作成
## 概要
[Task4044: バージョンアップ用SQLを作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4044)

- jobNumberの初期値を設定するマイグレーションファイル作成
  - タスクテーブルにレコードがある(=タスクを作成したことがある)アカウントに対しては最新のJobNumberで初期値をセットする
  - タスクテーブルにレコードがない(=タスク作成をしたことがない)アカウントに対しては`00000000`をセットする

## レビューポイント
- セットする初期値は認識あっているか
- migrate downの処理は問題ないか

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - マイグレーションファイルの作成のみなのでほかに影響はない想定

## 補足
- 相談、参考資料などがあれば
2024-05-15 06:15:22 +00:00
saito.k
fe5e8b8e1c Merged PR 895: API修正(アカウント作成系)
## 概要
[Task4043: API修正(アカウント作成系)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4043)

- アカウント作成時にJobNumberの初期値を設定するように修正
- パートナーアカウント作成時にJobNumberの初期値を設定するように修正
- リカバリ処理にJobNumberのレコード削除を追加
- テスト修正

## レビューポイント
- JobNumber作成処理の追加する箇所に問題はないか
- テストケースに不足はないか

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- 既存のクエリに修正はなし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - 既存テストが通ることを確認
    - パートナーアカウント作成のテストにメール送信内容のチェックを追加
    - ソート条件が作成・削除されていることを確認するテストを追加

## 補足
- 相談、参考資料などがあれば
2024-05-14 07:18:57 +00:00
saito.k
dfdc6a33ad Merged PR 894: API修正(アカウント削除系)
## 概要
[Task4034: API修正(アカウント削除系)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4034)

- アカウント削除時にJobNumberテーブルのレコードも削除するように修正
- パートナー削除時にJobNumberテーブルのレコードも削除するように修正
- テスト修正

## レビューポイント
- テストケースに不足はないか
- ジョブナンバーテーブルの削除順に問題はないか

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- JobNumberテーブルのレコードを削除する処理を追加した
  - 既存のクエリに影響はなし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 既存のテストが通ることを確認
  - テストしていなかった観点(ソート条件も削除されているか等)も確認するように修正

## 補足
- 相談、参考資料などがあれば
2024-05-14 02:12:41 +00:00
saito.k
35e2d626a0 Merged PR 893: API修正(upload-finished)
## 概要
[Task4033: API修正(upload-finished)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4033)

- JobNumberテーブルから取得したJOBNUMBERを使用してタスクを作成する。
- テスト追加

## レビューポイント
- テストケースは足りているか
- JOBNUMBERの採番ロジックに誤りはないか

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
-  JobNumberテーブルからの取得と更新クエリを追加した
  - 既存のクエリを変更はしていない

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - テストケースを修正し、既存テストがすべて通ることを確認

## 補足
- 相談、参考資料などがあれば
2024-05-13 05:04:16 +00:00
saito.k
228e21ba78 Merged PR 892: migration修正
## 概要
[Task4035: migration修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4035)

- job_numberテーブル作成
- マイグレーションのコマンド修正

## レビューポイント
- インデックス・ユニーク制約・外部キー制約の認識は合っているか
- マイグレーションのコマンドは基本的にccbで認識あっているか

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - マイグレーションファイル作成のみでほかに影響なし

## 補足
- 相談、参考資料などがあれば
2024-05-10 03:56:48 +00:00
makabe.t
68df7cd728 Merged PR 887: POST /auth/token
## 概要
[Task3981: POST /auth/token](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3981)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- `POST /auth/token` のバリデータのUTを追加しました。

## レビューポイント
- テスト項目は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - テストの修正のみなので影響なし
2024-05-09 05:28:03 +00:00
makabe.t
ffd6eb4e68 Merged PR 886: GET /tasks
## 概要
[Task3980: GET /tasks](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3980)

- `GET /tasks` のバリデータのUTを追加しました。

## レビューポイント
- テスト項目は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - テストの修正のみなので影響なし
2024-05-09 01:20:57 +00:00
SAITO-PC-3\saito.k
e205209b12 Merge branch 'develop' into release-ccb 2024-05-08 16:15:14 +09:00
SAITO-PC-3\saito.k
3ea84a3597 Merge branch 'main' into develop 2024-05-08 15:55:30 +09:00
saito.k
b71c4398d2 Merged PR 891: 不具合対応
## 概要
[Task4163: 不具合対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4163)

- ビルド成果物にメール用のテンプレートも含めるように修正

## レビューポイント
- 特になし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - コードの修正はなし

## 補足
- 相談、参考資料などがあれば
2024-05-08 05:41:20 +00:00
makabe
c26ad130ed Merge branch 'develop' into release-ccb 2024-05-07 16:49:42 +09:00
makabe.t
279a9ab037 Merged PR 889: function修正
## 概要
[Task4164: function修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4164)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-05-07 07:11:39 +00:00
SAITO-PC-3\saito.k
4e00c03ef2 Merge branch 'main' into develop 2024-05-07 15:42:39 +09:00
saito.k
c813ddc0ac Merged PR 888: 対応
## 概要
[Task4160: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4160)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-05-07 05:37:16 +00:00
makabe
23f8b54011 Merge branch 'main' into develop 2024-05-07 12:04:03 +09:00
makabe.t
8122f6f4e1 Merged PR 884: FunctionにX-Requested-Withヘッダを適用
## 概要
[Task4142: FunctionにX-Requested-Withヘッダを適用](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4142)

- Functionのユーザー一括登録の処理中でOMDS CloudのAPIを呼び出す処理があるので、X-Requested-Withヘッダを適用しました。
- 一括登録失敗時のメール文面の翻訳でエラーがない場合のメッセージが日本語のままになっていたので各言語に対応しました。

## レビューポイント
- ヘッダの適用は適切でしょうか?
- 翻訳の適用方法で、言語ごとに割り当てる内容を定数としていますが、文面の置き換え方法に問題はないでしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - ローカルからAPIを叩い検証証
2024-05-07 00:05:17 +00:00
SAITO-PC-3\saito.k
e76242bddd Functionsのテストで使用する環境変数を修正 2024-04-25 18:19:48 +09:00
saito.k
af0ba78ae9 Merged PR 883: Functions修正
## 概要
[Task4132: Functions修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4132)

- 自動割り当てを行うライセンスの取得条件を変更
  - 有効期限が近いライセンスまたは有効期限が設定されていないライセンス(新規ライセンス)を取得する
  - 有効期限が近いものから割り当てを行うので、ソートはサーバー側で行うようにした
- メール送信処理を追加

## レビューポイント
- テンプレート取得からメール送信までの実装で漏れはないか
- テストケースは足りているか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- 2行目で割り当てるライセンスを取得しているが、その条件を修正した
- https://ndstokyo.sharepoint.com/:u:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%AF%E3%82%A8%E3%83%AA/task4132/after.log?csf=1&web=1&e=jh49c3

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 追加したメール送信処理を確認するように各テストを修正し、テストが通っている
  - テストの観点を拡充したうえでテストが通っていることを確認
    - ライセンス割り当て履歴の内容をより詳細に確認するようにした

## 補足
- 相談、参考資料などがあれば
2024-04-25 08:56:03 +00:00
makabe
1904b95adf Merge branch 'develop' into release-ccb 2024-04-24 11:35:58 +09:00
makabe.t
d43cece48a Merged PR 882: 追加開発分をステージングに反映するPipelineを作成
## 概要
[Task4016: 追加開発分をステージングに反映するPipelineを作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4016)

- 追加開発分CCBをステージングに反映するPipeline定義のYamlファイルを追加しました。

## レビューポイント
- 参照元ブランチを変えた以外はSTGデプロイそのままにしていますが、対応の不足はないでしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- マージ後に確認
2024-04-22 08:01:37 +00:00
SAITO-PC-3\saito.k
ba7196cac1 本番デプロイようにコメントアウトした実装をもとに戻す 2024-04-22 10:44:56 +09:00
SAITO-PC-3\saito.k
7eecb001c6 4/22の本番環境デプロイのために確認未実施の修正をコメントアウト 2024-04-21 22:41:44 +09:00
SAITO-PC-3\saito.k
0b01da936d CacheModule作成時にTTLを設定 2024-04-19 19:15:23 +09:00
saito.k
b88c0d9b96 Merged PR 877: ディーラー取得APIの修正
## 概要
[Task4104: ディーラー取得APIの修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4104)

- メールの文面を各言語版に置き換えました。
  - 環境変数に設定されたアカウントIDのDealerはResponseに含めないように修正

## レビューポイント
- 環境変数からインスタンス変数に代入するときの処理に問題はあるか
- 環境変数のフォーマットはこれで良いか
  - もっとよいやり方があれば指摘いただきたいです
- テストケースに不足はないか

## UIの変更
- なし

## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - ほかのテストに影響が出ていない
2024-04-19 04:47:32 +00:00
makabe
b7554e30ff CCBからDBの向き先を変更 2024-04-19 13:38:24 +09:00
makabe
b03cda3ccc Merge branch 'ccb' into develop 2024-04-19 11:17:17 +09:00
makabe.t
7bfd424a64 Merged PR 875: メールの多言語対応
## 概要
[Task3859: メールの多言語対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3859)

- メールの文面を各言語版に置き換えました。
  - アカウント情報消去完了通知 [U-111] 
  - ユーザー一括登録 受付通知 [U-120] 
  - ユーザー一括登録 完了通知 [U-121] 
  - ユーザー一括登録 失敗通知 [U-122] 
  - パートナーアカウント情報消去完了通知 [U-123] 

## レビューポイント
- 対応メールは適切でしょうか?
- メール文面は適切でしょうか?
- 反映内容は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - ローカル確認、マージ後にdevelop動作確認
2024-04-19 02:14:05 +00:00
makabe
9ee29e91ba マイグレーションコマンド修正 2024-04-19 09:10:48 +09:00
SAITO-PC-3\saito.k
b24059b538 Merge branch 'develop' into ccb
# Conflicts:
#	dictation_client/src/translation/de.json
#	dictation_client/src/translation/en.json
#	dictation_client/src/translation/es.json
#	dictation_client/src/translation/fr.json
#	dictation_function/src/test/common/utility.ts
#	dictation_server/src/features/files/test/utility.ts
2024-04-18 09:57:37 +09:00
SAITO-PC-3\saito.k
a7b18d8151 Merge branch 'develop' 2024-04-17 14:02:05 +09:00
makabe.t
23862ad3ac Merged PR 874: 不具合修正
## 概要
[Task4137: 不具合修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4137)

- ファイル名変更時にダイアログを追加

## レビューポイント
- 共有
## UIの変更
- ダイアログを追加

## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - ローカル確認
2024-04-17 01:49:34 +00:00
saito.k
566da623bf Merged PR 873: dev動作確認不具合修正
## 概要
[Task4131: dev動作確認不具合修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4131)

- メール送信対象のアカウント取得条件を修正
  - 第五階層はDPAの規約に同意することがないため、accepted_dpa_versionは常にNULLとなる
    - 取得条件にaccepted_dpa_versionがNOTNULLを追加するとカラムに値が入る契機がないのでアカウントを取得できなくなってしまっていた。

## レビューポイント
- 特になし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - ほかのテストケースで使用しているユーザーデータをaccepted_dpa_versionはNULLの状態で作成するようにし、テストがすべて通ることを確認

## 補足
- 相談、参考資料などがあれば
2024-04-17 01:01:31 +00:00
makabe.t
69241ed36c Merged PR 871: Function(音声ファイル自動削除)修正
## 概要
[Task4060: Function(音声ファイル自動削除)修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4060)

- 自動ファイル削除で生ファイル名を利用するように修正しUTを追従しました。

## レビューポイント
- 生ファイル名を使う方法は適切でしょうか?
- テストの修正は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- select対象をraw_file_nameに修正

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - テストが通ることを確認
2024-04-17 00:23:08 +00:00
makabe.t
c469f943f1 Merged PR 872: 生ファイル名の初期値を追加するマイグレーションファイル作成
## 概要
[Task4125: 生ファイル名の初期値を追加するマイグレーションファイル作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4125)

- 生ファイル名と表示ファイル名をそれぞれ修正して初期値を入れるスクリプトを追加しました。
  - 生ファイル名:これまでfile_nameカラムに入っていた値
  - file_nameの値から.zipを除いたもの

## レビューポイント
- この値の操作で問題はないか

## UIの変更
- なし
## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - migrate up/downで想定通りになることを確認
2024-04-17 00:18:48 +00:00
makabe.t
0a714f8484 Merged PR 870: ファイル情報ポップアップ画面修正
## 概要
[Task4051: ファイル情報ポップアップ画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4051)

- ファイル情報ポップアップを修正し、ファイル名を変更できるように修正しました。
- 音声ファイル名変更APIのファイル名の文字数を修正しました。
  - フロントの入力欄で64文字にしたので、プラス拡張子で68文字としました。

## レビューポイント
- 画面イメージは認識通りでしょうか?
- 表示では拡張子を取って、APIに渡す際にはつけているのですが処理として不自然ではないでしょうか?

## UIの変更
- [Task4051](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task4051?csf=1&web=1&e=nbYIE0)

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - タスク一覧、ファイル情報ポップアップが正常に見えることを確認
2024-04-16 10:12:44 +00:00
makabe.t
1d2089b0c4 Merged PR 868: 音声ファイル名変更のに伴うAPI修正
## 概要
[Task4053: 音声ファイル名変更のに伴うAPI修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4053)

- 音声ファイル名について生ファイル名を利用するように修正しました。
  - ファイルアップロード完了(タスク登録)
    - パラメータのファイル名で生ファイル名も登録
  - 音声ファイルダウンロード先取得
  - タスク削除
    - blobストレージのファイル名に生ファイル名を利用

## レビューポイント
- 対象APIは認識通りか

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - UTが通ることを確認
    - 各APIで生ファイル名を使って実行できることを確認
2024-04-16 05:24:18 +00:00
saito.k
f975ecf551 Merged PR 869: Functions修正
## 概要
[Task4085: Functions修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4085)

- メール送信対象のアカウント取得条件を修正
  - プライマリー管理者の規約同意用のカラムがNULLであった場合は、そのアカウントにはメール送信しない。
- Entityの`@Column`で設定する型が実際のパラメータの型と異なっていたため修正
  - 文字列のところをDateTimeとしていた

## レビューポイント
- 修正内容の認識あっているか
- テストケースは足りているか

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%AF%E3%82%A8%E3%83%AA/4085?csf=1&web=1&e=WRec5O
  - 35行目に変更あり(規約系のカラムがNULLではないという条件を追加)
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 既存のテスト結果に影響なし

## 補足
- 相談、参考資料などがあれば
2024-04-16 05:08:04 +00:00
makabe.t
e6d27d7810 Merged PR 867: 音声ファイル名変更API実装
## 概要
[Task4052: 音声ファイル名変更API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4052)

- ファイル名変更APIとそのUTを実装しました。

## レビューポイント
- リポジトリ実装のチェック内容とその順序は適切でしょうか?
- テスト項目は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - UT実行
    - ローカル実行

## 補足
- 相談、参考資料などがあれば
2024-04-15 06:52:07 +00:00
makabe.t
f209c7359e Merged PR 865: IF実装・修正
## 概要
[Task4049: IF実装・修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4049)

- 音声ファイル名変更APIのIFを実装してリクエストパラメータのテストを実装しました。
- タスク一覧取得APIのレスポンスに生ファイル名を追加しました。
- OpenAPIの更新

## レビューポイント
- ファイル名変更APIのパスは適切でしょうか?
- バリデータのチェックは適切でしょうか?

## UIの変更
- なし

## クエリの変更
- IFなのでなし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - 既存テストを実施して、タスク一覧についてはレスポンス期待値を修正。
    - タスク一覧画面が正常に見えることを確認
2024-04-12 01:36:49 +00:00
makabe.t
33d4ab3d2f Merged PR 863: (Sprint31対応)一部のentityでMySQL上の型がbigintのものに対してbigintTransformerで変換する処理が入っていない
## 概要
[Task3928: (Sprint31対応)一部のentityでMySQL上の型がbigintのものに対してbigintTransformerで変換する処理が入っていない](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3928)

- 現在、bigint型で変換を適用していない部分へのTransformerの適用はうまくいかないため保留。
  - 既存処理については問題ありません
- Functionのテストで日付に依存している箇所があったので修正しています。

## レビューポイント
- 共有

## UIの変更
- なし
## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - テストの修正のみ
2024-04-11 04:29:16 +00:00
makabe.t
07bca1d638 Merged PR 866: DBマイグレーションエラー修正
## 概要
[Task4120: DBマイグレーションエラー修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4120)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-04-10 09:48:40 +00:00
makabe.t
09c21eafa7 Merged PR 864: DBにカラム追加
## 概要
[Task4057: DBにカラム追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4057)

- DBマイグレーションファイルとして音声ファイルテーブルに生ファイル名カラムを追加しました。

## レビューポイント
- カラムの要件は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし
## 動作確認状況
- ローカルでmigrate:up/downできることを確認
2024-04-10 06:15:54 +00:00
makabe.t
e6d6e477d9 Merged PR 862: パートナー一覧画面&パートナー編集ポップアップ実装
## 概要
[Task3935: パートナー一覧画面&パートナー編集ポップアップ実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3935)

- パートナー一覧画面からパートナー編集ポップアップを表示して情報を変更できる画面実装をしています。

## レビューポイント
- エラーの表示は適切でしょうか?
- 画面イメージは認識通りでしょうか?

## UIの変更
- [Task3935](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3935?csf=1&web=1&e=FdaUMT)

## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 新規機能なので問題なし
2024-04-08 07:41:05 +00:00
maruyama.t
915483c109 Merged PR 860: パートナー情報更新API実装
## 概要
[Task3937: パートナー情報更新API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3937)

- パートナーアカウント情報更新APIとUTを実装しました。

## レビューポイント
- エラーケースの出し分けは適切でしょうか?
- テストケースは過不足ないでしょうか?

## UIの変更
- なし

## クエリの変更
- 新規追加のため変更はなし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 新規追加なので問題なし。
2024-04-05 02:37:58 +00:00
SAITO-PC-3\saito.k
c600d9f818 Merge branch 'develop' 2024-04-03 18:51:31 +09:00
saito.k
5147f853ae Merged PR 861: API修正
## 概要
[Task4038: API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4038)

- タスク作成時のジョブナンバーの採番ルールを修正
  - 常に最新タスクのジョブナンバー+1を採番する
- テストケース追加
- 非同期処理の呼び出しでawaitが抜けている箇所を修正

## レビューポイント
- 修正内容の認識は合っているか
- テストケースに不足はないか
- 修正箇所がほかの機能に影響していないか
  - taskRepositoryのcreateはupload-finished以外では使用されていない

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%AF%E3%82%A8%E3%83%AA/Task4038?csf=1&web=1&e=WTIk2l
  - L107辺りが変更箇所

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - 修正したcreateがほかで使用していないことを確認
    - テストケースを追加し確認
    - 既存のテスト含め成功することを確認

## 補足
- 相談、参考資料などがあれば
2024-04-03 05:35:30 +00:00
maruyama.t
0288292058 Merged PR 859: パートナーユーザー取得API実装
## 概要
[Task3936: パートナーユーザー取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3936)
- このPull Requestでの対象/対象外
パートナー変更APIの修正は別タスクで対応
- 影響範囲(他の機能にも影響があるか)
新規APIのため他の機能に影響はない

## レビューポイント
- パートナーのアカウントIDからユーザー一覧を取得する際に、Repository層ではEmai認証状態を意識した取得は行わない
 →service層でフィルタリングする実装にしたが
 (アカウントIDからユーザー一覧を取得する処理がいままでなかったので、あったほうがいいかなと思い)

## クエリの変更
新規APIのためクエリの変更はない

## 動作確認状況
- ローカルで確認
UT+POSTMAN
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか
既存機能には手を入れていない
## 補足
- 相談、参考資料などがあれば
2024-04-03 00:50:53 +00:00
maruyama.t
8752448eed Merged PR 858: エラーメッセージ修正
## 概要
[Task4013: エラーメッセージ修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4013)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)
なし

## レビューポイント
- とくになし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
UIなのでなし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか
メッセージの修正のみなのでデグレなし

## 補足
- 相談、参考資料などがあれば
2024-03-26 11:30:30 +00:00
湯本 開
1d71bef7aa Merged PR 857: テスト追加
## 概要
[Task3977: テスト追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3977)

- エラー時にアラーム発報ログが出力されているかを確認するテストを追加
- contextを継承して、ログに吐き出す内容をstring型の配列として溜め込むテスト用のクラスを追加

## レビューポイント
- テストの内容は妥当か

## クエリの変更
- テストのみ追加なので変更なし

## 動作確認状況
- npm run testが通過したこと
2024-03-26 07:05:39 +00:00
maruyama.t
114ded790e Merged PR 855: API IF実装(パートナーを編集したい)
## 概要
[Task3930: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3930)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 新規追加API2本のIFを作成、controllerの返却値は仮実装(別タスクで実装)
- 影響範囲(他の機能にも影響があるか)
 新規追加のみなので影響はなし

## レビューポイント
- 特筆する点はありません

## UIの変更
なし

## クエリの変更
なし

## 動作確認状況
- ローカルで確認
 バリデーションテストとPOSTMANからの起動の確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか
完全新規のIFの実装のみなのでデグレはない想定

## 補足
- 相談、参考資料などがあれば
2024-03-26 06:22:07 +00:00
Kentaro Fukunaga
ae638b16be Merge remote-tracking branch 'origin/develop' 2024-03-25 18:03:40 +09:00
湯本 開
133db833ee Merged PR 850: staging-pipelineのテスト実行修正
## 概要
[Task3948: staging-pipelineのテスト実行修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3948)

- docker-composeを使用したテストは `ubuntu-latest` で実行する必要があったため、pipelineを修正

## レビューポイント
- 問題がありそうな記述はあるか
- 実行順の依存関係等が壊れていないか

## 動作確認状況
- 未動作確認。4月以降、CCB対応時に動かして確認を想定。
2024-03-25 08:09:16 +00:00
Kentaro Fukunaga
1f0cf50166 Merged PR 856: Clientビルド時に埋め込んでいるキーやURLの更新
## 概要
[Task3963: Clientビルド時に埋め込んでいるキーやURLの更新](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3963)

- クライアント本番用のACB2C関連の環境変数を作り直したACB2Cの値に差し替えました。

## レビューポイント
- 共有

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- 未実施
- デプロイ後に確認

## 補足
- 相談、参考資料などがあれば
2024-03-25 07:54:43 +00:00
masaaki
eb6b413adb Merged PR 848: パートナー一覧画面修正
## 概要
[Task3833: パートナー一覧画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3833)

- パートナー一覧画面のパートナーにカーソルを合わせた際に、Delete Partnerリンクが表示される。
押下した場合は、本当に削除するのかを確認するメッセージが表示され、どのPartnerを削除するかメッセージ欄に表示されること。

## レビューポイント
- 特筆する点はなし

## UIの変更
https://ndstokyo.sharepoint.com/sites/Piranha/Shared%20Documents/Forms/AllItems.aspx?csf=1&web=1&e=hzPw9b&cid=e8e0702d%2D3730%2D4295%2Dbb9d%2D40e6b1998906&FolderCTID=0x012000C0DCEE65AC2177479C3C761CD137C9C9&id=%2Fsites%2FPiranha%2FShared%20Documents%2FGeneral%2FOMDS%2F%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%2FTask3833&viewid=786a81cf%2Dd15f%2D4dc2%2D9e55%2Dc7a729fbc72f

## クエリの変更
なし

## 動作確認状況
- ローカルで確認(APIからの返却値を直接指定する方式で確認)
- 行った修正がデグレを発生させていないことを確認できるか
  新規機能追加のみなので問題なし

## 補足
- 相談、参考資料などがあれば
2024-03-22 07:50:58 +00:00
makabe.t
6e93a5be79 Merged PR 846: パートナーアカウント削除API実装
## 概要
[Task3834: パートナーアカウント削除API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3834)

- パートナーアカウント削除APIとUTを実装しました。

## レビューポイント
- 削除対象データは適切でしょうか?
- テストケースに不足はないでしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
  - テストとローカルで実行確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 既存処理への変更なし
2024-03-22 06:12:47 +00:00
湯本 開
ac3d523c0e Merged PR 826: Azure Functions実装(音声ファイル削除)
## 概要
[Task3880: Azure Functions実装(音声ファイル削除)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3880)

- 自動音声ファイル削除を実装
- 上記のテストを実装
- テストにMySQLを使用する仕組みを導入

## レビューポイント
- テストケースは十分か
- テスト内容は妥当か
- developにデプロイする前の動作確認・ユニットテストとして十分か

## クエリの変更
- 新規処理のため、既存からの変更はなし

## 動作確認状況
- DBが空の状態でローカル環境で実行し、0件削除のログが出ることを確認
  - 削除対象が正しいか等はdevelopでチェック予定
- 行った修正がデグレを発生させていないことを確認できるか
  - 既存処理の変更はなし
2024-03-19 07:36:03 +00:00
Kentaro Fukunaga
75f0a49fc1 Merged PR 831: 親アカウント変更API実装
## 概要
[Task3853: 親アカウント変更API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3853)

- 親アカウント切り替えAPIを実装しました。

## レビューポイント
- Service層の関数の分け方に改善点ないか?
- テストケースで他にあったほうがいいものや観点などあるか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで全テスト通ることを確認
- 行った修正がデグレを発生させていないことを確認できるか
    - 新規APIの実装のため既存実装に変更なし
2024-03-18 05:47:24 +00:00
maruyama.t
cab7a75ec1 Merged PR 849: 有効なアカウント内の削除されたユーザーの割り当て履歴が集計されない
## 概要
[Task3929: 有効なアカウント内の削除されたユーザーの割り当て履歴が集計されない](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3929)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-03-15 12:19:16 +00:00
SAITO-PC-3\saito.k
b8af6fb6b2 Merge branch 'develop' 2024-03-15 19:01:42 +09:00
saito.k
13e0793219 Merged PR 847: リテラルの修正
## 概要
[Task3927: リテラルの修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3927)

- 翻訳反映
  - Auto Renew → Auto Assign に変更
  - Transcriptionist List→ Transcription List に変更

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - リテラルの反映のみのためほか機能に影響なし

## 補足
- 相談、参考資料などがあれば
2024-03-15 08:21:24 +00:00
masaaki
f80912c617 Merged PR 834: API IF実装
## 概要
[Task3904: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3904)

- 「プロダクト バックログ項目 1242: パートナーを削除したい」のAPI IFを作成しました
- 影響範囲(他の機能にも影響があるか)
  - 新規IFのため影響はなし

## レビューポイント
- controllerの試験実装が初なので、テストケース過不足ないか確認いただきたいです。

## UIの変更
- 無し

## クエリの変更
- 無し

## 動作確認状況
- ユニットテストが通ることを確認、ローカル環境でpostmanで呼び出せることを確認、SWAGGER UI上で追加されていることを確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - ユニットテストが通ることを確認

## 補足
- 相談、参考資料などがあれば
2024-03-15 07:41:56 +00:00
makabe.t
66c643677d Merged PR 829: 音声ファイルバックアップポップアップ修正
## 概要
[Task3882: 音声ファイルバックアップポップアップ修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3882)

- 音声ファイルバックアップ中にファイル削除された場合の処理を追加しました。
  - ダウンロードで対象ファイルが削除されていた場合に特別なエラーとなるようにしています。
  - タスクバックアップで対象ファイルが削除されていた場合でも成功となるようにしています。

## レビューポイント
- 対応するエラーは適切でしょうか?

## UIの変更
- [Task3882](https://ndstokyo.sharepoint.com/:i:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3882/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%89%8A%E9%99%A4%E6%B8%88%E3%81%BF.png?csf=1&web=1&e=1BKVh8)

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - ダウンロード実行中にファイル削除
    - backupAPIからタスク不在エラーを返却して成功するか確認
2024-03-15 06:53:41 +00:00
makabe.t
1451d6f584 Merged PR 835: 本番環境に対する移行データの投入後の修正
## 概要
[Task3580: 本番環境に対する移行データの投入後の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3580)

- 検証ツールの日時比較について、一度Date型に変換してから比較するように修正しました。
  - 時刻フォーマットで秒が入っていなくても比較できるようにするため

## レビューポイント
- 日時の変換は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- 本番踏み台で確認
- 行った修正がデグレを発生させていないことを確認できるか
  - ツールの変更のみなので影響なし

## 補足
- 相談、参考資料などがあれば
2024-03-15 01:02:33 +00:00
Kentaro Fukunaga
5f4a05044b Merged PR 845: クライアントメッセージ変更(アカウント階層構造変更)
## 概要
[Task3917: クライアントメッセージ変更](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3917)

- メッセージレビューで変更あったため修正して自動生成しました。

## レビューポイント
- 情報共有
2024-03-15 00:53:58 +00:00
saito.k
02a4784e58 Merged PR 836: 翻訳情報の反映
## 概要
[Task3908: 翻訳情報の反映](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3908)

- 翻訳情報の反映
 - 修正したのは、licenseNotAssignedErrorのピリオドの後にスペースを入れた部分です。

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認、develop環境で確認など
- リテラルの修正だけのためほか機能への影響はなし

## 補足
- 相談、参考資料などがあれば
2024-03-15 00:15:01 +00:00
maruyama.t
9256566f89 Merged PR 839: DEV動作確認のバグ対応
## 概要
[Task3918: DEV動作確認のバグ対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3918)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-03-14 15:03:17 +00:00
makabe
9b61443b2f Merge branch 'develop' into ccb 2024-03-14 11:08:35 +09:00
makabe.t
5169092892 Merged PR 833: 本番環境に対する移行データの投入後の修正
## 概要
[Task3580: 本番環境に対する移行データの投入後の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3580)

- デモライセンスの判定を日時から日付だけ見るように修正しました。
  - 9999/12/31で始まるかを見ています。
- メールアドレス重複のチェックは大文字小文字を区別せずに実行するようにしています。

## レビューポイント
- 対応箇所は適切でしょうか?
- 対応として先頭文字列を見ていますが適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- 本番踏み台で変換できることを確認
- 行った修正がデグレを発生させていないことを確認できるか
  - ツールの変更だけなので問題なし
2024-03-14 01:46:57 +00:00
makabe
017276c94a Merge branch 'develop' into ccb 2024-03-14 09:10:06 +09:00
makabe.t
e96e8ea54a Merged PR 832: 本番環境に対する移行データの投入後の修正
## 概要
[Task3580: 本番環境に対する移行データの投入後の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3580)

- メールアドレスの重複チェックについて、大文字小文字を区別せずに実行するように変換ツールを修正しました。

## レビューポイント
- メールアドレスチェックの対応箇所は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- 本番踏み台で確認
- 行った修正がデグレを発生させていないことを確認できるか
  - ツールのみの変更なので影響なし
2024-03-14 00:08:37 +00:00
maruyama.t
2b68a9f054 Merged PR 824: AzureFunctions実装3(CSVをストレージアカウントに配置する)
## 概要
[Task3846: AzureFunctions実装3(CSVをストレージアカウントに配置する)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3846)

outputDataを追加
→outputAnalysisLicensesDataに変更(アラートルールなどでログを見るので、何の処理か理解できるように)
blobstorageService.tsに以下を追加
 - uploadFileAnalysisLicensesCSV
(ライセンスCSVを配置する)
- createContainerAnalysisを追加
(コンテナーを作成する)
環境変数の追加

## レビューポイント
- 今回追加されたJP-EASTのストレージアカウントのコンテナーが、第一階層のアカウントのものであるかどうかはソース上は特に意識していないが問題ないでしょうか。

## 動作確認状況
- ローカルで確認(モックでソース上処理が通ることのみ確認のみ)
詳細なテストは別タスクで行う。

## 補足
- 相談、参考資料などがあれば
2024-03-13 07:54:10 +00:00
Kentaro Fukunaga
83e297cc9b Merged PR 821: 画面実装(パートナーライセンス一覧画面&階層構造変更ポップアップ)
## 概要
[Task3854: 画面実装(パートナーライセンス一覧画面&階層構造変更ポップアップ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3854)

- パートナーライセンス一覧に「Change Owner」ボタンを配置し、表示制御およびクリック時にポップアップ表示する処理の実装
- アカウント階層構造変更ポップアップの処理全体実装
- サーバー側のエラーコード定義

## レビューポイント
- 「一括」を表現するためのドロップダウンの構築や処理周りで改善点ないか(to:斎藤くん)
- コンポーネントでの状態管理でお作法に違反しているところないか(to:斎藤くん)
- 修正箇所がほかの機能に影響していないか
    - パートナーライセンス一覧の画面表示に何らか悪影響ないか?(to:ガンさん)

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3854?csf=1&web=1&e=jBGQrR

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認しました
    - 第一階層でログインしてかつ第三または第四視点での一覧を確認しているときにChangeOwnerボタンが表示される
    - ボタン押下すると、仕様通りにポップアップの表示が行われる
    - ポップアップにて入力項目に入力できる&バリデーション効いている
    - ポップアップにて実行ボタン押下するとAPI実行できる&処理結果に応じて仕様通りの挙動をすること
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - パートナーライセンス画面に新規ボタンを配置した&新規ポップアップの実装のみのため、
ポップアップでの処理が正常終了/失敗/何もせず閉じた場合に元の画面の表示が今まで通り動くことを確認済み。
2024-03-13 07:41:25 +00:00
makabe.t
9f5ccabb0c Merged PR 830: アカウント削除修正
## 概要
[Task3896: アカウント削除修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3896)

- アカウント削除を実行すると失敗するので、対応を実施しました。
  - `AccountsRepositoryModule`のインポートに`AccountArchive`を追加しました。

## レビューポイント
- 対応内容は適切でしょうか?

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認
  - npm run test
  - 削除実行
- 行った修正がデグレを発生させていないことを確認できるか
  - リポジトリのインポートへの追加のみなので対象の処理ができることとtestが通ることで確認
2024-03-13 02:01:28 +00:00
maruyama.t
415fd2eb58 Merged PR 825: AzureFunctions実装2(取得したデータをCSV用に変換する)
## 概要
[Task3844: AzureFunctions実装2(取得したデータをCSV用に変換する)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3844)

transferData()の実装
ccbの最新よりマージした状態での引数に変更
各ライセンス数をCSV配列に出力できるところまでを実装
(実際にローカルにCSV出力して中身を確認済み)

![image.png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/825/attachments/image.png)
※UIの変更ではない為、ここにそのまま張り付けさせていただきます。

## レビューポイント
- 関数化の範囲は適切か。
テストコードは最低限の記述になるが、問題ないか
(33行*7項目の突合せをコード上に実装するのは時間的余裕がないためやってない)
詳細な動作確認は、別タスク
https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2029-2?workitem=3861
で行います。
## 補足
- 相談、参考資料などがあれば
2024-03-12 05:43:49 +00:00
masaaki
340aa73bde Merged PR 827: CSV出力が失敗したときに手動で起動するためのFunctionsを作成
## 概要
[Task3860: CSV出力が失敗したときに手動で起動するためのFunctionsを作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3860)

- analysisLicensesについて手動で起動できる処理(analysisLicensesManualRetry)を追加しました
- データベース接続の初期化処理について共通化しました

## レビューポイント
- 特筆する部分はありません

## UIの変更
- 無し

## クエリの変更
- 無し

## 動作確認状況
- ローカルでpostmanからリクエストを行うことで起動できることを確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - unit testが通ることを確認
    - タイマを暫定的に1分にして、ローカル環境で各タイマ処理が正常終了することを確認(DBアクセスが全処理行われることを確認)

## 補足
- 相談、参考資料などがあれば
2024-03-12 04:55:04 +00:00
湯本 開
43561f237e Merged PR 822: クエリ比較用ログ出力の仕組みを改良
## 概要
[Task3889: クエリ比較用ログ出力の仕組みを改良](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3889)

- SQLクエリを比較可能とするための仕組みを導入
  - UUIDや日付等の実行の度に変更される要素を出力段階で置き換えてしまうロガーを追加
  - テストで上記ロガーを使うよう修正
- テストで使用する環境変数が必要がないのにlocalを指定するようになっていたため、production想定でテストが実施されるようテスト用環境変数ファイルを変更

## レビューポイント
- この仕組みを使ってデグレを防ぐための「クエリの変更内容を確認する」事が問題なく出来そうか

## UIの変更
- なし

## クエリの変更
- なし

## 動作確認状況
- npm run test が正常に実施されることを確認
- 行った修正がデグレを発生させていないことを確認できるか
  - testファイルにしか参照されない変更なので、デグレは原理的に発生しないはず
  - testも正常に成功したことを確認したので、デグレは発生していないはず
2024-03-12 03:57:29 +00:00
SAITO-PC-3\saito.k
311eb98236 Merge branch 'develop' into ccb
# Conflicts:
#	dictation_client/src/translation/de.json
#	dictation_client/src/translation/en.json
#	dictation_client/src/translation/es.json
#	dictation_client/src/translation/fr.json
#	dictation_server/src/app.module.ts
2024-03-12 11:48:25 +09:00
SAITO-PC-3\saito.k
8b2613b9f6 Merge branch 'develop' 2024-03-11 19:37:37 +09:00
saito.k
071bd2b85e Merged PR 828: ヘルプページのリンクを差し替える+ヘルプページへの遷移リンクを一つにする
## 概要
[Task3887: ヘルプページのリンクを差し替える+ヘルプページへの遷移リンクを一つにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3887)

- ヘルプページのリンクを修正
- リンクを一つにまとめる
- リンクの翻訳情報を修正

## レビューポイント
- 修正に漏れはないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3887?csf=1&web=1&e=NtVNCO

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - リンクの張替えと翻訳情報の変更のみで他機能に影響はない

## 補足
- 相談、参考資料などがあれば
2024-03-11 10:18:25 +00:00
saito.k
1ef696efe8 Merged PR 814: リンク差し替える(ヘルプページ以外)
## 概要
[Task3874: リンク差し替える(3/8Staging・本番デプロイ分)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3874)

- 以下のリンクを本物に差し替え
  - 利用規約
    - EULA
    - DPA
    - Privacy Notice
  - デスクトップアプリダウンロード

## レビューポイント
- 差し替える対象に漏れはないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3874?csf=1&web=1&e=eQE4hq

## クエリの変更
- なし

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - リンクの差し替えのみなのでほか機能に影響はない

## 補足
- ヘルプページのリンクはまだ受領していないのでほかタスクで対応
2024-03-11 07:54:35 +00:00
saito.k
c059a2eabd Merged PR 815: XMLHttpRequestにてリクエストヘッダー「X-Requested-With: XMLHttpRequest」をコメントアウトしていればコメントアウトはずす
## 概要
[Task1806: XMLHttpRequestにてリクエストヘッダー「X-Requested-With: XMLHttpRequest」をコメントアウトしていればコメントアウトはずす](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1806)

- 以下の開発規約に準拠するように修正
  - 可能な限り、JSONの場合(JSONPではない場合)は、XMLHttpRequestにてリクエストヘッダー「X-Requested-With: XMLHttpRequest」を設定し、サーバー側でチェックすること。

- Client
  - APIリクエスト時に、ヘッダーに「X-Requested-With: XMLHttpRequest」を付ける

- server
  - ヘッダーをチェックするミドルウェアを実装
    - /healthは画面からのリクエストではないので除外している
  - ミドルウェアをローカル環境以外で使用するように実装
    - ローカル環境ではサーバーから静的ファイルを配信しているから
       - APIリクエスト以外のリクエストにもmiddlewareが適用されてしまうのでローカル環境は除外している

## レビューポイント
- この修正で開発規約に準拠しているといえるか
- ローカル環境は除外したが、問題ないか
  - ローカルとdev,stg,prodで差異があることで、ローカルだけ発生しない問題が生じる可能性がある(その逆も)
  - 基本的に特定のヘッダーがあるかというチェックを追加しただけなので、大きな問題が発生するとは考えづらい

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認
- 行った修正がデグレを発生させていないことを確認できるか
  - 事前にdev環境でAPI呼び出しができることを確認
  - すべてのAPIの呼び出しを確認したわけではないが、ログイン等の基本的な操作はできることを確認した

## 補足
- 相談、参考資料などがあれば
2024-03-11 07:26:01 +00:00
masaaki
84fc89071a Merged PR 811: AzureFunctions実装1(DBから必要な情報を取得する)
## 概要
[Task3842: AzureFunctions実装1(DBから必要な情報を取得する)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3842)

- ライセンス数推移情報CSV出力機能のAzureFuntion用関数を追加しました
- DBから必要な情報を取得する処理を実装しました

## レビューポイント
- 特にレビューしてほしい箇所
  - DBアクセス時の結合・検索条件はラフスケッチの条件に対して過不足ないか
  - テストケースに不足はないか
- 関数名、構造は分かりづらくないか

## UIの変更
- 無し

## クエリの変更
- 新規のため無し

## 動作確認状況
- ローカルで処理が正常終了することを確認
- ユニットテストが通ることを確認
- 行った修正がデグレを発生させていないことを確認できるか
  - Function全体のunittestを実施し通ることを確認

## 補足
- 相談、参考資料などがあれば
2024-03-11 06:04:02 +00:00
makabe.t
ccc03da62d Merged PR 823: 環境変数の追従
## 概要
[Task3891: 環境変数の追従](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3891)

- `server`に追加した環境変数の追従が`.env.local.example`から漏れていたので追加

## レビューポイント
- 共有

## UIの変更
- なし

## クエリの変更
- なし
## 動作確認状況
- ローカルで確認
  - exampleを追加したのみなので動作に影響はなし
2024-03-11 02:52:55 +00:00
湯本 開
ff4cd35ed3 Merged PR 819: [3848]アカウント削除処理修正
## 概要
[Task3847: [3848]アカウント削除処理修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3847)

- AccountArchiveエンティティを追加
- アカウント削除時、Accountをアーカイブする処理を追加
- アーカイブ関連テストを追加

## レビューポイント
- 実装の修正内容は問題なさそうか
- テストケースの修正内容は問題なさそうか
- クエリの変更内容の確認方法は問題なさそうか to 斎藤さん

## レビュー対象外
- テスト用ロガーに以下の比較用前処理を追加するべきだが、別タスクを作って対応予定
- 下記クエリの変更点にて、CommentOut判定に環境変数STAGEを使用している部分にRequestIdが表示されていない部分が存在するが、テスト用環境変数の変更は上記と同じく別タスクを作って対応予定
[タスク 3889: クエリ比較用ログ出力の仕組みを改良](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/3889)

## クエリの変更
- ロガーを有効にした状態でテストを実行し、ログのUUIDと日付を処理して比較できるよう加工した
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%AF%E3%82%A8%E3%83%AA/3847?csf=1&web=1&e=xlK011

## 動作確認状況
- npm run testで確認
- 行った修正がデグレを発生させていないことを確認できるか
  - アカウント削除テストで発行されるクエリを比較し、AccountArchiveする対象を特定するためのAccountのSELECT、AccountArchiveのINSERTとSELECTのみが追加されている事が確認できたので、デグレはないと判断
2024-03-11 02:08:29 +00:00
Kentaro Fukunaga
f386a8f7e0 Merged PR 817: API IF実装(親アカウント変更API)
## 概要
[Task3852: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3852)

- 親アカウント変更APIのIFを実装し、OpenAPIの生成もしました。
- 影響範囲(他の機能にも影響があるか)
    - なし

## レビューポイント
- controllerのメソッド名にほか良い案ないか?
- validationに過不足や間違いないか?
- ~~controllerのテストは正常系ひとつだけ追加しているが、他にあったほうがいいものあるか?~~
    - ~~個人的には、テスト追加してもnpmライブラリのvalidatorのテストになるだけな気がするため不要では?と思っています。~~
    - 「npmライブラリのvalidatorを正しいパラメータで正しく利用しているか」が目的であるとの認識を得たため異常系も追加しました。

## 動作確認状況
- apigenを実行してOpenAPI生成できることを確認、controllerテスト通ることを確認。
- 行った修正がデグレを発生させていないことを確認できるか
  - 新規APIのため無し
2024-03-11 01:29:55 +00:00
makabe.t
2e6b7c8ab5 Merged PR 818: function修正
## 概要
[Task3879: function修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3879)

- 行番号をExcelの表記通りとなるように修正
- 途中から始められるようにforループを修正

## レビューポイント
- 共有

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-03-08 05:45:53 +00:00
Kentaro Fukunaga
85edd2296e Merged PR 820: DBマイグレーションファイル追加(アカウント階層構造変更PBI)
## 概要
[Task3863: DBマイグレーションファイル追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3863)

- licenseOrdersテーブルに、from_account_idとstatus検索のマルチカラムインデックスを追加しました。
- 影響範囲(他の機能にも影響があるか)
    - なし

## レビューポイント
- 気になる点あれば

## 動作確認状況
- ローカルでmigrate:up/downをして、想定通りindex作成/削除されることを確認
- 行った修正がデグレを発生させていないことを確認できるか
  - インデックス追加のみのため無し
2024-03-08 05:21:22 +00:00
湯本 開
869cbd43e0 Merged PR 810: アカウント退避テーブル作成
## 概要
[Task3848: アカウント退避テーブル作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3848)

- アカウントテーブルと同様の構造をしたアカウント退避テーブルを作成
  - ※差分:  company_nameを削除、active_worktype_idの外部キー制約を削除

## レビューポイント
- 上記要素以外はaccountsテーブルの要素と同等であるか
- 張られたインデックスに不足はないか
- 想定と違う構造になっていないか

## 動作確認状況
- npm run migrate:up/downを実施
- EXPLAINでindexが機能していそうな事を確認
```
EXPLAIN SELECT * FROM omds_ccb.accounts_archive where parent_account_id=1;
---------------------------------------------------
# id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra
'1', 'SIMPLE', 'accounts_archive', NULL, 'ref', 'idx_accounts_archive_parent_account_id', 'idx_accounts_archive_parent_account_id', '9', 'const', '1', '100.00', NULL
```

```
EXPLAIN SELECT * FROM omds_ccb.accounts_archive where tier=2;
---------------------------------------------------
# id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra
'1', 'SIMPLE', 'accounts_archive', NULL, 'ref', 'idx_accounts_archive_tier', 'idx_accounts_archive_tier', '4', 'const', '2', '100.00', NULL
```
```
EXPLAIN SELECT * FROM omds_ccb.accounts_archive where parent_account_id=1 AND tier=1;
----------------------------------------------------
# id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra
'1', 'SIMPLE', 'accounts_archive', NULL, 'ref', 'idx_accounts_archive_parent_account_id,idx_accounts_archive_tier', 'idx_accounts_archive_parent_account_id', '9', 'const', '1', '50.00', 'Using where'
```
2024-03-08 05:20:00 +00:00
saito.k
aca9bcf496 Merged PR 782: 翻訳反映+α
## 概要
[Task3781: 翻訳反映+α](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3781)

- 翻訳情報の反映
- タスクのチェックアウト時(/tasks/{audioFileId}/checkout)にライセンスをチェックするようになったため、それに対応するエラーを追加
  - ライセンスが未割当の時とライセンスが有効期限切れの時にそれぞれ専用のエラーメッセージを表示するように修正する

## レビューポイント
- エラーのハンドリングに誤りはないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3781?csf=1&web=1&e=dCIGih

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-03-08 05:11:20 +00:00
makabe.t
146b8a6e40 Merged PR 816: function修正
## 概要
[Task3879: function修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3879)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-03-08 01:09:14 +00:00
SAITO-PC-3\saito.k
9dc80b4965 Merge branch 'develop' into ccb 2024-03-07 20:55:44 +09:00
makabe.t
04c726e964 Merged PR 808: function修正
## 概要
[Task3879: function修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3879)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
2024-03-07 11:47:53 +00:00
maruyama.t
f265d0ff45 Merged PR 812: 「oderLicense」や「CardLicense」を開いて閉じるとパンくずリストがおかしくなる
## 概要
[Task3771: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3771)

ポップアップを×で閉じた際に、パンくずリストを保持したまま、`dispatch(getMyAccountAsync()`しており画面を初期化していた。
画面を更新するのかしないのかあいまいな挙動になっていた。

対応としては、他のポップアップと同様、×で閉じた場合は画面は更新しないように修正。
追加でパンくずリストを初期化する処理を作成し、ポップアップ側でAPIを呼び出した場合のみそれを実行する。

## レビューポイント
- 特筆する点はなし

## UIの変更
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3771?csf=1&web=1&e=USf40m

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-03-07 10:41:30 +00:00
saito.k
e448e8d249 Merged PR 806: メール文面の修正反映
## 概要
[Task3792: メール文面の修正反映](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3792)

- メール文面を修正
  - ドイツ語の部分

## レビューポイント
- タスクに添付しているエクセルの内容と修正した内容を照らし合わせて確認していただきたいです。

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカル環境でメールを確認
- メール文面のみの修正のため、他機能に影響はない

## 補足
- 相談、参考資料などがあれば
2024-03-07 02:26:15 +00:00
SAITO-PC-3\saito.k
eda88aa048 Merge branch 'develop' into ccb 2024-03-06 11:23:50 +09:00
makabe.t
da40e8f09c Merged PR 800: 画面実装(一括追加ボタン&ポップアップ画面)
## 概要
[Task3753: 画面実装(一括追加ボタン&ポップアップ画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3753)

- ユーザー一括登録画面を実装しました。
  - 一括登録ポップアップ
    - テンプレートCSVダウンロード
    - ファイルインポート
      - エラー行表示

## レビューポイント
- 行エラーの条件、内容は認識通りでしょうか?
- 画面の表示内容は認識通りでしょうか?
- CSV変換時にworkerを有効にしているとエラーとなりうまくいかないのでOFFにしてしまいましたが問題ないでしょうか?
  - @<湯本 開> さん

## UIの変更
- [Task3753](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3753?csf=1&web=1&e=x5M6hr)

## 動作確認状況
- ローカルで確認
 -  ファイルチェックするところまで
2024-03-06 01:58:32 +00:00
makabe.t
d6a47932e7 Merged PR 786: Azure Functions実装(一括登録)
## 概要
[Task3756: Azure Functions実装(一括登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3756)

- ユーザー一括登録用のAzure Functionを実装しました。

## レビューポイント
- 処理の流れがラフスケッチと認識通りでしょうか?
- JSONファイルの内容はイメージ通りでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
  - テスト実行

実際の詳細な動作についてはdevelop環境で確認します。
2024-03-06 01:48:02 +00:00
saito.k
7160e0ee2e Merged PR 804: デグレ再発防止のため、修正をチェックするテストを作成
## 概要
[Task3830: デグレ再発防止のため、修正をチェックするテストを作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3830)

- タスクを100件取得できることを確認するテストを追加

## レビューポイント
- テストでかくにんする項目は足りているか

## UIの変更
- 特になし

## クエリの変更
- 特になし

## 動作確認状況
- ローカルでテストが通ることを確認

## 補足
- 相談、参考資料などがあれば
2024-03-06 01:31:10 +00:00
masaaki
2220e2560f Merged PR 799: makepasswordで条件に合致しないパスワードを生成した際無限ループになる
## 概要
[Task3840: makepasswordで条件に合致しないパスワードを生成した際無限ループになる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3840)

- makepasswordで条件に合致しないパスワードを生成した場合、再度生成するループ処理としているが、初期化が行われていないため常に同じパスワードで条件合致のチェックが行われていました。結果、一度条件に合致しないパスワードを生成した場合無限ループとなっていました。
- ループ内で変数を初期化するよう対応。

## レビューポイント
- 特にありません

## UIの変更
- 無し

## 動作確認状況
- ユニットテストが通ることを確認
- ローカルでユーザー作成を実施し、これまで同様作成できることを確認

## 補足
- 相談、参考資料などがあれば
2024-03-06 01:19:23 +00:00
makabe.t
31de71f743 Merged PR 797: API実装(一括登録)
## 概要
[Task3752: API実装(一括登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3752)

- ユーザー一括登録APIとテストを実装しました。
  - メール文面はまだ翻訳が来ていないので日本語のものを使用しています。別タスクで多言語対応します。

## レビューポイント
- ファイル名は認識通りでしょうか?
- ファイルの内容は認識通りでしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-03-05 10:27:50 +00:00
makabe.t
7ff563f644 Merged PR 795: API実装(一括登録完了)
## 概要
[Task3763: API実装(一括登録完了)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3763)

- 一括登録完了APIとテストを実装しました。
  - メール文面は多言語対応がまだですのですべて日本語の文面にしています。

## レビューポイント
- 送信メールの内容は認識通りでしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-03-04 09:15:53 +00:00
masaaki
a47ebaa9df Merged PR 798: [4回目実行][フルデータ]develop環境での移行実施後の修正作業
## 概要
[Task3821: [4回目実行][フルデータ]develop環境での移行実施後の修正作業](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3821)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 移行ツールに対して以下の修正を実施しました。
  - アカウントとユーザ間でAuthorIDが重複する際、通番を付与して重複を避けるようにしました
  - AADB2Cのエラー発生時、リトライ処理を行うように対応しました

## レビューポイント
- 特にありません

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-03-02 02:21:19 +00:00
masaaki
88ce6a2c9e Merged PR 796: [3回目実行][フルデータ]develop環境での移行実施後の修正作業
## 概要
[Task3802: [3回目実行][フルデータ]develop環境での移行実施後の修正作業](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3802)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-03-01 12:00:42 +00:00
maruyama.t
cad3a99f70 Merged PR 794: 登録ツールにログを仕込む
## 概要
[Task3839: 登録ツールにログを仕込む](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3839)

登録ツールが途中で動かなくなってしまう原因調査のために各関数にログを仕込みました。

## レビューポイント
- 特になし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-29 12:50:17 +00:00
maruyama.t
0ebd2ab17e Merged PR 793: accountに名前がないデータが存在する
## 概要
[Task3831: accountに名前がないデータが存在する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3831)

移行元データのアカウントユーザーにfirtst_nameおよびlast_nameが存在しない行が存在しており、
変換ツール側で対応していなかったためAdminNameが空のアカウントユーザーを作成しようとして登録ツール側でエラーになってしまっていた。
→バックログに起票しOMDSさんに確認中

■暫定対応
first_name\last_nameが存在しない場合はユーザーと同様にメールアドレスをAdminNameとするように修正。

## レビューポイント
- とくになし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-29 06:55:34 +00:00
Kentaro Fukunaga
9ca9b7a144 Merged PR 790: AuthorのNotificationフラグを見てタスク完了メールの送信先を変更するよう修正
## 概要
[Task3818: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3818)

- AuthorのNotificationフラグがOFFのときには、Authorに対してタスク完了通知メールが送信されないよう修正しました。

## レビューポイント
- 動作確認項目に不足はないか?

## 動作確認状況
- ローカルで確認しました
    - AuthorのNotificationON時にはメール宛先に入っており、OFF時には宛先から外れること
    - TypistはNotificationON/OFF関わらずメール宛先に入っていること
2024-02-29 06:36:23 +00:00
SAITO-PC-3\saito.k
fd3e584fac Merge branch 'develop' 2024-02-29 10:55:41 +09:00
saito.k
ce6e09a7d0 Merged PR 791: タスク一覧画面の取得件数が10件となっているバグの対応
## 概要
[Task3815: タスク一覧画面の取得件数が10件となっているバグの対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3815)

- OptionItemのソート順を変換処理の中で行うように修正
  - OrderByでソートするのはfindメソッドの作り的に無理そうなので
  - 調査にも時間がかかるため

## レビューポイント
- タスクの中にこのバグが発生した原因を記載し、なぜこの修正にしたのか記述したのでそちらを確認していただいて変なところがあれば指摘していただきたいです。
  - 書いている内容がよくわからない場合は、ハドルでの説明をさせてください。

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-29 01:16:15 +00:00
maruyama.t
6d56255a5a Merged PR 792: parent_account_idが正しく設定されない
## 概要
[Task3804: parent_account_idが正しく設定されない](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3804)

Map配列からaccountidをキーにdealerAccountIdを取る処理で、検索keyが逆になっていたため修正。

## レビューポイント
- とくになし

## 動作確認状況
- ローカルで確認(階層を付け替えたアカウントの親子階層が正しいことを確認)

## 補足
- 相談、参考資料などがあれば
2024-02-28 09:04:36 +00:00
湯本 開
363f12f86f Merged PR 774: 画面実装(csv読み込み部分切り出し)
## 概要
[タスク 3754: 画面実装(csv読み込み部分切り出し)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3754)

- CSVファイルの内容を入力として、JSONに変換する処理&テストを実装
- 画面実装時の想定としては、以下の流れと想定しており、本Taskの範囲は1のみ
  1. csv->jsonへパースが出来るか?(csvの形式として合っていて読み込み可能か?)
  2. json内の各パラメータは問題ないか?(データの制限や組み合わせは問題ないか?)
- 使い方を示す & 動作確認のために、client側でもテストを実施できるよう修正(※pipelineでは実行されない)

## レビューポイント
- テストケースを見て、使い方は分かるか
- CSVの形式自体が想定とズレていた場合は入力を弾く必要がある想定だが、間違っていないか
- 利用ライブラリはメジャーかつ便利そうなものを選定したが、問題なさそうか

## 動作確認状況
- npm run testを通過
2024-02-28 09:03:27 +00:00
masaaki
0be9c26f09 Merged PR 781: データ検証ツール作成+動作確認
## 概要
[Task3573: データ検証ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3573)

- データ検証ツールを作成しました

## レビューポイント
- 特にレビューしてほしい箇所
 詳細情報の突き合わせについて、ラフスケッチと対応しているか第三者目線でも確認してほしいです
 verification.serviceのcompareCardLicenses、compareLicenses、compareAccountsになります。

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認

## 補足
- 無し
2024-02-28 05:31:13 +00:00
湯本 開
71127a6db9 Merged PR 787: API I/F修正
## 概要
[Task3793: API I/F修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3793)

- OMDS様とのメール文面調整の結果、csvファイル名もAPIで受け渡す必要が出てきたためAPI I/Fを修正する
  - 一括登録依頼API、一括登録完了APIの両方に「ファイル名」を追加
- 増えたプロパティのバリデーションをするテストを追加

## レビューポイント
- プロパティ名は妥当か
- テストの内容は十分か

## 動作確認状況
- npm run testを通過
2024-02-28 05:30:09 +00:00
maruyama.t
f6d39a4c26 Merged PR 788: [2回目実行]実施後の動作確認
## 概要
[Task3577: [2回目実行]実施後の動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3577)

accountがCountryの場合に配下のDistributorの親アカウントIDを付け替える処理について、Typeの付け替えができていなかったのを修正。
ライセンスの有効期限が"9999/12/31 23:59:59.997"でフォーマットチェックをしているが、移行元は"9999/12/31 23:59:59"なので移行元に合わせた。
dealerAccountIdが設定されているが、そのdealerが存在しない場合もデータを作ってしまっている。
→該当レコードはエラーファイルを出力する。

## レビューポイント
- エラーファイルの出力処理だが簡素すぎるか?
JSONで出力する意味はないが、これまでの動作確認で動作担保できているのでJSONで出しています。

## 動作確認状況
- ローカルで確認
正常の場合データ変換が行われることを確認。
dealerAccountIdが設定されているが、そのdealerが存在しない場合もデータでテストした場合、error.jsonが作られることを確認。
## 補足
- 相談、参考資料などがあれば
2024-02-27 23:55:44 +00:00
SAITO-PC-3\saito.k
34d1dd5629 Merge branch 'develop' 2024-02-27 18:53:10 +09:00
maruyama.t
f0d71937e3 Merged PR 780: データ変換ツール(汚いデータ対応版)の作成+動作確認
## 概要
[Task3776: データ変換ツール(汚いデータ対応版)の作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3776)

綺麗なデータ対応版のレビュー指摘も合わせて修正。
一旦OMDS様よりいただいた1万件~のデータを処理できることは確認済みです。
実装コストとバグの入れ込みを懸念し、有効期限が"9999/12/31"のデータは最初にデータを積む段階で除外するようにしました。

## レビューポイント
- メールアドレス重複チェックについて、想定通りの重複対象を検索出来ているか。
- step3の1.アカウントとユーザが同じ場合
adminMainとuserEmailが重複していた場合に、重複していたユーザーは削除し、アカウントのみを残す(accountユーザーのroleとauthorIdは削除したuserに設定されていたものとする)処理は妥当か。
→accountのIFにroleとauthorIdを追加し、register側のcreateAccountで登録するようにしています。

## 動作確認状況
- ローカルで確認(Account_transition_2024.1.19.csvで実施)
4つのJSONファイルができていることを確認。
Countryの場合の付け替えができていることを確認。
adminMainとemailが重複している場合の重複削除ができていることを確認。

## 補足
- 登録ツールと共通のパラメータで動作するようにしました。
例)
POST:
localhost:8280/transfer
Body:
{
    "inputFilePath": "./data/"
}

 変換ツールの使い方としてはAccount_transition.jsonというファイルを見るようにしています。
2024-02-27 06:24:41 +00:00
Kentaro Fukunaga
dd8bddc971 Merged PR 771: 音声ファイルアップロード完了API実装(ストレージ使用量超過チェック)
## 概要
[Task3687: 音声ファイルアップロード完了API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3687)

- 音声ファイルアップロード完了API実行時に、ストレージの使用量チェックを行い、必要ならメール送信をする実装を追加しました。

## レビューポイント
- 使用量チェックメソッドで他にいい関数名ないか?
- なるべく既存実装をいじりたくなかったので自動ルーティング前にチェック機構を配置したが不都合ないか?
- テストケースに過不足ないか
- 自動テストの実行方法や確認方法として適切か?ほかに代替案ないか?

## 動作確認状況
- ローカルでUT通ることを確認。
   - 実際のメール送信はdeveop動作確認でやります。
2024-02-27 02:49:52 +00:00
SAITO-PC-3\saito.k
ddd4d31f25 Merge branch 'develop' into ccb
# Conflicts:
#	dictation_server/src/features/users/users.service.spec.ts
2024-02-27 09:26:46 +09:00
Kentaro Fukunaga
5305984b1a Merged PR 764: 第五階層ライセンス情報画面実装
## 概要
[Task3709: 第五階層ライセンス情報画面実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3709)

- ストレージ使用可否切り替えの画面実装をしました
- 動作確認中に、既存実装でライセンスオーダーするときとカードライセンスアクティベートするときの操作不能化処理に漏れがあったのを修正しました

## レビューポイント
- Redux周りの実装でお作法に違反しているところがないか。もしくは改善点ないか。
- ライセンス情報表示のAPI結果待ち部分のローディング処理で、最低限の改善にしたが現時点ではこれでよいか?(いつ修正するかも未定だけど、実害はないためひとまずこんな感じで。。。)
    - `licenseSummarySlice.ts` のコメント部分が該当箇所です

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3709?csf=1&web=1&e=bJVzss

## 動作確認状況
- ローカルで動作確認しました。
2024-02-27 00:01:02 +00:00
saito.k
0ab6488f58 Merged PR 779: タスク一覧画面のOptionItemがソート条件によって表示順がおかしくなる
## 概要
[Task3787: タスク一覧画面のOptionItemがソート条件によって表示順がおかしくなる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3787)

- タスク一覧取得APIレスポンスにあるOptionItemの順番を固定する(idの昇順)
- テスト修正

## レビューポイント
- 特になし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-26 11:48:02 +00:00
saito.k
5a78a6668f Merged PR 769: /users/relationsレスポンスのWorkTypeIDをID名の昇順にする
## 概要
[Task3783: /users/relationsレスポンスのWorkTypeIDをID名の昇順にする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3783)

- relationsAPIレスポンスのWorkTypeList内の順番を指定する
- テスト修正

## レビューポイント
- 修正内容に不足はないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-26 11:29:22 +00:00
saito.k
d0628caa05 Merged PR 767: パートナー追加成功時に一覧の更新が行われていない
## 概要
[Task3769: パートナー追加成功時に一覧の更新が行われていない](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3769)

- パートナー追加成功時に一覧の更新を行う

## レビューポイント
- 特になし

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3769?csf=1&web=1&e=ajJOBd

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-02-26 10:42:26 +00:00
masaaki
68d1a1796b Merged PR 783: [1回目実行]実施後の修正実施
## 概要
[Task3790: [1回目実行]実施後の修正実施](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3790)

- 移行データ動作確認(1回目)で発生した不具合の対応を実施しました
 ・バリデータでエラーとなる(コメントアウトして実行したところ、成功)
 ・アカウント管理者のユーザーのメール認証がfalseで登録されるので、
  パスワード変更では認証をできない⇒強制敵にtrueで登録する
 ・(指摘外、検証ツール実装時に内部検出)カードライセンス登録時、カードライセンス発行・ライセンステーブルも登録する

- このPull Requestでの対象/対象外
 上記以外の指摘(下記)はタスク3772にて対応するため本プルリク対象外

 変換ツール
  ・ディーラーアカウントに登録されたアカウントがいないCSVで
   変換するとディーラーがundefined(パラメータがない)状態でJSON出力されてしまう。
  ・重複したメールアドレスの取り込みが未実装
  ・有効期限が9999/~は移行対象外とする
  ・ワークタイプの出力がされない

 登録ツール
  ・ファイルパスの取り扱いが変換ツールと異なる
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- カードライセンス登録時のライセンスのアカウントIDについて、第一階層アカウントのため「AUTO_INCREMENT_START: 853211」を設定しているが問題ないか?
 →移行データ上第一階層アカウントは最初に登場するため問題ない認識

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認済

## 補足
- 相談、参考資料などがあれば
2024-02-26 08:59:37 +00:00
湯本 開
c95fb1e1f6 Merged PR 784: テスト失敗修正(I/F実装)
## 概要
[Task3791: テスト失敗修正(I/F実装)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3791)

- AuthorIDのチェックを行うバリデータが特定リスクエストに対してしか利用できなかったので、もっと単純な同一ロジックのバリデータを追加して利用するよう変更
- 上記ケースに対するテストを追加

## レビューポイント
- 既存実装へは影響がなさそうか

## 動作確認状況
- npm run testを通過
2024-02-26 07:48:08 +00:00
湯本 開
c1f370faaf Merged PR 766: API I/F & system権限Token実装
## 概要
[Task3764: API I/F & system権限Token実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3764)

- システムが発行したトークンの型定義を追加
- AuthGuardと同等の、システムが発行したTokenである `SystemAccessToken` を検証する `SystemAccessGuard` を追加
- API I/Fを実装

## レビューポイント
- バリデーターは適切か
- システムが発行したトークンの型定義は適切か
- API I/Fの型は問題ないか

## 動作確認状況
- ローカルでswagger UI上で確認
2024-02-26 05:13:43 +00:00
SAITO-PC-3\saito.k
13d421c2bc Merge branch 'develop' into ccb 2024-02-23 11:10:38 +09:00
saito.k
b524fd5995 Merged PR 768: U-105メッセージのドイツ語部分が英語になっている
## 概要
[Task3770: U-105メッセージのドイツ語部分が英語になっている](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3770)

- U-105のメール文面を修正
 - ドイツ語の文章であるべき箇所が英語になっていた

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-23 00:42:05 +00:00
makabe
a1b59de44d Merge branch 'develop' into ccb 2024-02-22 20:43:35 +09:00
makabe.t
fbdfeee73c Merged PR 778: 削除ツールの修正
## 概要
[Task3788: 削除ツールの修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3788)

- ADB2Cの削除に失敗するので対応しました。
  - 最後のページの場合に削除より先に抜けていたので、削除処理を先にやるように修正しました。

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- developで確認
2024-02-22 11:42:31 +00:00
makabe.t
f03342bc55 Merged PR 777: データ削除ツール作成+動作確認
## 概要
[Task3569: データ削除ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3569)

- クライアントに不要なフォルダが残っていたので削除しました。

## レビューポイント
- 共有

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-02-22 08:45:20 +00:00
maruyama.t
a65d6a2774 Merged PR 776: 階層の付け替えを誤っていたのを修正
## 概要
[Task3570: データ変換ツール(きれいなデータ版)作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3570)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-02-22 08:40:57 +00:00
maruyama.t
cb68c16eb8 Merged PR 775: 変換ツールのバリデーションチェックを修正
## 概要
[Task3570: データ変換ツール(きれいなデータ版)作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3570)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-02-22 08:23:31 +00:00
maruyama.t
c31bb47bb8 Merged PR 773: apiにtransferが存在しなかったのを修正
## 概要
[Task3570: データ変換ツール(きれいなデータ版)作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3570)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-02-22 07:52:16 +00:00
makabe.t
dc52ec2022 Merged PR 765: データ削除ツール作成+動作確認
## 概要
[Task3569: データ削除ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3569)

- ADB2Cからのユーザー削除が100件ごとにしか削除できていなかったので、修正しました。
  - 取得が100件まででそのユーザーに対して削除処理をしていたので100件までの削除になっていました。
  - 対応として、100件づつの削除をユーザーが全削除されるまで実行するようにしました。

## レビューポイント
- 対応方法として適切でしょうか?
- ループで制限を設けていますが、MAX値として適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで順に実行できることを確認
- 実際の削除は別途develop環境で実施します。
2024-02-22 07:33:55 +00:00
SAITO-PC-3\saito.k
bc87bcd5cf Merge branch 'develop' 2024-02-22 15:45:00 +09:00
maruyama.t
e3ee9412c9 Merged PR 772: フォルダリネーム
## 概要
[Task3570: データ変換ツール(きれいなデータ版)作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3570)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-02-22 06:40:52 +00:00
maruyama.t
8110b9cccc Merged PR 753: データ変換ツール作成+動作確認
## 概要
[Task3570: データ変換ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3570)

## レビューポイント
- 特にtransfer配下の処理を見ていただきたいです。
データのバリデーションは十分か。
アカウントIDとユーザーIDのインクリメント(採番)の場所は正しいか。
ユーザー名は正しく設定できているか。
worktypeの重複を除外する処理は正しいか。
COUNTRY_LIST(既存のクライアントから流用)した変換処理には問題ないか。
出力ファイル名は登録ツール側の想定通りか。

## 動作確認状況

動作確認は、以下で行う。
[タスク 3575: [1回目実行]実施後の動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2028-2?workitem=3575)

## 補足
- 相談、参考資料などがあれば
2024-02-22 05:04:48 +00:00
saito.k
ebbf957419 Merged PR 770: AuthorIDを大文字とアンダースコアのみとするバリデーションを入れたことによるデグレの解消
## 概要
[Task3784: AuthorIDを大文字とアンダースコアのみとするバリデーションを入れたことによるデグレの解消](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3784)

- タイトルの通り
  - ロールがAuthorの時のみチェックするように修正

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-02-22 02:38:05 +00:00
masaaki
12d168d14c Merged PR 754: データ登録ツール作成+動作確認
## 概要
[Task3571: データ登録ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3571)

- 移行データの登録ツールを作成しました
  - 入力用jsonファイルの読み込み
  - アカウント・ユーザの登録
    - 既存サービスを移植・微修正し呼び出し
    - rate_limit用のsleep実施
  - ワークタイプ・ライセンス・カードライセンスの登録
- 実行についてはpostmanでの実行を考えており、clientは作成しておりません

## レビューポイント
- 既存サービスからの流用が多いですが、メインの処理はfeatures/registerになるため、こちらをメインに見ていただければと思います。

## UIの変更
- 無し

## 動作確認状況
- ローカルで動作確認

## 補足
- 相談、参考資料などがあれば
2024-02-21 01:41:21 +00:00
makabe
439ce7de63 Merge branch 'develop' into ccb 2024-02-21 09:16:05 +09:00
makabe.t
5adf7ed12e Merged PR 763: ツールをexeとしてビルドできるビルドコマンドを整備する
## 概要
[Task3742: ツールをexeとしてビルドできるビルドコマンドを整備する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3742)

- データ移行ツールフォルダの中に`tool`フォルダを掘って、実行ファイル形式で配置されるようにしました。
  - コンテナ内からはサーバー側の`build:exe`コマンドでビルドできるようにしています。
  - コンテナ外からサーバー/クライアント一括でビルドできるスクリプトを配置しています。
※toolフォルダがあればツールとして実行できる想定です。

## レビューポイント
- exe化のイメージは認識通りでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルでビルドできることを確認
2024-02-21 00:11:19 +00:00
Kentaro Fukunaga
f8183399e2 Merged PR 762: アカウント利用制限更新API実装
## 概要
[Task3710: アカウント利用制限更新API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3710)

- タイトルの通りです。
- 既存実装でログが不足している箇所あったのでちょろ修正もしました。

## レビューポイント
- これと言ってみて欲しいポイントはないので、何か気になる点あれば

## 動作確認状況
- ローカルで全テストが通ることを確認済み
2024-02-20 11:23:04 +00:00
makabe
e44cb3b955 Merge branch 'develop' into ccb 2024-02-20 19:24:42 +09:00
makabe.t
a9aca6e4ff Merged PR 750: データ削除ツール作成+動作確認
## 概要
[Task3569: データ削除ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3569)

- データ削除ツールを実装しました。
  - Blobストレージからのコンテナ削除
  - ADB2Cからのユーザー削除
  - DBの全削除
  - Auto Incrementの設定

## レビューポイント
- Blobストレージの削除対象の取得に問題はないでしょうか?
  - 3つのリージョン内のすべてのコンテナを取得してから、取得したコンテナを全削除するようにしています。
- ADB2Cの削除対象の取得に問題はないでしょうか?
  - ローカルアカウントなユーザーのみを取得してから、取得したユーザーを全削除するようにしています。
- フォルダ構成に違和感はないでしょうか?

## UIの変更
- [Task3569](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3569?csf=1&web=1&e=wU1st1)

## 動作確認状況
- ローカルで確認
  - DB操作のみ確認しています。Azureリソースの削除についてはdevelop環境で改めて実施します。
2024-02-20 10:09:05 +00:00
SAITO-PC-3\saito.k
562db3def9 Merge branch 'develop' into ccb 2024-02-19 21:25:54 +09:00
SAITO-PC-3\saito.k
701ee2e6c8 Merge branch 'develop' 2024-02-19 20:02:53 +09:00
saito.k
f8ff19a3fa Merged PR 758: リテラル反映・Typist表示をTranscriptioninstにする
## 概要
[Task3692: リテラル反映・Typist表示をTranscriptioninstにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3692)

- フッターのコピーライトを修正
  - 文字列がべた書きだったのを翻訳情報を入れるように修正
- User一覧画面でRoleがTypistの時の表記をTranscriptioninstに修正
- OptionItemの項目名を入れ替え
  - initialValue ⇔ defaultValue
- アカウント画面のSaveボタン下にある代理操作に対する注釈を削除
- 翻訳情報反映

## レビューポイント
- OptionItemの項目名を入れ替えたが、表示するプロパティ名も名前を修正したほうが良いか?(initialValueの列にdefaultValueTypeを表示しているため混乱するのではないかという懸念)
  - APIのレスポンスのプロパティ名から変えないと揃えられないため、表示する項目名の並びだけを変えた
    - なんで入れ替えたのかコメントしたし、これで良いか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3692?csf=1&web=1&e=yWY4ab

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-19 10:29:38 +00:00
Kentaro Fukunaga
ecb28b9328 Merged PR 759: API IF実装
## 概要
[Task3711: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3711)

- アカウント利用制限更新APIのIFを実装し、openapi生成しました。

## レビューポイント
- メソッド名で他に案あれば。

## 動作確認状況
- 特になし
2024-02-19 04:32:59 +00:00
SAITO-PC-3\saito.k
cdef84e269 Merge branch 'develop' into ccb
# Conflicts:
#	dictation_server/src/features/accounts/accounts.service.spec.ts
2024-02-19 12:00:01 +09:00
saito.k
4caa23ba3c Merged PR 755: [FB対応]File Property表示について
## 概要
[Task3735: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3735)

- FilePropertyの表示順を変更する
  - カテゴリ(General、Job)はそのままで、OMDS様の希望する並び順にする

## レビューポイント
- 並び順の変更にミスはないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3735?csf=1&web=1&e=r3IhXL

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-19 02:17:37 +00:00
saito.k
b7db9c5fad Merged PR 752: [FB対応]Edgeで表示言語が切り替わらないことがある
## 概要
[Task3728: 原因調査&調査結果をPBIに記載する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3728)

- cookieから言語情報取得時にほかのcookieが存在していると、うまく取得できなくなってしまう
  - https://into-the-program.com/javascript-cant-get-value-cookie-name-array/
  - この方法でほかのcookieがある場合でも半角スペースを排除して正しく取得できるようにした。

## レビューポイント
- 特になし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-19 01:49:23 +00:00
saito.k
b4df229de4 Merged PR 751: [FB対応]WorkTypeIDを大文字固定にしたい
## 概要
[Task3733: 対応する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3733)

- 大文字のみの入力に強制する
  - WorkTypeID
  - OptionItem

- APIの大文字固定のパラメータにバリデーションを付与する
  - AuthorID
  - WorkTypeID
  - OptionItem

## レビューポイント
- 大文字に変換する処理をreducerに寄せたが問題ないか
- バリデータを付けるパラメータに漏れはないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3733?csf=1&web=1&e=zNB1Hi

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-19 01:09:39 +00:00
makabe.t
fc7d271a29 Merged PR 749: 第五階層ライセンス情報画面実装
## 概要
[Task3654: 第五階層ライセンス情報画面実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3654)

- 第五階層ライセンス情報画面でストレージ情報(Storage Available、Storage Used)を表示するように画面を修正しました。
  - 表示する値はGB単位となるようにし、小数点以下第三位までを表示するようにしています。

## レビューポイント
- 表示する値のフォーマットは適切でしょうか?
  - 小数点以下第三位までを固定で表示するようにしていますが問題ないでしょうか?

## UIの変更
- [Task3654](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3654?csf=1&web=1&e=1tCGoN)

## 動作確認状況
- ローカルで確認
2024-02-16 05:15:45 +00:00
Kentaro Fukunaga
aef30c8cbe Merged PR 748: 第五階層ライセンス情報取得API実装
## 概要
[Task3655: 第五階層ライセンス情報取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3655)

- 第五階層ライセンス情報取得APIに、ストレージ上限とストレージ使用量を取得する処理を追加しました。
- 既存の「割り当て済みライセンス取得処理」と「再利用可能ライセンス取得処理」に不要な条件があったため削除しました

## レビューポイント
- 上限計算方法、使用量取得条件に仕様との認識齟齬はないか?
    - もしくはテストケースで「これもあったほうがいいのでは?」などないか
- その他気になる点あれば

## 動作確認状況
- ローカルでテストが全部通ることを確認
2024-02-16 02:11:34 +00:00
x.yumoto.k
c0b99203da Merge branch 'develop' into ccb 2024-02-15 15:14:50 +09:00
湯本 開
cd58916e05 Merged PR 746: ツールの雛形作成
## 概要
[Task3696: ツールの雛形作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3696)

- DevContainerを追加

## レビューポイント
- 特になし

## 動作確認状況
- ローカルで確認
2024-02-15 05:49:45 +00:00
SAITO-PC-3\saito.k
29d875765e Merge branch 'develop' 2024-02-14 17:58:56 +09:00
SAITO-PC-3\saito.k
63191a3b61 OptionItemの作成が重複してしまっていたので片方を削除
タスク削除のテストをMysql使用するように修正
2024-02-14 12:06:19 +09:00
SAITO-PC-3\saito.k
3877a4670d Merge branch 'develop' into ccb
# Conflicts:
#	dictation_client/src/pages/UserListPage/index.tsx
2024-02-14 11:33:11 +09:00
saito.k
25b7936bf4 Merged PR 747: デザイン反映
## 概要
[Task3670: デザイン反映](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3670)

- ユーザー一覧画面のヘッダーのスタイル修正
  - ブラウザのサイズに合わせて折り返すようにした
  - ユーザー一覧のテーブルを横スクロールできるように修正
- ライセンス履歴画面にパンくずリストを表示
- OptionItem更新ポップアップのスタイル修正
  - 端が切れてしまっていたため枠に収まるようにした
- Typistを「Selected」と「Pool」で選択するUIのスタイル修正
  - typist名やグループ名が長くてもチェックアイコンに重ならないようにした

## レビューポイント
- 特になし

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3670?csf=1&web=1&e=zIcngJ
## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-14 01:50:38 +00:00
saito.k
73ef74770e Merged PR 745: タスク取得処理のクエリ発行箇所の修正
## 概要
[Task3673: タスク取得処理のクエリ発行箇所の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3673)

- タスク取得時にRelationでOptionItemも取得しているが、そのJoinカラムの指定方法に誤りがあったため正しいジョインカラムを指定するように修正した。
  - 本来はタスクレコードのaudio_file_idとOptionItemのaudio_file_idでjoinするはずだが、タスクレコードのidとOptionItemのaudio_file_idでjoinしていた
  - タスクと音声ファイルは同時にレコードが作られるため基本的にidが一致する傾向があり、テストで発見できていなかった模様
  - https://orkhan.gitbook.io/typeorm/docs/relations#joincolumn-options
- テスト修正

## レビューポイント
- 特になし

## UIの変更

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-13 02:36:01 +00:00
makabe.t
bbbd3e757b Merged PR 743: テンプレートファイル削除画面修正
## 概要
[Task3600: テンプレートファイル削除画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3600)

- テンプレートファイル削除の画面を実装しました。

## レビューポイント
- エラー処理は適切でしょうか?

## UIの変更
- [Task3600](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3600?csf=1&web=1&e=E25Kf7)

## 動作確認状況
- ローカルで確認
2024-02-13 02:32:17 +00:00
saito.k
9cc9a3bd94 Merged PR 744: タスク一覧画面修正
## 概要
[Task3672: タスク一覧画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3672)

- タスク一覧の表示項目制御用のチェックボックスの操作可能範囲を修正
  - 「Comment」のチェックボックスをリテラルまで押せるようにした
- タスク一覧のPriorityがHighの時の表示を変更した
  - 行を赤く表示→文字を赤く表示

## レビューポイント
- 修正する箇所の認識は合っているか

## UIの変更
-https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3672?csf=1&web=1&e=nSX5B0

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-13 02:12:00 +00:00
makabe.t
83efd97bdf Merged PR 739: テンプレートファイル削除API実装
## 概要
[Task3599: テンプレートファイル削除API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3599)

- テンプレートファイル削除APIとテストを実装しました。

## レビューポイント
- テンプレートファイル削除できないエラーの条件は適切でしょうか?
- テストケースは適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-02-13 00:22:38 +00:00
makabe
447b0e280c Merge branch 'develop' into ccb 2024-02-09 19:06:45 +09:00
makabe.t
a9d326c234 Merged PR 740: トライアルライセンスを有効にしても有効化メールが届かない対応
## 概要
[Task3651: トライアルライセンスを有効にしても有効化メールが届かない対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3651)

- ライセンス割り当て時のメール(U-108)について、ディーラーが設定されていない場合にはディーラー関連の文言を表示しないように修正しました。

## レビューポイント
- メッセージ内容は適切でしょうか?
- ディーラーの取り扱いは適切でしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-02-09 09:58:06 +00:00
x.yumoto.k
cd277f3f9a Merge branch 'develop' into ccb 2024-02-09 17:37:38 +09:00
湯本 開
7ca4249f04 Merged PR 742: ログアウトせずに認証切れまで待った後にTOPページからログインしようとするとエラーが発生する
## 概要
[Task3680: ログアウトせずに認証切れまで待った後にTOPページからログインしようとするとエラーが発生する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3680)

- 現象
  - ブラウザバック対策のコードで、アクセストークンの寿命を意識せずにログイン後画面に遷移していたため、リフレッシュトークンとアクセストークンの再発行がSkipされた上で寿命が切れたトークンを使うような状態でログイン後画面に遷移してしまっていた
- 対応
  - /login, /authで、アクセストークンチェック→IdTokenを使ったログイン中プロセスかチェック の順番を変更
    - 有効なアクセストークンがあったとしても、再ログインをしてるのであればリフレッシュトークン等の再発行を実施する形に変更

## レビューポイント
- Bugの現象が解消する以外の挙動の変更が発生してしまわないか
  - 特にブラウザバック等
- 実装方法で問題がありそうな部分はないか
  - 不要なTokenのクリア等はないか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認

## 補足
- **可能であればローカルで挙動を確認していただきたいです**
  - .env.local の `ACCESS_TOKEN_LIFETIME_WEB` を60(=1分)とかにすれば確認はしやすいはず
2024-02-09 08:12:26 +00:00
makabe.t
270122b135 Merged PR 741: アカウント情報画面修正(保存日数の表示)
## 概要
[Task3691: アカウント情報画面修正(保存日数の表示)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3691)

- アカウント情報画面にファイルの保存日数を表示するよう修正しました。
  - ファイル削除が設定されている場合は日数、されていない場合はハイフン表示となるようにしています。

## レビューポイント
- 画面イメージは想定通りでしょうか?
- 表示する保存日数は想定通りの値でしょうか?

## UIの変更
- [Task3691](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3691?csf=1&web=1&e=Gthaa8)

## 動作確認状況
- ローカルで確認
2024-02-09 01:05:15 +00:00
maruyama.t
0d0f624a3f Merged PR 733: ライセンス自動割り当てのFunctionsがエラーになっている
## 概要
[Task3631: ライセンス自動割り当てのFunctionsがエラーになっている](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3631)

ユーザーテーブルからライセンスアラートを削除したが、Functionsの追従が漏れていた

## レビューポイント
- とくになし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-07 07:34:53 +00:00
masaaki
32d8c6b896 Merged PR 737: ファイル削除設定API作成
## 概要
[Task3546: ファイル削除設定API作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3546)

- プロダクト バックログ項目 1199: アカウント設定を変更したい(ファイル削除設定)
- ファイル削除設定API作成を実装しました
- 変数定義時に型指定が不要で、自動的に明示的な型宣言が削除されています。非テストコードについてはeslint-disable-lineによって無視設定を行っています。テストコードについては削除したままとしています。

## レビューポイント
- 特筆するものはありません

## UIの変更
- 無し

## 動作確認状況
- ローカル及びユニットテストで確認

## 補足
- 無し
2024-02-07 02:47:41 +00:00
Kentaro Fukunaga
91c27b7684 Merged PR 736: テンプレートファイル削除API IF実装
## 概要
[Task3598: テンプレートファイル削除API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3598)

- 掲題のとおり、IF実装しました。

## レビューポイント
- 認可処理に認識違いないか?
- パラメータに不足ないか?

## 動作確認状況
- ローカルでAPI実行できることを確認

## 補足
- とくになし
2024-02-06 23:53:00 +00:00
Kentaro Fukunaga
548c7a05e9 Merged PR 729: 画面実装(ファイル削除設定ポップアップ画面)
## 概要
[Task3547: 画面実装(ファイル削除設定ポップアップ画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3547)

- ファイル削除設定ポップアップの新規実装をしました。

## レビューポイント
- reduxとの連携部分の設計でNGな部分ないか?
- 処理の抜け漏れないか?

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3547?csf=1&web=1&e=0pu92Q

## 動作確認状況
- ローカルで一通りの動作確認しました。

## 補足
- とくになし
2024-02-06 12:58:55 +00:00
makabe.t
eaf1b3c8b8 Merged PR 738: develop動作確認不具合対応
## 概要
[Task3645: develop動作確認不具合対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3645)

- 削除完了メールのタイトルを修正しました。

## レビューポイント
- 共有

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-02-06 10:26:42 +00:00
makabe.t
19b544540e Merged PR 724: API実装
## 概要
[Task3535: API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3535)

- タイピストグループ削除APIとテストを実装しました。

accountのテストがうまくいっていないようなので別途見直します。
※タイピストグループ削除のテストはうまくいっています

## レビューポイント
- エラーケースと出力されるコードは適切でしょうか?
- テストケースは適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-02-06 07:46:57 +00:00
SAITO-PC-3\saito.k
f978d837e7 Merge branch 'develop' 2024-02-06 16:26:58 +09:00
湯本 開
feeec9d1f5 Merged PR 714: API実装(ユーザー削除|Repository以外)
## 概要
[Task3594: API実装(ユーザー削除|Repository以外)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3594)

ユーザー削除API実装
ユニットテスト実装

## レビューポイント
- `'E014008', // ユーザー削除エラー(削除しようとしたユーザーが自分自身だった)`が用意されているが、
`'E014002', // ユーザー削除エラー(削除しようとしたユーザーが管理者だった)`とわけて実装する必要あるか。
管理者でしか削除処理は行えない&管理者ユーザは削除できない。

- `ExistsCheckoutPermissionDeleteFailedError`
削除対象ユーザーがチェックアウト権限を持っている事が原因の削除失敗エラーは、ユーザ削除エラーの一つとして、`code.ts`にコードを用意してあげる必要があるか?
(引継ぎ時あえて用意していないように見えなくもなかったので)

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-06 07:12:11 +00:00
x.yumoto.k
4442c7cbbe Merge branch 'develop' into ccb 2024-02-06 14:56:39 +09:00
湯本 開
a1b7505035 Merged PR 732: [改善]認証用URLについて、ドメイン名の末尾に/が必要となることへの対応
## 概要
[Task3625: [改善]認証用URLについて、ドメイン名の末尾に/が必要となることへの対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3625)

- URLクラスとpathクラスを用いてURLを構築するよう修正
- 送信するメールに関わるテストを追加

## レビューポイント
- 修正内容は妥当であるか
- 漏れていそうなURL系の処理はないか
- 工数面を考慮したコスト対効果の観点から、メール送信を行うテスト全てに送信メール内容のチェックを行うテストコードは入れなかったが許容可能か

## 動作確認状況
- npm run testは通過
  - `.env.test` の `APP_DOMAIN` の末尾 `/` を付けて通過 & 消して通過 するかを確認
  - **一応追試をお願いしたいです**
2024-02-06 05:03:45 +00:00
SAITO-PC-3\saito.k
1e8bc39c7f Merge branch 'develop' into ccb
# Conflicts:
#	dictation_client/src/translation/de.json
#	dictation_client/src/translation/en.json
#	dictation_client/src/translation/es.json
#	dictation_client/src/translation/fr.json
2024-02-05 21:15:24 +09:00
saito.k
84b0da1f95 Merged PR 723: [FB対応]タイピストグループ重複時のエラーとする
## 概要
[Task3613: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3613)

- タイピストグループ名が重複した際のエラーを追加
  - タイピストグループ追加API
  - タイピストグループ更新API
- タイピストグループ設定画面に表示するエラーメッセージを追加

## レビューポイント
- 行ロックするべきかどうか
  - ギリギリのタイミングで同名のタイピストグループが作成される場合は防げないのでDBでユニーク制約を設定する?
    - insertにロックはかけられないから

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3613?csf=1&web=1&e=i8cN2g

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-05 11:46:29 +00:00
makabe
ce3deecd1b Merge branch 'develop' into ccb 2024-02-05 19:39:37 +09:00
makabe
8e159a1c2a Merge branch 'develop' into ccb 2024-02-05 16:36:09 +09:00
saito.k
48d2e625db Merged PR 730: [FB対応]タスク一覧画面のデザイン修正
## 概要
[Task3614: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3614)
- デザイン修正
  - ソートが昇順の時は▲
  - ソートが降順の時は▼
- Priorityが「High」の時にその行を赤くする

## レビューポイント
- 特になし

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3614?csf=1&web=1&e=fm3MFs

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-05 07:08:00 +00:00
makabe.t
878657ad4a Merged PR 713: 行ロック横展開3
## 概要
[Task3471: 行ロック横展開3](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3471)

- 以下のリポジトリのメソッドに行ロックを追加しました。
- tasks
  - checkout
    - タスク、チェックアウト情報にロックを追加して途中で変更できないようにする
  - checkin
    - タスクのチェックにロックを追加してタスクのステータスを途中で変更できないようにする
  - cancel
    - タスクのチェックにロックを追加してタスクのステータスを途中で変更できないようにする
  - suspend
    - タスクのチェックにロックを追加してタスクのステータスを途中で変更できないようにする
  - backup
    - タスクのチェックにロックを追加してタスクのステータスを途中で変更できないようにする
  - create
    - タスクのチェックにロックを追加してJobNumberのチェックで重複しないようにする
  - changeCheckoutPermission
    - タスク、チェックアウト候補のチェックにロックを追加して途中で変更されないようにする
  - autoRouting
    - 処理中にワークフロー・ワークタイプの取得にロックを追加して意図しない対象のでチェックアウト権限が作成されないようにする
    - ワークタイプ・ワークフローの更新/削除時にもロックを追加

こちらの資料を参考に対応しています。
[行ロックに関する影響調査](https://ndstokyo.sharepoint.com//r/sites/Piranha/Shared%20Documents/General/OMDS/%E8%A1%8C%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%BD%B1%E9%9F%BF%E8%AA%BF%E6%9F%BB.xlsx?d=wdd6f3d97f7b04a538095c459f8eee2eb&csf=1&web=1&e=9M43di)

対応箇所について以下にまとめました。
[Task3471](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3471?csf=1&web=1&e=wptJqD)

## レビューポイント
- 対応箇所は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-02-05 06:19:24 +00:00
saito.k
1daeedbfdb Merged PR 722: アカウント画面に注釈を追加する&翻訳反映
## 概要
[Task3592: アカウント画面に注釈を追加する&翻訳反映](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3592)

- ディーラーマネジメントの下、保存ボタンの下に注釈追加
  - タスクの中のBacklogに詳細があります
- 翻訳反映

## レビューポイント
- 特になし

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3592?csf=1&web=1&e=1wBNB6

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-05 06:11:41 +00:00
maruyama.t
df74dc358c Merged PR 731: 既存API修正(アカウント情報取得API、アカウント作成API)
## 概要
[Task3555: 既存API修正(アカウント情報取得API、アカウント作成API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3555)

Accountにauto_file_delete、file_retention_daysを追加
既存のテストでアカウントを作成している部分に項目の値を追加。

## レビューポイント
-entityの

```
@Column({ default: 30 })
```
が必要かどうか。

## UIの変更
なし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-05 02:27:43 +00:00
makabe
186896da15 Merge branch 'ccb' of https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_git/ODMS%20Cloud into ccb 2024-02-05 09:46:49 +09:00
saito.k
4be13e002d Merged PR 710: 画面実装(削除操作)
## 概要
[Task3488: 画面実装(削除操作)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3488)

- ユーザー削除の画面実装
  - 確認ダイアログ
  - 削除API呼び出し
  - エラーハンドリング
  - 成功時のメッセージ
  - 成功時のユーザー一覧更新

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- API呼び出しのエラーハンドリング部分はエラーコードが採番されたら追従します
2024-02-05 00:39:53 +00:00
makabe
cf30b97a16 Merge branch 'ccb' of https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_git/ODMS%20Cloud into ccb 2024-02-05 09:37:06 +09:00
Kentaro Fukunaga
44759b1aac Merged PR 725: タイピストグループ削除 画面実装
## 概要
[Task3536: 画面実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3536)

- タイピストグループ画面に削除ボタン配置
- 削除ボタンクリック時に確認ダイアログ表示→OKで削除API実行&ぐるぐる表示
- API実行結果によってメッセージの出し分け&画面リスト更新
- 翻訳情報追加

## レビューポイント
- エラーコードに認識違いないか?
- 画面実装のお作法にそぐわないところがないか?
- なんか抜けてる実装などあれば

## UIの変更
大した変更ではないので、スクショ置き場に置く手間を省いてここに貼り付けます
![image (2).png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/725/attachments/image%20%282%29.png)

## 動作確認状況
- 期待される動作を一通りローカルで確認しました。
    - API実行中はぐるぐる表示されること
    - API成功または削除済みの場合は成功メッセージ表示され、画面更新されること
    - API失敗時、理由によってエラーメッセージが表示分けされること
2024-02-05 00:31:47 +00:00
makabe
5ab2f02c56 Merge branch 'develop' into ccb 2024-02-05 09:26:55 +09:00
makabe.t
d5178e7435 Merged PR 716: 行ロック横展開5
## 概要
[Task3473: 行ロック横展開5](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3473)

以下のリポジトリのメソッドについてlockを追加しました。
- worktypes
  - createWorktype
    - ワークタイプ取得にロックを追加して途中で追加できないようにする
  - updateWorktype
    - ワークタイプ取得にロックを追加して途中で同一ワークタイプIDが作られないようにする
  - deleteWorktype
    - ワークフロー取得にロックを追加して途中でワークタイプが紐づけられないようにする
  - updateOptionItems
    - ワークタイプ取得にロックを追加して同一ワークタイプに対してオプションアイテムを作らないようにする

こちらの資料を参考にして対応しています。
[行ロックに関する影響調査](https://ndstokyo.sharepoint.com//r/sites/Piranha/Shared%20Documents/General/OMDS/%E8%A1%8C%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%BD%B1%E9%9F%BF%E8%AA%BF%E6%9F%BB.xlsx?d=wdd6f3d97f7b04a538095c459f8eee2eb&csf=1&web=1&e=Y5l3aA)

対応内容についてはこちらにまとめています。
[行ロック5の対応整理](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3473?csf=1&web=1&e=wqCx0Z)
## レビューポイント
- 対応箇所は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-02-05 00:21:57 +00:00
Kentaro Fukunaga
f595cae1b8 Merged PR 728: ファイル削除設定更新API IF実装
## 概要
[Task3557: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3557)

- ファイル削除設定更新APIのIFを実装してOpenAPI生成しました。

## 補足
- 別PRでOKもらってるのでそのままマージします
2024-02-03 06:22:53 +00:00
Kentaro Fukunaga
48a2bddfd9 Merged PR 721: DBマイグレーション
## 概要
[Task3556: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3556)

- アカウントテーブルに対して、以下の2カラムを追加しました。
    - 自動ファイル削除要否
    - 文字起こし完了してからファイル削除するまでのファイル保持日数

## レビューポイント
- カラム名としてほかに適切なものはないか?
- 初期値合ってますよね?

## 動作確認状況
- ローカルでmigrate up と downが出来ることを確認

## 補足
- もしこの値の扱いが、「Finishedになってから○○日後にファイルを削除する」のものであればそのとき修正します。
2024-02-02 04:57:25 +00:00
SAITO-PC-3\saito.k
fbcafd2014 Merge branch 'develop' into ccb
# Conflicts:
#	dictation_client/src/pages/DictationPage/index.tsx
2024-02-02 12:01:46 +09:00
saito.k
4548b5e510 Merged PR 715: 行ロック横展開4
## 概要
[Task3472: 行ロック横展開4](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3472)

- 対象メソッド
  - user_groups
    - createTypistGroup
      - グループに含めるユーザー情報取得箇所でロック追加
        - ユーザー削除と被ると、削除済みユーザーをユーザーグループに含めてしまう
    - updateTypistGroup
       - グループに含めるユーザー情報取得箇所でロック追加
         - ユーザー削除と被ると、削除済みユーザーをユーザーグループに含めてしまう
       - グループの存在確認を行う箇所
         - グループ削除と被ると、削除済みのグループにメンバーを割り当ててしまう
  - workflows
    - createtWorkflows
    - updatetWorkflow
- インデックス追加
  - user
     - role

## レビューポイント
- インデックスの貼り忘れはないか
- ロックの追加忘れはないか

## 共有資料
  - https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3472?csf=1&web=1&e=jjb0QV

## 動作確認状況
- ローカルでロックされている箇所で待ちが発生していることを確認

## 補足
- 相談、参考資料などがあれば
2024-02-02 02:37:39 +00:00
saito.k
06b5249e5a Merged PR 717: [FB対応]画面更新するとヘッダーのソートがJob numberに戻ってしまう
## 概要
[Task3611: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3611)

- ソート条件を変更した際にローカルストレージに保持するように修正
  - 例 `direction:ASC,paramName:RECORDING_STARTED_DATE`
- ローカルストレージにソート条件が入っていれば、その条件でソートしたタスクを取得するように修正
- PlayBack時にローカルストレージにあるソート条件を削除するように修正
  - 削除することで、次回の画面初期表示時はPlayBackを押したときのソート条件を使用することができる。
- PlayBack時にユーザーがタイピストの時のみソート条件を保存していたがその制限は不要そうだったのでAuthorでもソート条件を更新するように修正。
  - AuthorがPlayBack押下時にソート条件を更新しても不都合はないため。

## レビューポイント
- ローカルストレージに保存する処理を入れる箇所に問題はないか

## UIの変更
-https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3611?csf=1&web=1&e=5uG6f4

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-02 02:00:47 +00:00
makabe.t
9f7c8c99c0 Merged PR 720: API IF実装
## 概要
[Task3534: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3534)

- タイピストグループ削除APIのIFを実装し、OpenAPIを更新しました。

## レビューポイント
- パラメータとバリデータは想定通りでしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-02-02 00:27:08 +00:00
maruyama.t
e877942175 Merged PR 711: Repositoryロック対応
## 概要
[Task3523: Repositoryロック対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3523)

LicensesRepository
  - allocateLicense
割当先ユーザ取得しロックする処理を追加

WorkflowRepository
 - createtWorkflows
authorの存在確認時にロックを追加
 - updatetWorkflows
authorの存在確認時にロックを追加
UserGroup&UserGroupMemberのロックを追加

AccountsRepository
- updateAccountInfo
プライマリ/セカンダリ管理者ユーザーの存在チェックのロック
(行ロック横展開1で修正されていた)

TasksRepository
- create
タスクの所有者の存在確認とロックを追加
- checkout
対象ユーザの存在確認とロックを追加
- changeCheckoutPermission
対象ユーザの存在確認とロックを追加

UserGroupsRepository
- createTypistGroup
対象ユーザ達のロックを追加
- updateTypistGroup
対象ユーザ達のロックを追加
## レビューポイント
ラフスケッチの、

```
競合ケース E-3. Typistが削除条件判定を行った直後に、チェックアウト候補に削除ユーザーが含まれるTypistGroupが割り当てられる
TypistGroupに割り当たっている時点で削除条件を満たさないので、このケースはないはず
```

ここは未対応でよい認識か。

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-02-01 06:06:10 +00:00
makabe
92193d499a Merge branch 'develop' into ccb 2024-01-31 10:28:39 +09:00
makabe.t
6d6eee91e0 Merged PR 712: 行ロック横展開2
## 概要
[Task3470: 行ロック横展開2](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3470)

以下のリポジトリの各メソッドについてロックを追加し、必要なインデックスを追加するマイグレーションファイルを追加しました。
- licenses
  - order
    - 注文の取得にロックを追加して同じPO番号をチェックできるようにする
  - createCardLicenses
    - ライセンスキーチェック毎にロックを追加して同じライセンスキーをチェックできるようにする
  - activateCardLicense
    - ライセンスキーのチェックにロックを追加して同一のライセンスキーがアクティベート済みかチェックできるようにする
  - issueLicense
    - 注文のチェックにロックを追加して同一の注文に対して複数回ライセンスが発行されないようにする
  - allocateLicense
    - ユーザーのライセンス状態取得にロックを追加して複数回割り当てできないようにする
  - deallocateLicense
    - ユーザーのライセンス状態取得にロックを追加して複数回解除できないようにする
  - cancelOrder
    - 注文のチェックにロックを追加してキャンセル中にライセンスが発行されないようにする

※こちらの資料を参考に各メソッド内で影響に関連すると思われるselectにロックを追加しています。
[行ロックに関する影響調査.xlsx](https://ndstokyo.sharepoint.com//r/sites/Piranha/Shared%20Documents/General/OMDS/%E8%A1%8C%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%BD%B1%E9%9F%BF%E8%AA%BF%E6%9F%BB.xlsx?d=wdd6f3d97f7b04a538095c459f8eee2eb&csf=1&web=1&e=qASAOx)

上記資料を参考にタスク内で担当するメソッドについてロックの対応箇所を整理しました。
[Task3470](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%AB/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3470?csf=1&web=1&e=OGnOhp)

## レビューポイント
- 各メソッドの対応方針は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-01-31 00:57:36 +00:00
湯本 開
c32b38b783 Merged PR 703: API実装(ユーザー削除)/Repository実装
## 概要
[Task3521: API実装(ユーザー削除)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3521)

- ユーザー削除を行うRepository(DB操作部分)を実装
  - 削除不可条件をチェックして削除できなければエラー
  - 削除可能だった場合、以下の処理を実行
    - ユーザーをアーカイブ
    - ユーザーを削除

## レビューポイント
- 「ライセンス割り当て解除」をせずにユーザーを削除するため、ライセンスがUserテーブルに存在しないIDを指したままになってしまうが問題ないか
  - ラフスケッチ時には、UserArchiveのidには紐づく & UserArchiveに紐づくことによって期限切れのライセンスが誰に割り当たっていたかを把握できるという話だったと思うが、これは"そういう必要がある"という仕様という認識でよいか
- ロック対象の指定は妥当であるか
  - デッドロックは発生しなさそうか
    - User -> UserGroup -> Workflow -> Task -> CheckoutPermission -> Licenseの順番

## 動作確認状況
- 動作確認なし
2024-01-30 07:10:11 +00:00
SAITO-PC-3\saito.k
08a37ff264 Merge branch 'develop' into ccb
# Conflicts:
#	dictation_client/src/translation/de.json
#	dictation_client/src/translation/en.json
#	dictation_client/src/translation/es.json
#	dictation_client/src/translation/fr.json
2024-01-29 18:30:34 +09:00
saito.k
f9d5082f39 Merged PR 706: 翻訳情報を反映する
## 概要
[Task3529: 翻訳情報を反映する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3529)

- 翻訳情報を反映

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-01-29 08:38:26 +00:00
makabe
f00861702a Merge branch 'develop' into ccb 2024-01-29 15:52:55 +09:00
makabe.t
dbff86915e Merged PR 708: 対応
## 概要
[Task3550: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3550)

- Worktypeの登録・編集時に16文字までとなるように制限を修正しました。
  - APIのバリデータ
  - 画面の最大文字数

## レビューポイント
- 対応内容の認識はあっていますでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-01-29 05:54:35 +00:00
makabe.t
4d462a883a Merged PR 688: 行ロック横展開1
## 概要
[Task3468: 行ロック横展開1](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3468)

- 各リポジトリのメソッドについて行ロックが必要な箇所に処理を追加しました。
- **accounts**
  - **cancelIssue**
    - `canselIssue`と`allocateLicense`での対象ライセンス取得にロックを追加しました。
  - **updateAccountInfo**
    - `updateAccountInfo`でのプライマリ/セカンダリ管理者取得にロックを追加しました。
- **templates**
  - **upsertTemplateFile**
    - `upsertTemplateFile`のテンプレートファイル取得にロックを追加しました。
- **users**
  - **update**
    - ユーザー取得にロックを追加しました。
      - 影響としてはAuthorIDの重複が考えられたのでその対応のために入れています。
  - **findDelegateUser**
    - selectのみでデータの不整合はないので特に処置はしていません。
  - **isAllowDelegationPermission**
    - selectのみでデータの不整合はないので特に処置はしていません。

※こちらの資料を参考に各メソッド内で影響に関連すると思われるselectにロックを追加しています。
[行ロックに関する影響調査.xlsx](https://ndstokyo.sharepoint.com//r/sites/Piranha/Shared%20Documents/General/OMDS/%E8%A1%8C%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%BD%B1%E9%9F%BF%E8%AA%BF%E6%9F%BB.xlsx?d=wdd6f3d97f7b04a538095c459f8eee2eb&csf=1&web=1&e=saqcTC)

上記資料を参考にタスク内で担当するメソッドについてロックの対応箇所を整理しました。
[Task3520](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3520?csf=1&web=1&e=ewuJoe)

## レビューポイント
- 競合の対応として適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルでマイグレーション確認
2024-01-29 02:52:24 +00:00
maruyama.t
986b710aaa Merged PR 707: 対応
## 概要
[Task3507: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3507)

アップロードとcheckout時にライセンスチェックを行う。ダウンロード時にはチェックを行わない。
- 影響範囲(他の機能にも影響があるか)
checkoutのとき、第五階層の場合にチェックが行われる。
外部連携APIが返却するパラメータが変わるため、OMDSさんに連携する

## レビューポイント
- 不要な個所まで削除していないか(アップロードの場合はチェックを残す)

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-01-26 11:07:56 +00:00
makabe.t
794dae0c15 Merged PR 709: テスト対応もれ修正
## 概要
[Task3589: テスト対応もれ修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3589)

- バグ対応で漏れていたテスト修正を実施しました。

## レビューポイント
- 共有

## UIの変更
-なし

## 動作確認状況
- ローカルで確認
2024-01-26 08:58:08 +00:00
makabe.t
271d85482d Merged PR 705: 対応
## 概要
[Task3549: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3549)

- 第五階層のユーザーがライセンス注文する際にディーラーが設定されていない場合に出るエラーを専用のメッセージとなるように修正しました。
※文言はメッセージレビュー後に必要があれば修正します。

## レビューポイント
- エラーの仕分け方は適切でしょうか?

## UIの変更
- [Task3549](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3549?csf=1&web=1&e=uwyFMW)

## 動作確認状況
- ローカルで確認
2024-01-26 08:03:18 +00:00
saito.k
7c83a9ccae Merged PR 704: ユーザー認証メールのURLの期限について
## 概要
[Task3515: ユーザー認証メールのURLの期限について](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3515)

- 環境変数の有効期限に使用されている値を見直し
  - アクセストークンの有効期限
    - ミリ秒→秒単位に修正
  - リフレッシュトークンの有効期限
    - ミリ秒→秒単位に修正
  - 認証メールリンクの有効期限
    - ミリ秒→秒単位に修正
  - SASトークンの有効期限
    - 有効期限が間違っていたので修正
      - 2時間に修正(奥澤さんと調整済み)
  - キャッシュの有効期限
    - 24時間であっていたのでそのまま
## レビューポイント
- ほかに確認する値はあるか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- トークン生成時に渡す有効期限情報が秒単位であっているのか値を変更して確認した

## 補足
- 相談、参考資料などがあれば
2024-01-25 06:53:02 +00:00
湯本 開
8dfbcea0da Merged PR 702: API IF実装
## 概要
[Task3520: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3520)

- ユーザー削除APIのI/Fを実装

## レビューポイント
- バリデーターは適切に設定されているか
- 不要な処理が混入していないか
- 代行操作による実行を許可しているが、認識は間違っていないか
- マージ先ブランチは間違っていないか

## 動作確認状況
- openapi.jsonの生成成功を確認
2024-01-25 04:00:54 +00:00
masaaki
52b71a267b Merged PR 695: テスト対応
## 概要
[Task3505: テスト対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3505)

- アカウントIDの初期値を変更するためのSQLを作成
- 運用開始時に忘れないよう、登録を行うためのタスクを追加
  タスク 3530: アカウントIDをユーザ指定の通番から開始するようにAUTO_INCRIMENTの値を変更する

## レビューポイント
- 特にレビューしてほしい箇所
  - SQLファイルの登録先。
    既存のフォルダで意味として矛盾の無い「DB/init」配下としたが妥当か。
    今後移行用のスクリプトの登録などが予想されるので、そこを見据えた方がよいか?

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認

## 補足
- レビューOKが出たタイミングで、dev/stg環境に一度適用を行います。
    prod環境については、現在のデータを残す可能性があるので、適用は移行時に実施する想定です。
 →(2024/1/24追記)データ移行のタイミングでデータは一度きれいにするので、prod環境にも適用する
2024-01-24 09:25:47 +00:00
SAITO-PC-3\saito.k
f142d615fa Merge branch 'develop' 2024-01-24 18:21:05 +09:00
makabe.t
8aa45baee8 Merged PR 697: DB関連コード修正
## 概要
[Task3509: DB関連コード修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3509)

- 参照するDBがCCB用のスキーマとなるようにserverの参照DB名を変更しました。
対象:
- server
  - .env
  - app.module.ts
- function
  - .env
  - functions/*

※マージの取り込み分も入ってしまったので他は無視してください。

## レビューポイント
- 対応箇所は適切でしょうか。

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
  - ローカルにスキーマを追加・マイグレーションしてserverを起動できることを確認
2024-01-24 02:52:13 +00:00
SAITO-PC-3\saito.k
f2f8728319 ccbの競合解消漏れを対応 2024-01-24 11:15:27 +09:00
SAITO-PC-3\saito.k
ded446de93 Merge branch 'develop' into ccb
# Conflicts:
#	dictation_client/src/pages/UserListPage/index.tsx
#	dictation_server/package.json
#	dictation_server/src/common/test/init.ts
#	dictation_server/src/features/auth/auth.service.spec.ts
#	dictation_server/src/features/files/files.service.spec.ts
#	dictation_server/src/features/licenses/licenses.service.spec.ts
#	dictation_server/src/features/tasks/tasks.service.spec.ts
#	dictation_server/src/features/terms/terms.service.spec.ts
#	dictation_server/src/features/users/users.service.spec.ts
#	dictation_server/src/features/workflows/workflows.service.spec.ts
2024-01-24 10:46:48 +09:00
makabe.t
1524ec2473 Merged PR 701: パイプラインエラー対応
## 概要
[Task3531: パイプラインエラー対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3531)

- パイプラインエラー解消

## レビューポイント
- 共有
2024-01-24 00:48:21 +00:00
saito.k
a59cb0fffb Merged PR 700: [テストFB対応]User画面でライセンスのStatusの表示を変更したい
## 概要
[Task3506: テスト対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3506)

- ライセンスが割り当たっている状態の表示をLicense Assignedにする
- ライセンスの期限切れ状態の表示をNo Licenseとする
- ヘッダーのOMDSCloudの表記を削除

## レビューポイント
- 修正内容に不足はないか
- 修正の認識ずれはないか
- ほかに修正が影響している箇所はないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3506?csf=1&web=1&e=g2Hkr3

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-01-23 11:02:50 +00:00
makabe.t
a7bb32ec4a Merged PR 699: DBマイグレーションファイルにCCB用の設定を追加する
## 概要
[Task3510: DBマイグレーションファイルにCCB用の設定を追加する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3510)

- DBマイグレーションファイルにCCB用の設定を追加し、コマンドを修正しました。

## レビューポイント
- 設定内容は認識通りでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
  - CCB用のスキーマに対してmigrate:up/downできるところまで確認
2024-01-23 10:30:14 +00:00
湯本 開
cf56239da2 Merged PR 669: Pipeline上でdocker-composeを用いてMySQLを起動する方法を調査する
## 概要
[Task3427: Pipeline上でdocker-composeを用いてMySQLを起動する方法を調査する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3427)

- MySQLでUnitTestを実施する仕組みを作成
  - DevContainerにUnitTestからのみアクセスされるMySQLが動くコンテナ( `test_mysql_db` )を追加
  - テストでMySQLを使用し、上記 `test_mysql_db` に対してアクセスするよう構成
  - テストの前処理で `test_mysql_db` の全てのテーブルをTRUNCATEする処理を実行し、データをクリアする
    - 常にテスト用MySQLは起動しているが、テスト実行前にクリアされるので空っぽ前提の状態でテストを実施できる
  - 実際にMySQLを使用して実行されるテストを1つ追加
    - `users.service.spec.ts | UsersService.createUser` が対象
- Pipeline上でDevContainerを起動し、DevContainer内で `npm ci` `(UnitTest用DBへの) migration` `npm run test` を行う仕組みを作成
  - Pipelineを追加
    - **StagingPipelineでテスト・ステップを切り出し**
  - Pipelineテスト用DevContainer(のdocker-compose.yml)を作成
    - 構成は通常の物と同一だが、ネットワーク設定だけ外部のMySQLやRedisと通信しない前提に変更している
  - テストの実行環境を自己ホストではなく、一般で提供されているマシンに変更
    - 自己ホストのマシンにdocker-composeが入ってない/ビルド後のクリア処理が大変等の理由
- テストで使用する環境変数を `.env.test` という別環境変数に切り出し
  - そうすることで、PipelineでKeyVaultへのアクセスをする必要がなくなる
- **migrationの漏れを修正**
  - テストが通らないことで発覚したmigration漏れを修正
- **テストコードを修正**
  - **Date型のミリ秒単位の誤差を setMillseconds(0) を用いることで0にセットするコードを追加(ライセンス付近)**

## レビューポイント
- **WIPレビュー以降の追加の修正で違和感のある箇所はないか**
  - コミット履歴等で追っていただいた方が楽かと思います
  - 直近の`Merge branch 'develop' into feature/3427/poc-mysql-test` 以降がWIP以降に変更されたコードです
- **レビュー通過後、developのPipelineについては手動で同等のコードに変更→PRをdevelopにマージ予定だが進め方として問題はないか**
- [※WIPでレビュー済み] テスト用DevContainerを別途作成したが、現行のDevContainerを使用するよう頑張った方がいいか?
  - [※WIPでレビュー済み] CI/CDの実行速度面を考慮し、使用されないMySQLとRedisのサービスとネットワーク作成が同居しているdocker-compose.ymlの実行を避けたが、管理対象は増えているので議論の余地はある
- [※WIPでレビュー済み] MySQLでUnitTestを実行する際に懸念事項はないか
- [※WIPでレビュー済み] Dockerを起動する関係でCI/CDのスピードが数分遅くなると思われるが、許容可能か
- [※WIPでレビュー済み] `.env.test` に置き換えて問題ないか

## 動作確認状況
- ローカル&Pipelineで実行して確認済
2024-01-23 07:58:42 +00:00
makabe.t
6e931c5afb Merged PR 694: テスト対応
## 概要
[Task3504: テスト対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3504)

- ユーザー取得APIで取得するユーザーの順序をAuthor、Typist、Noneの順になるようにしました。

## レビューポイント
- 単純なorderの指定ではうまくいかないようでしたのでDBからの取得後にソートするようにしていますが処理として適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-01-23 00:21:17 +00:00
SAITO-PC-3\saito.k
d23336a065 workflowのソート条件の指定に誤りがあったので修正
テストもその誤りを検知できるように修正
2024-01-19 10:25:17 +09:00
saito.k
3ac1218a6b Merged PR 693: [テストFB対応]Workflow画面でのソート機能
## 概要
[Task3503: テスト対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3503)

- workflowsのソート条件を変更
  - AuthorIDの昇順
  - AuthorIDが同じ場合は、WorktypeIDの昇順

## レビューポイント
- 修正内容の認識があっているか

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-01-18 06:28:28 +00:00
maruyama.t
e732db08d8 Merge branch 'develop' into main 2024-01-18 13:23:29 +09:00
maruyama.t
1ad3cb70c6 Merged PR 687: アカウント登録画面修正
## 概要
[Task3437: アカウント登録画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3437)

- アカウント登録時にPrivacyNoticeに同意できるよう修正(サーバに処理自体は入っていたが、画面修正だけが漏れていた)
- アカウント登録画面と利用規約同意画面で文言が統一されていなかったのを修正。
- 利用規約同意画面で、規約に同意する文言のlabel→label htmlForに修正
(文言にマウスオーバーするとカーソルが矢印から指に代わるが、チェックボックスを押さないかぎりチェックが付かなかったのを、文言を押してもチェックが付くように修正)

## レビューポイント
とくになし

## UIの変更
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3437?csf=1&web=1&e=wGHFhu

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-01-17 06:06:08 +00:00
saito.k
46fdef854e Merged PR 689: licenseAlertのテスト修正
## 概要
[Task3275: licenseAlertのテスト修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3275)

- redisをモックに切り替えてテストを行うように修正
  - redisのモックは`redis-mock`というライブラリを使用

## レビューポイント
- 使用したライブラリに問題はありそうか
  - https://www.npmjs.com/package/redis-mock/v/0.56.3
  - テスト用に使用しているだけなので大きな問題になることはない認識

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、Pipeline上でテストが通ることを確認

## 補足
- 相談、参考資料などがあれば
2024-01-17 06:02:20 +00:00
makabe.t
7075c2a9eb Merged PR 686: いろいろ消す&表示変える
## 概要
[Task3328: いろいろ消す&表示変える](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3328)

- CCB後回し分の部分について表示を削除、修正しました。
  - ユーザー一覧画面の「Delete user」を消す
  - タスク一覧画面の「Delete dictation」を削す
  - テンプレートファイル一覧画面の「Delete」を消す
  - アカウント情報画面の「File Delete Setting」を消す
  - パートナー一覧画面の「Delete Account」を消す
  - ライセンスページの「Storage Available」と「Storage Used」の値をハイフン表示に修正
※変更部分はまた使う予定なのでコメントアウトで対応しています。

## レビューポイント
- 対応箇所は認識通りでしょうか?
- 対応内容は認識通りでしょうか?

## UIの変更
- [Task3328](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3328?csf=1&web=1&e=9y7y6P)

## 動作確認状況
- ローカルで確認
2024-01-16 10:37:12 +00:00
makabe.t
4c427d2632 Merged PR 692: マイグレーションファイル適用
## 概要
[Task3487: マイグレーションファイル適用](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3487)

- DB定義に齟齬が出てしまうため、DBマイグレーションファイルをCCBからdevelopにも適用します。

## レビューポイント
- 適用内容は適切でしょうか?
2024-01-16 10:15:56 +00:00
maruyama.t
658de1c1ae Merged PR 691: ライセンス自動割り当てのテストコードの結果が異常になる
## 概要
[Task3486: ライセンス自動割り当てのテストコードの結果が異常になる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3486)

現在時刻と明示的に定義した日付の比較を行っていたことで、年を跨ぎ異常となっていた

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-01-16 09:51:37 +00:00
maruyama.t
6b1020be8f Merged PR 690: dev動作確認&確認後コンソールログのloginResultを削除する
## 概要
[Task3478: dev動作確認&確認後コンソールログのloginResultを削除する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3478)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2024-01-16 08:32:25 +00:00
makabe.t
d08c6c99af Merged PR 681: タスク削除API実装
## 概要
[Task3457: タスク削除API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3457)

- タスク削除APIとUTを実装しました。

## レビューポイント
- テストケースは適切でしょうか?
- リポジトリでの削除処理は適切でしょうか?
- エラー時のコード使い分けは適切でしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-01-16 07:55:38 +00:00
maruyama.t
4c527b1959 Merged PR 685: authページでinstanceの取得に失敗した場合でもログインページに遷移させる
## 概要
[Task3476: authページでinstanceの取得に失敗した場合でもログインページに遷移させる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3476)

以下暫定対応です。
`const loginResult = await instance.handleRedirectPromise();`

推測としては、この処理でloginResultがnullになってしまうことがあり、
結果、ページ遷移などが発生しないままになってまうため、loading表示で固まる。
そのため、いかなる場合でも最終的にはログインページに遷移させるよう修正した。
これによって、loginResultがnullの場合は、ログインページに遷移後トップページに遷移し、ユーザは再度ログイン処理を行うことができる。

一旦この状態でテストは継続していただいて、根本原因調査は裏で行う。
## レビューポイント
- console.log({ loginResult }); はDEV環境での動作確認後に削除いたします。

## UIの変更
なし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-01-16 06:55:11 +00:00
makabe.t
8793606070 Merged PR 682: タスク一覧画面修正
## 概要
[Task3458: タスク一覧画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3458)

- タスク一覧画面のタスク削除ボタンからタスクを削除する処理を実装しました。
  - タスクがInProgress、ユーザーがTypistの場合にはボタンを非活性となるようにしています。

## レビューポイント
- エラーごとの処理内容は適切でしょうか?
- ボタンの活性制御は適切でしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-01-16 00:17:45 +00:00
saito.k
d627bb8a09 Merged PR 684: タスク一覧の表示件数を増やす
## 概要
[Task3447: タスク一覧の表示件数を増やす](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3447)

- タイトルの通り

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-01-15 08:54:14 +00:00
saito.k
0edad18545 Merged PR 674: DBからLicenseAlertカラム削除
## 概要
[Task3429: DBから該当カラム削除](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3429)

- UsersテーブルからLicenseAlertを削除

## レビューポイント
- 追加したマイグレーションファイルの内容に認識違いはないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2024-01-12 07:03:59 +00:00
makabe.t
81c299dd99 Merged PR 680: タスク削除API IF実装
## 概要
[Task3456: タスク削除API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3456)

- タスク削除APIのIFを実装しopenapi.jsonを更新しました。

## レビューポイント
- パス、バリデータは想定通りでしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-01-11 08:47:28 +00:00
makabe.t
6111583678 Merged PR 673: ログイン画面へのブラウザバック時のローディング対応
## 概要
[Task3380: ログイン画面へのブラウザバック時のローディング対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3380)

- ログイン済み後にブラウザバックした際にローディング画面からログイン後の画面に遷移する処理を追加しました。
  - loginPage
  - AuthPage
  - TermsPage

## レビューポイント
- 対応ページと対応する箇所は適切でしょうか?
  - 既存のuseEffectの中に処理を追加しています。

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-01-11 08:22:31 +00:00
makabe.t
196a8018e5 Merged PR 679: U-113メール内容の修正
## 概要
[Task3450: U-113メール内容の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3450)

- ユーザー追加の認証後に送られるメールU-113の文面を修正しました。
  - コロンと仮パスワードの間に見やすいようにスペースを入れています

## レビューポイント
- 対応箇所は適切でしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2024-01-11 07:49:54 +00:00
saito.k
c4efaf1a1a Merged PR 671: 「LicenseAlert」を消す対応
## 概要
[Task3381: 対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3381)

- 以下の画面から「LicenseAlert」を削除
  - ユーザー追加Popup
  - ユーザー更新Popup
  - ユーザー一覧画面
- 以下のAPIの引数から「LicenseAlert」の設定をするパラメータを削除
  - ユーザー作成API(users/signup)
  - ユーザー更新API(users/update)
- ユーザー一覧取得APIのレスポンスから「LicenseAlert」を削除
- usersEntityから「LicenseAlert」を削除
- クライアントのAPI呼び出し部分を自動生成するopenapi-generator-cliのバージョンを7.1.0で固定
  - 最新バージョン(7.2.0)はaxiosのバージョン1.x用になるため
  - https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.2.0

## レビューポイント
- openapi-generator-cliのバージョンを固定するのではなく、axiosのバージョンを上げたほうがよいか
  - axiosのバージョン1.xが出たのがおととしになるのでそろそろ上げてもいい?
  - このタイミングでメジャーバージョンを上げるのはどうか
    - 基本的な仕様について大きくは変わってない模様
    - 実際に上げてみて軽く動作確認してみたが問題なかった

## UIの変更
- Before/Afterのスクショなど
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3381?csf=1&web=1&e=TpXHES

## 補足
- 相談、参考資料などがあれば
2024-01-11 06:58:01 +00:00
makabe.t
cbf7622909 Merged PR 675: File Propertyの「priority」をHighかNormalで表示する
## 概要
[Task3433: File Propertyの「priority」をHighかNormalで表示する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3433)

- FilePropertyポップアップのpriorityの項目の表示を数字からHigh/Normalとなるように修正しました。

## レビューポイント
- 表示内容は認識通りでしょうか?

## UIの変更
- [Task3433](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3433?csf=1&web=1&e=5iWTtn)

## 動作確認状況
- ローカルで確認
2024-01-10 06:12:15 +00:00
makabe.t
87ede1ad3b Merged PR 672: パートナー追加時のメール文面の適用
## 概要
[Task3430: パートナー追加時のメール文面の適用](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3430)

- パートナー追加メールの文面をU-114メールとなるようにしました。
  - 併せてメール送信処理で`await`になっていなかった箇所を修正しました。

## レビューポイント
- パートナー追加メールの適用は適切でしょうか?
- 各メール送信処理の修正内容は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2024-01-09 08:00:50 +00:00
maruyama.t
0213d193e8 Merge branch 'develop' into main 2023-12-28 14:36:23 +09:00
maruyama.t
0a9f125d76 Merged PR 668: 有効期限>翌日になっているのを>当日に修正する
## 概要
[Task3421: 有効期限>翌日になっているのを>当日に修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3421)

- 有効期限>翌日になっているのを>当日に修正
翌日が有効期限のものは割り当ての対象とする。

念のためテストケースを追加

## レビューポイント
- とくになし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-12-28 04:27:19 +00:00
masaaki
7f8e2d5411 Merged PR 667: ロックが効かなくなる
## 概要
[Task3420: ロックが効かなくなる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3420)

- 「タスク 3400: テスト修正」対応の影響で正しくlockが行われなくなっていた事象を修正

## レビューポイント
- 特になし

## UIの変更
- 無し

## 動作確認状況
- ユニットテスト実施、ローカル動作確認時、sqlにfor updateが付与されることを確認

## 補足
- 相談、参考資料などがあれば
2023-12-27 10:23:54 +00:00
oura.a
4a73d5f8c4 Merged PR 665: マイグレーションファイル修正
## 概要
[Task3416: マイグレーションファイル修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3416)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-12-27 02:44:19 +00:00
masaaki
7652e5ef08 Merged PR 662: [OMDS様要望] タスク一覧画面の日時表示を変えたい(修正タスク)
## 概要
[Task3362: [OMDS様要望] タスク一覧画面の日時表示を変えたい(修正タスク)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3362)

- 以下の画面について、日時の表示形式をブラウザのロケールに合わせて変換し、時差を考慮した内容になるよう修正しました。
  - タスク一覧画面
  - 音声メタ情報ポップアップ
  - 注文履歴画面(日付のみ表示)
    - サーバからUTCでのYYYY/MM/DDの文字列として返却していたので、ISOStringとして返却して画面で表示内容を変換するよう処理を修正しました
- タスク一覧画面のFile Lengthについて、hh:mm:ss形式となるよう修正しました

## レビューポイント
- formatMillisecondsToHHMMSSについて、他で使うシーンがなかったのでdictation内の関数としたが、全体の関数とした方がよいか
- convertUtcToLocalについて不正な日付の文字列が渡された場合、変換せずに元の値を返却しているが、エラー対応として問題ないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3362?csf=1&web=1&e=Nc7kPV

## 動作確認状況
- ローカルで確認、サーバ側はnpm run test実施済

## 補足
- 相談、参考資料などがあれば
2023-12-27 02:24:39 +00:00
oura.a
9852004a36 Merged PR 636: ライセンス発行処理が遅い問題の解決およびトランザクションが効いてなければ効くよう修正する
## 概要
[Task3243: ライセンス発行処理が遅い問題の解決およびトランザクションが効いてなければ効くよう修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3243)

ライセンス発行処理が重複して実行できてしまう不具合を修正しました。
■修正内容
・ライセンス注文テーブルの情報を取得する際に、行ロックを取得するよう修正
・ライセンス注文テーブルに、「注文元アカウントID、POナンバー」の2カラムを対象とするインデックスを作成
・以前に外部キー制約をつけた際、自動で作成されていたインデックスを削除

■ロックについて
共有ロックと排他ロックがある
・共有ロック:共有ロック取得中でも、他のトランザクションが共有ロックを取得できる
       排他ロックは取得できない
・排他ロック:排他ロック取得中は、他のトランザクションは共有ロック・排他ロック共に取得できない
今回の修正では、デフォルト設定で共有ロックを取得していた箇所を、明示的に排他ロックを取得するようにした。

■行ロックについて
・インデックス行に対してロックをかけている
 →インデックスが作成されていない、検索条件にヒットしないなどでうまく動かない
  例)インデックスが作成されていないと、テーブル全体のロックとなってしまう
・上記の都合で検索条件が範囲指定のものにロックをかける際は注意が必要。(今回は一意指定なので問題なし)

■SQLiteを使ったユニットテストが`pessimistic_write`に対応していない件について
`process.env.NODE_ENV`の値を参照(テスト実行中は`test`、ビルドした環境で動かすと`undifind`)し、
テスト実行の場合`pessimistic_write`を付与しないようクエリを修正した。

## レビューポイント
インデックスについて懸念点があるか?

## UIの変更
なし

## 動作確認状況
ローカルで以下を確認
■発行処理について
・同じ注文に対し複数タブで発行処理を実行し、後発の処理が「ライセンス発行済みエラー」となることを確認
・同一アカウントからの異なるPOナンバーの注文を同時に発行し、行ロックによる待ちが発生せず並列に処理されることを確認
・別アカウントからの同一POナンバーの注文を同時に発行し、行ロックによる待ちが発生せず並列に処理されることを確認
■インデックスについて
同一アカウントからの異なるPOナンバーの注文を同時に発行
・インデックスを作成している状態で、行ロックによる待ちが発生せず並列に処理されることを確認
・インデックスを削除した状態で、行ロックによる待ちが発生することを確認
・migrate:up/downが正しく動作することを確認

## 補足
以前のアカウント削除PBIで一時的に設定した外部キー制約の作成時に、自動でインデックスも作成されていたようです。
必要ないインデックスはどこかで削除する必要があるかと思っています。
2023-12-27 02:01:24 +00:00
makabe.t
6f62a016d4 Merged PR 663: develop不具合対応
## 概要
[Task3404: develop不具合対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3404)

- ライセンス割り当て通知メールのTOにAdminが入るように修正しました。
- 不要なメソッド`createMailContentFromEmailConfirm`を削除しました。

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-26 07:24:10 +00:00
湯本 開
f2ef2228c3 Merged PR 661: APIバリデータの漏れを修正
## 概要
[Task3402: APIバリデータの漏れを修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3402)

- Optinal指定が必要なパラメータにOptionalが抜けていた箇所を修正
  - 以前はバリデータ自体が無かったので、IsOptionalが抜けていても偶然動いていた
- 他requestにも同様の漏れがないか `?:` で検索したが、この1件のみだと思われる

## レビューポイント
- 他に同様の記載はなさそうか
- `?:` による省略可能表記以外の記法で省略パラメータは定義されていない認識だが、合っているか

## 動作確認状況
- npm run testは通過
2023-12-25 07:34:49 +00:00
makabe.t
f6c3f69801 Merged PR 657: ユーザー認証完了通知の実装 [U-113]
## 概要
[Task3322: ユーザー認証完了通知の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3322)

- アカウント認証完了後のパスワード通知メール送信処理を追加しました。
- テストでSendGridのメソッドを`overrideSendgridService`で上書きしている箇所について、個別の送信メソッドは不要なので削除しました。

## レビューポイント
- `overrideSendgridService`の対応は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-25 05:59:10 +00:00
makabe.t
9f8ccc436f Merged PR 658: アカウント認証のお願い通知の実装 [U-102]
## 概要
[Task3321: アカウント認証のお願い通知の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3321)

- アカウント登録時の認証メールを送信する機能を追加しました。

## レビューポイント
- 既存のエラー処理はそのままにしていますが不自然な点はないでしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-12-25 05:38:28 +00:00
湯本 開
95c058265e Merged PR 655: 外部連携以外のAPIバリデータ見直し(/accounts/*以外)
## 概要
[Task3285: 外部連携以外のAPIバリデータ見直し](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3285)

- バリデータが不足していた部分について、バリデータを追加

## レビューポイント
- 現行の動きが変更されるようなバリデータが設定されていないか
- `AUTHORの時のみ省略不可能` 等のバリデータが設定されているプロパティに関しては、`hogehoge` や `"or ‘1’=’1’"` が設定されたリクエストが来てもバリデータで弾けないが許容可能そうか

## 動作確認状況
- npm run build / npm run test 成功
2023-12-25 05:22:01 +00:00
湯本 開
6deaa37df7 Merged PR 652: 外部連携以外のAPIバリデータ見直し(/accounts/*)
## 概要
[Task3285: 外部連携以外のAPIバリデータ見直し](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3285)

- accounts/* 配下のRequest型に不足しているバリデータを追加

## レビュー対象外
- 他features配下のRequest型のバリデータ
  - 1個のレビューで出すとレビュー負荷が高すぎそうであったため、レビューを分割します

## レビューポイント
- 追加したバリデーションが適切か(主な対応は以下)
  - 数値に型変換していなかったものに型変換を追加
  - IsInt()を追加
  - マイナス値がセットされるとDBリクエストでコケる類のものに制限を追加
  - 文字列はDBやAzure AD B2Cで受付不能な文字数を弾く

## 動作確認状況
- ビルドとテストが成功することは確認
2023-12-25 05:21:35 +00:00
makabe.t
fce3214650 Merged PR 659: ライセンスアラートのメール文言を最新に修正
## 概要
[Task3318: ライセンスアラートのメール文言が最新の仕様か確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3318)

- ライセンスアラート周りのメール文言を修正しました。
  - スペイン語は不要なので文言から削除しました。

## レビューポイント
- メッセージの修正内容は適切でしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-12-25 04:56:22 +00:00
maruyama.t
9d8c736d92 Merged PR 648: ライセンス自動割り当て処理実装(リトライ対応)
## 概要
[Task3296: ライセンス自動割り当て処理実装(リトライ対応)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3296)

- licenseAutoAllocationProcessingに任意引数で日付を追加。
 日付がある場合はその日付を実行日としてライセンス自動割り当てを行う。

## レビューポイント
- 未来日日付が指定された場合エラーにしなくてよいか?
(運用で使う想定はない)

## 動作確認状況
- ユニットテストで確認、devlopで確認
・引数なしで手動実行した場合に、実行日でライセンス自動割り当てが処理されること。
・引数ありで手動実行した場合に、引数の日付でライセンス自動割り当てが処理されること。
・(未来日で)引数ありで手動実行した場合に、引数の日付でライセンス自動割り当てが処理されること。
(あったらうれしいかもしれないのでリトライ処理の機能として可能な状態にしておいています。)

## 補足
- 実際にサポートの担当が行う作業は以下になります。
①AzureFunctionのlicenseAutoAllocationManualRetryにアクセスする。
![image (3).png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/648/attachments/image%20%283%29.png)
②左カラムの「コードとテスト」を押下し、「テストと実行」を押下する。
![image (4).png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/648/attachments/image%20%284%29.png)
③入力欄の、「クエリ」にdateと日付をハイフン区切りで入力して、「実行」を押下する。
![image (2).png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/648/attachments/image%20%282%29.png)
2023-12-25 04:33:12 +00:00
水本 祐希
1c18bf03b6 Merged PR 640: 壊れたライセンステストをDBテストで書き直す
## 概要
[Task3356: 壊れたライセンステストをDBテストで書き直す](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3356)

- 何をどう変更したか、追加したライブラリなど
ライセンスのモック使ったたUTをDBテストになるよう修正
- ライセンス注文が完了する
  - ライセンス注文が完了する
  - ユーザID取得できなかった場合、エラーとなる
  - 親ユーザID取得できなかった場合、エラーとなる
  - POナンバー重複時、エラーとなる

- カードライセンス発行が完了する
  - カードライセンス発行に失敗した場合、エラーになる

- カードライセンス取り込みが完了する
  - カードライセンス取り込みに失敗した場合、エラーになる(DBエラー)
  - カードライセンス取り込みに失敗した場合、エラーになる(ライセンスが存在しないエラー)
  - カードライセンス取り込みに失敗した場合、エラーになる(ライセンスが既に取り込まれているエラー)

※カードライセンス発行、カードライセンス取り込みが完了する、取込可能なライセンスのみが取得できる
以上の3点はすでにDBテストになっていたので、特に修正・追加していません。

## レビューポイント
特になし

## 動作確認状況
- ユニットテスト
2023-12-25 00:17:17 +00:00
makabe.t
f455cd6262 Merged PR 653: ユーザー情報変更完了通知 [U-115] の実装
## 概要
[Task3311: ユーザー情報変更完了通知 [U-115] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3311)

- ユーザー情報変更時のメール通知を実装しました。

## レビューポイント
- メールの送信先に不自然な点はないでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-22 08:39:11 +00:00
makabe.t
2f2e401ae5 Merged PR 647: ユーザー認証完了のお願い [U-114] の実装
## 概要
[Task3310: ユーザー認証完了のお願い [U-114] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3310)

- ユーザー追加後の認証メール送信について正規のメール文面を出すようにしました。

## レビューポイント
- メールに渡す情報の取得内容で不自然な点はないでしょうか?
- メール送信処理に失敗した場合には仮登録したユーザーを削除する処理をそのままにしていますが問題ないでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-22 08:23:01 +00:00
水本 祐希
f4da949bfd Merged PR 656: Revert 'タスク一覧のパフォーマンス調査'
## 概要
[Task3346: タスク一覧のパフォーマンス調査](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3346)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## 動作確認状況
- ローカルで確認

Reverts !651
2023-12-22 07:09:18 +00:00
水本 祐希
01dda79d72 Merged PR 651: タスク一覧のパフォーマンス調査
## 概要
[Task3346: タスク一覧のパフォーマンス調査](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3346)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## 動作確認状況
- ローカルで確認
2023-12-22 06:12:13 +00:00
makabe.t
3fc184b4af Merged PR 646: アカウント情報変更完了通知 [U-112] の実装
## 概要
[Task3308: アカウント情報変更完了通知 [U-112] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3308)

- アカウント情報変更時の通知メール送信機能を追加しました。

## レビューポイント
- メールに渡す情報の取得内容に不自然な点はないでしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-12-22 00:18:11 +00:00
saito.k
16f743c4c4 Merged PR 650: 最新の翻訳情報をWebアプリに適用する
## 概要
[Task3357: 最新の翻訳情報をWebアプリに適用する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3357)

- 最新の翻訳情報を反映

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 以下の翻訳情報はまだもらえていないので、残っている
```
タスク一覧
dictationPage.message.backupFailedError
dictationPage.message.cancelFailedError
dictationPage.label.fileBackup
dictationPage.label.downloadForBackup
dictationPage.label.applications

共通
common.label.headerSupport

ヘルプページ全般

ライセンス情報
LicenseSummaryPage.label.licenseLabel
LicenseSummaryPage.label.storageLabel
2023-12-21 08:52:45 +00:00
Kentaro Fukunaga
9baae2d2dc Merged PR 644: Dictation Workflow完了通知 [U-117] の実装
## 概要
[Task3313: Dictation Workflow完了通知 [U-117] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3313)

- 文字起こし完了時にメール送信する機能を実装しました。
- npm run formatで変更あった箇所も入っています。

## レビューポイント
- SendGridServiceのIFを「こうしたほうがいいかも」とかあれば。
- メール送信に必要な内容取得で効率的にできそうな部分ないか?

## UIの変更
- なし

## 動作確認状況
- ローカルでnpm run testが通ることを確認
- ローカルでメール送信されることを確認
2023-12-21 06:49:30 +00:00
makabe.t
a6f56d71ee Merged PR 645: アカウント情報消去完了通知 [U-111] の実装
## 概要
[Task3307: アカウント情報消去完了通知 [U-111] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3307)

-

## レビューポイント
- アカウント削除時の削除通知メール送信機能を追加しました。

## UIの変更
- メールに必要な情報を取得するために削除前に取得処理を入れていますが不自然な点はないでしょうか?

## 動作確認状況
- ローカルで確認
2023-12-20 08:50:16 +00:00
湯本 開
1bc6618a6d Merged PR 643: ライセンス引き戻し完了通知 [U-109] の実装
## 概要
[Task3306: ライセンス引き戻し完了通知 [U-109] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3306)

- ライセンス引き戻し完了のメール送信機能を追加しました。
- テストでメール送信しないようSendGridのメソッドを上書きする処理を追加しました。

## レビューポイント
- テンプレートの適用内容に不自然な点はないか
- アカウントのFromとToとCCに関わる部分で認識違いはないか
  - `orderedAccountId` という引数には注文したアカウント=下位階層のアカウントが入るという理解であっているか等

## UIの変更
- なし
## 動作確認状況
- npm run testは通過
2023-12-20 07:54:47 +00:00
maruyama.t
60bb8f9e20 Merged PR 649: Revert "手動実行できるように変更"
Revert "手動実行できるように変更"

Reverted commit `57fc7a17`.
2023-12-20 06:17:32 +00:00
maruyama.t
57fc7a17b5 手動実行できるように変更 2023-12-20 14:23:28 +09:00
oura.a
32a452bdb2 Merged PR 631: ライセンス自動割り当て処理実装(メイン処理)
## 概要
[Task3294: ライセンス自動割り当て処理実装(メイン処理)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3294)

ライセンス自動割り当て処理を実装しました。

ラフスケッチでは1回のクエリでアカウント・ユーザーを両方取得する設計でしたが、実装難度・可読性の面から、
アカウントとユーザーを別々に取得するよう変更しています。

## レビューポイント
処理内容に過不足がないか。
DBからのデータ取得時の条件に過不足がないか。

## UIの変更
なし

## 動作確認状況
ローカルでUT,動作確認済み

## 補足
なし
2023-12-20 01:24:31 +00:00
makabe.t
9e1bc8944f Merged PR 641: ライセンス割当完了通知 [U-108] の実装
## 概要
[Task3305: ライセンス割当完了通知 [U-108] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3305)

- ライセンス割り当ての完了通知メール送信機能を追加しました。
- テストでメール送信しないようSendGridのメソッドを上書きする処理を追加しました。

## レビューポイント
- テンプレートの適用内容に不自然な点はないでしょうか?
- テストでのメソッドの上書きは適切でしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-12-19 09:57:07 +00:00
masaaki
48ff009d39 Merged PR 630: ファイルプロパティをcloseするとたすく一覧が更新される
## 概要
[Task3333: ファイルプロパティをcloseするとたすく一覧が更新される](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3333)

- File Property画面にて「Close」ボタンを押下した際に画面がリロードされる問題について対応しました。
「Close」ボタン押下時に「href=""」としていたため、デフォルトのURL遷移(/dictations)が行われていたのを、
onClickによるポップアップ閉じる処理を呼び出す実装に変更しました。

## レビューポイント
- 特にありません

## UIの変更
- 変更なし

## 動作確認状況
- ローカルで確認済

## 補足
- 相談、参考資料などがあれば
2023-12-19 05:13:32 +00:00
makabe.t
b2fef69ea9 Merged PR 635: アカウント登録完了通知 [U-101] の実装
## 概要
[Task3301: アカウント登録完了通知 [U-101] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3301)

- アカウント登録完了(認証完了)後にメール送信をする機能を追加しました。
  - 合わせてテスト修正をしています。

## レビューポイント
- テンプレートの適用は適切でしょうか。
- テスト修正で対象Sendgridメソッドを上書きしていますが対応として不自然な点はないでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-19 02:00:35 +00:00
makabe.t
11aa73f190 Merged PR 639: ライセンス発行完了通知 [U-107] の実装
## 概要
[Task3304: ライセンス発行完了通知 [U-107] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3304)

- ライセンス発行完了時のメール送信機能を追加しました。

## レビューポイント
- テンプレートの内容は適切でしょうか?
- メールに渡す値の取得で不自然な点はないでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-19 01:25:57 +00:00
makabe.t
4d325d1751 Merged PR 638: ライセンス発行依頼受付通知 [U-105] の実装
## 概要
[Task3302: ライセンス発行依頼受付通知 [U-105] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3302)

- ライセンス注文時のメール通知処理を既存処理に追加しました。

## レビューポイント
- テンプレートの適用に問題はないでしょうか?
- メールに渡す値の取得処理は認識通りでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-19 01:16:50 +00:00
makabe.t
a676d65f0a Merged PR 633: HTMLテンプレートファイルの形式を決定
## 概要
[Task3320: HTMLテンプレートファイルの形式を決定](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3320)

- HTMLテンプレートの形式を見ていただくにあたって、ライセンス注文キャンセルでテンプレートからメールを生成する処理を実装しました。
  - ライセンス注文キャンセルメールのテンプレートを追加しています。
- メール送信時にTOとCCに複数人を設定できるように修正しました。

## レビューポイント
- テンプレート中で置き換える文字列を定数として定義していますが違和感はないでしょうか?
- テンプレートの文言置き換え処理ですべてのパターンに引っかかるように正規表現で検索していますが問題ないでしょうか?
- HTMLテンプレート、メール表示内容に違和感はないでしょうか?

## UIの変更
- [Task3320](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3320?csf=1&web=1&e=yU9aDH)

## 動作確認状況
- ローカルで確認
2023-12-18 04:54:53 +00:00
maruyama.t
afa05f381c Merged PR 628: 第5階層で規約同意画面を表示する際に、DPAに同意が一瞬表示される
## 概要
[Task3281: 【Commit諸作業終わったら優先対応】第5階層で規約同意画面を表示する際に、DPAに同意が一瞬表示される](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3281)

selectorから別途tierの値が入っているかをselectIsTierLoadingで取得し、まだ入っていない場合(tier===0)Loadingの表示を行うようにした。

```
export const selectIsTierLoading = (state: RootState) =>
  state.terms.domain.tier === 0;
```

## レビューポイント
- とくになし

## UIの変更
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3281?csf=1&web=1&e=D9t5di

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-12-18 04:07:03 +00:00
saito.k
9380d9bfc6 Merged PR 629: STGのパイプラインに環境変数を追加する
## 概要
[Task3326: STG、PRODのパイプラインに環境変数を追加する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3326)

- StagingのPipelineに環境変数を追加

## レビューポイント

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況

## 補足
- 相談、参考資料などがあれば
2023-12-18 00:58:50 +00:00
湯本 開
1c39555bfc Merged PR 632: ライセンスオーダーのキャンセル受付通知 [U-106] の実装
## 概要
[Task3303: ライセンスオーダーのキャンセル受付通知 [U-106] の実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3303)

- オーダーキャンセルが完了時にメールを送信する処理を追加
- SendGridServiceにテンプレートメールを送信するメソッドを追加
- Adb2cUserからメールアドレスを取得する方法が分散して実装してあったので、取り出す用のメソッドを定義してそれを使用するよう修正

## レビュー対象外
- 実際のメール送信処理部分は未実装なので対象外

## レビューポイント
- SendGridServiceに`sendTtemplateMailWithU{番号}`というメソッドを用意してメール送信を行う形式で問題ないか
  - from/toやCC等もメールの種別毎に異なるので、SendGridService側に具体的にどんなメールを送るかの責任を持たせる方針でいいか
- `sendMailWithU106` の引数に不足や認識間違いはないか
  - キャンセルを行った本人へのメールだけで本当によいか?(他の管理者には知らせないでいいか)等
  - to/cc等も考慮してチェックお願いします

- **特にMISOチーム向け** 依存関係の追加で壊れたテストを削除したが、別途DBテストを追加しないで問題なさそうか?
  - 問題ありそうでれば、別途テスト実装タスクを作る想定

## 動作確認状況
- npm run testが通るところまで確認
2023-12-15 05:56:09 +00:00
makabe.t
ad715285c6 Merged PR 613: 外部連携APIのバリデータ見直し
## 概要
[Task3279: files配下APIの対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3279)

- 外部連携API(以下のAPIが対象)のバリデータを修正しました。
  - ~~音声ファイルアップロード要求API~~
    - ~~GET /files/audio/upload-location~~
  - 音声ファイルアップロード完了API(タスク追加API)
    - POST /files/audio/upload-finished
  - タスクチェックアウトAPI
    - POST /tasks/{audioFileId}/checkout
  - タスクペンディングAPI
    - POST /tasks/{audioFileId}/suspend
  - タスクキャンセルAPI
    - POST /tasks/{audioFileId}/cancel
  - タスクチェックインAPI
    - POST /tasks/{audioFileId}/checkin
  - 音声ファイルダウンロード先取得API
    - GET /files/audio/download-location
  - テンプレートファイルダウンロード先要求API
    - GET /files/template/download-location
  - 次ファイル情報取得要求API
    - GET /tasks/next
  - 認証情報作成API
    - POST /auth/token
  - 通知登録API
    - POST /notification/register

## レビューポイント
- 対象APIに漏れはないでしょうか。
- バリデータの制約は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-13 08:27:00 +00:00
makabe.t
63892bad83 Merged PR 620: テンプレートファイルダウンロードをTypistのみが実行可能にする
## 概要
[Task3291: テンプレートファイルダウンロードをTypistのみが実行可能にする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3291)

- テンプレートファイルダウンロード先要求APIを実行できるユーザーをTypistのみに修正しました。
  - Authorが実行できないようにしました。

## レビューポイント
- ガードでTypistのみにしたので内部のロールでの分岐処理を削除しましたが問題ないでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-13 08:08:58 +00:00
saito.k
0f35789b91 IPアドレスログ出力に伴う変更の漏れ対応 2023-12-13 12:56:55 +09:00
水本 祐希
5b97b61966 Merged PR 619: API修正(License Inventoryの計算変更)
## 概要
[Task3270: API修正(License Inventoryの計算変更)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3270)

- 何をどう変更したか、追加したライブラリなど
License Inventoryの計算方法を変更
→割り当て済みライセンスは件数に含まれないようにする(未使用と再利用可能ライセンスのみ)

## レビューポイント
特になし

## 動作確認状況
- ローカルで確認、ユニットテスト

## 補足
LicenseSummaryのユニットテストが旧式であったため、新しい方式でテストを追加しました。
2023-12-13 02:04:16 +00:00
saito.k
45b2cad30c Merged PR 624: クエリログに追跡用IDと実行日時を追加する(各作業まとめブランチ)
## 概要
[Task3309: 修正をまとめる用のブランチ](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3309)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-12-13 01:07:36 +00:00
makabe.t
b8b3416795 Merged PR 625: セレクトのクエリに追跡用のIDと実行日時の情報を追加する
## 概要
[Task3288: セレクトのクエリに追跡用のIDと実行日時の情報を追加する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3288)

- リポジトリ内でのDB操作でSelect文となる部分にコメント(追跡ID_日時)を追加しました。
  - `find`, `fineOne`, `count`を対象にしています。
- コメントを追加するにあたってContextをリポジトリメソッドの引数に追加しています。

## レビューポイント
- 対応箇所の漏れはないでしょうか?
- コメントのつけ方は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-13 00:00:15 +00:00
maruyama.t
934ee7f44d Merged PR 626: Revert 'deleteでコメントを追加できるようにする'
## 概要
[Task3289: deleteでコメントを追加できるようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3289)

delete処理にSQLコメントを挿入する形にリファクタ
レビューポイント
repository/* に存在するdelete文は全て置き換えたはずだが、漏れはなさそうか

Reverts !622
2023-12-12 09:45:30 +00:00
maruyama.t
6c6970c70a Merged PR 622: deleteでコメントを追加できるようにする
## 概要
[Task3289: deleteでコメントを追加できるようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3289)

delete処理にSQLコメントを挿入する形にリファクタ
レビューポイント
repository/* に存在するdelete文は全て置き換えたはずだが、漏れはなさそうか
2023-12-12 09:28:40 +00:00
saito.k
5ef222134e IPアドレス追加に伴う修正漏れ対応 2023-12-12 15:46:37 +09:00
makabe.t
bce9866ba3 Merged PR 612: /files/template/download-locationの対応
## 概要
[Task3278: /files/template/download-locationの対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3278)

- クエリパラメータが不正な場合にバリデータで処理されるようにしました。

## レビューポイント
- 適用したバリデータは適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-12 05:56:05 +00:00
saito.k
f1583cf783 Merged PR 611: 操作を特定できる文字列を追跡用のIDに追加する(IPアドレスもログに出力する)
## 概要
[Task3265: IPアドレスを追跡用のIDに追加する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3265)

- MiddlewareでUUIDを発行しリクエストのヘッダに追加する
- 各コントローラーではヘッダからUUIDとIPアドレスを取得する
  - 取得したUUIDとADB2Cの外部IDでトラッキングIDを作成する
  - 作成したトラッキングIDとIPアドレスの繋がりをログに出力する。

## レビューポイント
- ADB2Cの外部IDがない場合にUnauthorized Userという文字列を入れているがほかの表現のほうが良いか
  - 外部IDもオプショナルにして入れなくてもよくする?
-

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-12-12 04:11:36 +00:00
水本 祐希
8fe649cb7f Merged PR 618: 画面修正(第5のライセンス一覧の項目順を変更)
## 概要
[Task3271: 画面修正(第5のライセンス一覧の項目順を変更)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3271)

- 何をどう変更したか、追加したライブラリなど
  - 項目の配置を変更
    - License Inventory→Number of unused licenses→Number of licenses available for reuse→Number of licenses allocatedの順で修正
    - Total number of licenses on orderをlicense情報の一番下に配置
  - 不要な項目を削除
    - Total number of orderを削除
  - レイアウトを最新のものに適用

- このPull Requestでの対象/対象外
項目名の変更はOMDS様が翻訳したものを適用すればよいので、対象外

## レビューポイント
特になし

## UIの変更
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3271?csf=1&web=1&e=ac0SrH

## 動作確認状況
- ローカルで確認
2023-12-12 02:08:18 +00:00
湯本 開
375e8e87a8 Merged PR 621: STG/PRODでSourceMap出力をOFFにしておく
## 概要
[Task3165: STG/PRODでSourceMap出力をOFFにしておく](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3165)

- STG/PRODでsourcemap(ビルド後の圧縮・結合されたjsからデバッグ用の実行行やコメントを復元するための存在)を出力しないように修正
  - コメント等がユーザーに見えないようにする目的

## レビューポイント
- 情報共有

## 動作確認状況
- ローカルで確認
2023-12-11 06:35:59 +00:00
maruyama.t
f7ec740e7a Merged PR 615: PrivacyNoticeの多言語対応の文言修正
## 概要
[Task3292: PrivacyNoticeの多言語対応の文言修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3292)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-12-08 05:59:30 +00:00
湯本 開
b1f169def5 Merged PR 594: [TODO対処] メールの内容について編集しやすくする
## 概要
[Task2163: [TODO対処] メールの内容について編集しやすくする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2163)

- メール文面をハードコードしない構造を試作

## レビューポイント
- メールテンプレートの定義場所、定義形式、読み込み方法などは問題なさそうか

## 動作確認状況
- ローカルで確認
2023-12-08 05:06:02 +00:00
makabe.t
a0da277c05 Merged PR 607: メールアドレス入力チェックの修正
## 概要
[Task3232: メールアドレス入力チェックの修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3232)

- メールアドレス入力に対して規約に則ったチェックを実施するように修正しました。
  - 画面での入力チェックとAPIのバリデーションを修正しています。

## レビューポイント
- クライアントのチェック内容は規約に則った内容になっているでしょうか?
  - 正規表現の構文として不自然な点はないでしょうか?
- サーバー側のチェックをIsEmail+禁止文字の追加という形で対応していますが適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-12-08 02:14:25 +00:00
maruyama.t
b900d4d281 Merge branch 'develop' into main 2023-12-07 15:11:38 +09:00
masaaki
342baa9826 Merged PR 610: AzureFucntionのpipelineが参照しているDockerFileを修正する
## 概要
[Task3274: AzureFucntionのpipelineが参照しているDockerFileを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3274)

- staging用のpipelineに対して、functionのビルド時に参照するdockerFileをappserviceと同様の階層にあるものに修正しました

## レビューポイント
- 特にありません

## UIの変更
- 無し

## 動作確認状況
- 未確認。stagingのpipeline動作時に確認します。

## 補足
- 相談、参考資料などがあれば
2023-12-07 06:09:48 +00:00
maruyama.t
20157341f6 Merge branch 'develop' into main 2023-12-07 11:35:01 +09:00
saito.k
3ad0d87814 確認用のログを削除 2023-12-06 20:10:00 +09:00
saito.k
9f8e20230b 小文字に修正 2023-12-06 19:43:25 +09:00
saito.k
2d0697f56b リクエストのIPをログに出力して確認する 2023-12-06 19:06:26 +09:00
saito.k
d92cb1d28b クエリログに追跡用のIDをコメントとして追加 2023-12-06 17:15:32 +09:00
水本 祐希
c246586498 Merged PR 602: ライセンス確認画面(第五階層)に会社名を表示する(client側)
## 概要
[Task3225: ライセンス確認画面(第五階層)に会社名を表示する(client側)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3225)

- 何をどう変更したか、追加したライブラリなど
ライセンス確認画面(第5階層)の会社名取得APIを呼び出す実装を追加。
- このPull Requestでの対象/対象外
server側の実装は別ブランチで行うためここでは対象外

## レビューポイント
特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認(完了)
2023-12-06 02:10:01 +00:00
oura.a
4399a61f2b Merged PR 600: [ライセンスアラート改善]リトライ対応
## 概要
[Task3025: [ライセンスアラート改善]リトライ対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3025)

ライセンスアラート処理にリトライ処理を追加しました。
メールの多重送信を防ぐために、送信成功したメールについてはredisに保存し、送信時にキャッシュをチェックする処理を入れました。

## レビューポイント
処理の流れが妥当か。
redisに保存するキー、値は適切か。
if文のネストが相当深くなってしまったが、改善できるポイントはあるか。

## UIの変更
なし

## 動作確認状況
ローカルで動作確認済み。(テスト用コードで無理やりエラーを発生させての確認)

## 補足
なし
2023-12-06 00:46:53 +00:00
maruyama.t
94f34a0fde Merged PR 606: 画面修正(Terms画面)
## 概要
[Task3210: 画面修正(Terms画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3210)
[Task3211:API修正(バージョン取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2023-1?workitem=3211)
[Task3212:API修正(バージョン更新API))](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2023-1?workitem=3212)

- このPull Requestでの対象/対象外
Click here to read the terms of use.の文言は多言語対応の対象のため、現在一律同じ文言がでます。
第一~第四階層は
上からEULA,PrivacyNotice,DPAが表示されています
第五階層は、
上から、PrivacyNotice,DPAが表示されています
- 影響範囲(他の機能にも影響があるか)
ユーザアーカイブテーブルにPrivacyNoticeのバージョンを追加

## レビューポイント
同意済みプライバシーポリシーはユーザーアーカイブの対象だと認識しているが正しいか。
termsテーブルのdocument_typeの値をPrivacyNoticeにしているが、PRIVACY_NOTICEにしたほうがよいか。
ユニットテストに不足はないか。

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/sites/Piranha/Shared%20Documents/Forms/AllItems.aspx?csf=1&web=1&e=hzPw9b&cid=7737ed1b%2D0eb4%2D4331%2Da238%2D14dd35b27e18&FolderCTID=0x012000C0DCEE65AC2177479C3C761CD137C9C9&id=%2Fsites%2FPiranha%2FShared%20Documents%2FGeneral%2FOMDS%2F%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%2FTask3210&viewid=786a81cf%2Dd15f%2D4dc2%2D9e55%2Dc7a729fbc72f
## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-12-05 09:10:49 +00:00
makabe.t
62a5155ee1 Merged PR 608: develop動作確認不具合対応
## 概要
[Task3238: develop動作確認不具合対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3238)

- タスク一覧画面にあるアプリケーションインストールボタンのラベルを翻訳対応しました。

## レビューポイント
- 共有

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-12-05 08:10:58 +00:00
水本 祐希
302f302473 Merged PR 597: ライセンス確認画面(第五階層)に会社名を表示する
## 概要
[Task2762: ライセンス確認画面(第五階層)に会社名を表示する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2762)

- 何をどう変更したか、追加したライブラリなど
ライセンス確認画面(第5階層)の会社名を取得するAPIを実装
- このPull Requestでの対象/対象外
画面側の実装は別ブランチで対応するためここでは対象外

## レビューポイント
特になし

## 動作確認状況
- ポストマン、ユニットテスト
2023-12-05 07:39:13 +00:00
masaaki
f82f202b63 Merged PR 603: [ライセンスアラート]FunctionAPPのprod環境適用(pipeline含む)
## 概要
[Task2870: [ライセンスアラート]FunctionAPPのprod環境適用(pipeline含む)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2870)

- 本番環境用のpipelineに対して、関数アプリのイメージをデプロイするjobを追加しました

## レビューポイント
- 特になし

## UIの変更
- 無し

## 動作確認状況
- 未実施。本件マージ後にpipeline動作させる予定

## 補足
- デプロイに関する記載についてはstaging環境のpipelineで動作実績があります(job:function_deploy)
2023-12-05 06:12:20 +00:00
maruyama.t
ebfc05040b Merged PR 604: 画面実装(ファイル情報ポップアップ画面実装)
## 概要
[Task3195: 画面実装(ファイル情報ポップアップ画面実装)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3195)

- 影響範囲(他の機能にも影響があるか)
画面実装のみのため、なし

## レビューポイント
- 表示される値はDictationタブの表示のされ方と同じだが問題ないか
(拡張子やサイズなど)
## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/sites/Piranha/Shared%20Documents/Forms/AllItems.aspx?csf=1&web=1&e=hzPw9b&cid=f9d17150%2D1d33%2D49da%2D8bd4%2Df5a27cbbed66&FolderCTID=0x012000C0DCEE65AC2177479C3C761CD137C9C9&id=%2Fsites%2FPiranha%2FShared%20Documents%2FGeneral%2FOMDS%2F%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%2FTask3195&viewid=786a81cf%2Dd15f%2D4dc2%2D9e55%2Dc7a729fbc72f

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-12-05 05:04:25 +00:00
maruyama.t
40da605780 Merged PR 605: DBマイグレーション(PrivacyNotice)
## 概要
[Task3213: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3213)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)
とくになし

## レビューポイント
- とくになし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-12-05 04:22:58 +00:00
masaaki
cca9cf6e5e Merged PR 601: ヘルプページ画面実装
## 概要
[Task3204: ヘッダ修正対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3204)

- ヘルプページを追加して、ヘッダのタブに表示されるようにしました。
  - ヘッダのタブはロールの制限なく見えるようにしています。
  - ヘルプページからさらに個別のヘルプへのリンクは仮のURLにしています。
    - 動作としては別タブで開くようにしています。

## レビューポイント
- パスをタブ名に合わせて`/support`としましたが不自然な点はないでしょうか?
- 仮のURLがxxxとなっているため、別タブで開かれたページがNot Foundとなってしまっていますが問題ないでしょうか?

## UIの変更
- [Task3204](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3204?csf=1&web=1&e=N9yn0D)

## 動作確認状況
- ローカルで確認
2023-12-05 02:40:09 +00:00
makabe.t
6db8b4cbd7 Merged PR 599: ライセンスアラート関連:DockerfileFunctionDictation.dockerfileを参照するようファイルとpipelineを修正する
## 概要
[Task3083: ライセンスアラート関連:DockerfileFunctionDictation.dockerfileを参照するようファイルとpipelineを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3083)

- Azure Functionsのイメージを`DockerfileFunctionDictation.dockerfile`で定義するように修正しました。
  - マルチステージビルドの形式で必要なファイルだけ取り込んだイメージとなるようにしています。
  - 既定のパス`/home/site/wwwroot`をワークディレクトリとしています。

## レビューポイント
- 生成物イメージに入れるファイルに過不足はないでしょうか?
- 環境変数でのパス指定ができないため、既定のパスで動作するようにしていますが不自然な点はないでしょうか?

## UIの変更
- なし

## 動作確認状況
- develop環境でデプロイして確認
2023-12-04 08:18:18 +00:00
iwata
52e4722a3f Merge branch 'develop' 2023-12-01 17:12:50 +09:00
masaaki
3dd3aeb274 Merged PR 598: ライセンスアラート関連pipelineの最適化
## 概要
[Task2992: ライセンスアラート関連pipelineの最適化](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2992)

- staging用のpipelineに対してAzureFunction用のjobを追加しました。
  - build用のjobとdeploy用のjobの二つです
- このPull Requestでの対象/対象外
  - 本番環境用のpipelineについては、Azureリソース作成後に実施する必要があるため、
    「タスク 2870: [ライセンスアラート]FunctionAPPのprod環境適用(pipeline含む)」にて実施します。

## レビューポイント
- Appserviceのビルド(backend_build)と比較して、名前の重複やpush先の競合はないか
- jobの追加箇所は適切か

## UIの変更
- 特になし

## 動作確認状況
- 未実施
  マージ後、宣言したのち動作確認を行う予定です。

## 補足
- Functionのdeployで使用したtaskは以下になります。
https://learn.microsoft.com/ja-jp/azure/devops/pipelines/tasks/reference/azure-function-app-container-v1?view=azure-pipelines
2023-12-01 08:04:31 +00:00
maruyama.t
c4fecb9a0c Merge branch 'develop' into main 2023-12-01 11:42:41 +09:00
masaaki
fee99a0974 Merged PR 583: [ライセンスアラート改善]AzureAdB2Cアクセスの効率化
## 概要
[Task3023: [ライセンスアラート改善]AzureAdB2Cアクセスの効率化](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3023)

ADB2Cからユーザーを取得する際に、Redisによるキャッシュ保存・キャッシュからの取得を行う処理を実装しました。

## レビューポイント
処理の妥当性などを全体的にお願いします。

## UIの変更
なし

## 動作確認状況
ローカルで動作確認済み

## 補足
なし
2023-12-01 01:39:18 +00:00
水本 祐希
15fa10e265 Merged PR 595: 各service.tsのoutログ追加
## 概要
[Task3162: licenses.service.tsのoutログ追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3162)

- 何をどう変更したか、追加したライブラリなど
・licenses.service.tsのolicenseOrdersとissueCardLicenseKeysの[OUT]ログを追加
・横展開として他のservice.tsでOUT、INログが不足している場合は追加する

## 動作確認状況
- ユニットテスト
2023-11-30 04:17:16 +00:00
iwata
ef376d3027 AzireFunctionのpipeline用に作ったが名前が分かりづらいので削除 2023-11-30 09:47:48 +09:00
masaaki
9cbb07efa3 Update azure-pipelines.yml for Azure Pipelines 2023-11-30 00:29:36 +00:00
masaaki
837d6af4cd Set up CI with Azure Pipelines
[skip ci]
2023-11-30 00:21:12 +00:00
saito.k
a0ab885526 Azureリソースの構成変更のためテンプレートを更新 2023-11-29 20:04:19 +09:00
saito.k
cbb412218e Azureリソース作成したためテンプレートを更新 2023-11-29 19:28:46 +09:00
水本 祐希
cc36b806c5 Merged PR 596: 第一階層のshortage(-)が赤字となる
## 概要
[Task3169: 第一階層のshortage(-)が赤字となる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3169)

- 何をどう変更したか、追加したライブラリなど
 第一階層のshotage"-"が赤文字にならないよう修正

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-29 06:06:04 +00:00
水本 祐希
c3750e3c1c Merged PR 591: 修正対応
## 概要
[Task3158: 修正対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3158)

- 何をどう変更したか、追加したライブラリなど
shotageの値が1以上の場合、赤文字になる

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3158?csf=1&web=1&e=3qaLfD

## 動作確認状況
- ローカルで確認
2023-11-28 06:35:56 +00:00
makabe.t
8b04adf095 Merged PR 587: 画面実装(ダウンロード処理)
## 概要
[Task3122: 画面実装(ダウンロード処理)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3122)

- ファイルバックアップポップアップからのダウンロード実行処理を実装しました。
  - ファイルURL取得をAdminが適切に実施できるように権限を修正しました。
  - SASトークンの開始時刻を修正しました。
  - ダウンロード処理を実行できるようにするためにblobストレージのCORS設定を修正しました。
- faviconとタイトルを正式なものに差し替えました。

## レビューポイント
- faviconはアセットフォルダに一緒に入れてしまっていますが配置場所として問題ないでしょうか?
- `Operation`内でループで一件ずつダウンロード・バックアップ処理を実行していますが認識あっていますでしょうか?
- SASトークンの生成時の開始時刻10秒前にしていますが問題ないでしょうか?
    - SASトークン付きURLの発行直後にURLでダウンロード実行するとSASトークンエラーとなることがありましたので、その対応です。
      - 発行直後に使うはずなのでSASトークンの開始を10秒前にしても影響はないはずと考えています。
      - ほかの対応としてトークン取得後に数秒待つことも考えましたが、動作全体が遅くなってしまうのとSASトークンの作りの問題だとがんが得ているのでこのような対応をしています。

## UIの変更
- [Task3122](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3122?csf=1&web=1&e=2JPi0J)

## 動作確認状況
- ローカルで確認
2023-11-28 06:21:23 +00:00
maruyama.t
aab5bf2af6 Merged PR 592: [システムテスト入ってから対応でOK] ライセンス発行時の有効期限の計算を変更する
## 概要
[Task2490: [システムテスト入ってから対応でOK] ライセンス発行時の有効期限の計算を変更する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2490)
ライセンスの有効期限にタイムゾーンを加味した時刻8時間を追加した
- 影響範囲(他の機能にも影響があるか)
既存のユニットテスト

## レビューポイント
ライセンスの有効期限がセットされるシチュエーションに対する修正の漏れがないか。

## UIの変更
なし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-28 04:01:09 +00:00
maruyama.t
1c2cdc0fb2 Merge branch 'develop' into main 2023-11-24 18:05:04 +09:00
masaaki
501fc5a15d Merged PR 588: 画面実装(タスク一覧画面:タスクキャンセル操作追加)
## 概要
[Task3131: 画面実装(タスク一覧画面:タスクキャンセル操作追加)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3131)

- タスク 3131: 画面実装(タスク一覧画面:タスクキャンセル操作追加)
- タスク一覧に対してCancel Dictationボタンを実装しました

## レビューポイント
- タスク関連のほかの処理で実施しているものについて、キャンセルで実施必要か確認いただきたいです。
  - キャンセル後のデスクトップアプリ起動
    - 不要の認識
  - キャンセル前のソート条件保存
    - ステータスが変わるため、必要な認識
- ログイン名を取得するためにloginのselectorを使用していますが問題ないか確認いただきたいです
(他フィーチャと余計な関連を作るのはあまりよくないと思いつつ、同じような取得処理を作るのも嫌だと思いつつ。。)

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3131?csf=1&web=1&e=EdWfPJ

## 動作確認状況
- ローカルで確認実施

## 補足
- 相談、参考資料などがあれば
2023-11-22 01:13:03 +00:00
湯本 開
f38733f9b2 Merged PR 589: ライセンスチェック処理をlicensesまたはusers配下に移動して共通部品化する
## 概要
[Task3084: ライセンスチェック処理をlicensesまたはusers配下に移動して共通部品化する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3084)

- "チェック"する関数でなく、ライセンスの割当状態を取得する関数に変更
- 利用側では、割当状態を元にして必要なら例外をthrowする実装に変更
- 関数の機能を `LicensesRepository` が提供する形に変更

## レビューポイント
- 関数のシグネチャは問題なさそうか

## 動作確認状況
- テストは通過
2023-11-21 10:48:57 +00:00
makabe.t
68aaa0e548 Merged PR 586: バックアップAPI実装
## 概要
[Task3121: バックアップAPI実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3121)

- タスクのバックアップAPIとテストを実装しました。
  - 実装に当たり、タスクエンティティ定義の型を修正しています。

## レビューポイント
- テストケースに過不足はないでしょうか?
- エンティティの値を取得した際に`is_job_number_enabled`が数値となってしまうのでtypeをBooleanに変更しましたが問題ないでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-20 08:57:56 +00:00
makabe.t
99ac6be9fd Merged PR 585: 画面実装(ポップアップ表示)
## 概要
[Task3120: 画面実装(ポップアップ表示)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3120)

- ディクテーション画面から開くバックアップポップアップを実装しました。
  - ポップアップを開いて、対象タスクが表示されるところまでの実装です。
  - バックアップボタンの挙動は対象外です。

## レビューポイント
- チェックボックスの挙動は適切でしょうか?
  - SharePointの挙動を参考にしています。
- デザインの適用で不自然な点はないでしょうか?

## UIの変更
- [Task3120](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3120?csf=1&web=1&e=KxCeU4)

## 動作確認状況
- ローカルで確認
2023-11-20 07:52:43 +00:00
saito.k
87dd0f6d6b Merged PR 582: ユーザー一覧取得が異常に遅い問題を調査する
## 概要
[Task2996: ユーザー一覧取得が異常に遅い問題を調査する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2996)

- ユーザー一覧取得に関連するテーブルにインデックスを追加
  - 3秒→18ミリ秒

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- develop環境に適用して確認

## 補足
- インデックス追加後のログ
  - UsersServiceのIN・OUTまで
```
2023-11-20T05:52:04.027057549Z [Nest] 1  - 11/20/2023, 5:52:04 AM     LOG [UsersService] [IN] [c7e9f495-caa2-43d8-9e6e-3bb6dc192646] getUsers
2023-11-20T05:52:04.058189825Z [Nest] 1  - 11/20/2023, 5:52:04 AM     LOG [AdB2cService] [IN] [c7e9f495-caa2-43d8-9e6e-3bb6dc192646] getUsers | params: { externalIds:[c7e9f495-caa2-43d8-9e6e-3bb6dc192646,34938cf0-6a8d-41a7-89a1-d7025172ab66,91807c29-5a77-4bc2-b85b-529839cc131d,a3e8167b-8967-4e19-9ad6-8ded12d8ea1c] };
2023-11-20T05:52:04.058698126Z [Nest] 1  - 11/20/2023, 5:52:04 AM     LOG [RedisService] [IN] [c7e9f495-caa2-43d8-9e6e-3bb6dc192646] mget;
2023-11-20T05:52:04.067994949Z [Nest] 1  - 11/20/2023, 5:52:04 AM     LOG [RedisService] [OUT] [c7e9f495-caa2-43d8-9e6e-3bb6dc192646] mget
2023-11-20T05:52:04.068313050Z [Nest] 1  - 11/20/2023, 5:52:04 AM     LOG [AdB2cService] [c7e9f495-caa2-43d8-9e6e-3bb6dc192646] [CACHE HIT] ids: c7e9f495-caa2-43d8-9e6e-3bb6dc192646,34938cf0-6a8d-41a7-89a1-d7025172ab66,91807c29-5a77-4bc2-b85b-529839cc131d,a3e8167b-8967-4e19-9ad6-8ded12d8ea1c
2023-11-20T05:52:04.068993451Z [Nest] 1  - 11/20/2023, 5:52:04 AM     LOG [AdB2cService] [OUT] [c7e9f495-caa2-43d8-9e6e-3bb6dc192646] getUsers
2023-11-20T05:52:04.069013351Z [Nest] 1  - 11/20/2023, 5:52:04 AM     LOG [UsersService] [OUT] [c7e9f495-caa2-43d8-9e6e-3bb6dc192646] getUsers
```
2023-11-20 06:32:20 +00:00
水本 祐希
446b9365f2 Merged PR 584: エラーログが意図した通りに出ていないところがありそうな問題を解消する
## 概要
[Task2934: エラーログが意図した通りに出ていないところがありそうな問題を解消する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2934)

- 何をどう変更したか、追加したライブラリなど
error=Errorのログ表示をerror=××Error(エラーの原因)となるように実装

## レビューポイント
- 特にレビューしてほしい箇所
特になし

## 動作確認状況
- ユニットテスト

## 相談(必須レビュアーの方に)
今回の実装のみではまだ解消できていない箇所がいくつかみられました。
以下にその解消できなかったログをいくつかピックアップします。

ERROR [TasksService] error=Error: There is no AuthorId for the API executor.
ERROR [FilesService] error=Error: blob failed
ERROR [FilesService] error=Error: container not found.
ERROR [UsersService] error=Error: ADB2C error
ERROR [UsersService] error=Error: user not found
ERROR [UsersService] error=Error: sort criteria not found
ERROR [UsersService] error=Error: sort criteria not found
ERROR [UsersService] error=Error: The value stored in the DB is invalid.

原因としては、throw new ××Errorではなく、throw new Errorで実装されていました。
interface Error {
    name: string;
    message: string;
    stack?: string;
}

interface ErrorConstructor {
    new(message?: string): Error;
    (message?: string): Error;
    readonly prototype: Error;
}
上記の実装により返却されるメッセージがErrorになっているため解消されていないと考えています。

以上の事象について対応するかしないかということと、対応する場合は、どのように対応していくかをご意見いただきたいです。
本タスクで対応というよりも別タスクとして対応とMISOは想定しています。
2023-11-20 00:49:00 +00:00
maruyama.t
912ea52351 Merge branch 'develop' into main 2023-11-17 16:22:01 +09:00
水本 祐希
d7bb56af54 Merged PR 580: [Sp20]既存APIのログを強化(外部連携API以外)
## 概要
[Task2295: [Sp20]既存APIのログを強化(外部連携API以外)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2295)

- 何をどう変更したか、追加したライブラリなど
誰が操作したのかを追えるようにログを強化

## レビューポイント
- 特にレビューしてほしい箇所
特になし

## 動作確認状況
- ユニットテスト
2023-11-17 02:54:18 +00:00
saito.k
50e3684423 調査用のコードを削除 2023-11-16 17:32:51 +09:00
saito.k
da131e82e6 devのクエリ実行速度を調査するためのログを追加 2023-11-16 17:00:13 +09:00
makabe.t
b3660fbb69 Merged PR 581: 対応する
## 概要
[Task3115: 対応する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3115)

- 利用規約同意後のログイン遷移に失敗する問題に対応しました。
  - 原因は利用規約未同意でログインに失敗した場合もIDトークンの保存をしていたことでした。
そのため、同意後に同一のIDトークンでログインしようとすると保存済みとして失敗していました。 
  - 対応として、IDトークンの保存は利用規約同意が最新化チェックした後に実行するようにしました。

## レビューポイント
- キャッシュへの保存処理を利用規約同意のチェック後に移動しましたが何か不都合などないでしょうか?

## UIの変更
なし
## 動作確認状況
- ローカルで確認
2023-11-16 06:50:42 +00:00
makabe.t
64fe6bcbe7 Merged PR 577: 文字起こしするタスクを複数持てないようにする
## 概要
[Task2223: 文字起こしするタスクを複数持てないようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2223)

- タスクをチェックアウト済みの場合は他のタスクをチェックアウトできないように修正しました。

## レビューポイント
- テストケース追加は適切でしょうか?
- エラーとなった場合のエラーケースを`E010601`として返していますが処理として適切でしょうか?
  - タスクを変更できる状態でないということでこれを採用しています。

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-11-16 01:40:02 +00:00
saito.k
ad49a19f04 Merged PR 484: NotificationHubsの通知フォーマット
## 概要
[Task2820: NotificationHubsの通知フォーマット](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2820)

- NotificationHubsで通知を行う処理を修正
  - 通知内容を変更
    - デスクトップ側でレンダリングを行うため、こちらからは必要なデータを送信する

- 通知処理を読んでいる箇所を修正
  - タスクキャンセル
  - チェックアウト候補変更
  - 音声ファイルアップロード完了(タスク作成)

## レビューポイント
- taskService内で通知をする箇所が複数あったのでプライベートメソッドとして切り出したが、fileServiceの通知処理もまとめたほうが良いか。
  - まとめる場合は、どこに切り出すか。
    - sendNotify(今回作成したプライベートメソッド)に、TasksRepositoryServiceやUserGroupsRepositoryServiceを引数に追加して共通関数としてCommonのどこかに配置する?
  - notificationhub.service.tsのnotifyメソッドの中で通知内容のための情報取得~通知内容作成まで全部行うようにする?

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-15 02:33:03 +00:00
maruyama.t
36401d0542 Merged PR 579: pipeline不具合対応
## 概要
[Task3086: pipeline不具合対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3086)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-11-14 13:27:28 +00:00
maruyama.t
eb3c7e55bd Merged PR 573: 音声ファイルアップロードAPI修正
## 概要
[Task3069: 音声ファイルアップロードAPI修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3069)
[Task3070: 音声ファイルダウンロードAPI修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3070)
[Task3071: テンプレートファイルダウンロードAPI修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3071)
修正内容かぶるため、3本まとめてレビューお願いします。
- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 音声ファイルアップロードAPIを修正
 ・第五階層の場合のみチェックを追加
  ・アカウントがロックされている場合、エラー
  ・ユーザーにライセンスが未割当の場合、エラー
  ・ユーザーに紐づいたライセンスが有効期限切れの場合、エラー
- 音声ファイルダウンロード、テンプレートファイルダウンロードAPIを修正
 ・第五階層の場合のみチェックを追加
  ・ユーザーにライセンスが未割当の場合、エラー
  ・ユーザーに紐づいたライセンスが有効期限切れの場合、エラー
- 外部連携アプリ側の挙動の変化については考慮しない。
- ログ強化は別タスクで対応中。
- 影響範囲(他の機能にも影響があるか)
ファイル操作以外は影響なし。
旧式のユニットテストを修正。

## レビューポイント
- 音声ファイルアップロードのユニットテストを最新の状態にしたが、不足していないか。
~~- users.repositoryにユーザに紐づくライセンスが現在有効かどうかの判定を入れ込み、共通的に呼び出すようにしたが使いづらくないか(ライセンスが紐づいていない場合と有効期限切れの場合エラーとし、それ以外はtrueが帰る点について)~~

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-14 13:16:46 +00:00
masaaki
40162ef3af Merged PR 568: Azure Function App上でのDBアクセス・メール送信疎通実施
## 概要
[Task2867: Azure Function App上でのDBアクセス・メール送信疎通実施](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2867)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
  - ライセンスアラート処理がAzureFunction上で動作するよう構成変更を行いました
    - DBアクセス、SendGrid、AADB2Cアクセスに必要な環境変数を追加
    - kv-odms-secret-devのアクセスポリシにfunc-odms-dictation-devを追加
    - ネットワーク設定にvnet-odms-network-dev/snet-odms-integration-devを追加
  - プロジェクトの内容もいくつか修正しています
    - 最新のpackage.jsonに合わせてpackage-lock.jsonを生成
    - licenseAlertのスケジュールを毎日1:00(UTC)に変更
    - ビルド用にDockerfileを復活
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特段注視する部分はありません。ソース上の修正はスケジュールの変更のみです。

## UIの変更
- 無し

## 動作確認状況
- unitテスト実施、ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-14 12:08:30 +00:00
oura.a
aeb2eb392a Merged PR 572: メール内容多言語対応、可変文字列対応
## 概要
[Task3022: メール内容多言語対応、可変文字列対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3022)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
  - 仮だったメール内容について、ユーザ提示の内容とし、可変部分の対応を行いました。
- このPull Requestでの対象/対象外
  - 複数言語の対応について、現状は各言語の内容を縦に並べる形としています。
    11/14現在、奥澤さんが調査・調整中で、最終的な他言語対応は
  「プロダクト バックログ項目 1660: メール送信機能の実装」の中で実施になります。
  - [メール内容の外出しなど、編集しやすくする対応についても「プロダクト バックログ項目 1660: メール送信機能の実装」にて実施になります。
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
  - 特筆してみていただきたい部分はありません。全体見ていただき違和感なければOKと思っています。
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3022?csf=1&web=1&e=0PB6iI

## 動作確認状況
- ユニットテスト実施+ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-14 06:51:13 +00:00
makabe.t
effbfe9d46 Merged PR 575: タイピスト割り当てで、未認証のユーザーは割り当てられないようにする
## 概要
[Task2818: タイピスト割り当てで、未認証のユーザーは割り当てられないようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2818)

- 以下のAPIについて未認証のタイピストを割り当て内容にユーザー取得処理とテストを修正しました。
  - Typist一覧取得
  - Workflow追加
  - Workflow編集
  - ユーザーグループ追加
  - ユーザーグループ編集
  - 割り当て候補変更

## レビューポイント
- 対応箇所は適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-14 02:30:46 +00:00
makabe.t
5c0d5f6476 Merged PR 574: 未認証のAuthorIDは選択できないようにする
## 概要
[Task2819: 未認証のAuthorIDは選択できないようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2819)

- Author取得APIではメール認証済みのユーザーのみ取得するように修正しました。
- Workflowの追加/編集APIでメール未認証のAuthorを指定して実行するとエラーとなるように修正しました。
- 修正APIに対応したテストケースを追加しました。

## レビューポイント
- 対応箇所は適切でしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-14 02:10:32 +00:00
makabe.t
ee161a405f Merged PR 560: ユーザー情報取得API実装
## 概要
[Task3036: ユーザー情報取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3036)

- ユーザー関連情報取得APIのIFについてレスポンスを修正しています。
  - AuthorIDを非必須のパラメータにしています。
- ユーザー関連情報取得APIの中身を実装しました。

## レビューポイント
- オプションアイテムのタイプを定数に置いたDictionaryで数値に変換していますが、定数の置き方として不自然ではないでしょうか。

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-14 01:47:27 +00:00
maruyama.t
dd00b2fe9b Merge branch 'develop' into main 2023-11-13 16:32:56 +09:00
maruyama.t
35923f84e2 Merged PR 576: dev環境不具合修正
## 概要
[Task3046: dev環境不具合修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3046)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-11-13 06:01:49 +00:00
makabe.t
e228d06cc7 Merged PR 571: アカウント画面で管理者設定している箇所の対応
## 概要
[Task3054: アカウント画面で管理者設定している箇所の対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3054)

- アカウント画面での管理者設定でEmail認証していないユーザーを設定しないように対応しました。
  - 管理者選択のドロップダウンに表示されるユーザーをクライアント側で認証済みでフィルタする対応
  - アカウント情報更新APIで管理者に未認証ユーザーを設定しようとするとエラーとなるように修正

## レビューポイント
- ユーザー取得は画面側でフィルタしているが対応としては適切でしょうか?
  - 同じAPIをフィルタせずに使うところもあるため

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-10 08:09:09 +00:00
oura.a
7c16e7c358 Merged PR 559: ライセンスアラート処理実装(メール内容固定)
## 概要
[Task3021: ライセンスアラート処理実装(メール内容固定)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3021)

ライセンスアラート処理を実装しました。

## レビューポイント
取得している情報に過不足はないか。
処理の構成に問題がないか。
※redis対応は別タスクとなりますので、adb2cへのアクセス効率はレビュー対象外でお願いします
※メールの内容は別タスクで作成しますので、レビュー対象外でお願いします。

## UIの変更
なし

## 動作確認状況
ローカルで動作確認済み、UT実施済み

## 補足
UTでメールを送信した、していないを判断する方法が分からず、ひとまずconsoleログの出力の有無で判断しています。
2023-11-10 07:57:18 +00:00
湯本 開
7421203bc4 Merged PR 567: テスト用Attributeを追加
## 概要
[Task3060: テスト用Attributeを追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3060)

- E2Eテストから指定しやすいように代表的な要素(ログアウトボタン等)に一意の名前を付ける実装を追加
  - `data-*` はカスタムデータ属性と呼ばれるもので、「標準的な取り扱い方」が存在しない属性
    - https://developer.mozilla.org/ja/docs/Learn/HTML/Howto/Use_data_attributes
  - 一般的に、E2Eテストで「このボタン」とか「このラベル」とかを指定したい時に使われる
    - https://docs.cypress.io/guides/references/best-practices
  - 本番環境などでも属性としては残したままにする想定だが、`data-test-id` 等の見るからにテスト用の名前を指定すると、テスト処理が入っているような変な誤解を招きそうなので名前は `data-tag` とした
    - 実際にはテストにも使える、副作用が特にない属性

## レビューポイント
- 動作が変わるような変更が入り込んでしまっていないか
- タグ名は妥当か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-10 03:50:33 +00:00
saito.k
4b0110856c Merged PR 566: xxxのサンプルページを消し去る
## 概要
[Task3055: xxxのサンプルページを消し去る](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3055)

- 仮で置いてあったサンプルページ削除
  - タブからも削除
  - ルーティングからも削除
- ログイン成功時、階層とロールに応じて遷移する画面を変更する処理を追加

## レビューポイント
- 遷移先を変更する処理は関数に切り出した方が良いか?
  - ほかで使わないからべた書きでも良いかなと思い、こうしました。

## UIの変更
- Before/Afterのスクショなど
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3055?csf=1&web=1&e=B0E9Ud

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-10 02:22:34 +00:00
makabe
4dd3e646f4 Merge branch 'develop' into main 2023-11-09 16:56:18 +09:00
makabe.t
6d163a9067 Merged PR 565: 代行操作中はサインアウトを非活性or非表示にする
## 概要
[Task3066: 代行操作中はサインアウトを非活性or非表示にする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3066)

- 代行操作中はサインアウトボタンが非活性となるように修正しました。
- ログアウト時に自ユーザー情報取得APIを呼ばないように修正しました。
  - アクセストークンの削除後に呼ばれ、401エラーになるため

## レビューポイント
- 代行操作中はサインアウトボタンのマウスイベントを無効にすることで非活性としていますが対応として適切でしょうか?
- ログアウト時(アクセストークンがない場合)はヘッダで自ユーザー情報取得APIを呼ばないように修正しましたが、処理として適切でしょうか?
  - エラーになる呼び出しはしないようにしたい&使っているのはヘッダでのみなのでほかの箇所への影響はない認識です。

## UIの変更
- [Task3066](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3066?csf=1&web=1&e=3ztNOy)

## 動作確認状況
- ローカルで確認
2023-11-09 06:40:14 +00:00
水本 祐希
b5449640be Merged PR 561: 認証メールのURLの末尾に"が入っていて不正なリンクになっている問題を修正する
## 概要
[Task3000: 認証メールのURLの末尾に"が入っていて不正なリンクになっている問題を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3000)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
認証メールの末尾にある「”」を削除し適切な認証メールに修正

- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
修正箇所を見逃していないか
3か所修正しました。
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3000?csf=1&web=1&e=eqMWBn

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-09 02:38:17 +00:00
oura.a
09ff4327ee Merged PR 564: Revert "Merged PR 548: ログイン回り修正
Revert "Merged PR 548: ログイン回り修正

## 概要
[Task1828: IDトークンを一度しか使えないようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1828)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
ログイン時にRedisを参照し、同じIDトークンでアクセスされていた場合はアクセスを拒否する。
初めて認証で使われるIDトークンの場合は、Redisに保存する(有効期限は300秒(IDトークンの有効期限の最小値))
ログイン後、クライアントはローカルストレージの不要な情報を破棄する(accessToken,refreshToken,displayInfo以外)
- 影響範囲(他の機能にも影響があるか)
新規機能のため、なし。

## レビューポイント
- keyの形式id-token:{idトークンの中身}は想定通りか。
- ログイン後のローカルストレージの状態が想定通りか。
- controllerやservice層の実装箇所が妥当か。
- stg環境、本番環境のIDトークンの有効期限を最小値に設定するタスクを備忘用PBIに切り出しました。
https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2021-1?workitem=3041

## UIの変更
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task1828?csf=1&web=1&e=1Sc1VP

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば"

Reverted commit `0cdb0f42`.
2023-11-08 02:55:28 +00:00
saito.k
f79d8d395d dev動作確認の不具合修正 2023-11-08 11:39:41 +09:00
水本 祐希
0cdb0f4267 Merged PR 548: ログイン回り修正
## 概要
[Task1828: IDトークンを一度しか使えないようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1828)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
ログイン時にRedisを参照し、同じIDトークンでアクセスされていた場合はアクセスを拒否する。
初めて認証で使われるIDトークンの場合は、Redisに保存する(有効期限は300秒(IDトークンの有効期限の最小値))
ログイン後、クライアントはローカルストレージの不要な情報を破棄する(accessToken,refreshToken,displayInfo以外)
- 影響範囲(他の機能にも影響があるか)
新規機能のため、なし。

## レビューポイント
- keyの形式id-token:{idトークンの中身}は想定通りか。
- ログイン後のローカルストレージの状態が想定通りか。
- controllerやservice層の実装箇所が妥当か。
- stg環境、本番環境のIDトークンの有効期限を最小値に設定するタスクを備忘用PBIに切り出しました。
https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2021-1?workitem=3041

## UIの変更
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task1828?csf=1&web=1&e=1Sc1VP

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-08 02:22:20 +00:00
oura.a
86d17d6729 Merged PR 552: dictation_serverからソースコードを複製
## 概要
[Task2977: dictation_serverからソースコードを複製](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2977)

新たに構築したdictation_functionで以下のことをできるようにしました。
・RDBへの接続
・sendgridでのメール送信
・jestでのテスト実行
※とりあえず動くことを目標としているため、DB接続のパラメータやsendgridのAPIキーなどがベタ打ちになっています。機能実装時には外出ししたファイルから読み込めるようにします。

## レビューポイント
・フォルダ構成は適切か
・RDB、sendgrid、jestに関するもので不足しているものがないか
・今後機能開発を始めるにあたり、他に必要なものがないか

## UIの変更
なし

## 動作確認状況
ローカルでjestによるテストを実施し、以下を確認
・RDBからデータが取得できる
・メールが送信され、設定したアドレスで受信できる

## 補足
なし
2023-11-08 00:46:26 +00:00
saito.k
1e4a545bf8 Merged PR 562: キャンセルAPI修正
## 概要
[Task2972: キャンセルAPI修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2972)

- キャンセル処理に自動ルーティングを追加

## レビューポイント
- 追加したテストケースは足りているか
- 自動ルーティングを修正したが修正箇所は問題ないか(To : 福永さん)
  - 特にworktypeが空文字だった時の挙動を修正したので、そこが業務要件とあっているか
    - コメントがある場所

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-08 00:25:45 +00:00
makabe.t
c9124f8661 Merged PR 563: develop動作確認不具合修正
## 概要
[Task3042: develop動作確認不具合修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3042)

- ライセンスページで代行操作中の挙動を修正しました。
  - 自アカウント取得APIにガードを設定して実行可能に修正
  - 代行操作中は第五階層ユーザーとして扱われるように修正

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-07 10:23:15 +00:00
saito.k
36716dc408 Merged PR 547: 音声ファイルアップロード完了API修正(repository実装含む)
## 概要
[Task2971: 音声ファイルアップロード完了API修正(repository実装含む)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2971)

- 音声ファイルアップロード完了API修正
  - 自動ルーティング処理を追加
    - authorIDとworktypeの組み合わせでワークフロー(ルーティングルール)を取得し、そのワークフローに従って、タスクのチェックアウト候補を設定する。
  - チェックアウト候補に設定したユーザーに対して通知を行う処理を追加

## レビューポイント
- 自動ルーティング処理を実装しているメソッドのメソッド名はこれでよいか
  - ほかに思いつかなかったので
- AudioOptionItemのentityの定義はあっている?
  - がタスクにあるaudio_file_idに紐づいている感じになっている
- 自動ルーティング処理で失敗したときの挙動は認識あっているか
  - エラーログだけ出してAPIとしては成功とする
- テストケースは足りているか
- 古い形式で記述されていたタスク作成のテストを新しい形で作り替えたが、反映漏れている部分はあるか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-11-07 08:48:53 +00:00
makabe.t
8a2ca2b786 Merged PR 519: 代行操作で使用するAPIのガード修正+ログ修正
## 概要
[Task2907: 代行操作で使用するAPIのガード修正+ログ修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2907)

- 代行操作するAPIについてガードに代行操作許可の設定を追加しました。
  - ガードの引数で設定したAPIだけが代行操作許可となるように設定しています。
- APIのバリデーションで意図せぬエラーが発生する問題に対処しました。

※ログは未適用なのでガードの設定だけ確認をお願いします。

## レビューポイント
- ガードを設定する対象は適切か
- ガード内での代行操作許可のロジックはホワイトリスト形式の実装として適切か
  - アクセストークンが代行操作用の(代行操作ユーザーIDがある)場合には、ガードで代行操作が許可されているかをチェックするようにしています。

※ログの代行操作への適用は未実装です。

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-11-07 08:41:47 +00:00
makabe.t
0212c61bbc Merged PR 550: 画面実装(トークンを定期的に更新する仕組み)
## 概要
[Task2910: 画面実装(トークンを定期的に更新する仕組み)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2910)

- タイマーで定期的に代行操作用のアクセストークンを更新する処理を実装しました。

## レビューポイント
- 通常のアクセストークンのタイマー内で同じタイミングでチェックするように実装していますが分けたほうがいいなどありますでしょうか?

## UIの変更
- [Task2910](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2910?csf=1&web=1&e=g0RdIf)

## 動作確認状況
- ローカルで確認
2023-11-07 07:15:25 +00:00
makabe.t
ef4f22029b Merged PR 551: 画面実装(代行操作中のヘッダー表示)
## 概要
[Task2911: 画面実装(代行操作中のヘッダー表示)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2911)

- 代行操作中に表示されるヘッダのタブを以下のタブのみに設定しました。
  - User
  - Workflow
  - License

## レビューポイント
- 代行操作タブ表示の判断材料としてヘッダコンポーネント内でselectorで代行操作の有無を判断してタブ表示用メソッドに渡していますが、データの取り扱いとして不自然なところはないでしょうか?

## UIの変更
- [Task2911](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2911?csf=1&web=1&e=zFW1zj)

## 動作確認状況
- ローカルで確認
2023-11-07 06:25:42 +00:00
makabe.t
bc110712b0 Merged PR 558: 代行操作の開始/終了時にダイアログを表示
## 概要
[Task3032: 代行操作の開始/終了時にダイアログを表示](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3032)

- 代行操作の開始/終了時に確認ダイアログを表示するように修正しました。

## レビューポイント
- 共有

## UIの変更
- [Task3032](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3032?csf=1&web=1&e=jHFOdq)

## 動作確認状況
- ローカルで確認
2023-11-07 05:01:06 +00:00
makabe.t
e38112924d Merged PR 557: ヘッダの表示文言がクッションページで正常に出るように修正
## 概要
[Task3031: ヘッダの表示文言がクッションページで正常に出るように修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3031)

- 未ログイン状態のヘッダについて、翻訳文言の反映が漏れていたので対応しました。

## レビューポイント
- 共有

## UIの変更
- [Task3031](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task3031?csf=1&web=1&e=6hBCEH)

## 動作確認状況
- ローカルで確認
2023-11-07 01:29:09 +00:00
x.yumoto.k
bea541ed24 Merge branch 'develop' 2023-11-07 08:16:39 +09:00
湯本 開
0da1aeab81 Merged PR 555: Stagingパイプラインを作成する(デプロイ)/修正
## 概要
[Task2843: Stagingパイプラインを作成する(デプロイ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2843)

- Staging環境Pipelineで部分的に間違ってprod指定したいた箇所を修正

## レビューポイント
- 情報共有

## 動作確認状況
- なし
2023-11-06 08:49:18 +00:00
湯本 開
f4e2d47bdd Merged PR 553: Stagingパイプラインを作成する(デプロイ)
## 概要
[Task2843: Stagingパイプラインを作成する(デプロイ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2843)

- StagingビルドだけしていたPipelineにデプロイ処理を追加
- adminによるmigrationが反映されていなかったので反映

## レビューポイント
- 情報共有

## 動作確認状況
- なし
2023-11-06 08:44:24 +00:00
saito.k
deb3431d74 Merged PR 531: 画面実装(代行操作)
## 概要
[Task2909: 画面実装(代行操作)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2909)

- ディーラーユーザーが代行操作用トークンを取得して、第五階層ユーザーの代行操作ができる実装をしました。
  - 代行後に各対象タブが代行操作デザインで表示され、代行対象として操作できるようになっています。
    - 各APIの呼び出しについて代行操作用トークンがあればそちらを使うように実装しています。
 - 代行操作のタブ、ページ移動時に代行操作を維持するために遷移をリンクから`useNavigate`に変更しました。

## レビューポイント
- 代行操作用トークンの取り扱いについて
  - APIからのトークン取得後、`store.auth`に代行操作用トークンを保存し、利用時には関数を使って間接的に呼でいますが構成として不自然な点はないでしょうか?
    - トークン取得関数では代行操作用トークンがあればそれを、なければ通常のトークンを取得するようにしています。
      - これはAPIのトークンを設定する際にトークンを取得側では代行操作中か意識せずに一つの関数を呼べばいいようにするためです。
  - 代行操作用トークンの保存は通常のトークン保存と同様に`operation`から`Slice`に設定したSet関数を呼ぶことでstateに保存していますが、使い方として気になることはないでしょうか?

※代行操作中に表示するタブの制限と代行操作トークンの更新処理は別タスクでの実施予定です。

## UIの変更
- [Task2909](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2909?csf=1&web=1&e=TnwgOb)

## 動作確認状況
- ローカルで確認
2023-11-06 08:28:40 +00:00
oura.a
42dab2a45d Merged PR 532: function構築の動作確認用ブランチ
## 概要
[Task2954: function構築の動作確認用ブランチ](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2954)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
  - dev環境にfunctionAppが動作する環境を構築しました。
      - 新規にDICTATION_FUNCTIONプロジェクトを追加
      - 関数アプリリソース「funcapp-odms-dictation-dev」を追加
      - 「funcapp-odms-dictation-dev」に付随してストレージアカウント「saomdsdevelopfuncapp」を追加
      - pipeline「ODMS Function Deploy」を追加
  - 構築の流れをwikiに更新しています。
    https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_wiki/wikis/OMDSDictation_wiki/280/FunctionApp%E3%81%AE%E4%BD%9C%E6%88%90
- このPull Requestでの対象/対象外
  - configurationsについて、結構差分がたまっている状態でした。本タスクで更新したのは以下になり、それ以外は対象外です。
    - dev-application-rg.json:funcapp-odms-dictation-dev
    - dev-application-rg.json:saomdsdevelopfuncapp
  - pipelineについては精査が必要です。「タスク 2992: pipelineの最適化」にて対応予定
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
  - .devcontainerの内容について、VSCodeからコンテナで動かすためDICTATION_SERVERから取得しています。入れておくと問題のある設定があれば指摘いただければと思います。
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認+develop環境で確認

## 補足
- 相談、参考資料などがあれば
2023-11-06 00:29:47 +00:00
makabe.t
d0f4971dc9 Merged PR 544: ヘッダの表示文言(タブ・タイトル)を翻訳ファイルを参照するように修正する
## 概要
[Task2895: ヘッダの表示文言(タブ・タイトル)を翻訳ファイルを参照するように修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2895)

- ヘッダに表示するタイトルとタブの文言を翻訳ファイルに定義したラベルを利用するように修正しました。

## レビューポイント
- タブのフィルタ管理用に`key`プロパティを追加したが、構成として適切か
  - 表示項目の制御には従来通りの定数を利用したいのでkeyプロパティとして設定
  - labelプロパティにタブに表示する文言の翻訳文言を参照するように設定
- 対応ラベルの箇所は適切か(各タブ名+タイトル名)

## UIの変更
- [Task2895](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2895?csf=1&web=1&e=Xs3Tac)

## 動作確認状況
- ローカルで確認
2023-11-02 09:41:43 +00:00
x.yumoto.k
0326a1cf79 Merge branch 'develop' 2023-11-02 16:21:49 +09:00
湯本 開
18757e3243 Merged PR 549: Usersタブを開けないBugの修正
## 概要
[Task3019: 修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3019)
- 単体ユーザー取得の際、Selectを用いて必要なパラメータを指定していなかったので必須パラメータが欠けた状態で取得され、それがキャッシュされてしまった
  - ※キャッシュ実装時、Selectなしだと全部取れると勘違いしていた

## レビューポイント
- 修正内容は妥当か?

## 動作確認状況
- ローカルで確認
2023-11-02 06:00:36 +00:00
makabe.t
da31ae441f Merged PR 546: Revert '調査する'
## 概要
[Task3013: 調査する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3013)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば

Reverts !545
2023-11-01 09:38:29 +00:00
makabe.t
2d01f3025c Merged PR 545: 調査する
## 概要
[Task3013: 調査する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3013)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-11-01 09:29:31 +00:00
maruyama.t
5076e5143c Merge branch 'develop' into main 2023-11-01 16:47:41 +09:00
水本 祐希
c089060162 Merged PR 542: 画面修正(サインアウト本実装)
## 概要
[Task2963: 画面修正(サインアウト本実装)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2963)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
**headerにサインアウトの実装を追加**
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2963?csf=1&web=1&e=XbInfz

## 動作確認状況
- ローカルで確認
管理者ユーザーかつ第1~5階層、一般ユーザーでログインし、headerに表示されかつサインアウトできることを確認。

## 補足
- 相談、参考資料などがあれば
2023-10-31 10:28:43 +00:00
masaaki
93e86e952b Merged PR 541: StaticWebConfigApp.jsonの定義を追加する
## 概要
[Task2928: StaticWebConfigApp.jsonの定義を追加する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2928)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
  - globalHeadersに対して"X-Frame-Options": "SAMEORIGIN"の設定を追加しました。
- このPull Requestでの対象/対象外
  - 対象外なし
- 影響範囲(他の機能にも影響があるか)
  - 無し

## レビューポイント
- 特になし

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認済。ただし、ローカルはもともと"X-Frame-Options": "SAMEORIGIN"となっていたのでdev反映後に再度確認実施予定。

## 補足
- 相談、参考資料などがあれば
2023-10-31 09:11:46 +00:00
maruyama.t
e9541e22a2 Merged PR 523: 画面修正(ヘッダー右上にユーザー名を表示)
## 概要
[Task2920: 画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2920)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
ログイン時に、API(getMyUser)を呼び出し、フラグをtrueにして結果をstateに保存する。
フラグで管理する目的は、ページ遷移時に再度API呼び出しを行わないようにするため。

- このPull Requestでの対象/対象外
サインアウト部分は対象外→別タスクにて対応

- 影響範囲(他の機能にも影響があるか)
既存の各ページのヘッダー部分

## レビューポイント
- component/header配下にSliceを追加すると循環参照になってしまうのを避けるため、feature/login配下にSlice及び各処理を追加した、妥当か。

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2920?csf=1&web=1&e=AQgVug

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-31 09:02:19 +00:00
makabe
b00cffae4c Merge branch 'develop' into main 2023-10-31 16:22:18 +09:00
makabe.t
976271ab92 Merged PR 543: デプロイパイプラインyamlを修正&リポジトリの修正
## 概要
[Task2995: デプロイパイプラインyamlを修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2995)

- STGデプロイパイプラインの定義yamlについて以下の環境変数に0から具体的な値を設定しました。
 - REFRESH_TOKEN_LIFETIME_WEB: 86400000
 -  REFRESH_TOKEN_LIFETIME_DEFAULT: 2592000000
 -  ACCESS_TOKEN_LIFETIME_WEB: 7200000
- ユーザーリポジトリの`findSameAccountUsers`についてentityManagerを使っていない箇所を使うように修正しました。

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-31 06:52:29 +00:00
湯本 開
83add51148 Merged PR 538: Azure AD B2Cの結果をCacheManagerにキャッシュするよう修正
## 概要
[Task2967: Azure AD B2Cの結果をCacheManagerにキャッシュするよう修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2967)

- キャッシュを扱うRedisServiceを追加
- AdB2cServiceでRedisServiceを使って結果をキャッシュする実装を追加
- ADB2Cの呼び出しと、キャッシュからの取得が行われた時にログを出す実装を追加
  - Azure Monitorで呼び出しコストでアラート出したくなった時のための予防的追加
- 開発環境でローカルのredisを操作する用途のredis-cliをインストールする設定を追加&スクリプトを追加
- `getUser` と `getUsers` の返り値の方を統一 & 使用されなくなった方の型を削除
- AdB2Cの`ttl` に設定する用の値を環境変数に追加
  - 今後実装予定のトークンのキャッシュとはTTLを別にしたかったため
- 複数ユーザー削除処理内でのindex処理が不適切と思われる箇所があったので修正

## レビューポイント
- **Redisへのget/set/delが失敗した際に、エラーログだけ出して成功 or 取得対象なしと同様の動作をするように作成したが、問題なさそうか**
    - これは速度向上用のキャッシュが死んでいても業務は動くべきではないか、という考えによるもの
    - 通信できない=障害中であると想定されるので、失敗しても良いような気もするので相談
- **AdB2cService内でキャッシュを扱う箇所のコードの可読性に問題はないか**
    - 更にWrapしてキャッシュの具体的な動きを隠蔽することも考えたが、詳細なエラーの制御をしづらくなりそうだったので具体的な引数の変換等以上のことはしない形で実装
    - AdB2cServiceが十分に末端の処理なので詳細な処理を生で書いていても認知負荷はそう変わらない可能性がある
- **キャッシュする値の性質によってTTLを変えられる仕組みを前提に設計・実装したが、懸念点はないか**
- **TTLに設定する値は妥当そうか**
- **`Aadb2cUser` を削除したが問題ないか**
- **`deleteUsers` 内のログ処理の変更は適切か**
    - to 岩田さん

## 動作確認状況
- ローカルで確認
- npm run testが通過することを確認
2023-10-31 03:45:31 +00:00
makabe.t
01d92b2408 Merged PR 537: API実装(代行操作用トークン更新API)
## 概要
[Task2906: API実装(代行操作用トークン更新API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2906)

- アクセストークン更新APIとテストを実装しました。

## レビューポイント
- リポジトリのアカウントチェックは適切か
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-31 01:47:00 +00:00
makabe.t
f33af7a9cd Merged PR 539: 動作確認不具合修正
## 概要
[Task2978: 動作確認不具合修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2978)

- 次タスク取得時のパラメータをNumberで取得できるように修正

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-30 07:06:31 +00:00
makabe.t
e6da791406 Merged PR 530: API実装(代行操作用トークン生成API)
## 概要
[Task2905: API実装(代行操作用トークン生成API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2905)

- 代行操作用トークン生成APIとテストを実装しました。

## レビューポイント
- リポジトリの処理は適切か
  - アカウントの取得⇒管理者ユーザ取得としているためUsersリポジトリ配下に配置していますが構成として問題ないでしょうか。
- テストケースは適切か
- アクセストークン生成は既存と別に代行操作用のメソッドを用意していますが想定とあっていますでしょうか。

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-30 00:58:46 +00:00
makabe.t
b314fe4b46 Merged PR 513: 次タスク取得API実装
## 概要
[Task2874: 次タスク取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2874)

- 次タスク取得APIとテストを実装しました。

## レビューポイント
- リポジトリからのタスク取得ロジックは適切か
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-26 10:46:15 +00:00
masaaki
f3dde1874d Merged PR 512: ADB2Cユーザが一括で削除できないことに対する対応優先度の数値根拠だし
## 概要
[Task2831: ADB2Cユーザが一括で削除できないことに対する対応優先度の数値根拠だし](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2831)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
削除処理の同期化、エラー出力の追加
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ユニットテスト

## 補足
- 相談、参考資料などがあれば
2023-10-26 09:19:03 +00:00
x.yumoto.k
b8c4fe009a Merge branch 'develop' 2023-10-26 18:07:39 +09:00
水本 祐希
f4347ff5c0 Merged PR 528: 第五階層ライセンス画面の修正
## 概要
[Task2937: 第五階層ライセンス画面の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2937)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
allocatedLicense(Number of licenses acclocated)
reusableLicense(number of licenses available for reuse)
freeLicense(Number of unused licenses)
の3つに、「有効な総ライセンス数のうち」という条件を追加する

- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-26 08:52:52 +00:00
湯本 開
9c9404367b Merged PR 535: STGビルドの環境変数が間違ったファイルを読まないよう修正する(2)
## 概要
[Task2956: STGビルドの環境変数が間違ったファイルを読まないよう修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2956)

- ビルドコマンドでの引数の渡し方に問題があった部分を修正

## レビューポイント
- 情報共有

## 動作確認状況
- ローカルで確認
2023-10-26 08:46:30 +00:00
湯本 開
2a867f2a71 Merged PR 533: STGビルドの環境変数が間違ったファイルを読まないよう修正する
## 概要
[Task2956: STGビルドの環境変数が間違ったファイルを読まないよう修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2956)

- .envを上書きする方法から、VITEが本来想定しているビルド指定方法へ修正
- STGパイプラインでも `npm run build:stg` を使用するよう修正

## レビューポイント
- 修正方針に問題はないか

## 動作確認状況
- ローカルで動作する所まで確認
2023-10-26 08:20:32 +00:00
x.yumoto.k
a354009346 Merge branch 'develop' 2023-10-26 16:15:28 +09:00
saito.k
375e3a5a3b Merged PR 524: 画面実装(代行操作中表示コンポーネント+代行操作中に表示する画面のデザイン)
## 概要
[Task2908: 画面実装(代行操作中表示コンポーネント+代行操作中に表示する画面のデザイン)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2908)

- 代行操作中に表示する画面に対して、代行操作中のデザインを反映
- 代行操作中に画面上部に表示するバーのコンポーネントを作成
- 代行操作用のトークンをauthStateに追加

## レビューポイント
- 代行操作バーのコンポーネントに表示する会社名をpropsとしたが良いか
  - このコンポーネントを表示する画面で会社名を取得して、会社名とトークンがあれば表示するという風にしたいから
- 代行操作用トークンはauthStateでよいと思っているが認識会うか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2908?csf=1&web=1&e=Cr5NCL

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-26 06:35:59 +00:00
湯本 開
8474c6a4f5 Merged PR 529: Pipelineの仕組みを修正する
## 概要
[Task2949: Pipelineの仕組みを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2949)

- .env.(環境名) の環境変数を用いてフロント側ビルドを行うよう修正
- ビルドパイプラインでstaging/production用の両方のフロント側ビルドを行うよう変更

## レビューポイント
- 仕組み上の不明点はないか
- 情報共有

## 動作確認状況
- 本番環境へデプロイされ、本当の最低限だけ動作することを確認
2023-10-26 04:37:58 +00:00
saito.k
8ace80de74 Merged PR 517: API IF実装(代行操作用トークン生成)
## 概要
[Task2904: API IF](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2904)

- 以下のAPIのIF実装
  - POST /api/auth/delegation-token
  - POST /api/auth/delegation-access-token
- OpenApiを生成
- 不要なas変換を削除

## レビューポイント
- リクエスト・レスポンスの型は認識通りか
  - 代行操作用トークン生成APIの引数のパラメータ名はよさそうか(delegatedAccountId)
- アクセストークン再生成APIについてはガードを付けず、service内で引数に受け取ったリフレッシュトークンを検証し、正しいロール、階層かチェックする方向でよさそうか(通常のアクセストークン再生成と同様に)

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-26 01:37:35 +00:00
makabe.t
08e5a9cd4a Merged PR 525: ファイルアップロード先取得APIの修正
## 概要
[Task2935: ファイルアップロード先取得APIの修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2935)

- ファイルアップロード先取得APIの実装を修正しました。
  - ContorollerからServiceへ外部ユーザーIDを渡す想定の部分がアクセストークンをそのまま渡すようになっていたので引数を修正しました。
- ログを整理して引数がわかるようにしています。

## レビューポイント
- 共有
- ログ内容は適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-25 08:47:15 +00:00
maruyama.t
c283df9b0a Merged PR 521: API実装(ユーザ名取得API)
## 概要
[Task2924: API実装(ユーザ名取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2924)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)
新規のため、なし

## レビューポイント
ユーザー存在チェックを行う必要性はあるか?

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-25 08:28:57 +00:00
oura.a
911d028073 Merged PR 510: [sprint20完了]新規Dockerコンテナの作成
## 概要
[Task2864: [sprint20完了]新規Dockerコンテナの作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2864)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-10-25 07:03:48 +00:00
makabe
8bee0c2a73 Merge branch 'main' into develop 2023-10-25 15:47:55 +09:00
masaaki
855cfbf347 Merged PR 527: terms初期値用のmigrateファイルが誤っていたのを修正する
## 概要
[Task2901: terms初期値用のmigrateファイルが誤っていたのを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2901)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- termsテーブルの初期値について、ドキュメントタイプが「EURA」で登録していたので「EULA」となるように修正しました

## レビューポイント
- 特になし

## UIの変更
- 無し

## 動作確認状況
- migrate upおよびdown実施+ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-25 06:44:59 +00:00
masaaki
4bedc9ec95 Merged PR 526: タスク2898:リフレッシュトークン処理の修正戻し
## 概要
[Task2933: タスク2898:リフレッシュトークン処理の修正戻し](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2933)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- タスク2898で実施した比較演算子の修正について、バグの恒久対応が行われたので厳密等価演算子に戻しました。

## レビューポイント
- 特にありません

## UIの変更
- 無し

## 動作確認状況
- unittest + ローカル動作確認済

## 補足
- 相談、参考資料などがあれば
2023-10-25 06:17:01 +00:00
maruyama.t
4b812fc0b3 Merged PR 520: API IF作成
## 概要
[Task2919: API IF作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2919)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)
新規のためなし

## レビューポイント
メソッド名がふさわしいか

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-24 08:35:31 +00:00
makabe.t
565db8c8b7 Merged PR 508: develop動作確認での不具合対応
## 概要
[Task2893: develop動作確認での不具合対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2893)

- ワークタイプが削除済みで、別タブで一覧更新前のワークタイプに対する挙動を修正しました。
- ワークタイプ編集実行時に更新を促すエラーメッセージに修正
- オプションアイテムボタンを押下してもポップアップが開かないようにしています。

## レビューポイント
- 表示メッセージは適切か
- ポップアップ表示制御は適切か

## UIの変更
- [Task2893](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2893?csf=1&web=1&e=duKmyw)

## 動作確認状況
- ローカルで確認
2023-10-24 08:09:31 +00:00
saito.k
48b45d2773 Merged PR 518: Entityのtransformer横展開対応
## 概要
[Task2899: 横展開対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2899)

- Bigintがコード上でstringとして扱われるのを考慮し、number型に変換する処理を実装
- テスト実装
- 各Entityに展開

## レビューポイント
- 適用漏れはないか
- 実装内容に疑問はないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルでテストが通ることを確認。ローカルで軽く画面を確認

## 補足
- 相談、参考資料などがあれば
2023-10-24 07:54:46 +00:00
水本 祐希
a4dd5addde Merged PR 507: 第五のユーザでログインした際、アカウントタブが表示される
## 概要
[Task2886: 第五のユーザでログインした際、アカウントタブが表示される](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2886)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
一般ユーザーがログイン時にアカウントタブを表示しないようにする。

- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
![image.png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/507/attachments/image.png)

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-23 07:15:53 +00:00
oura.a
b2f21cf4f8 Merged PR 516: Revert "Merge branch 'develop' into main"
Revert "Merge branch 'develop' into main"

Reverted commit `279fecec`.
2023-10-23 06:54:48 +00:00
oura.a
81d966ad1f Merged PR 515: Revert "Merge branch 'develop' into main"
Revert "Merge branch 'develop' into main"

Reverted commit `815082d5`.
2023-10-23 06:54:00 +00:00
oura.a
c844837aec Merged PR 514: Revert "Merge branch 'develop' into main"
Revert "Merge branch 'develop' into main"

Reverted commit `463b372c`.
2023-10-23 06:53:23 +00:00
iwata
463b372c9b Merge branch 'develop' into main 2023-10-20 08:34:09 +09:00
masaaki
7ea9f5b811 Merged PR 511: 直接の事象修正(ログイン時のリフレッシュトークン処理修正)
## 概要
[Task2898: 直接の事象修正(ログイン時のリフレッシュトークン処理修正)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2898)

- リフレッシュトークン生成時の管理者判定について、stringとnumberでの比較となっているため厳密ではない等価演算子を使用するよう修正しました。

## レビューポイント
- 特にありません

## UIの変更
- 特にありません

## 動作確認状況
- ユニットテスト+ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-19 10:27:35 +00:00
oura.a
815082d584 Merge branch 'develop' into main 2023-10-19 17:33:33 +09:00
oura.a
ac56629332 Merge branch 'develop' of https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_git/ODMS%20Cloud into develop 2023-10-19 17:27:28 +09:00
saito.k
83e923d15e mysqlで対応していないtypeを修正 2023-10-19 17:17:48 +09:00
oura.a
279fecec88 Merge branch 'develop' into main 2023-10-19 16:50:27 +09:00
湯本 開
fe3910cbe1 Merged PR 509: Pipelineの環境変数追従2
## 概要
[Task2896: Pipelineの環境変数追従2](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2896)

- 環境変数を追加

## レビューポイント
- 情報共有

## 動作確認状況
- なし
2023-10-19 07:35:30 +00:00
oura.a
215ccbee0c Merge branch 'develop' of https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_git/ODMS%20Cloud into develop 2023-10-19 16:33:11 +09:00
saito.k
f553bfc95b Merged PR 501: strictNullChecks修正①(accounts,auth,Repositoiesのaccounts,common)
## 概要
[Task2835: 修正①(accounts,auth,Repositoiesのaccounts,common)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2835)

- features
  - accounts
  - auth
- common
- repositories
  - accounts
- 各entity
  - Nullableの項目の`@Column`デコレータに`type`を追加しないとTypeORMがエラーになりテストが通らないので追加
    - https://qiita.com/maruware/items/08c9ad594e14e4ea1497#%E5%95%8F%E9%A1%8C

## レビューポイント
- コメントとして記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- レビュー完了後、TODOコメント(strictNullChecks対応)は削除します
2023-10-19 07:13:56 +00:00
水本 祐希
9323cd02e4 Merged PR 506: AUTHOR_IDを大文字に自動変換してあげる
## 概要
[Task2376: AUTHOR_IDを大文字に自動変換してあげる](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2376)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
 AUTHOR_IDを大文字に自動変換するよう実装
入力時に大文字に変換するようにしています。

- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-19 06:50:32 +00:00
saito.k
96848f5e54 Merged PR 499: 修正②(files,licenses , Repositoiesのlicenses)
## 概要
[Task2836: 修正②(files,licenses , Repositoiesのlicenses)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2836)

- feature
  - files
  - licenses
- repositories
  - licenses
  - users
  - worktypes
- entity
  - licenses
  - audio_files
  - audio_option_item
  - checkout_permission
- アクセストークンをそのままService層に渡している箇所を修正し、必要なパラメータのみ渡すように修正
- クライアントの型生成
  - 割り当て可能ライセンス取得APIのIFが変わったため

## レビューポイント
-

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルでテストが通ることを確認

## 補足
- 相談、参考資料などがあれば
2023-10-19 01:04:14 +00:00
湯本 開
c46d2bad61 Merged PR 505: Production/Stagingパイプラインの環境変数を更新する
## 概要
[Task2858: Production/Stagingパイプラインの環境変数を更新する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2858)

- テスト用の環境変数を追加

## レビューポイント
- 情報共有

## 動作確認状況
- 未実施
2023-10-18 04:27:49 +00:00
水本 祐希
434e3d9c27 Merged PR 502: users.repository.serviceのログ修正
## 概要
[Task2859: users.repository.serviceのログ修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2859)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
idTokenとversionのログ出力が正常にできるよう修正

- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-18 02:02:38 +00:00
水本 祐希
364bfb5135 Merged PR 504: 利用規約テーブルの初期値を設定
## 概要
[Task2853: 利用規約テーブルの初期値を設定](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2853)

- termsテーブルの初期データを登録するmigrateファイルを追加しました。

## レビューポイント
- 特にありません

## UIの変更
- なし

## 動作確認状況
- migrate upでデータ登録されること、downで削除されることを確認

## 補足
- 相談、参考資料などがあれば
2023-10-18 01:29:02 +00:00
水本 祐希
2f5516ec81 Merged PR 503: features/accept/constants.tsを削除
## 概要
[Task2863: features/accept/constants.tsを削除](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2863)

- features/acceptとfeatures/termsで同じconstantsの定義があったのでtermsに統一

## レビューポイント
- 特になし

## UIの変更
- なし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-17 08:53:35 +00:00
makabe.t
a6206a624a Merged PR 500: ActiveWorktypeIDの削除処理を追加
## 概要
[Task2861: ActiveWorktypeIDの削除処理を追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2861)

- 削除で指定したワークタイプIDをActiveWorktypeIDに指定していた場合にNULLをセットする処理を追加しました。

## レビューポイント
- ActiveWorktypeID設定内容は適切か
- テストケース追加に不足はないか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-17 08:21:35 +00:00
水本 祐希
7196491cf0 Merged PR 472: 画面作成(利用規約同意画面)
## 概要
[Task2802: 画面作成(利用規約同意画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2802)

- 何をどう変更したか、追加したライブラリなど
  - 利用規約同意画面の実装を行いました
- このPull Requestでの対象/対象外
  - api.tsおよびstyles
- 影響範囲(他の機能にも影響があるか)
  - ありません

## レビューポイント
- 特にレビューしてほしい箇所
  - URLの妥当性(動作確認のため別タスクで追加していますが、内容は本タスクで見てほしいです)
     違和感ないか確認お願いします。
         <Route path="/accept-to-use" element={<AcceptToUsePage />} />
  - 各処理のエラーハンドリングについて

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2802?csf=1&web=1&e=otF5YX

## 動作確認状況
- ローカルで確認済

## 補足
- 相談、参考資料などがあれば
2023-10-17 07:15:49 +00:00
makabe.t
74bf434786 Merged PR 496: ワークタイプ削除画面処理実装
## 概要
[Task2612: ワークタイプ削除画面処理実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2612)

- ワークタイプ削除の画面実装です。

## レビューポイント
- エラー処理に問題はないか

## UIの変更
- [Task2612](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2612?csf=1&web=1&e=IgC7j3)

## 動作確認状況
- ローカルで確認
2023-10-17 06:29:25 +00:00
oura.a
58674f7773 Merged PR 498: アカウント登録画面修正
## 概要
[Task2809: アカウント登録画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2809)

アカウント作成時の管理者ユーザー作成時に、同意済みEULAバージョンを登録する処理を追加しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
ローカルで動作確認済み

## 補足
なし
2023-10-17 06:06:12 +00:00
saito.k
d2c2223acf Merged PR 497: strictNullChecks修正③(task,users ,Repositoriesのusers)
## 概要
[Task2837: 修正③(task,users ,Repositoriesのusers)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2837)

- feature
  - tasks
  - users
- Repositories
  - users

## レビューポイント
- 該当箇所にコメントで記載

## 動作確認状況
- ローカルでテストが通ることを確認

## 補足
- 相談、参考資料などがあれば
2023-10-16 10:25:45 +00:00
makabe.t
c9bc6393c6 Merged PR 490: ワークタイプ削除API実装
## 概要
[Task2611: ワークタイプ削除API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2611)

- ワークタイプの削除APIとテストを実装しました。
※API IF部分は対象外です。

## レビューポイント
- リポジトリのエラーチェックに問題はないか
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-16 09:39:01 +00:00
maruyama.t
00f4966aa9 Merged PR 470: [Sp-19]アカウント削除時に削除するテーブルについて、on delete cascadeではなくコード上で削除を行うよう修正する
## 概要
[Task2783: [Sp-19]アカウント削除時に削除するテーブルについて、on delete cascadeではなくコード上で削除を行うよう修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2783)

アカウント削除時に削除するテーブルについて、on delete cascadeではなくコード上で削除を行うよう修正
一部ユニットテスト用にutilityのcreateForeignKeyConstraints: falseに指定
LGTM後、すべてのテーブルのレコード削除の動作確認をDEV環境で実施します。

## レビューポイント
DBマイグレーションファイルが正しく修正されているか

## UIの変更
なし

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-16 09:02:38 +00:00
masaaki
897bad289b Merged PR 480: 画面修正(ログイン画面)
## 概要
[Task2801: 画面修正(ログイン画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2801)

- 以下の修正を実施しました
  - ログイン画面について、未同意バージョンがある場合、利用規約同意画面に遷移する処理を実装
  - 利用規約同意画面(ADB2C以外の画面)からログイン画面に遷移した際も処理継続できるよう対応を実施
- このPull Requestでの対象/対象外
  - AcceptToUsePageについては、遷移確認用のダミーページなので対象外でお願いします。
- 影響範囲(他の機能にも影響があるか)
  - ありません。

## レビューポイント
- 特にレビューしてほしい箇所
  1. 既存のLoginPageを以下のように分割しています。
      実装内容のイメージあっているか確認お願いします。
      - LoginPage→AADB2Cからのリダイレクトを元にLocalStorageアクセス用のキーを生成
      - TokenSettingPage→LocalStorageアクセス用のキーを使用してidTokenを取得し各種token生成を実施
  1. TokenSettingPage/index.tsxにて、型ガード(isErrorObject)を作成し使用しています。
      使い方やガードの実装が妥当か確認お願いします。

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認を実施

## 補足
- 相談、参考資料などがあれば
2023-10-16 06:52:08 +00:00
makabe.t
45350d0ab8 Merged PR 485: API IF実装
## 概要
[Task2610: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2610)

- WorkTypeID削除API IFを実装し、OpenAPI定義を更新しました。

## レビューポイント
- パスは適切か
- レスポンスは想定通りか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-16 02:14:22 +00:00
oura.a
cdb6931d57 Merge branch 'develop' of https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_git/ODMS%20Cloud into develop 2023-10-16 11:00:09 +09:00
saito.k
d258d569f7 Merged PR 483: strictNullCheck修正④(gateways ,notification)
## 概要
[Task2838: 修正④(gateways ,notification)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2838)

- strictNullCheckの対応
  - gateways配下
  - feartures
    - notification

## レビューポイント

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-10-16 01:34:28 +00:00
oura.a
273ba588ce Merged PR 495: API作成(バージョン更新API)
## 概要
[Task2804: API作成(バージョン更新API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2804)

同意済み利用規約バージョン更新APIを実装しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
UT,ローカルで動作確認済み

## 補足
なし
2023-10-16 01:31:30 +00:00
oura.a
162470838d Merged PR 489: API作成(利用規約情報取得API)
## 概要
[Task2808: API作成(利用規約情報取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2808)

利用規約情報取得APIを作成しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
UT、ローカルで動作確認済み

## 補足
なし
2023-10-13 06:36:57 +00:00
makabe.t
69ff6f3432 Merged PR 493: API作成(アカウント情報取得(未認証時最小アクセス)API)
## 概要
[Task2807: API作成(アカウント情報取得(未認証時最小アクセス)API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2807)

- 未ログインユーザーについて、IDトークンを受け取ってユーザの所属するアカウントの階層情報を返却するAPIを実装しました。

## レビューポイント
- ContorollerでIDトークンをデコードしているが問題ないか?
  - ※ログインAPIを参考にしています。
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-13 05:33:02 +00:00
makabe.t
685a8f6c3e Merged PR 487: 削除済みエラーを成功扱いとするように画面修正
## 概要
[Task2841: 削除済みエラーを成功扱いとするように画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2841)

- ワークフロー画面からワークフローを削除した際に、対象がすでに削除済みの場合も成功扱いになるように修正しました。

## レビューポイント
- 対応内容は適切か

## UIの変更
- [Task2841](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2841?csf=1&web=1&e=56pcKY)

## 動作確認状況
- ローカルで確認
2023-10-13 05:23:37 +00:00
oura.a
cafacb761d Merged PR 494: App.ts修正
## 概要
[Task2845: App.ts修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2845)

App.tsxのエラーコード判定部分を修正しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
ローカルでビルドエラーが出ないことを確認。
ローカルで無理やりエラーを投げ、以下を確認。
E010209を入れて401エラーを投げる
 →ログアウトされない
E010208を入れて401エラーを投げる
 →ログアウトされる

## 補足
なし
2023-10-13 05:23:21 +00:00
saito.k
370d143c2c Merged PR 473: strictNullCheckの対応を部分的に行う
## 概要
[Task2795: 部分的に修正を行う](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2795)

- strictNullChecks対応
  - features
    - template
    - workflow
  - gateways
    - adb2c
  - repositories
    - template
    - workflow

## レビューポイント
- entityの修正内容
  - nullを追加する項目はあってるか
- adb2cの環境変数を取得している箇所
  - getOrThrowで値が取得できなければエラーになる関数があったので使用しています。
![image.png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/473/attachments/image.png)

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルでテストが通ることを確認

## 補足
- 相談、参考資料などがあれば
2023-10-13 04:07:18 +00:00
oura.a
55b854af36 Merged PR 492: ビルドエラー修正
## 概要
[Task2844: ビルドエラー修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2844)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-10-12 09:17:35 +00:00
oura.a
18adadce28 Revert "リポジトリサービス作成"
This reverts commit 7793ecdb1e65d4977deaba1c4e99264f05c151da.
2023-10-12 18:09:58 +09:00
oura.a
7793ecdb1e リポジトリサービス作成 2023-10-12 18:08:55 +09:00
oura.a
274292c389 Merged PR 477: API修正(トークン生成API)
## 概要
[Task2800: API修正(トークン生成API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2800)

既存のトークン生成APIに、利用規約バージョンのチェック処理を追加しました。
また、チェック処理で同意済みバージョンが最新でないときのエラー時にログアウトしないような処理を追加しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
UT,ローカルでの動作確認済み

## 補足
なし
2023-10-12 08:59:36 +00:00
湯本 開
ba802dec40 Merged PR 491: Stagingパイプラインを作成する(ビルドのみ)
## 概要
[Task2842: Stagingパイプラインを作成する(ビルドのみ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2842)

- Stagingパイプラインで稼働させる用のpipeline.ymlを実装
- STGビルドのみを行い、ビルド結果を前提とする本番環境デプロイが通常ルートで出来るようにすることが目的
- 現在のSTG環境には一切触らない想定

## レビューポイント
- 今稼働している環境へ影響するような処理がコメントアウトされて動かないようになっているか?
  - STG環境のWebApps/StaticWebApps/DBに影響ある操作をしていなさそうか

## 動作確認状況
- 未確認
2023-10-12 08:23:13 +00:00
makabe.t
2d569aee6d Merged PR 479: ワークフロー更新ポップアップ実装
## 概要
[Task2777: ワークフロー更新ポップアップ実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2777)

- ワークフロー編集ポップアップを実装しました。

## レビューポイント
- 表示内容は適切か
- 選択ワークフローの値取得処理は適切か

## UIの変更
- [Task2777](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2777?csf=1&web=1&e=RfM1Dv)

## 動作確認状況
- ローカルで確認
2023-10-12 07:42:53 +00:00
湯本 開
49bd0e5ffe Merged PR 476: DeplymentSlotを使ってデプロイする形式でPipelineを稼働するよう構成する
## 概要
[Task2816: DeplymentSlotを使ってデプロイする形式でPipelineを稼働するよう構成する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2816)

- 本番環境用のデプロイパイプラインを更新
- バックエンド側起動時にビルドバージョンをログに出す機能を実装

## レビューポイント
- 情報共有

## 動作確認状況
- 本番環境で確認
2023-10-12 06:30:43 +00:00
oura.a
a5b07596c1 Merged PR 486: IF不具合修正
## 概要
[Task2840: api.ts最新化](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2840)

IFの修正を行いました。
・/api/termsがPOSTになっていたのでGETに修正
・/api/termsのtypesの記載が足りていなかったので修正

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
swaggerUIで確認

## 補足
なし
2023-10-12 05:37:25 +00:00
Kentaro Fukunaga
be475c29a6 Merged PR 481: 音声ファイルアップロードできる権限制御を外す
## 概要
[Task2764: 音声ファイルアップロードできる権限制御を外す](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2764)

- Authorでなくとも音声ファイルのアップロードやタスク追加をするケースがあるとのことだったので対応しました。
   - アップロード要求APIと音声ファイルアップロード完了APIのRoleGuardを外しました

## レビューポイント
- ほか気になるケースあれば(この挙動はできるようにしなくて大丈夫?とか)

## 動作確認状況
- ローカルでツールを使ってアップロードでき、タスク追加できるところまで確認
2023-10-11 23:28:41 +00:00
makabe.t
d48afdbffd Merged PR 468: API実装(ワークフロー削除API)
## 概要
[Task2785: API実装(ワークフロー削除API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2785)

- ワークフロー削除APIとテストを実装しました。

## レビューポイント
- リポジトリの削除ロジックは適切か
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-11 09:14:41 +00:00
oura.a
5b0058b707 Merged PR 482: ビルドエラー修正
## 概要
[Task2839: ビルドエラー修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2839)

ビルドエラーを修正しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
ローカルでビルドが通ることを確認。

## 補足
なし
2023-10-11 08:44:07 +00:00
makabe.t
f4293213be Merged PR 475: 画面実装
## 概要
[Task2786: 画面実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2786)

- ワークフロー一覧画面からワークフローを削除する処理を追加しました。
- アカウント画面の実装について想定外の変更となっていた、部品の不要なクラスを削除しました。
  - クラスに当たっていた`required`はクラスではなくタグの属性だったため削除して属性に設定しています。

## レビューポイント
- 削除処理は適切か。
- アカウント画面の対応内容に問題はないか
  - `select`の`required`は不要だと思いますがいかがでしょうか?

## UIの変更
- [Task2786](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2786?csf=1&web=1&e=0TlIXM)

## 動作確認状況
- ローカルで確認
  - 実際にAPIで削除しての動作は未検証です。
2023-10-11 08:35:51 +00:00
saito.k
e733eb7668 Merge branch 'develop' 2023-10-10 17:32:49 +09:00
saito.k
3f018d1100 ほかブランチのマージで消えた実装をもとに戻す 2023-10-10 16:52:43 +09:00
saito.k
8e317f5aca Merged PR 478: POデモ修正対応
## 概要
[Task2821: POデモ修正対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2821)

- リテラル修正
  - 追加Popupのタイトル
  - AuthorIDの初期値
- ワークフロー追加・更新の重複チェックの条件指定を修正
  - undefined,nullのままだと条件指定しないという挙動になるためIsNull()を使用
- 該当ケースをテストに追加

## レビューポイント
- 特になし

## UIの変更
- タスクのなか

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-10-10 07:22:00 +00:00
水本 祐希
3af64fbf8e Merged PR 464: データ取得失敗時に各一覧表示画面の表示がそろっていない
## 概要
[Task2720: データ取得失敗時に各一覧表示画面の表示がそろっていない](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2720)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
  - 各一覧表示画面で値0件およびデータ取得エラー時に表示する挙動を統一
 ※Accountに関しては自アカウント情報の表示のため値0件はないとみて、特に本タスクの実装
は必要ないと判断しました。
→対応としてはデータ取得エラー時のスナックバー表示のみ
※Userも自アカウント情報が表示されるため上記と同じ実装にする予定でしたが、スナックバーと0件表示ができました。

![image (4).png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/464/attachments/image%20%284%29.png)

・〇はそれぞれの検証条件をクリアできているという意味です。
・「データ取得エラーとする」は通常ではAccount、License、Userは値が0件となることはなく、データベースエラーの場合のみと考えたので、値が0件=データ取得エラーとしました。
・「スナックバー表示のみ」はデータ取得エラーが発生した場合、スナックバー表示のみで対応するという意味です。
・「表示できない」はデータベースを切った状態だと、子アカウントのorderhistoryが表示されないため、表示できないと記載しました。

- dictationSlice.tsでbuilder.addCase(getSortColumnAsync.rejected, (state) => {
      state.apps.isLoading = false;
を実装したのは、修正前はデータベースを切った状態だとロードのぐるぐるが消えずにいました。原因はgetSortColumnAsyncにrejectの場合、isLordingをfalseにする実装がなかったためです。
以上のことから上記実装を追加しました。

- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2720?csf=1&web=1&e=MBNgO8

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-10 06:40:15 +00:00
oura.a
0e57d0cb81 Merged PR 471: DBマイグレーション
## 概要
[Task2805: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2805)

利用規約情報管理テーブルを作成しました。
ユーザーテーブル・ユーザー退避テーブルの同意済み利用規約バージョンカラムを、EULA、DPA用に分割しました。
また、ユーザーテーブルの変更に伴うソースコード修正を実施しました。

## レビューポイント
DB定義の認識が合っているか。

## UIの変更
なし

## 動作確認状況
migration up/downでの動作を確認
既存UTがすべて正常に動作することを確認

## 補足
なし
2023-10-10 04:59:57 +00:00
saito.k
7682c41ba5 Merged PR 462: ワークフロー追加ポップアップ実装
## 概要
[Task2740: ワークフロー追加ポップアップ実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2740)

- ワークフロー追加Popupを実装
- 多言語対応

## レビューポイント
- タイピスト・タイピストグループの変更処理
  - 選択・除外で処理を分けたが一緒にしたほうが良い?
- 各パラメータの変更処理
  - 値のチェックは足りているか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2740?csf=1&web=1&e=UHGFtv

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-10 00:57:11 +00:00
oura.a
aef6a35a7d Merged PR 466: [PBI1220残]退避テーブル対応(月の途中で退会したアカウントの集計対応)
## 概要
[Task2767: [PBI1220残]退避テーブル対応(月の途中で退会したアカウントの集計対応)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2767)

アカウント削除時に以下のテーブルの削除対象データを退避する処理を追加しました。
・ライセンステーブル
・ライセンス割り当て履歴テーブル

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
UT,ローカル動作確認を実施済み

## 補足
なし
2023-10-06 06:04:11 +00:00
oura.a
1eedc5c0be Merged PR 474: ビルドエラー修正
## 概要
[Task2815: ビルドエラー修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2815)

ビルドエラー修正

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
UT確認

## 補足
なし
2023-10-06 05:50:30 +00:00
oura.a
34cf80d636 Merged PR 469: API-IF実装
## 概要
[Task2806: API-IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2806)

以下APIのIFを実装しました。
・アカウント情報取得(未認証時最小アクセス)API
・利用規約情報取得API
・同意済バージョン更新API
またトークン生成APIのIFにコメントを追加しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
swaggerUIで動作確認

## 補足
なし
2023-10-06 05:17:43 +00:00
makabe.t
f70e266e85 Merged PR 465: API実装(ワークフロー更新API)
## 概要
[Task2776: API実装(ワークフロー更新API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2776)

- ワークフロー編集APIとテストを実装しました。

## レビューポイント
- リポジトリでのチェック処理は適切か
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-06 00:10:47 +00:00
makabe.t
983726eaf3 Merged PR 467: API IF実装
## 概要
[Task2784: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2784)

- ワークフロー削除APIのIFを実装しOpenAPI定義を更新しました。
- アプリで使用しない環境変数を削除し、チェック対象から外しました。
  - `KEY_VAULT_NAME`

## レビューポイント
- APIのパスは適切か
- 対応する環境変数は足りているか

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-10-05 09:41:20 +00:00
maruyama.t
a8bacefc5f Merged PR 461: APIテスト実施
## 概要
[Task2672: APIテスト実施](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2672)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
詳細なレコード(ライセンス、タスク、ユーザーグループなど)は別途dev動作確認にてデータを用意して行います。
現時点では、各レコードの削除はMySQL用にmigrationファイルにて記述したON DELETE CASCADEの機能にて削除を行う為、SQLiteを用いた本ユニットテストでは動作確認対象外としています。
- 影響範囲(他の機能にも影響があるか)
entityの定義(accounts - users)のON DELETE CASCADEを明記

## レビューポイント
- 本ユニットテストは正常系の動作確認と、それぞれのservice内部で異常発生時もAPI自体は正常終了し、[MANUAL_RECOVERY_REQUIRED]ログが表示されることの確認を主な目的として実装しています。

## UIの変更
なし

## 動作確認状況
- ローカルで確認(ユニットテスト)

## 補足
- 相談、参考資料などがあれば
2023-10-05 08:16:00 +00:00
makabe.t
964077a480 Merged PR 460: Author一覧取得API実装
## 概要
[Task2748: Author一覧取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2748)

- Author一覧を取得するAPIとテストを実装しました。

## レビューポイント
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-05 07:49:55 +00:00
makabe.t
c4c2038e6e Merged PR 458: ワークフロー追加API実装
## 概要
[Task2739: ワークフロー追加API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2739)

- ワークフロー追加APIとテストを実装しました。

## レビューポイント
- リポジトリのチェックロジックは適切か
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-05 00:20:42 +00:00
makabe.t
6baeb0b049 Merged PR 463: API IF実装
## 概要
[Task2775: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2775)

- ワークフロー編集APIのIFを実装し、OpenAPIを更新しました。

## レビューポイント
- パスは想定通りか
- パラメータは適切か

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-10-05 00:11:41 +00:00
maruyama.t
664e815ef9 Merged PR 429: API実装(アカウント削除API:メイン処理)
## 概要
[Task2670: API実装(アカウント削除API:メイン処理)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2670)

アカウント削除APIを実装しました。
APIとしてはこれで実装完了ですが、DBに外部キー制約をつけていないので、現時点で削除できるものは以下のみです。
・アカウントテーブル
・ADB2Cのユーザー
・BLOBストレージ

## レビューポイント
内容が重めの処理なので全体的に見ていただけると嬉しいです。

## UIの変更
なし

## 動作確認状況
ローカルで以下の動作を確認
・RDBのアカウントが削除される
・ADB2Cのユーザーが削除される
・RDBのユーザーが退避テーブルに登録される
・BLOBストレージが削除される

## 補足
UTは別タスクに切り出しているので、本タスクでは実装していません。
2023-10-03 06:20:36 +00:00
oura.a
d942dc73f1 Merged PR 457: Accountレコード削除時に同時に削除されるよう外部キー制約を追加
## 概要
[Task2766: Accountレコード削除時に同時に削除されるよう外部キー制約を追加](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2766)

各テーブルに外部キー制約を追加しました。
アカウント削除時にアカウントテーブルのデータを削除した際、ON DELETE CASCADEにより関連項目をすべて削除する用途になります。

## レビューポイント
設定内容は適切か。
設定箇所に過不足はないか。
マイグレーションの途中で元データの不整合などで失敗した場合、それまでに外部キー制約の追加・削除に成功していた分が巻き戻らなかったのですが、何か巻き戻す方法はあるでしょうか?

## UIの変更
なし

## 動作確認状況
ローカルでmigrate Up/Downの動作を確認

## 補足
なし
2023-10-03 02:22:19 +00:00
saito.k
088e6afc85 Merged PR 454: ワークフロー一覧画面
## 概要
[Task2735: ワークフロー一覧画面](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2735)

- ワークフロー一覧画面のデザイン反映
- 多言語対応
- 一覧取得API呼び出し

## レビューポイント
- デザイン反映に問題はないか
- フォルダ構成はこれでよいか
  - workflow配下に直置き

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2735?csf=1&web=1&e=IelNET

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-03 02:15:57 +00:00
makabe.t
1cc7a0141d Merged PR 453: ワークフロー一覧取得API実装
## 概要
[Task2736: ワークフロー一覧取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2736)

- ワークフロー一覧取得APIとテストを実装しました

## レビューポイント
- リポジトリの取得処理は適切か(リレーションなど)
- ADB2Cからの取得処理は適切か
- サービスでのワークフローの整形処理は適切か
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-03 01:14:18 +00:00
makabe.t
65f80b9a5b Merged PR 459: パイプラインテストエラー修正
## 概要
[Task2773: パイプラインテストエラー修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2773)

- パイプラインでのテストエラー対応のため環境変数のチェックを外しました。

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-02 08:11:36 +00:00
makabe.t
3e0c483b57 Merged PR 456: NestJSの環境変数を整理してバリデーションを修正
## 概要
[Task2769: NestJSの環境変数を整理してバリデーションを修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2769)

- 非必須の環境変数をチェックしないようにオプショナルを修正しました
- ローカルでのDBマイグレーションに必要なため、コンテナ起動時の`.env`ファイル読み込みを追加しました。
- 環境変数についてDB関連項目を残し、すべて`.env.local`に移動しました。

## レビューポイント
- 環境変数に対するチェックのオプショナル設定は適切か
- 環境変数をlocalに移動させたが問題ないか。

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
## 補足
- 不足している環境変数についてレビュー完了後にAppService、Wikiを整備しておきます。
2023-10-02 07:13:34 +00:00
makabe.t
90a4d99cf5 Merged PR 446: DBマイグレーション
## 概要
[Task2733: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2733)

- 以下のテーブルを追加するマイグレーションファイルを追加しました。
  - ワークフローテーブル
  - ルーティング候補テーブル

## レビューポイント
- テーブル名、カラム名は適切か
- 外部キー制約は適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
  - migurate up/down
2023-10-02 01:45:04 +00:00
水本 祐希
5cfe069b58 Merged PR 444: 画面実装(アカウント削除成功ページ)
## 概要
[Task2715: 画面実装(アカウント削除成功ページ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2715)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
・アカウント削除成功後に、アカウント削除成功ページに遷移するよう実装
・ログオフ状態にする

- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
・レイアウトやメッセージの文言
・ログオフ状態にするタイミング
→Back to TOP Pageを押下時にログオフ状態になるようにしています
・Delete Accountボタン(ポップアップ上の)押下時のページ遷移のコード
・その他、漏れがないか

- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2715?csf=1&web=1&e=0M85t6

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-10-02 01:19:18 +00:00
saito.k
0bcc518db1 Merge branch 'develop' 2023-09-29 15:33:34 +09:00
oura.a
98e207f19f Merged PR 455: ユーザー退避テーブル修正
## 概要
[Task2768: ユーザー退避テーブル修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2768)

ユーザー退避テーブルに対して以下の修正を行いました。
・accepted_terms_versionのNOT NULLを削除
 (オリジナルのユーザーテーブルで後から修正を入れていたのですが、退避テーブルへの反映が漏れていました)
・DEFAULTを削除
・作成時刻などにオリジナルテーブルのものである旨のコメントを追加
・archived_atカラムを追加

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
ローカルで動作確認済み

## 補足
なし
2023-09-29 05:44:00 +00:00
saito.k
3e90261ecc エラーラベルのデザインを修正 2023-09-29 14:41:05 +09:00
oura.a
d016242bab Merged PR 452: DBマイグレーション(ライセンス系の退避テーブル作成)
## 概要
[Task2765: DBマイグレーション(ライセンス系の退避テーブル作成)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2765)

以下テーブルの退避用テーブルを作成しました。
・ライセンス
・ライセンス割り当て履歴

## レビューポイント
保持するべきではない情報は持っていないか。

## UIの変更
なし

## 動作確認状況
ローカルで動作確認済み

## 補足
両テーブルとも、もともとのテーブルをほぼそのままの形で作成しています。
(idのAUTO_INCREMENTだけ外しています)
2023-09-29 02:51:49 +00:00
makabe.t
879169c3c7 Merged PR 450: ワークフローAPI IF実装
## 概要
[Task2737: ワークフローAPI IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2737)

- Workflow関連で以下のAPIIFを実装し、OpenAPIを更新しました。
  - ワークフロー一覧取得API
  - ワークフロー追加API
  - Author一覧取得API

## レビューポイント
- パラメータは想定通りか
- バリデーションは適切か
- パスは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-09-28 10:06:51 +00:00
oura.a
423e5ab1e3 Merged PR 445: DBマイグレーション(削除ユーザの情報退避テーブル)
## 概要
[Task2682: DBマイグレーション(削除ユーザの情報退避テーブル)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2682)

削除ユーザー退避テーブルを作成しました。
license_allocation_historyテーブルにaccountIdのカラムを追加しました。
また、ライセンス割り当て・割り当て解除時にlicense_allocation_historyテーブルにaccountIdを登録するようにしました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
ローカルでUT、動作確認実施済み

## 補足
削除ユーザー退避テーブルは現在のユーザーテーブルをほぼそのままの形で作成しています。
(idのAUTO_INCREMENTだけ外しています)
2023-09-28 08:16:20 +00:00
makabe.t
ded673ec74 Merged PR 448: NestJSの環境変数をバリデータでチェックする
## 概要
[Task2729: NestJSの環境変数をバリデータでチェックする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2729)

- 環境変数のバリデータを実装しました。
  - 起動時にバリデータのチェックに失敗したらエラーとなるようにしています。

## レビューポイント
- チェック対象の環境変数は適切か
  - チェック内容は適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認

## 補足
- 参考:[環境変数をバリデーションしたい](https://zenn.dev/waddy/articles/nestjs-configuration-service#5.-%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%82%92%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%97%E3%81%9F%E3%81%84)
2023-09-28 07:18:09 +00:00
saito.k
deb08d81d2 コメントを修正 2023-09-28 15:22:30 +09:00
saito.k
f289bb3d19 エラーラベルの文言修正 2023-09-28 14:44:49 +09:00
saito.k
9a01eff837 Merged PR 449: [Sp18-2 or 19-1]翻訳情報を翻訳Excelに適用し、Webアプリにも適用する
## 概要
[Task2166: [Sp18-2 or 19-1]翻訳情報を翻訳Excelに適用し、Webアプリにも適用する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2166)

- 翻訳情報を取り込む

## レビューポイント
- 一通り画面は確認しましたが、各画面をざっと見ていただいて問題なさそうか確認していただきたいです。
- 文字数が変わったことにより、項目名が改行されているところがあるが、一行で表示できた方が良いでしょうか。
  - 個人的には問題ないと思っています。

## UIの変更
- 変更点が多いため、手元で動かして確認していただきたいです。

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-09-28 01:23:36 +00:00
oura.a
ba7ef1b4c6 Merged PR 439: [PBI1197残]ドロップダウンの挙動について統一する
## 概要
[Task2713: [PBI1197残]ドロップダウンの挙動について統一する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2713)

ドロップダウンの選択肢表示を修正しました。

## レビューポイント
なし

## UIの変更
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2713?csf=1&web=1&e=OyuhN1

## 動作確認状況
ローカルで動作確認済み

## 補足
なし
2023-09-27 08:40:26 +00:00
saito.k
de13753ef6 Merged PR 447: [Sp18-2 or 19-1]翻訳情報を翻訳Excelに適用し、Webアプリにも適用する
## 概要
[Task2166: [Sp18-2 or 19-1]翻訳情報を翻訳Excelに適用し、Webアプリにも適用する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2166)

- 不要な文言を削除
- 削除した文言が使用されている箇所を修正

## レビューポイント
- 特になし

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-09-27 08:12:25 +00:00
saito.k
8265ca38c8 Merged PR 440: 画面実装(テンプレートファイルアップロードPopup)
## 概要
[Task2656: 画面実装(テンプレートファイルアップロードPopup)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2656)

- テンプレートファイルアップロードのAPI呼び出し周りを実装
  - SASトークン付きURL取得
  - Blobストレージへファイルアップロード
  - アップロード完了
- server側
  - `helmet`の`connect-src`を修正
  - SASトークン付きURLが想定と違っていたため修正
  - DBに保存するURLが想定と違っていたため修正

## レビューポイント
- `connect-src`の`self`以外はローカル環境のみの設定でよさそう?
- Popupの挙動で不足している箇所はあるか
  - アップロードファイルでチェックすべき内容等

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2656?csf=1&web=1&e=iU1huG

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-09-27 06:36:24 +00:00
水本 祐希
bf4dc1d717 Merged PR 443: 画面実装(アカウント削除確認ポップアップ)マージ用
## 概要
[Task2738: 画面実装(アカウント削除確認ポップアップ)マージ用](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2738)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-09-26 01:25:39 +00:00
水本 祐希
1a0edee5c9 Merged PR 415: 画面実装(アカウント削除確認ポップアップ)
## 概要
[Task2669: 画面実装(アカウント削除確認ポップアップ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2669)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
アカウント削除ボタンの挙動を実装

- このPull Requestでの対象/対象外
・削除後のページ遷移は対象外

- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2669?csf=1&web=1&e=VbkLlR

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-09-26 00:52:46 +00:00
saito.k
9ca4ae61f8 Merged PR 434: 画面実装(テンプレートファイルアップロードPopupデザイン)
## 概要
[Task2664: 画面実装(テンプレートファイルアップロードPopupデザイン)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2664)

- デザイン反映
- ファイルピッカーからファイル取得→storeに保存

## レビューポイント
- デザイン反映に不備はあるか
- 想定としてstoreに保持したfileを、Operationsでblobにアップロードする流れにしようとしているがよさそうか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2664?csf=1&web=1&e=optFai

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-09-25 07:53:45 +00:00
makabe.t
ecc44e58e0 Merged PR 438: API実装(テンプレートファイルアップロード完了API)
## 概要
[Task2655: API実装(テンプレートファイルアップロード完了API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2655)

- テンプレートファイルのアップロード完了APIとテストを実装しました。

## レビューポイント
- テストケースは適切か
- 保存時のリポジトリ処理は適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-09-25 07:50:19 +00:00
makabe.t
f994c23b51 Merged PR 432: API実装(テンプレートファイルアップロード先取得API)
## 概要
[Task2654: API実装(テンプレートファイルアップロード先取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2654)

- テンプレートファイルアップロード先取得APIとテストを実装しました。
  - フォルダパス+SASトークンの形式で返却する。

## レビューポイント
- 返却URLは適切か
- BlobServiceでSASトークン発行を既存のメソッドとは別で用意したが構成は適切か
- UT用にBlobServiceのoverrideにメソッドを追加したが問題ないか。
- テストケースは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-09-25 05:45:29 +00:00
saito.k
3f4d4ec436 Merged PR 427: 画面実装(テンプレートファイル一覧画面)
## 概要
[Task2651: 画面実装(テンプレートファイル一覧画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2651)

- テンプレートファイル一覧画面を実装

## レビューポイント
- 取得方法やstoreの構成は問題ないか

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2651?csf=1&web=1&e=MAaOJd

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-09-22 07:36:23 +00:00
oura.a
f120f4f7e5 Merged PR 436: [PBI1197残]画面レイアウトについて確認する
## 概要
[Task2712: [PBI1197残]画面レイアウトについて確認する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2712)

アカウント情報画面について、以下のデザイン修正を実施しました。
・「Save changes」ボタンを右側に移動
・表内の値が長かった場合に三点リーダでの省略表示から、改行して全体を表示する

## レビューポイント
なし

## UIの変更
https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2712?csf=1&web=1&e=mOV4KF

## 動作確認状況
ローカルで動作確認済み

## 補足
なし
2023-09-22 07:15:54 +00:00
iwata
409a021cdb Merge branch 'develop' into main 2023-09-22 14:25:14 +09:00
makabe
19f1997bd6 Merge branch 'develop' into main 2023-09-21 10:53:01 +09:00
x.yumoto.k
3ba1350bbd Merge branch 'develop' 2023-09-15 14:46:13 +09:00
oura.a
3b02f709b2 Merge branch 'develop' into main 2023-09-13 11:30:38 +09:00
makabe
6fd646f753 Merge branch 'develop' into main 2023-09-11 15:52:17 +09:00
maruyama.t
0e800c6aec Merge branch 'develop' into main 2023-09-07 11:22:32 +09:00
oura.a
2f5daa46f5 Merge remote-tracking branch 'origin/develop' into main 2023-09-01 15:25:00 +09:00
saito.k
7430ab5715 Merge branch 'develop' 2023-08-24 12:19:06 +09:00
saito.k
fa1b3aa5a0 Merge branch 'develop' 2023-08-24 11:04:19 +09:00
x.yumoto.k
faac4bcdb8 Merge branch 'develop' 2023-08-08 13:24:51 +09:00
x.yumoto.k
d4a2922ae8 Merge branch 'develop' 2023-08-04 14:50:59 +09:00
斎藤 快斗
3dc0dd4fdb Deleted azure-pipelines.yml 2023-01-27 02:44:34 +00:00
斎藤 快斗
8a76b2adb5 Set up CI with Azure Pipelines
[skip ci]
2023-01-27 02:42:10 +00:00
784 changed files with 189297 additions and 12624 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
environment_building_tools/logfile.log

View File

@ -0,0 +1,29 @@
#ビルドイメージ
FROM node:18.17.1-buster AS build-container
WORKDIR /app
RUN mkdir dictation_function
COPY dictation_function/ dictation_function/
RUN npm install --force -g n && n 18.17.1 \
&& cd dictation_function \
&& npm ci \
&& npm run build \
&& cd ..
# 成果物イメージ
FROM mcr.microsoft.com/azure-functions/node:4-node18
WORKDIR /home/site/wwwroot
RUN mkdir build \
&& mkdir dist \
&& mkdir node_modules
COPY --from=build-container app/dictation_function/dist/ dist/
COPY --from=build-container app/dictation_function/node_modules/ node_modules/
COPY --from=build-container app/dictation_function/.env ./
COPY --from=build-container app/dictation_function/host.json ./
COPY --from=build-container app/dictation_function/package.json ./
ARG BUILD_VERSION
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
BUILD_VERSION=${BUILD_VERSION}

View File

@ -20,4 +20,6 @@ RUN mkdir build \
COPY --from=build-container app/dictation_server/dist/ dist/
COPY --from=build-container app/dictation_server/.env ./
COPY --from=build-container app/dictation_server/node_modules/ node_modules/
ARG BUILD_VERSION
ENV BUILD_VERSION=${BUILD_VERSION}
CMD ["node", "./dist/main.js" ]

View File

@ -1,5 +1,4 @@
# Pipeline側でKeyVaultやDocker、AppService等に対する操作権限を持ったServiceConenctionを作成し、
# 環境変数 AZURE_SERVICE_CONNECTION の値としてServiceConenction名を設定しておくこと
# Pipeline側でKeyVaultやDocker、AppService等に対する操作権限を持ったServiceConenctionを作成しておくこと
# また、環境変数 STATIC_DICTATION_DEPLOYMENT_TOKEN の値として静的WebAppsのデプロイトークンを設定しておくこと
trigger:
tags:
@ -16,15 +15,15 @@ jobs:
clean: true
fetchDepth: 1
persistCredentials: true
# - script: |
# git fetch origin main:main
# if git merge-base --is-ancestor $(Build.SourceVersion) main; then
# echo "This commit is in the main branch."
# else
# echo "This commit is not in the main branch."
# exit 1
# fi
# displayName: 'タグが付けられたCommitがmainブランチに存在するか確認'
- script: |
git fetch origin main:main
if git merge-base --is-ancestor $(Build.SourceVersion) main; then
echo "This commit is in the main branch."
else
echo "This commit is not in the main branch."
exit 1
fi
displayName: 'タグが付けられたCommitがmainブランチに存在するか確認'
- job: backend_deploy
dependsOn: initialize
condition: succeeded('initialize')
@ -39,15 +38,17 @@ jobs:
inputs:
azureSubscription: 'omds-service-connection-prod'
appName: 'app-odms-dictation-prod'
deployToSlotOrASE: true
resourceGroupName: 'odms-prod-rg'
containers: 'crodmsregistrymaintenance.azurecr.io/odmscloud/test/dictation:$(Build.SourceVersion)'
slotName: 'staging'
containers: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation:$(Build.SourceVersion)'
- job: frontend_deploy
dependsOn: backend_deploy
condition: succeeded('backend_deploy')
displayName: Deploy Frontend Files
variables:
storageAccountName: saomdspipeline
containerName: staging
environment: production
pool:
vmImage: ubuntu-latest
steps:
@ -63,7 +64,7 @@ jobs:
az storage blob download \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(containerName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--file $(Build.SourcesDirectory)/$(Build.SourceVersion).zip
- task: Bash@3
@ -82,9 +83,54 @@ jobs:
is_static_export: false
verbose: false
azure_static_web_apps_api_token: $(STATIC_DICTATION_DEPLOYMENT_TOKEN)
- job: migration
- job: function_deploy
dependsOn: frontend_deploy
condition: succeeded('frontend_deploy')
displayName: function Deploy
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureFunctionAppContainer@1
inputs:
azureSubscription: 'omds-service-connection-prod'
appName: 'func-odms-dictation-prod'
imageName: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation_function:$(Build.SourceVersion)'
- job: smoke_test
dependsOn: function_deploy
condition: succeeded('function_deploy')
displayName: 'smoke test'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
# スモークテスト用にjobを確保
- job: swap_slot
dependsOn: smoke_test
condition: succeeded('smoke_test')
displayName: 'Swap Staging and Production'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureAppServiceManage@0
displayName: 'Azure App Service Manage: app-odms-dictation-prod'
inputs:
azureSubscription: 'omds-service-connection-prod'
action: 'Swap Slots'
WebAppName: 'app-odms-dictation-prod'
ResourceGroupName: 'odms-prod-rg'
SourceSlot: 'staging'
SwapWithProduction: true
- job: migration
dependsOn: swap_slot
condition: succeeded('swap_slot')
displayName: DB migration
pool:
name: odms-deploy-pipeline
@ -102,12 +148,12 @@ jobs:
inputs:
script: >2
# DB接続情報書き換え
sed -i -e "s/DB_NAME/$(db-name)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PASS/$(db-pass)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_USERNAME/$(db-user)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml
sql-migrate --version
cat ./dictation_server/db/dbconfig.yml
# migration実行
sql-migrate up -config=./dictation_server/db/dbconfig.yml -env=ci
sed -i -e "s/DB_NAME/$(db-name)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PASS/$(admin-db-pass)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_USERNAME/$(admin-db-user)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml
sql-migrate --version
cat ./dictation_server/db/dbconfig.yml
# migration実行
sql-migrate up -config=./dictation_server/db/dbconfig.yml -env=ci

View File

@ -0,0 +1,312 @@
# Pipeline側でKeyVaultやDocker、AppService等に対する操作権限を持ったServiceConenctionを作成しておくこと
# また、環境変数 STATIC_DICTATION_DEPLOYMENT_TOKEN の値として静的WebAppsのデプロイトークンを設定しておくこと
trigger:
branches:
include:
- release-ccb
tags:
include:
- stage-*
jobs:
- job: initialize
displayName: Initialize
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
persistCredentials: true
- script: |
git fetch origin release-ccb:release-ccb
if git merge-base --is-ancestor $(Build.SourceVersion) release-ccb; then
echo "This commit is in the release-ccb branch."
else
echo "This commit is not in the release-ccb branch."
exit 1
fi
displayName: 'タグが付けられたCommitがrelease-ccbブランチに存在するか確認'
- job: backend_test
dependsOn: initialize
condition: succeeded('initialize')
displayName: UnitTest
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
workingDirectory: dictation_server/.devcontainer
script: |
docker-compose -f pipeline-docker-compose.yml build
docker-compose -f pipeline-docker-compose.yml up -d
docker-compose exec -T dictation_server sudo npm ci
docker-compose exec -T dictation_server sudo npm run migrate:up:test
docker-compose exec -T dictation_server sudo npm run test
- job: backend_build
dependsOn: backend_test
condition: succeeded('backend_test')
displayName: Build And Push Backend Image
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_server
verbose: false
- task: Docker@0
displayName: build
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
dockerFile: DockerfileServerDictation.dockerfile
imageName: odmscloud/staging/dictation:$(Build.SourceVersion)
buildArguments: |
BUILD_VERSION=$(Build.SourceVersion)
- task: Docker@0
displayName: push
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
action: Push an image
imageName: odmscloud/staging/dictation:$(Build.SourceVersion)
- job: frontend_build_staging
dependsOn: backend_build
condition: succeeded('backend_build')
displayName: Build Frontend Files(staging)
variables:
storageAccountName: saomdspipeline
environment: staging
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_client
verbose: false
- task: Bash@3
displayName: Bash Script
inputs:
targetType: inline
script: cd dictation_client && npm run build:stg
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: dictation_client/build
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip'
replaceExistingArchive: true
- task: AzureCLI@2
inputs:
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--type block \
--overwrite \
--file $(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip
- job: function_test
dependsOn: frontend_build_staging
condition: succeeded('frontend_build_staging')
displayName: UnitTest
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
workingDirectory: dictation_function/.devcontainer
script: |
docker-compose -f pipeline-docker-compose.yml build
docker-compose -f pipeline-docker-compose.yml up -d
docker-compose exec -T dictation_function sudo npm ci
docker-compose exec -T dictation_function sudo npm run test
- job: function_build
dependsOn: function_test
condition: succeeded('function_test')
displayName: Build And Push Function Image
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_function
verbose: false
- task: Docker@0
displayName: build
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
dockerFile: DockerfileFunctionDictation.dockerfile
imageName: odmscloud/staging/dictation_function:$(Build.SourceVersion)
buildArguments: |
BUILD_VERSION=$(Build.SourceVersion)
- task: Docker@0
displayName: push
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
action: Push an image
imageName: odmscloud/staging/dictation_function:$(Build.SourceVersion)
- job: backend_deploy
dependsOn: function_build
condition: succeeded('function_build')
displayName: Backend Deploy
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureWebAppContainer@1
inputs:
azureSubscription: 'omds-service-connection-stg'
appName: 'app-odms-dictation-stg'
deployToSlotOrASE: true
resourceGroupName: 'stg-application-rg'
slotName: 'staging'
containers: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation:$(Build.SourceVersion)'
- job: frontend_deploy
dependsOn: backend_deploy
condition: succeeded('backend_deploy')
displayName: Deploy Frontend Files
variables:
storageAccountName: saomdspipeline
environment: staging
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureCLI@2
inputs:
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob download \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--file $(Build.SourcesDirectory)/$(Build.SourceVersion).zip
- task: Bash@3
displayName: Bash Script
inputs:
targetType: inline
script: unzip $(Build.SourcesDirectory)/$(Build.SourceVersion).zip -d $(Build.SourcesDirectory)/$(Build.SourceVersion)
- task: AzureStaticWebApp@0
displayName: 'Static Web App: '
inputs:
workingDirectory: '$(Build.SourcesDirectory)'
app_location: '/$(Build.SourceVersion)'
config_file_location: /dictation_client
skip_app_build: true
skip_api_build: true
is_static_export: false
verbose: false
azure_static_web_apps_api_token: $(STATIC_DICTATION_DEPLOYMENT_TOKEN)
- job: function_deploy
dependsOn: frontend_deploy
condition: succeeded('frontend_deploy')
displayName: Function Deploy
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureFunctionAppContainer@1
inputs:
azureSubscription: 'omds-service-connection-stg'
appName: 'func-odms-dictation-stg'
imageName: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation_function:$(Build.SourceVersion)'
- job: smoke_test
dependsOn: function_deploy
condition: succeeded('function_deploy')
displayName: 'smoke test'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
# スモークテスト用にjobを確保
- job: swap_slot
dependsOn: smoke_test
condition: succeeded('smoke_test')
displayName: 'Swap Staging and Production'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureAppServiceManage@0
displayName: 'Azure App Service Manage: app-odms-dictation-stg'
inputs:
azureSubscription: 'omds-service-connection-stg'
action: 'Swap Slots'
WebAppName: 'app-odms-dictation-stg'
ResourceGroupName: 'stg-application-rg'
SourceSlot: 'staging'
SwapWithProduction: true
- job: migration
dependsOn: swap_slot
condition: succeeded('swap_slot')
displayName: DB migration
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureKeyVault@2
displayName: 'Azure Key Vault: kv-odms-secret-stg'
inputs:
ConnectedServiceName: 'omds-service-connection-stg'
KeyVaultName: kv-odms-secret-stg
- task: CmdLine@2
displayName: migration
inputs:
script: >2
# DB接続情報書き換え
sed -i -e "s/DB_NAME_CCB/$(db-name-ccb)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PASS/$(admin-db-pass)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_USERNAME/$(admin-db-user)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml
sql-migrate --version
cat ./dictation_server/db/dbconfig.yml
# migration実行
sql-migrate up -config=./dictation_server/db/dbconfig.yml -env=ci_ccb

View File

@ -0,0 +1,363 @@
# Pipeline側でKeyVaultやDocker、AppService等に対する操作権限を持ったServiceConnectionを作成しておくこと
# また、環境変数 STATIC_DICTATION_DEPLOYMENT_TOKEN の値として静的WebAppsのデプロイトークンを設定しておくこと
trigger:
branches:
include:
- release-ph1-enhance
tags:
include:
- stage-*
jobs:
- job: initialize
displayName: Initialize
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
persistCredentials: true
- script: |
git fetch origin release-ph1-enhance:release-ph1-enhance
if git merge-base --is-ancestor $(Build.SourceVersion) release-ph1-enhance; then
echo "This commit is in the release-ph1-enhance branch."
else
echo "This commit is not in the release-ph1-enhance branch."
exit 1
fi
displayName: 'タグが付けられたCommitがrelease-ph1-enhanceブランチに存在するか確認'
- job: backend_test
dependsOn: initialize
condition: succeeded('initialize')
displayName: UnitTest
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
workingDirectory: dictation_server/.devcontainer
script: |
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose -f pipeline-docker-compose.yml build
docker-compose -f pipeline-docker-compose.yml up -d
docker-compose exec -T dictation_server sudo npm ci
docker-compose exec -T dictation_server sudo npm run migrate:up:test
docker-compose exec -T dictation_server sudo npm run test
- job: backend_build
dependsOn: backend_test
condition: succeeded('backend_test')
displayName: Build And Push Backend Image
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_server
verbose: false
- task: Docker@0
displayName: build
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
dockerFile: DockerfileServerDictation.dockerfile
imageName: odmscloud/staging/dictation:$(Build.SourceVersion)
buildArguments: |
BUILD_VERSION=$(Build.SourceVersion)
- task: Docker@0
displayName: push
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
action: Push an image
imageName: odmscloud/staging/dictation:$(Build.SourceVersion)
- job: frontend_build_staging
dependsOn: backend_build
condition: succeeded('backend_build')
displayName: Build Frontend Files(staging)
variables:
storageAccountName: saomdspipeline
environment: staging
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_client
verbose: false
- task: Bash@3
displayName: Bash Script
inputs:
targetType: inline
script: cd dictation_client && npm run build:stg
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: dictation_client/build
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip'
replaceExistingArchive: true
- task: AzureCLI@2
inputs:
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--type block \
--overwrite \
--file $(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip
- job: frontend_build_production
dependsOn: frontend_build_staging
condition: succeeded('frontend_build_staging')
displayName: Build Frontend Files(production)
variables:
storageAccountName: saomdspipeline
environment: production
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_client
verbose: false
- task: Bash@3
displayName: Bash Script
inputs:
targetType: inline
script: cd dictation_client && npm run build:prod
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: dictation_client/build
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip'
replaceExistingArchive: true
- task: AzureCLI@2
inputs:
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--type block \
--overwrite \
--file $(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip
- job: function_test
dependsOn: frontend_build_production
condition: succeeded('frontend_build_production')
displayName: UnitTest
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
workingDirectory: dictation_function/.devcontainer
script: |
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose -f pipeline-docker-compose.yml build
docker-compose -f pipeline-docker-compose.yml up -d
docker-compose exec -T dictation_function sudo npm ci
docker-compose exec -T dictation_function sudo npm run test
- job: function_build
dependsOn: function_test
condition: succeeded('function_test')
displayName: Build And Push Function Image
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_function
verbose: false
- task: Docker@0
displayName: build
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
dockerFile: DockerfileFunctionDictation.dockerfile
imageName: odmscloud/staging/dictation_function:$(Build.SourceVersion)
buildArguments: |
BUILD_VERSION=$(Build.SourceVersion)
- task: Docker@0
displayName: push
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
action: Push an image
imageName: odmscloud/staging/dictation_function:$(Build.SourceVersion)
- job: backend_deploy
dependsOn: function_build
condition: succeeded('function_build')
displayName: Backend Deploy
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureWebAppContainer@1
inputs:
azureSubscription: 'omds-service-connection-stg'
appName: 'app-odms-dictation-stg'
deployToSlotOrASE: true
resourceGroupName: 'stg-application-rg'
slotName: 'staging'
containers: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation:$(Build.SourceVersion)'
- job: frontend_deploy
dependsOn: backend_deploy
condition: succeeded('backend_deploy')
displayName: Deploy Frontend Files
variables:
storageAccountName: saomdspipeline
environment: staging
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureCLI@2
inputs:
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob download \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--file $(Build.SourcesDirectory)/$(Build.SourceVersion).zip
- task: Bash@3
displayName: Bash Script
inputs:
targetType: inline
script: unzip $(Build.SourcesDirectory)/$(Build.SourceVersion).zip -d $(Build.SourcesDirectory)/$(Build.SourceVersion)
- task: AzureStaticWebApp@0
displayName: 'Static Web App: '
inputs:
workingDirectory: '$(Build.SourcesDirectory)'
app_location: '/$(Build.SourceVersion)'
config_file_location: /dictation_client
skip_app_build: true
skip_api_build: true
is_static_export: false
verbose: false
azure_static_web_apps_api_token: $(STATIC_DICTATION_DEPLOYMENT_TOKEN)
- job: function_deploy
dependsOn: frontend_deploy
condition: succeeded('frontend_deploy')
displayName: Function Deploy
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureFunctionAppContainer@1
inputs:
azureSubscription: 'omds-service-connection-stg'
appName: 'func-odms-dictation-stg'
imageName: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation_function:$(Build.SourceVersion)'
- job: smoke_test
dependsOn: function_deploy
condition: succeeded('function_deploy')
displayName: 'smoke test'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
# スモークテスト用にjobを確保
- job: swap_slot
dependsOn: smoke_test
condition: succeeded('smoke_test')
displayName: 'Swap Staging and Production'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureAppServiceManage@0
displayName: 'Azure App Service Manage: app-odms-dictation-stg'
inputs:
azureSubscription: 'omds-service-connection-stg'
action: 'Swap Slots'
WebAppName: 'app-odms-dictation-stg'
ResourceGroupName: 'stg-application-rg'
SourceSlot: 'staging'
SwapWithProduction: true
- job: migration
dependsOn: swap_slot
condition: succeeded('swap_slot')
displayName: DB migration
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureKeyVault@2
displayName: 'Azure Key Vault: kv-odms-secret-stg'
inputs:
ConnectedServiceName: 'omds-service-connection-stg'
KeyVaultName: kv-odms-secret-stg
- task: CmdLine@2
displayName: migration
inputs:
script: >2
# DB接続情報書き換え
sed -i -e "s/DB_NAME/$(db-name-ph1-enhance)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PASS/$(admin-db-pass)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_USERNAME/$(admin-db-user)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml
sql-migrate --version
cat ./dictation_server/db/dbconfig.yml
# migration実行
sql-migrate up -config=./dictation_server/db/dbconfig.yml -env=ci

View File

@ -1,234 +0,0 @@
# Pipeline側でKeyVaultやDocker、AppService等に対する操作権限を持ったServiceConenctionを作成し、
# 環境変数 AZURE_SERVICE_CONNECTION の値としてServiceConenction名を設定しておくこと
# また、環境変数 STATIC_DICTATION_DEPLOYMENT_TOKEN の値として静的WebAppsのデプロイトークンを設定しておくこと
trigger:
# branches:
# include:
# - main
tags:
include:
- stage-*
jobs:
- job: initialize
displayName: Initialize
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
persistCredentials: true
# - script: |
# git fetch origin main:main
# if git merge-base --is-ancestor $(Build.SourceVersion) main; then
# echo "This commit is in the main branch."
# else
# echo "This commit is not in the main branch."
# exit 1
# fi
# displayName: 'タグが付けられたCommitがmainブランチに存在するか確認'
- job: backend_build
dependsOn: initialize
condition: succeeded('initialize')
displayName: Build And Push Backend Image
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_server
verbose: false
- task: AzureKeyVault@2
displayName: 'Azure Key Vault: kv-odms-secret-stg'
inputs:
ConnectedServiceName: 'omds-service-connection-stg'
KeyVaultName: kv-odms-secret-stg
SecretsFilter: '*'
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
script: |
cd dictation_server
npm run test
env:
JWT_PUBLIC_KEY: $(token-public-key)
SENDGRID_API_KEY: $(sendgrid-api-key)
NOTIFICATION_HUB_NAME: $(notification-hub-name)
NOTIFICATION_HUB_CONNECT_STRING: $(notification-hub-connect-string)
STORAGE_ACCOUNT_NAME_US: $(storage-account-name-us)
STORAGE_ACCOUNT_NAME_AU: $(storage-account-name-au)
STORAGE_ACCOUNT_NAME_EU: $(storage-account-name-eu)
STORAGE_ACCOUNT_KEY_US: $(storage-account-key-us)
STORAGE_ACCOUNT_KEY_AU: $(storage-account-key-au)
STORAGE_ACCOUNT_KEY_EU: $(storage-account-key-eu)
STORAGE_ACCOUNT_ENDPOINT_US: $(storage-account-endpoint-us)
STORAGE_ACCOUNT_ENDPOINT_AU: $(storage-account-endpoint-au)
STORAGE_ACCOUNT_ENDPOINT_EU: $(storage-account-endpoint-eu)
ADB2C_TENANT_ID: $(adb2c-tenant-id)
ADB2C_CLIENT_ID: $(adb2c-client-id)
ADB2C_CLIENT_SECRET: $(adb2c-client-secret)
- task: Docker@0
displayName: build
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
dockerFile: DockerfileServerDictation.dockerfile
imageName: odmscloud/test/dictation:$(Build.SourceVersion)
- task: Docker@0
displayName: push
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
action: Push an image
imageName: odmscloud/test/dictation:$(Build.SourceVersion)
- job: backend_deploy
dependsOn: backend_build
condition: succeeded('backend_build')
displayName: Backend Deploy
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
# - task: AzureRmWebAppDeployment@4
# inputs:
# ConnectionType: 'AzureRM'
# azureSubscription: 'omds-service-connection-stg'
# appType: 'webAppContainer'
# WebAppName: 'app-odms-dictation-stg'
# ResourceGroupName: 'stg-application-rg'
# DockerNamespace: 'crodmsregistrymaintenance.azurecr.io'
# DockerRepository: 'odmscloud/test/dictation'
# DockerImageTag: '$(Build.SourceVersion)'
- job: frontend_build
dependsOn: initialize
condition: succeeded('initialize')
displayName: Build Frontend Files
variables:
storageAccountName: saomdspipeline
containerName: staging
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_client
verbose: false
- task: Bash@3
displayName: Bash Script
inputs:
targetType: inline
script: cd dictation_client && npm run build
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: dictation_client/build
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip'
replaceExistingArchive: true
- task: AzureCLI@2
inputs:
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(containerName) \
--name $(Build.SourceVersion).zip \
--type block \
--overwrite \
--file $(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip
- job: frontend_deploy
dependsOn: frontend_build
condition: succeeded('frontend_build')
displayName: Deploy Frontend Files
variables:
storageAccountName: saomdspipeline
containerName: staging
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
# - task: AzureKeyVault@2
# displayName: 'Azure Key Vault: kv-odms-secret-stg'
# inputs:
# ConnectedServiceName: 'omds-service-connection-stg'
# KeyVaultName: kv-odms-secret-stg
# SecretsFilter: '*'
# - task: AzureCLI@2
# inputs:
# azureSubscription: 'omds-service-connection-stg'
# scriptType: 'bash'
# scriptLocation: 'inlineScript'
# inlineScript: |
# az storage blob download \
# --auth-mode login \
# --account-name $(storageAccountName) \
# --container-name $(containerName) \
# --name $(Build.SourceVersion).zip \
# --file $(Build.SourcesDirectory)/$(Build.SourceVersion).zip
# - task: Bash@3
# displayName: Bash Script
# inputs:
# targetType: inline
# script: unzip $(Build.SourcesDirectory)/$(Build.SourceVersion).zip -d $(Build.SourcesDirectory)/$(Build.SourceVersion)
# - task: AzureStaticWebApp@0
# displayName: 'Static Web App: '
# inputs:
# workingDirectory: '$(Build.SourcesDirectory)'
# app_location: '/$(Build.SourceVersion)'
# config_file_location: /dictation_client
# skip_app_build: true
# skip_api_build: true
# is_static_export: false
# verbose: false
# azure_static_web_apps_api_token: $(STATIC_DICTATION_DEPLOYMENT_TOKEN)
- job: migration
condition: succeeded('initialize')
displayName: DB migration
dependsOn:
- initialize
- backend_deploy
- frontend_deploy
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
# - task: AzureKeyVault@2
# displayName: 'Azure Key Vault: kv-odms-secret-stg'
# inputs:
# ConnectedServiceName: 'omds-service-connection-stg'
# KeyVaultName: kv-odms-secret-stg
# - task: CmdLine@2
# displayName: migration
# inputs:
# script: >2
# # DB接続情報書き換え
# sed -i -e "s/DB_NAME/$(db-name)/g" ./dictation_server/db/dbconfig.yml
# sed -i -e "s/DB_PASS/$(db-pass)/g" ./dictation_server/db/dbconfig.yml
# sed -i -e "s/DB_USERNAME/$(db-user)/g" ./dictation_server/db/dbconfig.yml
# sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml
# sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml
# sql-migrate --version
# cat ./dictation_server/db/dbconfig.yml
# # migration実行
# sql-migrate up -config=./dictation_server/db/dbconfig.yml -env=ci

View File

@ -1,5 +1,4 @@
# Pipeline側でKeyVaultやDocker、AppService等に対する操作権限を持ったServiceConenctionを作成し、
# 環境変数 AZURE_SERVICE_CONNECTION の値としてServiceConenction名を設定しておくこと
# Pipeline側でKeyVaultやDocker、AppService等に対する操作権限を持ったServiceConenctionを作成しておくこと
# また、環境変数 STATIC_DICTATION_DEPLOYMENT_TOKEN の値として静的WebAppsのデプロイトークンを設定しておくこと
trigger:
branches:
@ -28,9 +27,33 @@ jobs:
exit 1
fi
displayName: 'タグが付けられたCommitがmainブランチに存在するか確認'
- job: backend_build
- job: backend_test
dependsOn: initialize
condition: succeeded('initialize')
displayName: UnitTest
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
workingDirectory: dictation_server/.devcontainer
script: |
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose -f pipeline-docker-compose.yml build
docker-compose -f pipeline-docker-compose.yml up -d
docker-compose exec -T dictation_server sudo npm ci
docker-compose exec -T dictation_server sudo npm run migrate:up:test
docker-compose exec -T dictation_server sudo npm run test
- job: backend_build
dependsOn: backend_test
condition: succeeded('backend_test')
displayName: Build And Push Backend Image
pool:
name: odms-deploy-pipeline
@ -44,77 +67,29 @@ jobs:
command: ci
workingDir: dictation_server
verbose: false
- task: AzureKeyVault@2
displayName: 'Azure Key Vault: kv-odms-secret-stg'
inputs:
ConnectedServiceName: $(AZURE_SERVICE_CONNECTION)
KeyVaultName: kv-odms-secret-stg
SecretsFilter: '*'
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
script: |
cd dictation_server
npm run test
env:
JWT_PUBLIC_KEY: $(token-public-key)
SENDGRID_API_KEY: $(sendgrid-api-key)
NOTIFICATION_HUB_NAME: $(notification-hub-name)
NOTIFICATION_HUB_CONNECT_STRING: $(notification-hub-connect-string)
STORAGE_ACCOUNT_NAME_US: $(storage-account-name-us)
STORAGE_ACCOUNT_NAME_AU: $(storage-account-name-au)
STORAGE_ACCOUNT_NAME_EU: $(storage-account-name-eu)
STORAGE_ACCOUNT_KEY_US: $(storage-account-key-us)
STORAGE_ACCOUNT_KEY_AU: $(storage-account-key-au)
STORAGE_ACCOUNT_KEY_EU: $(storage-account-key-eu)
STORAGE_ACCOUNT_ENDPOINT_US: $(storage-account-endpoint-us)
STORAGE_ACCOUNT_ENDPOINT_AU: $(storage-account-endpoint-au)
STORAGE_ACCOUNT_ENDPOINT_EU: $(storage-account-endpoint-eu)
ADB2C_TENANT_ID: $(adb2c-tenant-id)
ADB2C_CLIENT_ID: $(adb2c-client-id)
ADB2C_CLIENT_SECRET: $(adb2c-client-secret)
- task: Docker@0
displayName: build
inputs:
azureSubscriptionEndpoint: $(AZURE_SERVICE_CONNECTION)
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
dockerFile: DockerfileServerDictation.dockerfile
imageName: $(Build.Repository.Name)/staging/dictation:$(Build.SourceVersion)
imageName: odmscloud/staging/dictation:$(Build.SourceVersion)
buildArguments: |
BUILD_VERSION=$(Build.SourceVersion)
- task: Docker@0
displayName: push
inputs:
azureSubscriptionEndpoint: $(AZURE_SERVICE_CONNECTION)
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
action: Push an image
imageName: $(Build.Repository.Name)/staging/dictation:$(Build.SourceVersion)
- job: backend_deploy
imageName: odmscloud/staging/dictation:$(Build.SourceVersion)
- job: frontend_build_staging
dependsOn: backend_build
condition: succeeded('backend_build')
displayName: Backend Deploy
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: $(AZURE_SERVICE_CONNECTION)
appType: 'webAppContainer'
WebAppName: 'app-odms-dictation-stg'
ResourceGroupName: 'stg-application-rg'
DockerNamespace: 'crodmsregistrymaintenance.azurecr.io'
DockerRepository: '$(Build.Repository.Name)/staging/dictation'
DockerImageTag: '$(Build.SourceVersion)'
- job: frontend_build
dependsOn: initialize
condition: succeeded('initialize')
displayName: Build Frontend Files
displayName: Build Frontend Files(staging)
variables:
storageAccountName: saomdspipeline
containerName: staging
environment: staging
pool:
name: odms-deploy-pipeline
steps:
@ -131,7 +106,7 @@ jobs:
displayName: Bash Script
inputs:
targetType: inline
script: cd dictation_client && npm run build
script: cd dictation_client && npm run build:stg
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: dictation_client/build
@ -141,46 +116,159 @@ jobs:
replaceExistingArchive: true
- task: AzureCLI@2
inputs:
azureSubscription: $(AZURE_SERVICE_CONNECTION)
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(containerName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--type block \
--overwrite \
--file $(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip
- job: frontend_deploy
dependsOn: frontend_build
condition: succeeded('frontend_build')
displayName: Deploy Frontend Files
- job: frontend_build_production
dependsOn: frontend_build_staging
condition: succeeded('frontend_build_staging')
displayName: Build Frontend Files(production)
variables:
storageAccountName: saomdspipeline
containerName: staging
environment: production
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureKeyVault@2
displayName: 'Azure Key Vault: kv-odms-secret-stg'
- task: Npm@1
displayName: npm ci
inputs:
ConnectedServiceName: $(AZURE_SERVICE_CONNECTION)
KeyVaultName: kv-odms-secret-stg
SecretsFilter: '*'
command: ci
workingDir: dictation_client
verbose: false
- task: Bash@3
displayName: Bash Script
inputs:
targetType: inline
script: cd dictation_client && npm run build:prod
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: dictation_client/build
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip'
replaceExistingArchive: true
- task: AzureCLI@2
inputs:
azureSubscription: $(AZURE_SERVICE_CONNECTION)
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--type block \
--overwrite \
--file $(Build.ArtifactStagingDirectory)/$(Build.SourceVersion).zip
- job: function_test
dependsOn: frontend_build_production
condition: succeeded('frontend_build_production')
displayName: UnitTest
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Bash@3
displayName: Bash Script (Test)
inputs:
targetType: inline
workingDirectory: dictation_function/.devcontainer
script: |
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose -f pipeline-docker-compose.yml build
docker-compose -f pipeline-docker-compose.yml up -d
docker-compose exec -T dictation_function sudo npm ci
docker-compose exec -T dictation_function sudo npm run test
- job: function_build
dependsOn: function_test
condition: succeeded('function_test')
displayName: Build And Push Function Image
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: Npm@1
displayName: npm ci
inputs:
command: ci
workingDir: dictation_function
verbose: false
- task: Docker@0
displayName: build
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
dockerFile: DockerfileFunctionDictation.dockerfile
imageName: odmscloud/staging/dictation_function:$(Build.SourceVersion)
buildArguments: |
BUILD_VERSION=$(Build.SourceVersion)
- task: Docker@0
displayName: push
inputs:
azureSubscriptionEndpoint: 'omds-service-connection-stg'
azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}'
action: Push an image
imageName: odmscloud/staging/dictation_function:$(Build.SourceVersion)
- job: backend_deploy
dependsOn: function_build
condition: succeeded('function_build')
displayName: Backend Deploy
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureWebAppContainer@1
inputs:
azureSubscription: 'omds-service-connection-stg'
appName: 'app-odms-dictation-stg'
deployToSlotOrASE: true
resourceGroupName: 'stg-application-rg'
slotName: 'staging'
containers: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation:$(Build.SourceVersion)'
- job: frontend_deploy
dependsOn: backend_deploy
condition: succeeded('backend_deploy')
displayName: Deploy Frontend Files
variables:
storageAccountName: saomdspipeline
environment: staging
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureCLI@2
inputs:
azureSubscription: 'omds-service-connection-stg'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob download \
--auth-mode login \
--account-name $(storageAccountName) \
--container-name $(containerName) \
--container-name $(environment) \
--name $(Build.SourceVersion).zip \
--file $(Build.SourcesDirectory)/$(Build.SourceVersion).zip
- task: Bash@3
@ -199,15 +287,57 @@ jobs:
is_static_export: false
verbose: false
azure_static_web_apps_api_token: $(STATIC_DICTATION_DEPLOYMENT_TOKEN)
- job: migration
condition: succeeded('initialize')
displayName: DB migration
dependsOn:
- initialize
- backend_deploy
- frontend_deploy
- job: function_deploy
dependsOn: frontend_deploy
condition: succeeded('frontend_deploy')
displayName: Function Deploy
pool:
name: db-migrate-pipelines
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureFunctionAppContainer@1
inputs:
azureSubscription: 'omds-service-connection-stg'
appName: 'func-odms-dictation-stg'
imageName: 'crodmsregistrymaintenance.azurecr.io/odmscloud/staging/dictation_function:$(Build.SourceVersion)'
- job: smoke_test
dependsOn: function_deploy
condition: succeeded('function_deploy')
displayName: 'smoke test'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
# スモークテスト用にjobを確保
- job: swap_slot
dependsOn: smoke_test
condition: succeeded('smoke_test')
displayName: 'Swap Staging and Production'
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
fetchDepth: 1
- task: AzureAppServiceManage@0
displayName: 'Azure App Service Manage: app-odms-dictation-stg'
inputs:
azureSubscription: 'omds-service-connection-stg'
action: 'Swap Slots'
WebAppName: 'app-odms-dictation-stg'
ResourceGroupName: 'stg-application-rg'
SourceSlot: 'staging'
SwapWithProduction: true
- job: migration
dependsOn: swap_slot
condition: succeeded('swap_slot')
displayName: DB migration
pool:
name: odms-deploy-pipeline
steps:
- checkout: self
clean: true
@ -215,19 +345,19 @@ jobs:
- task: AzureKeyVault@2
displayName: 'Azure Key Vault: kv-odms-secret-stg'
inputs:
ConnectedServiceName: $(AZURE_SERVICE_CONNECTION)
ConnectedServiceName: 'omds-service-connection-stg'
KeyVaultName: kv-odms-secret-stg
- task: CmdLine@2
displayName: migration
inputs:
script: >2
# DB接続情報書き換え
sed -i -e "s/DB_NAME/$(db-name)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PASS/$(db-pass)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_USERNAME/$(db-user)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml
sql-migrate --version
cat ./dictation_server/db/dbconfig.yml
# migration実行
sql-migrate up -config=./dictation_server/db/dbconfig.yml -env=ci
sed -i -e "s/DB_NAME/$(db-name)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PASS/$(admin-db-pass)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_USERNAME/$(admin-db-user)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml
sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml
sql-migrate --version
cat ./dictation_server/db/dbconfig.yml
# migration実行
sql-migrate up -config=./dictation_server/db/dbconfig.yml -env=ci

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,96 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"actionGroups_ag_manual_recovery_alerts_odms_dev_name": {
"type": "String"
},
"scheduledqueryrules_ManualRecoveryAlerts_name": {
"type": "String"
},
"sites_app_odms_dictation_dev_externalid": {
"type": "String"
}
},
"resources": [
{
"apiVersion": "2023-01-01",
"location": "Global",
"name": "[parameters('actionGroups_ag_manual_recovery_alerts_odms_dev_name')]",
"properties": {
"armRoleReceivers": [],
"automationRunbookReceivers": [],
"azureAppPushReceivers": [],
"azureFunctionReceivers": [],
"emailReceivers": [
{
"emailAddress": "saito.k@nds-tyo.co.jp",
"name": "テスト通知_-EmailAction-",
"useCommonAlertSchema": false
}
],
"enabled": true,
"eventHubReceivers": [],
"groupShortName": "手動復旧が必要なエラー",
"itsmReceivers": [],
"logicAppReceivers": [],
"smsReceivers": [],
"voiceReceivers": [],
"webhookReceivers": []
},
"tags": {
"Environment": "develop",
"Project": "ODMS",
"ms-resource-usage": "ManualRecoveryAlerts"
},
"type": "microsoft.insights/actionGroups"
},
{
"apiVersion": "2023-03-15-preview",
"dependsOn": [
"[resourceId('microsoft.insights/actionGroups', parameters('actionGroups_ag_manual_recovery_alerts_odms_dev_name'))]"
],
"location": "japaneast",
"name": "[parameters('scheduledqueryrules_ManualRecoveryAlerts_name')]",
"properties": {
"actions": {
"actionGroups": [
"[resourceId('microsoft.insights/actionGroups', parameters('actionGroups_ag_manual_recovery_alerts_odms_dev_name'))]"
],
"actionProperties": {},
"customProperties": {}
},
"autoMitigate": false,
"criteria": {
"allOf": [
{
"dimensions": [],
"failingPeriods": {
"minFailingPeriodsToAlert": 1,
"numberOfEvaluationPeriods": 1
},
"operator": "GreaterThanOrEqual",
"query": "AppServiceConsoleLogs | where Level == \"Error\" and ResultDescription contains \"[MANUAL_RECOVERY_REQUIRED]\"\n",
"threshold": 1.0,
"timeAggregation": "Count"
}
]
},
"description": "手動復旧が必要なエラーを検知し、設定されたメールアドレスに通知を行う",
"displayName": "[parameters('scheduledqueryrules_ManualRecoveryAlerts_name')]",
"enabled": true,
"evaluationFrequency": "PT1M",
"scopes": [
"[parameters('sites_app_odms_dictation_dev_externalid')]"
],
"severity": 0,
"targetResourceTypes": [
"Microsoft.Web/sites"
],
"windowSize": "PT1M"
},
"type": "microsoft.insights/scheduledqueryrules"
}
],
"variables": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -8,17 +8,15 @@
},
"resources": [
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"location": "Japan East",
"name": "[parameters('namespaces_ntfns_odms_dev_name')]",
"properties": {
"createdAt": "2023-07-24T01:26:14.6870000Z",
"critical": false,
"enabled": true,
"namespaceType": "NotificationHub",
"networkAcls": {},
"provisioningState": "Succeeded",
"serviceBusEndpoint": "[concat('https://', parameters('namespaces_ntfns_odms_dev_name'), '.servicebus.windows.net:443/')]",
"status": "Active",
"updatedAt": "2023-07-24T01:26:14.7370000Z"
"publicNetworkAccess": "Enabled",
"status": "Created"
},
"sku": {
"name": "Free"
@ -26,11 +24,10 @@
"type": "Microsoft.NotificationHubs/namespaces"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_dev_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_dev_name'), '/RootManageSharedAccessKey')]",
"properties": {
"rights": [
@ -39,32 +36,31 @@
"Send"
]
},
"type": "Microsoft.NotificationHubs/namespaces/AuthorizationRules"
"type": "Microsoft.NotificationHubs/namespaces/authorizationRules"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_dev_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_dev_name'), '/ntf-odms-dev')]",
"properties": {
"authorizationRules": [],
"name": "ntf-odms-dev",
"registrationTtl": "10675199.02:48:05.4775807"
},
"tags": {
"Project": "OMDS",
"environment": "develop"
},
"type": "Microsoft.NotificationHubs/namespaces/NotificationHubs"
"type": "Microsoft.NotificationHubs/namespaces/notificationHubs"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces/NotificationHubs', parameters('namespaces_ntfns_odms_dev_name'), 'ntf-odms-dev')]",
"[resourceId('Microsoft.NotificationHubs/namespaces/notificationHubs', parameters('namespaces_ntfns_odms_dev_name'), 'ntf-odms-dev')]",
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_dev_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_dev_name'), '/ntf-odms-dev/DefaultFullSharedAccessSignature')]",
"properties": {
"rights": [
@ -73,22 +69,21 @@
"Send"
]
},
"type": "Microsoft.NotificationHubs/namespaces/NotificationHubs/AuthorizationRules"
"type": "Microsoft.NotificationHubs/namespaces/notificationHubs/authorizationRules"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces/NotificationHubs', parameters('namespaces_ntfns_odms_dev_name'), 'ntf-odms-dev')]",
"[resourceId('Microsoft.NotificationHubs/namespaces/notificationHubs', parameters('namespaces_ntfns_odms_dev_name'), 'ntf-odms-dev')]",
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_dev_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_dev_name'), '/ntf-odms-dev/DefaultListenSharedAccessSignature')]",
"properties": {
"rights": [
"Listen"
]
},
"type": "Microsoft.NotificationHubs/namespaces/NotificationHubs/AuthorizationRules"
"type": "Microsoft.NotificationHubs/namespaces/notificationHubs/authorizationRules"
}
],
"variables": {}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,39 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"actionGroups__ag_manual_recovery_alerts_odms_stg_name": {
"type": "String"
}
},
"resources": [
{
"apiVersion": "2023-01-01",
"location": "Global",
"name": "[parameters('actionGroups__ag_manual_recovery_alerts_odms_stg_name')]",
"properties": {
"armRoleReceivers": [],
"automationRunbookReceivers": [],
"azureAppPushReceivers": [],
"azureFunctionReceivers": [],
"emailReceivers": [
{
"emailAddress": "saito.k@nds-tyo.co.jp",
"name": "Alert Notification Address_-EmailAction-",
"useCommonAlertSchema": false
}
],
"enabled": true,
"eventHubReceivers": [],
"groupShortName": "Žè“®•œŒƒGƒ‰<C692>[",
"itsmReceivers": [],
"logicAppReceivers": [],
"smsReceivers": [],
"voiceReceivers": [],
"webhookReceivers": []
},
"type": "microsoft.insights/actionGroups"
}
],
"variables": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -8,17 +8,15 @@
},
"resources": [
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"location": "Japan East",
"name": "[parameters('namespaces_ntfns_odms_stg_name')]",
"properties": {
"createdAt": "2023-07-25T01:57:35.5400000Z",
"critical": false,
"enabled": true,
"namespaceType": "NotificationHub",
"networkAcls": {},
"provisioningState": "Succeeded",
"serviceBusEndpoint": "[concat('https://', parameters('namespaces_ntfns_odms_stg_name'), '.servicebus.windows.net:443/')]",
"status": "Active",
"updatedAt": "2023-07-25T01:57:35.5970000Z"
"publicNetworkAccess": "Enabled",
"status": "Created"
},
"sku": {
"name": "Free"
@ -26,11 +24,10 @@
"type": "Microsoft.NotificationHubs/namespaces"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_stg_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_stg_name'), '/RootManageSharedAccessKey')]",
"properties": {
"rights": [
@ -39,32 +36,31 @@
"Send"
]
},
"type": "Microsoft.NotificationHubs/namespaces/AuthorizationRules"
"type": "Microsoft.NotificationHubs/namespaces/authorizationRules"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_stg_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_stg_name'), '/ntf-odms-stg')]",
"properties": {
"authorizationRules": [],
"name": "ntf-odms-stg",
"registrationTtl": "10675199.02:48:05.4775807"
},
"tags": {
"Project": "OMDS",
"environment": "staging"
},
"type": "Microsoft.NotificationHubs/namespaces/NotificationHubs"
"type": "Microsoft.NotificationHubs/namespaces/notificationHubs"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces/NotificationHubs', parameters('namespaces_ntfns_odms_stg_name'), 'ntf-odms-stg')]",
"[resourceId('Microsoft.NotificationHubs/namespaces/notificationHubs', parameters('namespaces_ntfns_odms_stg_name'), 'ntf-odms-stg')]",
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_stg_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_stg_name'), '/ntf-odms-stg/DefaultFullSharedAccessSignature')]",
"properties": {
"rights": [
@ -73,22 +69,21 @@
"Send"
]
},
"type": "Microsoft.NotificationHubs/namespaces/NotificationHubs/AuthorizationRules"
"type": "Microsoft.NotificationHubs/namespaces/notificationHubs/authorizationRules"
},
{
"apiVersion": "2017-04-01",
"apiVersion": "2023-09-01",
"dependsOn": [
"[resourceId('Microsoft.NotificationHubs/namespaces/NotificationHubs', parameters('namespaces_ntfns_odms_stg_name'), 'ntf-odms-stg')]",
"[resourceId('Microsoft.NotificationHubs/namespaces/notificationHubs', parameters('namespaces_ntfns_odms_stg_name'), 'ntf-odms-stg')]",
"[resourceId('Microsoft.NotificationHubs/namespaces', parameters('namespaces_ntfns_odms_stg_name'))]"
],
"location": "Japan East",
"name": "[concat(parameters('namespaces_ntfns_odms_stg_name'), '/ntf-odms-stg/DefaultListenSharedAccessSignature')]",
"properties": {
"rights": [
"Listen"
]
},
"type": "Microsoft.NotificationHubs/namespaces/NotificationHubs/AuthorizationRules"
"type": "Microsoft.NotificationHubs/namespaces/notificationHubs/authorizationRules"
}
],
"variables": {}

File diff suppressed because it is too large Load Diff

1
data_migration_tools/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/tool*

Binary file not shown.

View File

@ -0,0 +1,8 @@
# 移行ツールをビルドする
# docker ps
$clientContainerName = "client_devcontainer-client-1"
$serverContainerName = "server_devcontainer-server-1"
docker exec -t $clientContainerName sudo npm run build:local
docker exec -t $serverContainerName npm run build:exe

View File

@ -0,0 +1,32 @@
FROM node:18.13.0-buster
RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
echo "Asia/Tokyo" > /etc/timezone
# Options for setup script
ARG INSTALL_ZSH="true"
ARG UPGRADE_PACKAGES="false"
ARG USERNAME=vscode
# 1000 はnodeで使われているためずらす
ARG USER_UID=1001
ARG USER_GID=$USER_UID
# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
COPY library-scripts/common-debian.sh /tmp/library-scripts/
RUN bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" \
&& apt-get install default-jre -y \
&& apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts
# Install mob
RUN curl -sL install.mob.sh | sh
# 以下 ユーザー権限で実施
USER $USERNAME
# copy init-script
COPY --chown=$USERNAME:$USERNAME init.sh /home/${USERNAME}/
RUN chmod +x /home/${USERNAME}/init.sh
# 初期化を行う
# node imageのデフォルトENTRYPOINTが邪魔するため上書き
ENTRYPOINT /home/vscode/init.sh

View File

@ -0,0 +1,43 @@
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.137.0/containers/go
{
"name": "data_migration_tools client",
"dockerComposeFile": ["./docker-compose.yml"],
"service": "client",
//
"shutdownAction": "none",
"workspaceFolder": "/app/data_migration_tools/client",
"runArgs": ["--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"],
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true, // eslint
"source.fixAll.stylelint": true // Stylelint
},
// formatter
"editor.defaultFormatter": "esbenp.prettier-vscode", // Prettier
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.formatOnType": true,
"editor.renderWhitespace": "all",
"editor.insertSpaces": false,
"editor.renderLineHighlight": "all"
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"dbaeumer.vscode-eslint",
"salbert.comment-ts",
"gruntfuggly.todo-tree",
"esbenp.prettier-vscode",
"ms-vsliveshare.vsliveshare",
"albymor.increment-selection",
"eamodio.gitlens",
"wmaurer.change-case"
],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "yarn install",
"postCreateCommand": "sudo npm install @openapitools/openapi-generator-cli -g && sudo chown -R vscode:vscode /app/data_migration_tools/client",
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}

View File

@ -0,0 +1,20 @@
version: "3"
services:
client:
env_file: ../.env
build: .
working_dir: /app/data_migration_tools/client
ports:
- "127.0.0.1:3100:3100"
volumes:
- ../../../:/app
- data_migration_tools_client_node_modules:/app/data_migration_tools/client/node_modules
expose:
- "3100"
environment:
- CHOKIDAR_USEPOLLING=true
# Data Volume として永続化する
volumes:
data_migration_tools_client_node_modules:

View File

@ -0,0 +1,22 @@
#!/bin/bash
#
# Init Script for client Container
#
echo [init.sh] client initialize.
# /app の権限がデフォルトでは node ユーザーになっているため、
# 権限確認し、vscode ユーザでない場合付け替える
ls -ld /app | grep vscode
if [ $? -ne 0 ]; then
echo [init.sh] change /app owner to vscode.
sudo chown -R vscode:vscode /app
fi
cd /app/data_migration_tools/client
echo [init.sh] \"npm ci\" start.
npm ci
echo [init.sh] initialize completed!
sleep infinity

View File

@ -0,0 +1,190 @@
#!/usr/bin/env bash
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
# Syntax: ./common-debian.sh [install zsh flag] [username] [user UID] [user GID] [upgrade packages flag]
INSTALL_ZSH=${1:-"true"}
USERNAME=${2:-"vscode"}
USER_UID=${3:-1000}
USER_GID=${4:-1000}
UPGRADE_PACKAGES=${5:-"true"}
set -e
if [ "$(id -u)" -ne 0 ]; then
echo -e 'Script must be run a root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
exit 1
fi
# Treat a user name of "none" as root
if [ "${USERNAME}" = "none" ] || [ "${USERNAME}" = "root" ]; then
USERNAME=root
USER_UID=0
USER_GID=0
fi
# Load markers to see which steps have already run
MARKER_FILE="/usr/local/etc/vscode-dev-containers/common"
if [ -f "${MARKER_FILE}" ]; then
echo "Marker file found:"
cat "${MARKER_FILE}"
source "${MARKER_FILE}"
fi
# Ensure apt is in non-interactive to avoid prompts
export DEBIAN_FRONTEND=noninteractive
# Function to call apt-get if needed
apt-get-update-if-needed()
{
if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then
echo "Running apt-get update..."
apt-get update
else
echo "Skipping apt-get update."
fi
}
# Run install apt-utils to avoid debconf warning then verify presence of other common developer tools and dependencies
if [ "${PACKAGES_ALREADY_INSTALLED}" != "true" ]; then
apt-get-update-if-needed
PACKAGE_LIST="apt-utils \
git \
openssh-client \
less \
iproute2 \
procps \
curl \
wget \
unzip \
zip \
nano \
jq \
lsb-release \
ca-certificates \
apt-transport-https \
dialog \
gnupg2 \
libc6 \
libgcc1 \
libgssapi-krb5-2 \
libicu[0-9][0-9] \
liblttng-ust0 \
libstdc++6 \
zlib1g \
locales \
sudo"
# Install libssl1.1 if available
if [[ ! -z $(apt-cache --names-only search ^libssl1.1$) ]]; then
PACKAGE_LIST="${PACKAGE_LIST} libssl1.1"
fi
# Install appropriate version of libssl1.0.x if available
LIBSSL=$(dpkg-query -f '${db:Status-Abbrev}\t${binary:Package}\n' -W 'libssl1\.0\.?' 2>&1 || echo '')
if [ "$(echo "$LIBSSL" | grep -o 'libssl1\.0\.[0-9]:' | uniq | sort | wc -l)" -eq 0 ]; then
if [[ ! -z $(apt-cache --names-only search ^libssl1.0.2$) ]]; then
# Debian 9
PACKAGE_LIST="${PACKAGE_LIST} libssl1.0.2"
elif [[ ! -z $(apt-cache --names-only search ^libssl1.0.0$) ]]; then
# Ubuntu 18.04, 16.04, earlier
PACKAGE_LIST="${PACKAGE_LIST} libssl1.0.0"
fi
fi
echo "Packages to verify are installed: ${PACKAGE_LIST}"
apt-get -y install --no-install-recommends ${PACKAGE_LIST} 2> >( grep -v 'debconf: delaying package configuration, since apt-utils is not installed' >&2 )
PACKAGES_ALREADY_INSTALLED="true"
fi
# Get to latest versions of all packages
if [ "${UPGRADE_PACKAGES}" = "true" ]; then
apt-get-update-if-needed
apt-get -y upgrade --no-install-recommends
apt-get autoremove -y
fi
# Ensure at least the en_US.UTF-8 UTF-8 locale is available.
# Common need for both applications and things like the agnoster ZSH theme.
if [ "${LOCALE_ALREADY_SET}" != "true" ]; then
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
LOCALE_ALREADY_SET="true"
fi
# Create or update a non-root user to match UID/GID - see https://aka.ms/vscode-remote/containers/non-root-user.
if id -u $USERNAME > /dev/null 2>&1; then
# User exists, update if needed
if [ "$USER_GID" != "$(id -G $USERNAME)" ]; then
groupmod --gid $USER_GID $USERNAME
usermod --gid $USER_GID $USERNAME
fi
if [ "$USER_UID" != "$(id -u $USERNAME)" ]; then
usermod --uid $USER_UID $USERNAME
fi
else
# Create user
groupadd --gid $USER_GID $USERNAME
useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME
fi
# Add add sudo support for non-root user
if [ "${USERNAME}" != "root" ] && [ "${EXISTING_NON_ROOT_USER}" != "${USERNAME}" ]; then
echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME
chmod 0440 /etc/sudoers.d/$USERNAME
EXISTING_NON_ROOT_USER="${USERNAME}"
fi
# .bashrc/.zshrc snippet
RC_SNIPPET="$(cat << EOF
export USER=\$(whoami)
export PATH=\$PATH:\$HOME/.local/bin
if [[ \$(which code-insiders 2>&1) && ! \$(which code 2>&1) ]]; then
alias code=code-insiders
fi
EOF
)"
# Ensure ~/.local/bin is in the PATH for root and non-root users for bash. (zsh is later)
if [ "${RC_SNIPPET_ALREADY_ADDED}" != "true" ]; then
echo "${RC_SNIPPET}" | tee -a /root/.bashrc >> /etc/skel/.bashrc
if [ "${USERNAME}" != "root" ]; then
echo "${RC_SNIPPET}" >> /home/$USERNAME/.bashrc
chown $USER_UID:$USER_GID /home/$USERNAME/.bashrc
fi
RC_SNIPPET_ALREADY_ADDED="true"
fi
# Optionally install and configure zsh
if [ "${INSTALL_ZSH}" = "true" ] && [ ! -d "/root/.oh-my-zsh" ] && [ "${ZSH_ALREADY_INSTALLED}" != "true" ]; then
apt-get-update-if-needed
apt-get install -y zsh
curl -fsSLo- https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh | bash 2>&1
echo -e "${RC_SNIPPET}\nDEFAULT_USER=\$USER\nprompt_context(){}" >> /root/.zshrc
cp -fR /root/.oh-my-zsh /etc/skel
cp -f /root/.zshrc /etc/skel
sed -i -e "s/\/root\/.oh-my-zsh/\/home\/\$(whoami)\/.oh-my-zsh/g" /etc/skel/.zshrc
if [ "${USERNAME}" != "root" ]; then
cp -fR /etc/skel/.oh-my-zsh /etc/skel/.zshrc /home/$USERNAME
chown -R $USER_UID:$USER_GID /home/$USERNAME/.oh-my-zsh /home/$USERNAME/.zshrc
fi
ZSH_ALREADY_INSTALLED="true"
fi
# Write marker file
mkdir -p "$(dirname "${MARKER_FILE}")"
echo -e "\
PACKAGES_ALREADY_INSTALLED=${PACKAGES_ALREADY_INSTALLED}\n\
LOCALE_ALREADY_SET=${LOCALE_ALREADY_SET}\n\
EXISTING_NON_ROOT_USER=${EXISTING_NON_ROOT_USER}\n\
RC_SNIPPET_ALREADY_ADDED=${RC_SNIPPET_ALREADY_ADDED}\n\
ZSH_ALREADY_INSTALLED=${ZSH_ALREADY_INSTALLED}" > "${MARKER_FILE}"
echo "Done!"

View File

View File

@ -0,0 +1 @@
VITE_STAGE=local

View File

@ -0,0 +1,6 @@
node_modules/
build/
.eslintrc.js
jest.config.js
vite.config.ts
.env.local

View File

@ -0,0 +1,149 @@
module.exports = {
env: {
browser: true,
},
extends: [
"airbnb",
"plugin:@typescript-eslint/recommended",
"plugin:react/recommended",
"prettier",
],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.json",
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 12,
sourceType: "module",
},
plugins: [
"react",
"@typescript-eslint",
"prettier",
"react-hooks",
"prefer-arrow",
],
rules: {
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off",
"react/function-component-definition": [
"error",
{
namedComponents: "arrow-function",
unnamedComponents: "arrow-function",
},
],
"react/jsx-filename-extension": [
"error",
{
extensions: ["jsx", "tsx"],
},
],
"import/extensions": [
"error",
"ignorePackages",
{
js: "never",
jsx: "never",
ts: "never",
tsx: "never",
},
],
"import/no-unresolved": "off",
"import/prefer-default-export": "off",
"no-use-before-define": 0,
"prettier/prettier": "error",
"no-param-reassign": 0,
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/prefer-interface": "off",
"@typescript-eslint/indent": "off",
"react-hooks/rules-of-hooks": "error",
// Checks rules of Hooks
"react-hooks/exhaustive-deps": "warn",
// Checks effect dependencies
"import/no-extraneous-dependencies": [
"error",
{
devDependencies: [
"**/*.test.js",
"**/*.spec.js",
"**/*.test.ts",
"**/*.spec.ts",
"**/*.test.tsx",
"**/*.spec.tsx",
"**/setupTests.ts",
],
},
],
camelcase: "off",
"prefer-arrow/prefer-arrow-functions": [
"error",
{
disallowPrototype: true,
singleReturnOnly: false,
classPropertiesAllowed: false,
},
],
"func-style": [
"error",
"expression",
{
allowArrowFunctions: true,
},
],
"react/no-multi-comp": ["error"],
"react/jsx-pascal-case": ["error"],
"@typescript-eslint/naming-convention": [
"error", // default config
{
selector: "default",
format: ["camelCase"],
leadingUnderscore: "allow",
trailingUnderscore: "allow",
},
{
selector: "variable",
format: ["camelCase", "UPPER_CASE"],
leadingUnderscore: "allow",
trailingUnderscore: "allow",
},
{
selector: "typeLike",
format: ["PascalCase"],
}, // custom config
{
selector: ["property"],
format: ["camelCase", "PascalCase"],
},
{
selector: ["variable"],
types: ["function"],
format: ["camelCase", "PascalCase"],
},
{
selector: "interface",
format: ["PascalCase"],
custom: {
regex: "^I[A-Z]",
match: false,
},
},
],
"max-lines": ["error", 3000],
},
settings: {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"],
},
"import/resolver": {
node: {
extensions: [".js", "jsx", ".ts", ".tsx"],
paths: ["src"],
},
},
react: {
version: "detect",
},
},
};

24
data_migration_tools/client/.gitignore vendored Normal file
View File

@ -0,0 +1,24 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.env.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.eslintcache
# credentials
credentials

View File

@ -0,0 +1,2 @@
npx openapi-generator-cli version-manager set 7.1.0
npx openapi-generator-cli generate -g typescript-axios -i /app/data_migration_tools/server/src/api/odms/openapi.json -o /app/data_migration_tools/client/src/api/

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/src/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite App</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>

View File

@ -0,0 +1 @@
cp -r build /app/data_migration_tools/server

View File

@ -0,0 +1,7 @@
{
"$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json",
"spaces": 2,
"generator-cli": {
"version": "7.1.0"
}
}

14043
data_migration_tools/client/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,93 @@
{
"name": "client",
"private": true,
"version": "0.1.0",
"engines": {
"node": ">=18.0.0"
},
"scripts": {
"start": "vite",
"build": "tsc && vite build",
"build:prod": "tsc && vite build",
"build:local": "tsc && vite build && sh localdeploy.sh",
"preview": "vite preview",
"typecheck": "tsc --noEmit",
"codegen": "sh codegen.sh",
"lint": "eslint --cache . --ext .js,.ts,.tsx",
"lint:fix": "npm run lint -- --fix"
},
"dependencies": {
"@azure/storage-blob": "^12.14.0",
"@reduxjs/toolkit": "^1.8.3",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0",
"@testing-library/user-event": "^14.2.1",
"@types/jest": "^27.5.2",
"@types/node": "^17.0.45",
"@types/react": "^18.0.14",
"@types/react-dom": "^18.0.6",
"@types/react-router-dom": "^5.3.3",
"@types/redux-mock-store": "^1.0.3",
"axios": "^0.27.2",
"eslint-plugin-prefer-arrow": "^1.2.3",
"lodash": "^4.17.21",
"luxon": "^3.3.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-google-recaptcha-v3": "^1.10.0",
"react-paginate": "^8.1.3",
"react-redux": "^8.0.2",
"react-router-dom": "^6.4.1",
"redux-mock-store": "^1.5.4",
"redux-thunk": "^2.4.1",
"styled-components": "^5.3.5",
"typescript": "^4.7.4",
"web-vitals": "^2.1.4"
},
"devDependencies": {
"@babel/core": "^7.18.6",
"@mdx-js/react": "^2.1.2",
"@openapitools/openapi-generator-cli": "^2.5.2",
"@types/lodash": "^4.14.191",
"@types/luxon": "^3.2.0",
"@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0",
"@types/redux-mock-store": "^1.0.3",
"@types/styled-components": "^5.1.25",
"@typescript-eslint/eslint-plugin": "^5.30.5",
"@typescript-eslint/parser": "^5.30.5",
"@vitejs/plugin-react": "^1.3.2",
"babel-loader": "^8.2.5",
"eslint": "^8.19.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsx-a11y": "^6.6.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.30.1",
"eslint-plugin-react-hooks": "^4.6.0",
"license-checker": "^25.0.1",
"prettier": "^2.7.1",
"redux-mock-store": "^1.5.4",
"typescript": "^4.7.4",
"vite": "^2.9.9",
"vite-plugin-env-compatible": "^1.1.1",
"vite-tsconfig-paths": "^3.5.0"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
],
"overrides": [
{
"files": [
"**/*.stories.*"
],
"rules": {
"import/no-anonymous-default-export": "off"
}
}
]
}
}

View File

@ -0,0 +1,11 @@
import AppRouter from "AppRouter";
import { BrowserRouter } from "react-router-dom";
import "./styles/GlobalStyle.css";
const App = (): JSX.Element => (
<BrowserRouter>
<AppRouter />
</BrowserRouter>
);
export default App;

View File

@ -0,0 +1,12 @@
import { Route, Routes } from "react-router-dom";
import TopPage from "./pages/topPage";
import DeletePage from "./pages/deletePage";
const AppRouter: React.FC = () => (
<Routes>
<Route path="/" element={<TopPage />} />
<Route path="/delete" element={<DeletePage />} />
</Routes>
);
export default AppRouter;

View File

@ -0,0 +1,4 @@
wwwroot/*.js
node_modules
typings
dist

View File

@ -0,0 +1 @@
# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm

View File

@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.
# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md

View File

@ -0,0 +1,9 @@
.gitignore
.npmignore
.openapi-generator-ignore
api.ts
base.ts
common.ts
configuration.ts
git_push.sh
index.ts

View File

@ -0,0 +1 @@
7.1.0

View File

@ -0,0 +1,146 @@
/* tslint:disable */
/* eslint-disable */
/**
* ODMSOpenAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import type { Configuration } from './configuration';
import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
import globalAxios from 'axios';
// Some imports not used depending on template conditions
// @ts-ignore
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';
import type { RequestArgs } from './base';
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base';
/**
*
* @export
* @interface ErrorResponse
*/
export interface ErrorResponse {
/**
*
* @type {string}
* @memberof ErrorResponse
*/
'message': string;
/**
*
* @type {string}
* @memberof ErrorResponse
*/
'code': string;
}
/**
* DeleteApi - axios parameter creator
* @export
*/
export const DeleteApiAxiosParamCreator = function (configuration?: Configuration) {
return {
/**
*
* @summary
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
deleteData: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/delete`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
}
};
/**
* DeleteApi - functional programming interface
* @export
*/
export const DeleteApiFp = function(configuration?: Configuration) {
const localVarAxiosParamCreator = DeleteApiAxiosParamCreator(configuration)
return {
/**
*
* @summary
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async deleteData(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.deleteData(options);
const index = configuration?.serverIndex ?? 0;
const operationBasePath = operationServerMap['DeleteApi.deleteData']?.[index]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath);
},
}
};
/**
* DeleteApi - factory interface
* @export
*/
export const DeleteApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
const localVarFp = DeleteApiFp(configuration)
return {
/**
*
* @summary
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
deleteData(options?: any): AxiosPromise<object> {
return localVarFp.deleteData(options).then((request) => request(axios, basePath));
},
};
};
/**
* DeleteApi - object-oriented interface
* @export
* @class DeleteApi
* @extends {BaseAPI}
*/
export class DeleteApi extends BaseAPI {
/**
*
* @summary
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof DeleteApi
*/
public deleteData(options?: AxiosRequestConfig) {
return DeleteApiFp(this.configuration).deleteData(options).then((request) => request(this.axios, this.basePath));
}
}

View File

@ -0,0 +1,86 @@
/* tslint:disable */
/* eslint-disable */
/**
* ODMSOpenAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import type { Configuration } from './configuration';
// Some imports not used depending on template conditions
// @ts-ignore
import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
import globalAxios from 'axios';
export const BASE_PATH = "http://localhost".replace(/\/+$/, "");
/**
*
* @export
*/
export const COLLECTION_FORMATS = {
csv: ",",
ssv: " ",
tsv: "\t",
pipes: "|",
};
/**
*
* @export
* @interface RequestArgs
*/
export interface RequestArgs {
url: string;
options: AxiosRequestConfig;
}
/**
*
* @export
* @class BaseAPI
*/
export class BaseAPI {
protected configuration: Configuration | undefined;
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
if (configuration) {
this.configuration = configuration;
this.basePath = configuration.basePath ?? basePath;
}
}
};
/**
*
* @export
* @class RequiredError
* @extends {Error}
*/
export class RequiredError extends Error {
constructor(public field: string, msg?: string) {
super(msg);
this.name = "RequiredError"
}
}
interface ServerMap {
[key: string]: {
url: string,
description: string,
}[];
}
/**
*
* @export
*/
export const operationServerMap: ServerMap = {
}

View File

@ -0,0 +1,150 @@
/* tslint:disable */
/* eslint-disable */
/**
* ODMSOpenAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import type { Configuration } from "./configuration";
import type { RequestArgs } from "./base";
import type { AxiosInstance, AxiosResponse } from 'axios';
import { RequiredError } from "./base";
/**
*
* @export
*/
export const DUMMY_BASE_URL = 'https://example.com'
/**
*
* @throws {RequiredError}
* @export
*/
export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {
if (paramValue === null || paramValue === undefined) {
throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
}
}
/**
*
* @export
*/
export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {
if (configuration && configuration.apiKey) {
const localVarApiKeyValue = typeof configuration.apiKey === 'function'
? await configuration.apiKey(keyParamName)
: await configuration.apiKey;
object[keyParamName] = localVarApiKeyValue;
}
}
/**
*
* @export
*/
export const setBasicAuthToObject = function (object: any, configuration?: Configuration) {
if (configuration && (configuration.username || configuration.password)) {
object["auth"] = { username: configuration.username, password: configuration.password };
}
}
/**
*
* @export
*/
export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {
if (configuration && configuration.accessToken) {
const accessToken = typeof configuration.accessToken === 'function'
? await configuration.accessToken()
: await configuration.accessToken;
object["Authorization"] = "Bearer " + accessToken;
}
}
/**
*
* @export
*/
export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {
if (configuration && configuration.accessToken) {
const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
? await configuration.accessToken(name, scopes)
: await configuration.accessToken;
object["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
}
function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ""): void {
if (parameter == null) return;
if (typeof parameter === "object") {
if (Array.isArray(parameter)) {
(parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));
}
else {
Object.keys(parameter).forEach(currentKey =>
setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`)
);
}
}
else {
if (urlSearchParams.has(key)) {
urlSearchParams.append(key, parameter);
}
else {
urlSearchParams.set(key, parameter);
}
}
}
/**
*
* @export
*/
export const setSearchParams = function (url: URL, ...objects: any[]) {
const searchParams = new URLSearchParams(url.search);
setFlattenedQueryParams(searchParams, objects);
url.search = searchParams.toString();
}
/**
*
* @export
*/
export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {
const nonString = typeof value !== 'string';
const needsSerialization = nonString && configuration && configuration.isJsonMime
? configuration.isJsonMime(requestOptions.headers['Content-Type'])
: nonString;
return needsSerialization
? JSON.stringify(value !== undefined ? value : {})
: (value || "");
}
/**
*
* @export
*/
export const toPathString = function (url: URL) {
return url.pathname + url.search + url.hash
}
/**
*
* @export
*/
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || axios.defaults.baseURL || basePath) + axiosArgs.url};
return axios.request<T, R>(axiosRequestArgs);
};
}

View File

@ -0,0 +1,110 @@
/* tslint:disable */
/* eslint-disable */
/**
* ODMSOpenAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export interface ConfigurationParameters {
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
username?: string;
password?: string;
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
basePath?: string;
serverIndex?: number;
baseOptions?: any;
formDataCtor?: new () => any;
}
export class Configuration {
/**
* parameter for apiKey security
* @param name security name
* @memberof Configuration
*/
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
username?: string;
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
password?: string;
/**
* parameter for oauth2 security
* @param name security name
* @param scopes oauth2 scope
* @memberof Configuration
*/
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePath?: string;
/**
* override server index
*
* @type {number}
* @memberof Configuration
*/
serverIndex?: number;
/**
* base options for axios calls
*
* @type {any}
* @memberof Configuration
*/
baseOptions?: any;
/**
* The FormData constructor that will be used to create multipart form data
* requests. You can inject this here so that execution environments that
* do not support the FormData class can still run the generated client.
*
* @type {new () => FormData}
*/
formDataCtor?: new () => any;
constructor(param: ConfigurationParameters = {}) {
this.apiKey = param.apiKey;
this.username = param.username;
this.password = param.password;
this.accessToken = param.accessToken;
this.basePath = param.basePath;
this.serverIndex = param.serverIndex;
this.baseOptions = param.baseOptions;
this.formDataCtor = param.formDataCtor;
}
/**
* Check if the given MIME is a JSON MIME.
* JSON MIME examples:
* application/json
* application/json; charset=UTF8
* APPLICATION/JSON
* application/vnd.company+json
* @param mime - MIME (Multipurpose Internet Mail Extensions)
* @return True if the given MIME is JSON, false otherwise.
*/
public isJsonMime(mime: string): boolean {
const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
}
}

View File

@ -0,0 +1,57 @@
#!/bin/sh
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
#
# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
git_user_id=$1
git_repo_id=$2
release_note=$3
git_host=$4
if [ "$git_host" = "" ]; then
git_host="github.com"
echo "[INFO] No command line input provided. Set \$git_host to $git_host"
fi
if [ "$git_user_id" = "" ]; then
git_user_id="GIT_USER_ID"
echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
fi
if [ "$git_repo_id" = "" ]; then
git_repo_id="GIT_REPO_ID"
echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
fi
if [ "$release_note" = "" ]; then
release_note="Minor update"
echo "[INFO] No command line input provided. Set \$release_note to $release_note"
fi
# Initialize the local directory as a Git repository
git init
# Adds the files in the local repository and stages them for commit.
git add .
# Commits the tracked changes and prepares them to be pushed to a remote repository.
git commit -m "$release_note"
# Sets the new remote
git_remote=$(git remote)
if [ "$git_remote" = "" ]; then # git remote not defined
if [ "$GIT_TOKEN" = "" ]; then
echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
else
git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
fi
fi
git pull origin master
# Pushes (Forces) the changes in the local repository up to the remote repository
echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
git push origin master 2>&1 | grep -v 'To https'

View File

@ -0,0 +1,18 @@
/* tslint:disable */
/* eslint-disable */
/**
* ODMSOpenAPI
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export * from "./api";
export * from "./configuration";

View File

@ -0,0 +1,20 @@
import { configureStore, ThunkAction, Action } from "@reduxjs/toolkit";
import auth from "features/auth/authSlice";
import ui from "features/ui/uiSlice";
export const store = configureStore({
reducer: {
auth,
ui,
},
});
export type RootState = ReturnType<typeof store.getState>;
export type AppThunk<ReturnType = void> = ThunkAction<
ReturnType,
RootState,
unknown,
Action<string>
>;
export type AppDispatch = typeof store.dispatch;

View File

@ -0,0 +1,17 @@
/*
E+6
- 1~2...
- 3~4DB...
- 5~6
ex)
E00XXXX : システムエラーDB接続失敗など
E01XXXX : 業務エラー
EXX00XX : 内部エラー
EXX01XX : トークンエラー
EXX02XX : DBエラーDB関連
EXX03XX : ADB2CエラーDB関連
*/
export const errorCodes = [
"E009999", // 汎用エラー
] as const;

View File

@ -0,0 +1,3 @@
export * from "./code";
export * from "./types";
export * from "./utils";

View File

@ -0,0 +1,9 @@
import { errorCodes } from "./code";
export type ErrorObject = {
message: string;
code: ErrorCodeType;
statusCode?: number;
};
export type ErrorCodeType = (typeof errorCodes)[number];

View File

@ -0,0 +1,101 @@
import { AxiosError } from "axios";
import { isError } from "lodash";
import { ErrorResponse } from "../../api";
import { errorCodes } from "./code";
import { ErrorCodeType, ErrorObject } from "./types";
export const createErrorObject = (error: unknown): ErrorObject => {
// 最低限通常のエラーかを判定
// Error以外のものがthrowされた場合
// 基本的にないはずだがプログラム上あるので拾う
if (!isError(error)) {
return {
message: "not error type.",
code: "E009999",
};
}
// Axiosエラー 通信してのエラーであるかを判定
if (!isAxiosError(error)) {
return {
message: "not axios error.",
code: "E009999",
};
}
const errorResponse = error.response;
if (!errorResponse) {
return {
message: error.message,
code: "E009999",
statusCode: errorResponse,
};
}
const { data } = errorResponse;
// 想定しているエラーレスポンスの型か判定
if (!isErrorResponse(data)) {
return {
message: error.message,
code: "E009999",
statusCode: errorResponse.status,
};
}
const { message, code } = data;
// 想定しているエラーコードかを判定
if (!isErrorCode(code)) {
return {
message,
code: "E009999",
statusCode: errorResponse.status,
};
}
return {
message,
code,
statusCode: errorResponse.status,
};
};
const isAxiosError = (e: unknown): e is AxiosError => {
const error = e as AxiosError;
return error?.isAxiosError ?? false;
};
const isErrorResponse = (error: unknown): error is ErrorResponse => {
const errorResponse = error as ErrorResponse;
if (
errorResponse === undefined ||
errorResponse.message === undefined ||
errorResponse.code === undefined
) {
return false;
}
return true;
};
const isErrorCode = (errorCode: string): errorCode is ErrorCodeType =>
errorCodes.includes(errorCode as ErrorCodeType);
export const isErrorObject = (
data: unknown
): data is { error: ErrorObject } => {
if (
data &&
typeof data === "object" &&
"error" in data &&
typeof (data as { error: ErrorObject }).error === "object" &&
typeof (data as { error: ErrorObject }).error.message === "string" &&
typeof (data as { error: ErrorObject }).error.code === "string" &&
(typeof (data as { error: ErrorObject }).error.statusCode === "number" ||
(data as { error: ErrorObject }).error.statusCode === undefined)
) {
return true;
}
return false;
};

View File

@ -0,0 +1,6 @@
export const getBasePath = () => {
if (import.meta.env.VITE_STAGE === "local") {
return "http://localhost:8280";
}
return window.location.origin;
};

View File

@ -0,0 +1,3 @@
export interface ErrorObject {
message: string;
}

View File

@ -0,0 +1,33 @@
.snackbar {
position: fixed;
top: -100px; /* 上から現れるための初期位置 */
left: 50%;
transform: translateX(-50%);
background-color: #323232;
color: #ffffff;
border-radius: 5px;
padding: 16px;
display: flex;
justify-content: space-between;
align-items: center;
min-width: 300px;
max-width: 80%;
z-index: 1000;
transition: top 0.5s ease-in-out; /* アニメーション効果の追加 */
}
.snackbar.show {
top: 20px; /* 最終的な表示位置 */
}
.snackbar button {
background: transparent;
border: none;
color: #ffffff;
cursor: pointer;
}
.snackbar p {
margin: 0;
margin-right: 16px;
}

View File

@ -0,0 +1,19 @@
import React, { FC } from "react";
import "./SnackBar.css";
interface SnackBarProps {
message: string;
show: boolean;
closeSnackBar: (e: React.MouseEvent<HTMLButtonElement>) => void;
}
const SnackBar: FC<SnackBarProps> = ({ message, show, closeSnackBar }) => (
<div className={`snackbar${show ? " show" : ""}`}>
<p>{message}</p>
<button type="button" onClick={closeSnackBar}>
</button>
</div>
);
export default SnackBar;

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,15 @@
import { createSlice } from "@reduxjs/toolkit";
import type { AuthState } from "./state";
import { initialConfig } from "./utils";
const initialState: AuthState = {
configuration: initialConfig(),
};
export const authSlice = createSlice({
name: "auth",
initialState,
reducers: {},
});
export default authSlice.reducer;

View File

@ -0,0 +1,3 @@
export * from "./authSlice";
export * from "./state";
export * from "./utils";

View File

@ -0,0 +1,5 @@
import { ConfigurationParameters } from "../../api";
export interface AuthState {
configuration: ConfigurationParameters;
}

View File

@ -0,0 +1,13 @@
import { ConfigurationParameters } from "../../api";
// 初期状態のAPI Config
export const initialConfig = (): ConfigurationParameters => {
const config: ConfigurationParameters = {};
if (import.meta.env.VITE_STAGE === "local") {
config.basePath = "http://localhost:8280";
} else {
config.basePath = `${window.location.origin}/dictation/api`;
}
return config;
};

View File

@ -0,0 +1,25 @@
import { createSlice } from "@reduxjs/toolkit";
import { DeleteState } from "./state";
import { deleteDataAsync } from "./operations";
// eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
const initialState: DeleteState = {};
export const deleteSlice = createSlice({
name: "detete",
initialState,
reducers: {},
extraReducers: (builder) => {
builder.addCase(deleteDataAsync.pending, () => {
/* Empty Object */
});
builder.addCase(deleteDataAsync.fulfilled, () => {
/* Empty Object */
});
builder.addCase(deleteDataAsync.rejected, () => {
/* Empty Object */
});
},
});
export default deleteSlice.reducer;

View File

@ -0,0 +1,3 @@
export * from "./state";
export * from "./deleteSlice";
export * from "./operations";

View File

@ -0,0 +1,47 @@
import { createAsyncThunk } from "@reduxjs/toolkit";
import { openSnackbar } from "../ui/uiSlice";
import type { RootState } from "../../app/store";
import { ErrorObject, createErrorObject } from "../../common/errors";
import { DeleteApi } from "../../api/api";
import { Configuration } from "../../api/configuration";
export const deleteDataAsync = createAsyncThunk<
{
/* Empty Object */
},
void,
{
// rejectした時の返却値の型
rejectValue: {
error: ErrorObject;
};
}
>("delete/deleteDataAsync", async (args, thunkApi) => {
// apiのConfigurationを取得する
const { getState } = thunkApi;
const state = getState() as RootState;
const { configuration } = state.auth;
const config = new Configuration(configuration);
const deleteApi = new DeleteApi(config);
try {
await deleteApi.deleteData();
thunkApi.dispatch(
openSnackbar({
level: "info",
message: "削除しました。",
})
);
return {};
} catch (e) {
const error = createErrorObject(e);
thunkApi.dispatch(
openSnackbar({
level: "error",
message: "削除に失敗しました。",
})
);
return thunkApi.rejectWithValue({ error });
}
});

View File

@ -0,0 +1,2 @@
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DeleteState {}

View File

@ -0,0 +1,2 @@
// 標準のスナックバー表示時間(ミリ秒)
export const DEFAULT_SNACKBAR_DURATION = 3000;

View File

@ -0,0 +1,5 @@
export * from "./constants";
export * from "./selectors";
export * from "./state";
export * from "./uiSlice";
export * from "./types";

View File

@ -0,0 +1,15 @@
import type { RootState } from "app/store";
import { SnackbarLevel } from "./types";
export const selectSnackber = (
state: RootState
): {
isOpen: boolean;
level: SnackbarLevel;
message: string;
duration?: number;
} => {
const { isOpen, level, message, duration } = state.ui;
return { isOpen, level, message, duration };
};

View File

@ -0,0 +1,8 @@
import { SnackbarLevel } from "./types";
export interface UIState {
isOpen: boolean;
level: SnackbarLevel;
message: string;
duration?: number;
}

View File

@ -0,0 +1 @@
export type SnackbarLevel = "info" | "error";

View File

@ -0,0 +1,38 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { SnackbarLevel } from "./types";
import { UIState } from "./state";
import { DEFAULT_SNACKBAR_DURATION } from "./constants";
const initialState: UIState = {
isOpen: false,
level: "error",
message: "",
};
export const uiSlice = createSlice({
name: "ui",
initialState,
reducers: {
openSnackbar: (
state,
action: PayloadAction<{
level: SnackbarLevel;
message: string;
duration?: number;
}>
) => {
const { level, message, duration } = action.payload;
state.isOpen = true;
state.level = level;
state.message = message;
state.duration =
level === "error" ? undefined : duration ?? DEFAULT_SNACKBAR_DURATION;
},
closeSnackbar: (state) => {
state.isOpen = false;
},
},
});
export const { openSnackbar, closeSnackbar } = uiSlice.actions;
export default uiSlice.reducer;

View File

@ -0,0 +1,23 @@
import { store } from "app/store";
import React from "react";
import { createRoot } from "react-dom/client";
import { Provider } from "react-redux";
import App from "./App";
import * as serviceWorker from "./serviceWorker";
const container = document.getElementById("root");
if (container) {
const root = createRoot(container);
root.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>
);
}
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
// Learn more about service workers: https://bit.ly/CRA-PWA
serviceWorker.unregister();

View File

@ -0,0 +1,32 @@
import { AppDispatch } from "app/store";
import { deleteDataAsync } from "features/delete";
import React, { useCallback } from "react";
import { useDispatch } from "react-redux";
import { Link } from "react-router-dom";
const DeletePage = (): JSX.Element => {
const dispatch: AppDispatch = useDispatch();
const onDelete = useCallback(() => {
if (
/* eslint-disable-next-line no-alert */
!window.confirm("本当に削除しますか?")
) {
return;
}
dispatch(deleteDataAsync());
}, [dispatch]);
return (
<div>
<p></p>
<button type="button" onClick={onDelete}>
</button>
<br />
<Link to="/">return to TopPage</Link>
</div>
);
};
export default DeletePage;

View File

@ -0,0 +1,15 @@
import React from "react";
import { Link } from "react-router-dom";
const TopPage = (): JSX.Element => {
console.log("DeletePage");
return (
<div>
<Link to="/delete"></Link>
<br />
<Link to="/">return to TopPage</Link>
</div>
);
};
export default TopPage;

View File

@ -0,0 +1,148 @@
/* eslint-disable */
// This optional code is used to register a service worker.
// register() is not called by default.
// This lets the app load faster on subsequent visits in production, and gives
// it offline capabilities. However, it also means that developers (and users)
// will only see deployed updates on subsequent visits to a page, after all the
// existing tabs open on the page have been closed, since previously cached
// resources are updated in the background.
// To learn more about the benefits of this model and instructions on how to
// opt-in, read https://bit.ly/CRA-PWA
const isLocalhost = Boolean(
window.location.hostname === "localhost" ||
// [::1] is the IPv6 localhost address.
window.location.hostname === "[::1]" ||
// 127.0.0.0/8 are considered localhost for IPv4.
window.location.hostname.match(
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
)
);
type Config = {
onSuccess?: (registration: ServiceWorkerRegistration) => void;
onUpdate?: (registration: ServiceWorkerRegistration) => void;
};
export function register(config?: Config) {
if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) {
// The URL constructor is available in all browsers that support SW.
const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
if (publicUrl.origin !== window.location.origin) {
// Our service worker won't work if PUBLIC_URL is on a different origin
// from what our page is served on. This might happen if a CDN is used to
// serve assets; see https://github.com/facebook/create-react-app/issues/2374
return;
}
window.addEventListener("load", () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
if (isLocalhost) {
// This is running on localhost. Let's check if a service worker still exists or not.
checkValidServiceWorker(swUrl, config);
// Add some additional logging to localhost, pointing developers to the
// service worker/PWA documentation.
navigator.serviceWorker.ready.then(() => {
console.log(
"This web app is being served cache-first by a service " +
"worker. To learn more, visit https://bit.ly/CRA-PWA"
);
});
} else {
// Is not localhost. Just register service worker
registerValidSW(swUrl, config);
}
});
}
}
function registerValidSW(swUrl: string, config?: Config) {
navigator.serviceWorker
.register(swUrl)
.then((registration) => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
if (installingWorker == null) {
return;
}
installingWorker.onstatechange = () => {
if (installingWorker.state === "installed") {
if (navigator.serviceWorker.controller) {
// At this point, the updated precached content has been fetched,
// but the previous service worker will still serve the older
// content until all client tabs are closed.
console.log(
"New content is available and will be used when all " +
"tabs for this page are closed. See https://bit.ly/CRA-PWA."
);
// Execute callback
if (config && config.onUpdate) {
config.onUpdate(registration);
}
} else {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
console.log("Content is cached for offline use.");
// Execute callback
if (config && config.onSuccess) {
config.onSuccess(registration);
}
}
}
};
};
})
.catch((error) => {
console.error("Error during service worker registration:", error);
});
}
function checkValidServiceWorker(swUrl: string, config?: Config) {
// Check if the service worker can be found. If it can't reload the page.
fetch(swUrl, {
headers: { "Service-Worker": "script" },
})
.then((response) => {
// Ensure service worker exists, and that we really are getting a JS file.
const contentType = response.headers.get("content-type");
if (
response.status === 404 ||
(contentType != null && contentType.indexOf("javascript") === -1)
) {
// No service worker found. Probably a different app. Reload the page.
navigator.serviceWorker.ready.then((registration) => {
registration.unregister().then(() => {
window.location.reload();
});
});
} else {
// Service worker found. Proceed as normal.
registerValidSW(swUrl, config);
}
})
.catch(() => {
console.log(
"No internet connection found. App is running in offline mode."
);
});
}
export function unregister() {
if ("serviceWorker" in navigator) {
navigator.serviceWorker.ready
.then((registration) => {
registration.unregister();
})
.catch((error) => {
console.error(error.message);
});
}
}

View File

@ -0,0 +1,37 @@
/**
* bring from react-scripts/lib/react-app.d.ts
*/
declare namespace NodeJS {
interface ProcessEnv {
/* eslint-disable @typescript-eslint/naming-convention */
// local環境はdevelopment、staging環境は production になる
readonly NODE_ENV: "development" | "develop" | "production" | "test";
readonly PUBLIC_URL: string;
/* eslint-enable @typescript-eslint/naming-convention */
}
}
declare module "*.gif" {
const src: string;
export default src;
}
declare module "*.jpg" {
const src: string;
export default src;
}
declare module "*.jpeg" {
const src: string;
export default src;
}
declare module "*.png" {
const src: string;
export default src;
}
declare module "*.svg" {
const src: string;
export default src;
}

View File

@ -0,0 +1,11 @@
/* eslint-disable @typescript-eslint/naming-convention */
// 環境変数のコード補完
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_STAGE: string;
readonly VITE_ODMS_CLOUD_BASE_PATH: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

View File

@ -0,0 +1,22 @@
{
"compilerOptions": {
"target": "es2019",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
"baseUrl": "src",
"plugins": [{ "name": "typescript-styled-plugin" }]
},
"include": ["src"]
}

View File

@ -0,0 +1,18 @@
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import tsconfigPaths from "vite-tsconfig-paths";
import env from "vite-plugin-env-compatible";
export default defineConfig({
server: {
host: true,
port: 3100,
open: true,
},
build: {
outDir: "build",
sourcemap: true,
minify: false,
},
plugins: [env(), tsconfigPaths(), react()],
});

63
data_migration_tools/package-lock.json generated Normal file
View File

@ -0,0 +1,63 @@
{
"name": "data_migration_tools",
"version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"author": "",
"description": "",
"license": "UNLICENSED",
"private": true,
"packages": {},
"devDependencies": {
"@types/express": "^4.17.17",
"@types/multer": "^1.4.7",
"@types/node": "^20.2.3",
"eslint": "^8.0.1",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"jest": "28.0.3",
"license-checker": "^25.0.1",
"prettier": "^2.3.2",
"source-map-support": "^0.5.20",
"supertest": "^6.1.3",
"swagger-ui-express": "^4.5.0",
"ts-jest": "28.0.1",
"ts-loader": "^9.2.3",
"ts-node": "^10.0.0",
"tsconfig-paths": "4.0.0",
"typescript": "^4.3.5"
},
"jest": {
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testEnvironment": "node",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
}
},
"scripts": {
"build": "nest build && cp -r build dist",
"build:exe": "nest build && cp -r build dist && sh ./buildTool.sh",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
"lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"prebuild": "rimraf dist",
"start": "nest start",
"start:debug": "nest start --debug --watch",
"start:dev": "nest start --watch",
"start:prod": "node dist/main",
"test": "jest",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:watch": "jest --watch"
}
}

View File

@ -0,0 +1,31 @@
FROM node:18.13.0-buster
RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
echo "Asia/Tokyo" > /etc/timezone
# Options for setup script
ARG INSTALL_ZSH="true"
ARG UPGRADE_PACKAGES="false"
ARG USERNAME=vscode
# 1000 はnodeで使われているためずらす
ARG USER_UID=1001
ARG USER_GID=$USER_UID
# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
COPY library-scripts/common-debian.sh /tmp/library-scripts/
RUN bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" \
&& apt-get install default-jre -y \
&& apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts
# Install NestJS
RUN npm i -g @nestjs/cli
# 以下 ユーザー権限で実施
USER $USERNAME
# copy init-script
COPY --chown=$USERNAME:$USERNAME init.sh /home/${USERNAME}/
RUN chmod +x /home/${USERNAME}/init.sh
# 初期化を行う
# node imageのデフォルトENTRYPOINTが邪魔するため上書き
ENTRYPOINT /home/vscode/init.sh

View File

@ -0,0 +1,56 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.209.6/containers/javascript-node
{
"name": "data_migration_tools server",
"dockerComposeFile": [
"./docker-compose.yml"
],
"service": "server",
//
"shutdownAction": "none",
"workspaceFolder": "/app/data_migration_tools/server",
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined"
],
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.format.enable": false,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// formatter
"editor.formatOnPaste": true,
"editor.formatOnType": true,
"editor.renderWhitespace": "all",
"editor.insertSpaces": false,
"editor.renderLineHighlight": "all"
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"dbaeumer.vscode-eslint",
"salbert.comment-ts",
"gruntfuggly.todo-tree",
"esbenp.prettier-vscode",
"ms-vsliveshare.vsliveshare",
"albymor.increment-selection",
"eamodio.gitlens",
"wmaurer.change-case"
],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "yarn install",
"postCreateCommand": "sudo chown -R vscode:vscode /app/data_migration_tools/server",
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}

View File

@ -0,0 +1,24 @@
version: "3"
services:
server:
env_file: ../.env
build: .
working_dir: /app/data_migration_tools/server
ports:
- "127.0.0.1:8280:8280"
volumes:
- ../../../:/app
- data_migration_tools_server_node_modules:/app/data_migration_tools/server/node_modules
expose:
- "8280"
environment:
- CHOKIDAR_USEPOLLING=true
networks:
- external
networks:
external:
name: omds_network
external: true
volumes:
data_migration_tools_server_node_modules:

View File

@ -0,0 +1,20 @@
#!/bin/bash
#
# Init Script for server Container
#
echo [init.sh] server initialize.
# /app の権限がデフォルトでは node ユーザーになっているため、
# 権限確認し、vscode ユーザでない場合付け替える
ls -ld /app | grep vscode
if [ $? -ne 0 ]; then
echo [init.sh] change /app owner to vscode.
sudo chown -R vscode:vscode /app
fi
cd /app/server
echo [init.sh] initialize completed!
sleep infinity

View File

@ -0,0 +1,190 @@
#!/usr/bin/env bash
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
# Syntax: ./common-debian.sh [install zsh flag] [username] [user UID] [user GID] [upgrade packages flag]
INSTALL_ZSH=${1:-"true"}
USERNAME=${2:-"vscode"}
USER_UID=${3:-1000}
USER_GID=${4:-1000}
UPGRADE_PACKAGES=${5:-"true"}
set -e
if [ "$(id -u)" -ne 0 ]; then
echo -e 'Script must be run a root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
exit 1
fi
# Treat a user name of "none" as root
if [ "${USERNAME}" = "none" ] || [ "${USERNAME}" = "root" ]; then
USERNAME=root
USER_UID=0
USER_GID=0
fi
# Load markers to see which steps have already run
MARKER_FILE="/usr/local/etc/vscode-dev-containers/common"
if [ -f "${MARKER_FILE}" ]; then
echo "Marker file found:"
cat "${MARKER_FILE}"
source "${MARKER_FILE}"
fi
# Ensure apt is in non-interactive to avoid prompts
export DEBIAN_FRONTEND=noninteractive
# Function to call apt-get if needed
apt-get-update-if-needed()
{
if [ ! -d "/var/lib/apt/lists" ] || [ "$(ls /var/lib/apt/lists/ | wc -l)" = "0" ]; then
echo "Running apt-get update..."
apt-get update
else
echo "Skipping apt-get update."
fi
}
# Run install apt-utils to avoid debconf warning then verify presence of other common developer tools and dependencies
if [ "${PACKAGES_ALREADY_INSTALLED}" != "true" ]; then
apt-get-update-if-needed
PACKAGE_LIST="apt-utils \
git \
openssh-client \
less \
iproute2 \
procps \
curl \
wget \
unzip \
zip \
nano \
jq \
lsb-release \
ca-certificates \
apt-transport-https \
dialog \
gnupg2 \
libc6 \
libgcc1 \
libgssapi-krb5-2 \
libicu[0-9][0-9] \
liblttng-ust0 \
libstdc++6 \
zlib1g \
locales \
sudo"
# Install libssl1.1 if available
if [[ ! -z $(apt-cache --names-only search ^libssl1.1$) ]]; then
PACKAGE_LIST="${PACKAGE_LIST} libssl1.1"
fi
# Install appropriate version of libssl1.0.x if available
LIBSSL=$(dpkg-query -f '${db:Status-Abbrev}\t${binary:Package}\n' -W 'libssl1\.0\.?' 2>&1 || echo '')
if [ "$(echo "$LIBSSL" | grep -o 'libssl1\.0\.[0-9]:' | uniq | sort | wc -l)" -eq 0 ]; then
if [[ ! -z $(apt-cache --names-only search ^libssl1.0.2$) ]]; then
# Debian 9
PACKAGE_LIST="${PACKAGE_LIST} libssl1.0.2"
elif [[ ! -z $(apt-cache --names-only search ^libssl1.0.0$) ]]; then
# Ubuntu 18.04, 16.04, earlier
PACKAGE_LIST="${PACKAGE_LIST} libssl1.0.0"
fi
fi
echo "Packages to verify are installed: ${PACKAGE_LIST}"
apt-get -y install --no-install-recommends ${PACKAGE_LIST} 2> >( grep -v 'debconf: delaying package configuration, since apt-utils is not installed' >&2 )
PACKAGES_ALREADY_INSTALLED="true"
fi
# Get to latest versions of all packages
if [ "${UPGRADE_PACKAGES}" = "true" ]; then
apt-get-update-if-needed
apt-get -y upgrade --no-install-recommends
apt-get autoremove -y
fi
# Ensure at least the en_US.UTF-8 UTF-8 locale is available.
# Common need for both applications and things like the agnoster ZSH theme.
if [ "${LOCALE_ALREADY_SET}" != "true" ]; then
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
LOCALE_ALREADY_SET="true"
fi
# Create or update a non-root user to match UID/GID - see https://aka.ms/vscode-remote/containers/non-root-user.
if id -u $USERNAME > /dev/null 2>&1; then
# User exists, update if needed
if [ "$USER_GID" != "$(id -G $USERNAME)" ]; then
groupmod --gid $USER_GID $USERNAME
usermod --gid $USER_GID $USERNAME
fi
if [ "$USER_UID" != "$(id -u $USERNAME)" ]; then
usermod --uid $USER_UID $USERNAME
fi
else
# Create user
groupadd --gid $USER_GID $USERNAME
useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME
fi
# Add add sudo support for non-root user
if [ "${USERNAME}" != "root" ] && [ "${EXISTING_NON_ROOT_USER}" != "${USERNAME}" ]; then
echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME
chmod 0440 /etc/sudoers.d/$USERNAME
EXISTING_NON_ROOT_USER="${USERNAME}"
fi
# .bashrc/.zshrc snippet
RC_SNIPPET="$(cat << EOF
export USER=\$(whoami)
export PATH=\$PATH:\$HOME/.local/bin
if [[ \$(which code-insiders 2>&1) && ! \$(which code 2>&1) ]]; then
alias code=code-insiders
fi
EOF
)"
# Ensure ~/.local/bin is in the PATH for root and non-root users for bash. (zsh is later)
if [ "${RC_SNIPPET_ALREADY_ADDED}" != "true" ]; then
echo "${RC_SNIPPET}" | tee -a /root/.bashrc >> /etc/skel/.bashrc
if [ "${USERNAME}" != "root" ]; then
echo "${RC_SNIPPET}" >> /home/$USERNAME/.bashrc
chown $USER_UID:$USER_GID /home/$USERNAME/.bashrc
fi
RC_SNIPPET_ALREADY_ADDED="true"
fi
# Optionally install and configure zsh
if [ "${INSTALL_ZSH}" = "true" ] && [ ! -d "/root/.oh-my-zsh" ] && [ "${ZSH_ALREADY_INSTALLED}" != "true" ]; then
apt-get-update-if-needed
apt-get install -y zsh
curl -fsSLo- https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh | bash 2>&1
echo -e "${RC_SNIPPET}\nDEFAULT_USER=\$USER\nprompt_context(){}" >> /root/.zshrc
cp -fR /root/.oh-my-zsh /etc/skel
cp -f /root/.zshrc /etc/skel
sed -i -e "s/\/root\/.oh-my-zsh/\/home\/\$(whoami)\/.oh-my-zsh/g" /etc/skel/.zshrc
if [ "${USERNAME}" != "root" ]; then
cp -fR /etc/skel/.oh-my-zsh /etc/skel/.zshrc /home/$USERNAME
chown -R $USER_UID:$USER_GID /home/$USERNAME/.oh-my-zsh /home/$USERNAME/.zshrc
fi
ZSH_ALREADY_INSTALLED="true"
fi
# Write marker file
mkdir -p "$(dirname "${MARKER_FILE}")"
echo -e "\
PACKAGES_ALREADY_INSTALLED=${PACKAGES_ALREADY_INSTALLED}\n\
LOCALE_ALREADY_SET=${LOCALE_ALREADY_SET}\n\
EXISTING_NON_ROOT_USER=${EXISTING_NON_ROOT_USER}\n\
RC_SNIPPET_ALREADY_ADDED=${RC_SNIPPET_ALREADY_ADDED}\n\
ZSH_ALREADY_INSTALLED=${ZSH_ALREADY_INSTALLED}" > "${MARKER_FILE}"
echo "Done!"

View File

@ -0,0 +1,5 @@
DB_HOST=omds-mysql
DB_PORT=3306
DB_NAME=omds
DB_USERNAME=omdsdbuser
DB_PASSWORD=omdsdbpass

View File

@ -0,0 +1,36 @@
STAGE=local
NO_COLOR=TRUE
CORS=TRUE
PORT=8280
# 開発環境ではADB2Cが別テナントになる都合上、環境変数を分けている
TENANT_NAME=adb2codmsdev
SIGNIN_FLOW_NAME=b2c_1_signin_dev
ADB2C_TENANT_ID=xxxxxxxx
ADB2C_CLIENT_ID=xxxxxxxx
ADB2C_CLIENT_SECRET=xxxxxxxx
ADB2C_ORIGIN=https://zzzzzzzzzz
JWT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA5IZZNgDew9eGmuFTezwdHYLSaJvUPPIKYoiOeVLD1paWNI51\n7Vkaoh0ngprcKOdv6T1N07V4igK7mOim2zY3yCTR6wcWR3PfFJrl9vh5SOo79koZ\noJb27YiM4jtxfx2dezzp0T2GoNR5rRolPUbWFJXnDe0DVXYXpJLb4LAlF2XAyYX0\nSYKUVUsJnzm5k4xbXtnwPwVbpm0EdswBE6qSfiL9zWk9dvHoKzSnfSDzDFoFcEoV\nchawzYXf/MM1YR4wo5XyzECc6Q5Ah4z522//mBNNaDHv83Yuw3mGShT73iJ0JQdk\nTturshv2Ecma38r6ftrIwNYXw4VVatJM8+GOOQIDAQABAoIBADrwp7u097+dK/tw\nWD61n3DIGAqg/lmFt8X4IH8MKLSE/FKr16CS1bqwOEuIM3ZdUtDeXd9Xs7IsyEPE\n5ZwuXK7DSF0M4+Mj8Ip49Q0Aww9aUoLQU9HGfgN/r4599GTrt31clZXA/6Mlighq\ncOZgCcEfdItz8OMu5SQuOIW4CKkCuaWnPOP26UqZocaXNZfpZH0iFLATMMH/TT8x\nay9ToHTQYE17ijdQ/EOLSwoeDV1CU1CIE3P4YfLJjvpKptly5dTevriHEzBi70Jx\n/KEPUn9Jj2gZafrUxRVhmMbm1zkeYxL3gsqRuTzRjEeeILuZhSJyCkQZyUNARxsg\nQY4DZfECgYEA+YLKUtmYTx60FS6DJ4s31TAsXY8kwhq/lB9E3GBZKDd0DPayXEeK\n4UWRQDTT6MI6fedW69FOZJ5sFLp8HQpcssb4Weq9PCpDhNTx8MCbdH3Um5QR3vfW\naKq/1XM8MDUnx5XcNYd87Aw3azvJAvOPr69as8IPnj6sKaRR9uQjbYUCgYEA6nfV\n5j0qmn0EJXZJblk4mvvjLLoWSs17j9YlrZJlJxXMDFRYtgnelv73xMxOMvcGoxn5\nifs7dpaM2x5EmA6jVU5sYaB/beZGEPWqPYGyjIwXPvUGAAv8Gbnvpp+xlSco/Dum\nIq0w+43ry5/xWh6CjfrvKV0J2bDOiJwPEdu/8iUCgYEAnBBSvL+dpN9vhFAzeOh7\nY71eAqcmNsLEUcG9MJqTKbSFwhYMOewF0iHRWHeylEPokhfBJn8kqYrtz4lVWFTC\n5o/Nh3BsLNXCpbMMIapXkeWiti1HgE9ErPMgSkJpwz18RDpYIqM8X+jEQS6D7HSr\nyxfDg+w+GJza0rEVE3hfMIECgYBw+KZ2VfhmEWBjEHhXE+QjQMR3s320MwebCUqE\nNCpKx8TWF/naVC0MwfLtvqbbBY0MHyLN6d//xpA9r3rLbRojqzKrY2KiuDYAS+3n\nzssRzxoQOozWju+8EYu30/ADdqfXyIHG6X3VZs87AGiQzGyJLmP3oR1y5y7MQa09\nJI16hQKBgHK5uwJhGa281Oo5/FwQ3uYLymbNwSGrsOJXiEu2XwJEXwVi2ELOKh4/\n03pBk3Kva3fIwEK+vCzDNnxShIQqBE76/2I1K1whOfoUehhYvKHGaXl2j70Zz9Ks\nrkGW1cx7p+yDqATDrwHBHTHFh5bUTTn8dN40n0e0W/llurpbBkJM\n-----END RSA PRIVATE KEY-----\n"
JWT_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5IZZNgDew9eGmuFTezwd\nHYLSaJvUPPIKYoiOeVLD1paWNI517Vkaoh0ngprcKOdv6T1N07V4igK7mOim2zY3\nyCTR6wcWR3PfFJrl9vh5SOo79koZoJb27YiM4jtxfx2dezzp0T2GoNR5rRolPUbW\nFJXnDe0DVXYXpJLb4LAlF2XAyYX0SYKUVUsJnzm5k4xbXtnwPwVbpm0EdswBE6qS\nfiL9zWk9dvHoKzSnfSDzDFoFcEoVchawzYXf/MM1YR4wo5XyzECc6Q5Ah4z522//\nmBNNaDHv83Yuw3mGShT73iJ0JQdkTturshv2Ecma38r6ftrIwNYXw4VVatJM8+GO\nOQIDAQAB\n-----END PUBLIC KEY-----\n"
SENDGRID_API_KEY=xxxxxxxxxxxxxxxx
MAIL_FROM=xxxxx@xxxxx.xxxx
NOTIFICATION_HUB_NAME=ntf-odms-dev
NOTIFICATION_HUB_CONNECT_STRING=XXXXXXXXXXXXXXXXXX
APP_DOMAIN=http://localhost:8081/
STORAGE_TOKEN_EXPIRE_TIME=2
STORAGE_ACCOUNT_NAME_US=saodmsusdev
STORAGE_ACCOUNT_NAME_AU=saodmsaudev
STORAGE_ACCOUNT_NAME_EU=saodmseudev
STORAGE_ACCOUNT_KEY_US=XXXXXXXXXXXXXXXXXXXXXXX
STORAGE_ACCOUNT_KEY_AU=XXXXXXXXXXXXXXXXXXXXXXX
STORAGE_ACCOUNT_KEY_EU=XXXXXXXXXXXXXXXXXXXXXXX
STORAGE_ACCOUNT_ENDPOINT_US=https://AAAAAAAAAAAAA
STORAGE_ACCOUNT_ENDPOINT_AU=https://AAAAAAAAAAAAA
STORAGE_ACCOUNT_ENDPOINT_EU=https://AAAAAAAAAAAAA
ACCESS_TOKEN_LIFETIME_WEB=7200
REFRESH_TOKEN_LIFETIME_WEB=86400
REFRESH_TOKEN_LIFETIME_DEFAULT=2592000
EMAIL_CONFIRM_LIFETIME=86400
REDIS_HOST=redis-cache
REDIS_PORT=6379
REDIS_PASSWORD=omdsredispass
ADB2C_CACHE_TTL=86400

View File

@ -0,0 +1,25 @@
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir : __dirname,
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
root: true,
env: {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js'],
rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
},
};

View File

@ -0,0 +1,8 @@
/dist*
/node_modules
/dump.rdb
/build
/openapi/build
.env.local

View File

@ -0,0 +1,14 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "start:debug"],
"envFile": "${workspaceFolder}/.env",
"console": "integratedTerminal"
}
]
}

View File

@ -0,0 +1,21 @@
{
"terminal.integrated.shell.linux": "/bin/bash",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.format.enable": false,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.formatOnPaste": true,
"editor.formatOnType": true,
"editor.renderWhitespace": "all",
"editor.insertSpaces": false,
"editor.renderLineHighlight": "all"
}

View File

@ -0,0 +1,12 @@
if [ ! -d "../tool" ]; then
mkdir "../tool"
echo "フォルダが作成されました。"
else
rm -f ../tool/ODMS_DataTool.exe
fi
unzip ../baseNode.zip -d ../tool
ncc build dist/main.js -o dist_single -a
npx -y postject ../tool/ODMS_DataTool.exe NODE_JS_CODE dist_single/index.js --sentinel-fuse NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2 --overwrite
cp -r build ../tool
cp .env ../tool
cp .env.local.example ../tool

View File

@ -0,0 +1,5 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src"
}

Some files were not shown because too many files have changed in this diff Show More