@yhonda/gcloud-secrets 2.0.11 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -36
- package/cli.js +761 -218
- package/package.json +6 -5
- package/skills/secrets.md +40 -10
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yhonda/gcloud-secrets",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Google Drive + age 暗号化でシークレットを管理する CLI ツール",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "cli.js",
|
|
7
7
|
"bin": {
|
|
@@ -23,8 +23,9 @@
|
|
|
23
23
|
"url": "git+https://github.com/yhonda-ohishi/gcloudSec.git"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
|
-
"
|
|
27
|
-
"
|
|
26
|
+
"google-drive",
|
|
27
|
+
"age-encryption",
|
|
28
|
+
"secrets",
|
|
28
29
|
"env",
|
|
29
30
|
"claude-code",
|
|
30
31
|
"cli"
|
|
@@ -42,7 +43,7 @@
|
|
|
42
43
|
},
|
|
43
44
|
"homepage": "https://github.com/yhonda-ohishi/gcloudSec#readme",
|
|
44
45
|
"dependencies": {
|
|
45
|
-
"
|
|
46
|
+
"googleapis": "^144.0.0"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"husky": "^9.1.7"
|
package/skills/secrets.md
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
# Skill: secrets
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Google Drive + age 暗号化でシークレットを管理するスキル
|
|
4
4
|
|
|
5
5
|
## コマンド一覧
|
|
6
6
|
|
|
7
7
|
### 初期化
|
|
8
8
|
```bash
|
|
9
|
-
gcloud-secrets init
|
|
9
|
+
gcloud-secrets init [drive-folder-id] --client-id <id> --client-secret <secret> [--env <default>]
|
|
10
10
|
```
|
|
11
|
-
|
|
11
|
+
Google Drive + OAuth + age 鍵の初期設定を行います。
|
|
12
|
+
- `drive-folder-id` 省略時は Drive に "gcloud-secrets" フォルダを自動作成
|
|
13
|
+
- `--client-id` / `--client-secret`: Google Cloud Console で作成した OAuth クライアント情報
|
|
14
|
+
- `--env` でデフォルト環境を指定(省略時は `dev`)
|
|
15
|
+
- `--age-key <path>` で age 秘密鍵パスを指定(省略時は `~/.age/key.txt`、未作成なら自動生成)
|
|
16
|
+
- `--age-pub <key>` で age 公開鍵を指定(省略時は秘密鍵ファイルから自動取得)
|
|
12
17
|
|
|
13
18
|
### 一覧表示
|
|
14
19
|
```bash
|
|
@@ -27,7 +32,7 @@ gcloud-secrets pull --env dev
|
|
|
27
32
|
# 指定フォルダから取得
|
|
28
33
|
gcloud-secrets pull <folder> --env prod
|
|
29
34
|
```
|
|
30
|
-
|
|
35
|
+
Drive から暗号化ファイルをダウンロードし、age で復号して .env 形式で出力します。
|
|
31
36
|
|
|
32
37
|
### シークレット登録 (push)
|
|
33
38
|
```bash
|
|
@@ -40,6 +45,7 @@ gcloud-secrets push <folder> --env prod
|
|
|
40
45
|
# 指定ファイルをアップロード
|
|
41
46
|
gcloud-secrets push <folder> <file> --env staging
|
|
42
47
|
```
|
|
48
|
+
.env ファイルを age で暗号化し、Drive にアップロードします。
|
|
43
49
|
|
|
44
50
|
### 同期状況スキャン (scan)
|
|
45
51
|
```bash
|
|
@@ -52,7 +58,7 @@ gcloud-secrets scan --env dev
|
|
|
52
58
|
# 指定ディレクトリ以下をスキャン
|
|
53
59
|
gcloud-secrets scan <path> --env prod
|
|
54
60
|
```
|
|
55
|
-
Git リポジトリ内の .env / .dev.vars ファイルと
|
|
61
|
+
Git リポジトリ内の .env / .dev.vars ファイルと Drive 上の暗号化ファイルの同期状況を確認します。
|
|
56
62
|
|
|
57
63
|
### 値から逆引き検索 (search)
|
|
58
64
|
```bash
|
|
@@ -62,13 +68,12 @@ gcloud-secrets search "api-key-12345"
|
|
|
62
68
|
# 特定環境のみ検索
|
|
63
69
|
gcloud-secrets search "client-id" --env prod
|
|
64
70
|
```
|
|
65
|
-
シークレットの値から、使用しているフォルダ・環境・キーを逆引き検索します。
|
|
66
71
|
|
|
67
72
|
出力例:
|
|
68
73
|
```
|
|
69
74
|
Searching for: "api-key-12345"
|
|
70
75
|
|
|
71
|
-
Scanning
|
|
76
|
+
Scanning 8 files...
|
|
72
77
|
|
|
73
78
|
[FOUND] my-app / dev - EXTERNAL_API_KEY
|
|
74
79
|
[FOUND] my-app / prod - EXTERNAL_API_KEY
|
|
@@ -79,7 +84,7 @@ Found 3 matches in 2 folders
|
|
|
79
84
|
|
|
80
85
|
#### scan 出力例:
|
|
81
86
|
```
|
|
82
|
-
===
|
|
87
|
+
=== シークレット同期状況 ===
|
|
83
88
|
|
|
84
89
|
[OK] project-a/ .env [dev] (3 keys)
|
|
85
90
|
[DIFF] project-b/ .env [prod] (2 keys) - 差分あり
|
|
@@ -92,6 +97,25 @@ Found 3 matches in 2 folders
|
|
|
92
97
|
未登録: 1
|
|
93
98
|
```
|
|
94
99
|
|
|
100
|
+
### .env 自動同期 (pre-commit)
|
|
101
|
+
```bash
|
|
102
|
+
# カレントディレクトリの .env を Drive に自動同期
|
|
103
|
+
gcloud-secrets pre-commit
|
|
104
|
+
```
|
|
105
|
+
git hook 用の高速コマンド。キャッシュで .env の変更を検知し、変更がなければ API コール 0 で即座に終了。
|
|
106
|
+
変更があれば Drive からダウンロード+復号で比較し、差分があれば暗号化+アップロード。
|
|
107
|
+
|
|
108
|
+
### グローバル git hook (hook)
|
|
109
|
+
```bash
|
|
110
|
+
# グローバル pre-commit hook をインストール
|
|
111
|
+
gcloud-secrets hook install
|
|
112
|
+
|
|
113
|
+
# アンインストール
|
|
114
|
+
gcloud-secrets hook uninstall
|
|
115
|
+
```
|
|
116
|
+
`hook install` で全リポジトリの `git commit` 時に `pre-commit` が自動実行されます。
|
|
117
|
+
既存の `.husky/` や `.git/hooks/` のフックにもフォワードするので互換性があります。
|
|
118
|
+
|
|
95
119
|
## 環境 (Environment) オプション
|
|
96
120
|
|
|
97
121
|
`--env` または `-e` で環境を指定できます:
|
|
@@ -105,8 +129,8 @@ Found 3 matches in 2 folders
|
|
|
105
129
|
## 使用例
|
|
106
130
|
|
|
107
131
|
```bash
|
|
108
|
-
# 1. 初期化 (
|
|
109
|
-
gcloud-secrets init
|
|
132
|
+
# 1. 初期化 (OAuth クライアント情報を設定)
|
|
133
|
+
gcloud-secrets init --client-id "xxx.apps.googleusercontent.com" --client-secret "GOCSPX-xxx" --env dev
|
|
110
134
|
|
|
111
135
|
# 2. dev 環境に .env を登録
|
|
112
136
|
gcloud-secrets push --env dev
|
|
@@ -122,4 +146,10 @@ gcloud-secrets scan ~/ --env dev
|
|
|
122
146
|
|
|
123
147
|
# 6. 特定の値がどこで使われているか検索
|
|
124
148
|
gcloud-secrets search "line-client-id-xxx"
|
|
149
|
+
|
|
150
|
+
# 7. グローバル git hook をインストール (全リポジトリで自動同期)
|
|
151
|
+
gcloud-secrets hook install
|
|
152
|
+
|
|
153
|
+
# 8. 手動で pre-commit を実行
|
|
154
|
+
gcloud-secrets pre-commit
|
|
125
155
|
```
|