# devcontainer

ローカル開発環境の定義

## .aws/\*\*

`aws sso login`利用時に必要な設定を記述する。

## devcontainer.json, initializeCommand.sh, postCreateCommand.sh

devcontainerの構成を定義する。

コンテナ作成前にホストで実行するコマンドは`initializeCommand.sh`に記述する。
イメージビルド後にコンテナで実行するコマンドは`postCreateCommand.sh`に記述する。

## bin/\*\*, completions/\*\*

ローカル開発環境で実行頻度の高い処理をコマンド化したもの。
また、そのコマンドのオプションの入力補完。

## auth

認証リクエストを実行する。

```bash
# AWS SSO認証
auth

# 管理APIのM2M認証、アクセストークンを取得する
auth m2m

# ローカル環境のユーザー認証、IDトークンを取得する
auth local-user
```

## deploy

AWSにステージをデプロイする

```bash
export STAGE=${ステージ名}
deploy

# 特定スタックのデプロイのみを行う
deploy ManagementApiStack
```

## fixture

ローカル環境にデータを投入する

```bash
# database/fixture/integrationtest以下のデータを投入（デフォルト）
fixture

# 別のディレクトリのデータを投入
fixture ${ディレクトリ名}
```

## local-deploy

ローカル環境（Docker Compose）を操作する

```bash
# 環境を起動する
local-deploy

# 環境を終了する
local-deploy down

# 環境を初期化して起動する（コンテナとボリュームを削除してから起動）
local-deploy init

# その他オプション必要な場合は末尾につけることができる
local-deploy -d
```

## migration

ローカル環境にマイグレーションを行う

```bash
# alembic upgrade head （デフォルト）
migration

# alembic downgrade base
migration downgrade

# alembic downgrade -1
migration downgrade -1
```
