メール認証トークンの管理
以下のエンドポイントはメール認証トークンに適用されます。認証が必要なリクエストにはすべて Authorization: Bearer <APIキー> を使用します。
API キー(tg_anon_…)は、Takumi Guard のすべてのエコシステム(npm および PyPI)で利用できます。登録は一度だけで十分です。同じトークンで任意のパッケージマネージャーを設定できます。
トークンステータスの確認
curl -H "Authorization: Bearer tg_anon_xxxxxx" \
https://npm.flatt.tech/api/v1/tokens/status
最終使用日時を含む利用統計情報が返されます。
トークンの確認方法
API キーは登録時に届くウェルカムメールに記載されています。また、パッケージマネージャーは認証情報を平文の設定ファイルに保存するため、セットアップ時に保存された場所からトークンを復元することもできます。
パッケージマネージャーは平文の認証情報のみをサポートしています。これは各パッケージマネージャーの認証プロトコルの制約であり、Takumi Guard の設計上の選択ではありません。
npm
トークンは .npmrc(プロジェクトレベルまたはユーザーレベルの ~/.npmrc)に保存されています。
cat ~/.npmrc | grep flatt.tech
# 出力: //npm.flatt.tech/:_authToken=tg_anon_xxxxxx
yarn berry(v2+)の場合は .yarnrc.yml を確認してください。
grep npmAuthToken .yarnrc.yml
bun の場合は bunfig.toml を確認してください。
grep token bunfig.toml
pip / uv
pip config set で設定した場合(推奨)は、以下のコマンドで保存された値を確認できます。
pip config get global.index-url
# 出力: https://token:tg_anon_xxxxxx@pypi.flatt.tech/simple/
uv の場合は環境変数を確認してください。
echo $UV_INDEX_URL
# 出力: https://token:tg_anon_xxxxxx@pypi.flatt.tech/simple/
環境変数で設定した場合は、シェルプロファイル(.bashrc、.zshrc など)を確認してください。
echo $PIP_INDEX_URL
# 出力: https://token:tg_anon_xxxxxx@pypi.flatt.tech/simple/
uv.toml(ユーザーレベル: ~/.config/uv/uv.toml、プロジェクトレベル: uv.toml または pyproject.toml)で設定した場合は以下を確認してください。
grep -r flatt.tech ~/.config/uv/uv.toml uv.toml pyproject.toml 2>/dev/null
Poetry
poetry config http-basic.takumi-guard
# 出力: Username: token, Password: tg_anon_xxxxxx
トークンのローテーション
現在のキーがある場合 — regenerate エンドポイントを使ってすぐにローテーションできます。
curl -X POST \
-H "Authorization: Bearer tg_anon_xxxxxx" \
https://npm.flatt.tech/api/v1/tokens/regenerate
レスポンスに新しいキーが含まれています。古いキーは即座に無効化されます。古いキーを使用しているすべてのパッケージマネージャーの設定を更新してください。
- npm:
.npmrcを更新(//npm.flatt.tech/:_authToken=<新しいキー>) - pip:
pip config set global.index-url https://token:<新しいキー>@pypi.flatt.tech/simple/を再実行(環境変数を使用している場合はPIP_INDEX_URLを更新) - uv: シェルプロファイルの
UV_INDEX_URLを更新 - poetry:
poetry config http-basic.takumi-guard token <新しいキー>を実行
キーを紛失した場合 — まずパッケージマネージャーの設定からの復元をお試しください。どこにも見つからない場合は、同じメールアドレスで再登録してください。
curl -X POST https://npm.flatt.tech/api/v1/tokens \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "language": "ja"}'
メールアドレスがすでに確認済みのため、既存トークンの確認方法、追加エコシステムのセットアップコマンド、およびワンタイムリセットコードを含むメールが送信されます。メールにはメールアドレスとリセットコードが埋め込まれた、そのままコピーして実行できるコマンドが記載されています。
curl --json '{"email": "you@example.com", "code": "XXXX"}' \
https://npm.flatt.tech/api/v1/tokens/reset
リセットコードの有効期限は 1 時間です。レスポンスに新しいキーが含まれ、古いキーは即座に無効化されます。コードの有効期限が切れた場合は、再度登録リクエストを送信すれば新しいコードが届きます。この操作はいつでも繰り返し実行できます。
メールアドレスは npm.flatt.tech と pypi.flatt.tech のどちらに送信しても構いません — 同じトークンデータベースを共有しています。どちらのエンドポイントを使用しても、取得したトークンはすべてのエコシステムで利用可能です。
トークンの失効
curl -X DELETE \
-H "Authorization: Bearer tg_anon_xxxxxx" \
https://npm.flatt.tech/api/v1/tokens
トークンは即座に無効化されます。
失効後、無効化されたトークンを使ったコマンドはすべてのエコシステムで 401 エラーで失敗します。失効前に .npmrc、環境変数、poetry の設定を更新してください。