コマンド¶
台帳を組むための道具。画面と同じ domain.admin_ops を呼ぶので、どちらから入っても
同じ不変条件を通り、同じ形で監査に残る。
arkhe onboard |
組織を迎え入れ、名前空間を 1 つ委譲する。この 2 つは必ず対で起きる。 |
arkhe succeed |
統廃合。識別子は壊さない(名前空間ごと承継先に移す)。 |
arkhe depart |
組織の離脱。新規採番は止め、解決は続ける。 |
arkhe stat |
台帳を数える——ARK(公開/公開前)、取り下げた名前、shoulder、組織、主体、今かかっている保留、直近 24h / 7 日 / 30 日の採番。届く範囲の内側だけ。機械で読むなら --json。数えるのは行数に比例して重い(30 万件で約 110 ms)ので、繰り返し叩く用途には向かない。 |
arkhe fingerprint |
台帳の指紋を出す——復元できたことを、件数ではなく中身で確かめる。2 行(arks と withdrawn)に分けてあるのは、潰すと「どこが違うか」が消えるため。機械で読むなら --json。行数に比例して重い。 |
arkhe check |
設定を検証する。起動前に落としたいものをここで落とす。 |
arkhe naan add |
NAAN を登録する。 |
arkhe naan list |
NAAN を並べる。権威を持つのか、どこへ委譲しているのかが出る。 |
arkhe manager list |
組織を並べる。id は他のコマンドの入力になる。 |
arkhe manager commitment |
組織の約束の水準を言い直す。?? でそのまま公開される。 |
arkhe manager policy |
組織にできることを狭める(入り方・自己登録・scope の上限)。NAAN の決まりから狭めることしかできない——広げられない。 |
arkhe shoulder add |
名前空間を切り出す。綴りは first-digit 規約——子音の並び+末尾に数字 1 桁(/x9。桁数が切り出せる数を決める)。--reserve で将来用に確保できる。以降の shoulder コマンドが取る id を表示する。 |
arkhe shoulder status |
状態を変える。retired からは戻せない(引退した名前空間の再開は NR 違反の芽)。 |
arkhe shoulder redirect |
shoulder 単位で解決を委譲する($id / ${blade} / 先頭の 303)。空文字を渡せば外す。 |
arkhe shoulder list |
shoulder を並べる。id は他のコマンドの入力になる。 |
arkhe client add |
主体を登録する。 |
arkhe client key |
資格情報を発行する。平文はこの一度しか表示されない。 |
arkhe client breakglass |
NAAN 配下すべてに届く一時的な主体を作る。期限つき。 |
arkhe client passwd |
人の主体にパスワードを設定する(管理画面へのローカルログイン用)。 |
arkhe client revoke |
失効させる。行は消さない(いつ失効したかを残す)。 |
arkhe client disable |
主体を止める。認可サーバに寄せた構成ではこれが唯一の止め方。 |
arkhe client enable |
止めた主体を戻す(去った組織の主体は戻せない)。 |
arkhe hold add |
転送を一時的に止める(ark / shoulder / naan)。解決は止めない——記述は答え続ける。期限と理由は必須。 |
arkhe hold release |
期限を待たずに保留を外す。 |
arkhe hold list |
今かかっている保留を並べる。見えないと恒久化する。 |
arkhe ark list |
発行した ARK を並べる。既定で 50 件で打ち切る(台帳は増える一方なので)。--naan --org で絞り、-q は ARK・行き先・題名を見る。 --state public|reserved で公開したものだけ・公開前のものだけを引け、--older-than N で採番から N 日より古いものだけにできる——重ねると、誰も公開しないまま残った予約が拾える。 |
arkhe ark publish |
グローバルに公開する。 取り下げたものを出し直すのも同じ口。二度実行しても落ちない。 |
arkhe ark unpublish |
公開を取り下げる。 行は残るので publish で出し直せる——戻せるのはこちらだけ。 理由が必須で、確認を訊く(--yes で省ける)。 |
arkhe ark delete |
公開していない ARK を消す。 公開中のものは先に取り下げる。一度でも公開した名前なら理由が必須で、確認を訊く。 複数並べると一括の経路を通り、一度でも公開した名前が混じっていれば 1 件も消さない。- を渡すと標準入力から 1 行 1 件で読む。消えるのは行だけで、その名前は二度と採られない。 |
arkhe ark purge |
公開した ARK を一手で破棄する(取り下げと削除をまとめる)。届く範囲の内側だけ。理由が必須で、確認を訊く(--yes で省ける)。約束を破る操作——削除命令や、公開してはならなかったものへの逃げ道 |
--help に各コマンドの引数がある。
コマンドが言う「主体(principal)」は、管理画面では「利用者」と呼んでいる (管理画面)。同じものである。
通しの手順ははじめて立ち上げるときにある——NAAN の申請と registry への登録という、arkhe の外で起きる手順も含めて並べてある。
よくある流れ¶
立ち上げ¶
arkhe naan add 99999 "あなたの組織" --policy "NP | NR, OP, CC | 2026 | https://…/policy"
arkhe onboard 99999 "例大学" --shoulder /x9 --commitment permanent-stable
arkhe client add univ-repo 99999 --manager 1 --scopes "ark:mint ark:update"
arkhe client key univ-repo
組織と名前空間は必ず対で作られる(onboard が両方やる)。片方だけでは、採番できない
組織を作るだけで意味がない。
人を足す(管理画面にログインさせる)¶
arkhe client add alice@example.ac.jp 99999 --manager 1 --person
arkhe client passwd alice@example.ac.jp # ARKHE_ADMIN_LOGIN=password のとき
--person を付けた主体は資格情報を持てず、--person の無い主体は
外部ログインで名乗れない。認証を参照。
障害時の逃げ道¶
NAAN 配下すべてに届く主体を期限つきで作る。恒久的な万能鍵にしないため期限は必須で、 この主体の操作は全件が監査に残る。
名前空間を止める¶
arkhe shoulder add 99999 /q0 --reserve --note "将来用に確保"
arkhe shoulder status 3 delegated --minter https://mint.partner.example.org
arkhe shoulder status 3 retired --note "移行完了"
転送を止める¶
arkhe hold add ark ark:99999/x9tn1qkq2g7 --days 3 --reason "行き先を確認中"
arkhe hold add shoulder 3 --days 1 --reason "委譲先のリゾルバが落ちている"
arkhe hold list
arkhe hold release shoulder 3
解決は止まらない。 止まるのは転送だけで、?info も ?? も答え続ける。期限は
必須で、切れれば時計だけで戻る——戻し忘れが残らない。失われた対象を宣言するのは
これではなく tombstone のほう(意味も可逆性も違う)。
retired からは戻せない。 予約は作成時にしか指定できない——一度採番できる状態に
した名前空間を、後から未使用扱いにはできないから。
名前を先に押さえ、後から公開する¶
curl -X POST /api/mint -d '{"reserve": true}' # まだ解決しない
arkhe ark list --state reserved
arkhe ark list --state reserved --older-than 365 # 放置を拾う
arkhe ark publish ark:99999/x9tn1qkq2g7 # ここから解決を始める
arkhe ark unpublish ark:99999/x9tn1qkq2g7 --reason "誤って公開した"
arkhe ark publish ark:99999/x9tn1qkq2g7 # 出し直す
arkhe ark delete ark:99999/x9tn1qkq2g7 --reason "登録が取りやめになった"
# 放置された予約をまとめて捨てる。訊かれるのは 1 回。**先に一覧を見ること**(戻せない)
arkhe ark list --state reserved --older-than 365 --limit 1000
arkhe ark list --state reserved --older-than 365 --limit 1000 | awk '{print $1}' | \
arkhe ark delete - --reason "審査が取りやめになった"
そのまま消せるのは、今 公開していないものだけ。 公開中の ARK は、先に
arkhe ark unpublish で取り下げるか、arkhe ark purge で一手に破棄する
——どちらも届く範囲の内側で、理由と確認を要求する。
どちらの場合も取り下げた名前は二度と採られないので、消した後にその名前が別のものを 指すことはない。壊さないものを参照。
コマンドの言語¶
arkhe の help と出力は日本語と英語を持つ。言語は起動時に環境から決まる——
Typer が help を組み立てるのが import の時点なので、--lang のような実行時の
切り替えは作れない。
ARKHE_LANG |
ja / en。すべてに優先する |
LC_ALL → LC_MESSAGES → LANG |
POSIX の順で見る。C と POSIX は「言語の情報が無い」の意味なので飛ばす |
| 既定 | ja(管理画面と揃えてある) |