kapi àüţĥ
Àüţĥéñţîçàţé ţĥé ÇĻÎ àĝàîñšţ à Bowrain šéŕṽéŕ, šö ÇĻÎ çöḿḿàñđš çàñ ŕéàçĥ ŵöŕķšþàçé-šçöþéđ ŕéšöüŕçéš, àñđ ḿàñàĝé ţĥé ţöķéñš à ḿàçĥîñé üšéš îñ ýöüŕ þļàçé.
Çöḿḿàñđš
àüţĥ ļöĝîñ
Šţàŕţ àñ îñţéŕàçţîṽé ļöĝîñ üšîñĝ ţĥé ÖÀüţĥ đéṽîçé ƒļöŵ:
kapi auth login
Ţĥé ÇĻÎ đîšþļàýš à ÜŔĻ àñđ à öñé-ţîḿé çöđé. Öþéñ ţĥé ÜŔĻ îñ ýöüŕ ƃŕöŵšéŕ, éñţéŕ ţĥé çöđé, àñđ àüţĥöŕîžé ţĥé àþþļîçàţîöñ. Ţĥé ÇĻÎ þöļļš àüţöḿàţîçàļļý àñđ šţöŕéš ýöüŕ ţöķéñ öñ šüççéšš.
$ kapi auth login
Open https://app.bowrain.cloud/auth/device and enter code: ABCD-1234
Waiting for authorization...
Logged in as reviewer@example.com
Ţĥé šéŕṽéŕ îš ŕéšöļṽéđ ƒŕöḿ (ƒîŕšţ ḿàţçĥ ŵîñš):
- ţĥé
--serverƒļàĝ BOWRAIN_SERVER_URL, öŕserver.urlîñ ţĥé þéŕ-ḿàçĥîñé bowrain çöñƒîĝ- ţĥé šéŕṽéŕ öƒ ţĥé šţöŕéđ ļöĝîñ öñ ţĥîš ḿàçĥîñé
- ţĥé ĥöšţéđ šéŕṽîçé,
https://app.bowrain.cloud
Šéļƒ-ĥöšţéđ đéþļöýḿéñţš þàšš --server öŕ šéţ BOWRAIN_SERVER_URL:
kapi auth login --server https://bowrain.example.com
Ţĥé àççéšš ţöķéñ îš šţöŕéđ îñ ţĥé ÖŠ ķéýçĥàîñ àñđ üšéđ àüţöḿàţîçàļļý ƃý öţĥéŕ ÇĻÎ çöḿḿàñđš; šéé Ţöķéñ šţöŕàĝé.
àüţĥ šţàţüš
Çĥéçķ ţĥé çüŕŕéñţ àüţĥéñţîçàţîöñ šţàţé:
kapi auth status
Öüţþüţ:
Server: https://app.bowrain.cloud
User: reviewer@example.com
Name: Jane Reviewer
Expires: 2026-02-11 14:30:00
àüţĥ ļöĝöüţ
Ŕéḿöṽé ţĥé šţöŕéđ ţöķéñ:
kapi auth logout
àüţĥ çļàîḿ
Çļàîḿ àñ àñöñýḿöüš þŕöĵéçţ îñţö ýöüŕ ŵöŕķšþàçé. À þŕöĵéçţ çŕéàţéđ ŵîţĥ
kapi init --anonymous öŕ --email çàŕŕîéš à çļàîḿ ţöķéñ; öñçé ýöü àŕé
šîĝñéđ îñ, çļàîḿîñĝ îţ ţŕàñšƒéŕš ţĥé þŕöĵéçţ îñţö ýöüŕ þéŕšöñàļ ŵöŕķšþàçé öñ
ţĥé šéŕṽéŕ, þŕéšéŕṽîñĝ îţš ƒîļéš àñđ ţĥéîŕ ŕéšüļţš:
kapi auth claim # uses the claim token stored with the project
kapi auth claim <claim-token> # or the token from the claim link
àüţĥ ţöķéñ
Ḿîñţ, ļîšţ àñđ ŕéṽöķé ÀÞÎ ţöķéñš ƒöŕ ḿàçĥîñéš: ÇÎ ŕüññéŕš, šçŕîþţš, îñţéĝŕàţîöñš. À ţöķéñ àçţš öñ ţĥé šéŕṽéŕ ŵîţĥ ţĥé šçöþé îţ ŵàš çŕéàţéđ ŵîţĥ, àñđ ÀÞÎ àççéšš îš àṽàîļàƃļé öñ éṽéŕý þļàñ.
kapi auth token create --name "ci" --expire-days 90
kapi auth token list
kapi auth token delete <token-id>
Ţĥé ţöķéñ ṽàļüé (bwt_…) îš šĥöŵñ öñçé, àţ çŕéàţîöñ. Öñ à ŕüññéŕ, éẋþöŕţ îţ àš
BOWRAIN_AUTH_TOKEN; ţĥé ÇĻÎ çĥéçķš ţĥàţ ṽàŕîàƃļé ƃéƒöŕé àñý šţöŕéđ ļöĝîñ, àñđ
þàîŕš îţ ŵîţĥ BOWRAIN_SERVER_URL öñ à šéļƒ-ĥöšţéđ šéŕṽéŕ. Šéé
Ţĥé ļööþ îñ ÇÎ.
Ĥöŵ îţ ŵöŕķš
Ţĥé ļöĝîñ ƒļöŵ üšéš ţĥé ÖÀüţĥ 2.0 Đéṽîçé Àüţĥöŕîžàţîöñ Ĝŕàñţ
(ŔƑÇ 8628), ţĥé šàḿé ƒļöŵ üšéđ ƃý ţööļš ļîķé gh auth login àñđ gcloud auth login.
Ţĥîš ŵöŕķš îñ ĥéàđļéšš éñṽîŕöñḿéñţš (ŠŠĤ šéššîöñš, ÇÎ çöñţàîñéŕš) ŵĥéŕé à ƃŕöŵšéŕ
ŕéđîŕéçţ îš ñöţ àṽàîļàƃļé.
- ÇĻÎ ŕéǫüéšţš à đéṽîçé çöđé ƒŕöḿ ţĥé šéŕṽéŕ
- Üšéŕ öþéñš ţĥé ṽéŕîƒîçàţîöñ ÜŔĻ îñ àñý ƃŕöŵšéŕ àñđ éñţéŕš ţĥé çöđé
- ÇĻÎ þöļļš ţĥé šéŕṽéŕ üñţîļ ţĥé üšéŕ àüţĥöŕîžéš
- Šéŕṽéŕ îššüéš à ĴŴŢ ţöķéñ, ÇĻÎ šţöŕéš îţ ļöçàļļý
Öþţîöñš
| Ƒļàĝ | Àþþļîéš ţö | Đéšçŕîþţîöñ |
|---|---|---|
--server | login | Šéŕṽéŕ ÜŔĻ ţö àüţĥéñţîçàţé àĝàîñšţ; ţĥé ĥöšţéđ šéŕṽîçé ŵĥéñ öḿîţţéđ |
--name | token create | À ļàƃéļ ƒöŕ ŵĥéŕé ţĥé ţöķéñ îš üšéđ |
--expire-days | token create | Đàýš üñţîļ ţĥé ţöķéñ éẋþîŕéš |
Ţöķéñ šţöŕàĝé
Ţĥé àççéšš àñđ ŕéƒŕéšĥ ţöķéñš ļîṽé îñ ţĥé ÖŠ ķéýçĥàîñ, üñđéŕ ţĥé ķéýš
bowrain-auth:<server-url> àñđ bowrain-refresh:<server-url>. Öñļý ñöñ-šéçŕéţ
ḿéţàđàţà îš ŵŕîţţéñ ţö auth.json îñ ţĥé bowrain çöñƒîĝ đîŕéçţöŕý
(~/.config/bowrain öñ Ļîñüẋ, ~/Library/Application Support/bowrain öñ
ḿàçÖŠ; BOWRAIN_CONFIG_DIR öṽéŕŕîđéš îţ):
{
"server_url": "https://app.bowrain.cloud",
"expiry": "2026-02-11T14:30:00Z",
"user": {
"id": "usr_abc123",
"email": "reviewer@example.com",
"name": "Jane Reviewer"
}
}
Šéŕṽéŕ àüţĥéñţîçàţîöñ
Àüţĥéñţîçàţîöñ îš ŕéǫüîŕéđ ŵĥéñ çöññéçţîñĝ ţö à bowrain-server, ŵĥîçĥ ŕüñš àš
à ḿüļţî-üšéŕ đéþļöýḿéñţ ŵîţĥ ŵöŕķšþàçéš. Þàššķéýš àñđ àççöüñţ ḿàñàĝéḿéñţ ļîṽé
îñ ţĥé ŵéƃ àþþ'š àççöüñţ šéţţîñĝš; ţĥé ÇĻÎ šîĝñš îñ ţĥŕöüĝĥ ţĥé šàḿé îđéñţîţý
þŕöṽîđéŕ ƃý ŵàý öƒ ţĥé đéṽîçé ƒļöŵ.