# ワークスペースと環境

ワークスペースは、キー・メンバー・監査ログをまとめる単位です。自分用とチーム用のワークスペースを、サインインし直さずに切り替えて使えます。

## 自分用とチーム用

初回のサインイン時に、自分だけが使うワークスペースが 1 つ作られます。中にはフォルダとキーだけを置き、プロジェクトや環境の区分はありません。

チームで使う場合や、開発用と本番用で値を分けたい場合は、ワークスペースを新しく作ります。新しく作ったワークスペースはプロジェクトと環境に分かれ、メンバーを招待できます。

ワークスペースは、メンバー・役割・監査ログの単位でもあります。画面上部のバーに、表示中のワークスペースの名前が出ます。左メニューには、そのワークスペースの中身が並びます。

## 構成

チームのワークスペースは、次の 4 段で構成されます。

- **ワークスペース**: チームの単位。メンバーと役割、端末、監査ログはワークスペースに属します。
- **プロジェクト**: リポジトリやサービス 1 つに対応します。`web-app` のような名前を付けます。
- **環境**: 本番・開発など。同じ名前のキーに、環境ごとに別の値を持てます。
- **フォルダ**: キーの名前に含まれる `/` で決まります。空のフォルダを先に作ることもできます。

チームのワークスペースでは、キーを置けるのはプロジェクトの環境の下だけです。自分用のワークスペースでは、ワークスペースの直下（フォルダの中）に置きます。

## 環境

チームのワークスペースで作ったプロジェクトには、開発・検証・本番の 3 つの環境があります。キーの一覧では環境が列として並び、列見出しの「＋」と「…」から、環境の追加・名前の変更・並べ替え・削除ができます。自分用のワークスペースには環境もプロジェクトもありません。キーはフォルダに分けて置きます。

![チームのワークスペースのキーの一覧。Development・Staging・Production の 3 つの環境が列として並んでいる](https://aikagi.dev/guide/img/keys.webp)

*環境が列として並ぶので、同じキーの値を環境ごとに 1 行で見比べられます。*

環境の名前を変えても、`.aikagi.toml` や GitHub Actions の許可が参照する slug（識別用の英字の名前）は変わりません。そのため、名前の変更で設定が外れることはありません。最後の 1 つの環境は削除できません。

ふだん使う環境は、リポジトリの `.aikagi.toml` に書いておきます。ブランチごとに環境を変えることもできます。

```sh
environment = "development"

[branches]
main    = "production"
release = "staging"
```

## 自分だけの値

チームで共有しているキーでも、共有の値を変えずに、自分だけが使う値を設定できます。設定方法は[キー](https://aikagi.dev/guide/keys.md#mine)のページで説明しています。

自分だけの値が使われるのは、あなたが値を取得するときだけです。他のメンバーには共有の値が渡り、共有の値の版や履歴も変わりません。

## 作成する

ワークスペースとプロジェクトは、画面からも CLI からも作成できます。名前に使えるのは英小文字・数字・ハイフンです。

```sh
aikagi workspace create acme
aikagi project create acme/web-app
aikagi env ls -w acme -p web-app
```

プロジェクトを作成すると、開発・検証・本番の 3 つの環境も作成されます。ほかの環境が必要な場合は追加してください。追加した環境は末尾に並びます。

```sh
aikagi env add qa -w acme -p web-app
```

環境の名前の変更と削除も CLI でできます。名前を変えても slug は変わりません。環境を削除すると、その環境のキーの値も一緒に削除されます。

```sh
aikagi env rename qa 検証 -w acme -p web-app
aikagi env rm qa -w acme -p web-app
```

ここまでの操作は、画面を開かずに CLI だけで完了します。続けて[他のサービスからの移行](https://aikagi.dev/guide/import.md)に進むこともできます。

---

出典: https://aikagi.dev/guide/workspaces/
