CLI
すべてのコマンドが --json と --yes を受け取ります。この表でまとめたサブコマンドまで含めた全文は naro help で出ます。
コマンド
| コマンド | 動作 |
|---|---|
naro login | GitHub でサインインします。ブラウザを開きます。 |
naro logout | 保存したセッションを破棄します。 |
naro whoami | サインイン中のアカウントを表示します。 |
naro token | CI 用のアクセストークンを出力します。NARO_TOKEN として使います。 |
naro link | このディレクトリをプロジェクトに接続し、.naro/project.json を書きます。 |
naro unlink | 接続を解除します。 |
naro projects [--team <slug>] | プロジェクトを一覧します。チームで絞れます。 |
naro project inspect | 接続中のプロジェクトを表示します。 |
naro deploy [--prod] [--root <dir>] | ローカルでビルドしてデプロイします。--prod がなければプレビュー。モノレポでは --root でアプリの位置を指します。 |
naro deployments | 接続中のプロジェクトのデプロイを一覧します。 |
naro inspect <deployment-id> | ひとつのデプロイをビルドログ付きで表示します。 |
naro cancel <deployment-id> | まだ実行中のビルドを止めます。 |
naro git connect | disconnect | リポジトリを接続・解除します。接続すると push ごとにデプロイされます。 |
naro logs [deployment-id] [--type build|runtime] | ランタイムログ。--type build でそのデプロイのビルドログ。 |
naro analytics [--range <r>] [--path <p>] [--referrer <host>] [--country <cc>] [--device <d>] [--browser <b>] [--os <o>] | 実際の訪問によるウェブアナリティクス。期間(--range、既定は 7d)の訪問者数とページビューを表示し、続いてページビューの多いページ・参照元・国・デバイス・ブラウザ・OS を表示します。--path、--referrer、--country、--device、--browser、--os でディメンションごとに値をひとつずつ絞り込め、複数指定するとすべてに当てはまる訪問だけを数えます。--json はトレンドを含むレポート全体を出力します。 |
naro insights [--metric <m>] [--range <r>] [--env <e>] [--route <pattern>] [--path <p>] [--country <cc>] [--device <d>] [--browser <b>] [--os <o>] | enable | disable | 実際の訪問による Speed Insights。指標ごとの p75 と良好・要改善・不良の割合を表示し、選んだ指標(--metric, --range)をページ・デバイス・遅い訪問の原因要素・デプロイ別に表示します。既定は本番で、--env preview はプレビューワーカーを読みます。--route はひとつのルートのパスを展開し、enable・disable で両方の環境の計測をまとめてオン・オフします。--path、--country、--device、--browser、--os でディメンションごとに値をひとつずつ絞り込めます(Speed Insights には参照元がないため --referrer は拒否します)。指標の下の1行に、ページの読み込み時間の p75 と各ステップの平均を表示します。 |
naro protection [--project <id>] | enable | disable | bypass [remove] | プレビュー保護を表示・変更します。オンならこのプロジェクトのメンバーだけがプレビューURLを開け、オフならリンクを知っている人は誰でも開けます。enable・disable で切り替えると、エッジが反映するまで1分ほどかかります。bypass は CI や監視が x-naro-protection-bypass ヘッダーで送るバイパス用シークレットを作成し(一度だけ表示され、以前のものは置き換えられます)、bypass remove で削除します。 |
naro env list | add | remove | pull | 環境変数の一覧・追加・削除・取得。 |
naro domains list | add <host> | remove <host> | verify [host] | カスタムドメインの一覧・追加・削除。verify は DNS を再確認し、不足を表示します。カスタムドメインは 1 プロジェクトにつき 20 個まで(apex を www と一緒に追加すると 2 個)、プロジェクトを配信するドメイン名は合計 4,800 バイトまでです。 |
naro db enable | info | query <sql> | push | dump | restore | pull | reset [--yes] | lint | table <action> | index <action> | プロジェクトのデータベースを作成し、状態と上限を表示し、SQL を実行し、SQL を書かずにテーブルとインデックスを作成・変更し、未適用のマイグレーションを適用します。ファイルへのダンプ、以前の時点への復元、スキーマを最初のマイグレーションとして取り込むこと、ポリシーを含めたマイグレーションファイルが示す状態への巻き戻し、D1 が実際につまずく点と Data API が適用できないポリシーの点検もできます。 |
naro migration new <name> | list | up | repair <name> [--status <s>] [--yes] | 番号付きのマイグレーションファイルを作成し、ローカルと適用済みを比較し、未適用分を適用し、記録がデータベースとずれたときに記録だけを直します。 |
naro gen types [--lang typescript] [--output <file>] | データベーススキーマの TypeScript 型を出力します。テーブルごとの Row インターフェースと、naro-js の createClient<Database>() が受け取る Database 型です。--lang は TypeScript のみです。 |
naro backend [status] | enable | disable | keys [--reveal] | keys rotate --anon|--service | プロジェクトのバックエンドがオンかオフか、状態・URL・anon キーを表示し、バックエンドをオン(provision も同じコマンド)・オフにし、--reveal で service キーを出力し、キーを入れ替えます。 |
naro backend auth [email set|remove] [oauth set|remove <google|github>] [redirects list|add|remove <url>] [require-verification <on|off>] [signups <on|off>] [password --min-length <n>] | サインインの設定を表示・変更します。誰でもサインアップできるか(signups off で、作成したアカウントだけになります)、新しいパスワードの最小文字数、確認メールとリセットメールを送る Resend アカウント、Google と GitHub のアプリ、サインイン後にブラウザーを戻してよいオリジン、メール確認前のサインインを拒否するかどうか。メールとパスワードのサインインは何も設定せずに使えます。シークレットはコマンドラインではなく stdin(--api-key-stdin、--client-secret-stdin)からのみ読みます。 |
naro backend users [create --username <name> --password-stdin] [delete <id|username|email>] | Supabase の auth.admin と同じように、プロジェクトのユーザーを一覧・作成・削除します。create はユーザー名とメールの一方または両方とパスワード(--password-stdin)を受け取り、アカウントは確認済みで作られ、サインアップを閉じていてもすぐにサインインできます。delete は id・ユーザー名・メールを受け取り、先に確認します。 |
naro policy list [--table <t>] | create "<CREATE POLICY …>" [--allow-unindexed] | drop <name> --table <t> | set <table> [--select <rule>] [--owner <column>] [--select-when <filter>] [--from-file <policy.json>] | remove <table> | Postgres・Supabase と同じ Data API の行レベルセキュリティ: ポリシーを CREATE POLICY として一覧し、CREATE POLICY 文から作成し(--file には複数の文と DROP POLICY も書けます)、名前で削除します。set はルール(none、public、authenticated、owner)または auth.uid() を使うフィルター構文の条件から naro_select … naro_delete を書く省略形で、remove はテーブルのポリシーをすべて削除します。ポリシーのないテーブルは anon とサインイン済みユーザーのリクエストをすべて拒否します。 テーブルのポリシーはそのテーブルのマイグレーションに書いて、テーブルと一緒に管理してください。これらのコマンドはデータベースを直接変更します。 |
naro storage [status] | enable | bucket <action> [name] | ls [naro://<bucket>[/<prefix>]] | cp <from> <to> | rm <naro://bucket/path> | Naro Storage をオンにし、上限と保存量を表示し、バケットを作成・変更・空に・削除し、プロジェクトの service キーで naro://<bucket>/<path> のファイルを一覧・コピー・削除します。 |
naro promote <deployment-id> | 既存のビルドを再ビルドせずに本番へ公開します。 |
naro rollback [deployment-id] | 本番をひとつ前のビルドへ戻します。 |
グローバルオプション
| コマンド | 動作 |
|---|---|
--json | 標準出力に機械可読な JSON オブジェクトをひとつ。 |
--yes, -y | 一切尋ねません。CI とエージェント向け。 |
--token <t> | アクセストークン。NARO_TOKEN でも渡せます。 |
--project <id> | 対象プロジェクトを指定し、.naro/project.json を上書きします。 |
--root <dir> | リポジトリ内のアプリディレクトリ。モノレポ用。 |
--name <name> | 初回デプロイで使うプロジェクト名。 |
--team <slug> | 一覧と接続に使うチームスコープ。 |
--prod | 本番を対象にします。 |
--debug | 詳細な診断出力。 |
JSON 出力
--json は標準出力にちょうどひとつの JSON オブジェクトを出し、ログは標準エラーへ送ります。呼び出し側は絞り込みなしに標準出力をそのままパースできます。
エラーコード
失敗は success: false とコードとメッセージを返します。コードは安定しています — メッセージではなくコードで分岐してください。
| コード | 動作 |
|---|---|
NOT_LOGGED_IN | セッションがありません。naro login を実行するか、トークンを渡してください。 |
PROJECT_NOT_LINKED | このディレクトリにリンクファイルがありません。naro link を実行するか、一度デプロイしてください。 |
FRAMEWORK_UNSUPPORTED | naro がビルドできるフレームワークとして判定できませんでした。 |
BUILD_FAILED | フレームワークのビルドが失敗しました。ビルドログを読み、直して再デプロイしてください。 |
DEPLOYMENT_NOT_FOUND | その id のデプロイはこのプロジェクトにありません。 |
DEPLOYMENT_NOT_PROMOTABLE | 成果物が残っている READY のデプロイだけが対象です。 |
UNAUTHORIZED | そのセッションまたはトークンにこのプロジェクトの権限がありません。 |
RATE_LIMITED | リクエストが多すぎます。時間をおいて再試行してください。 |