BusDK Update

bus operator erottaa operaattorin auth-tehtävät loppukäyttäjän kirjautumisesta

bus-operator tuo operaattorille oman bus operator -komentopinnan. Loppukäyttäjä käyttää edelleen bus auth -komentoa rekisterointiin, OTP-vahvistukseen, tilan tarkistukseen ja API-tokenin hakemiseen.

Operaattorin puolelle siirtyvät waitlistin lukeminen, käyttäjän hyväksyminen tai hylkääminen sekä sisäisen service-tokenin bootstrap.

27.4.2026bus-operatorauth adminservice tokens

Tiiviisti

TL;DR

  • bus operator auth waitlist, approve ja reject käyttävät admin-scopella annettua auth-palvelun bearer-tokenia.
  • bus operator token issue kutsuu sisäisen /api/internal/auth/token -endpointin eksplisiittisellä sisäisellä avaimella.
  • bus auth pysyy käyttäjän kirjautumis- ja token-virtana; operaattorin admin-komennot ovat bus operator -pinnan alla.

Waitlistin lukeminen on tavallinen skriptattava JSON-kutsu auth-palveluun. Komento toimii ohuena HTTP-asiakkaana ja jättää auth-politiikan palvelun tarkistettavaksi:

$ bus operator --api-url "$BUS_AUTH_API_URL" --token "$ADMIN_JWT" auth waitlist
{"users":[{"email":"user@example.com","status":"waitlisted"}]}

Hyväksyminen kulkee samasta operaattoripinnasta. Vastaus kertoo käyttäjän tilan ja palvelun palauttaman account-tunnisteen:

$ bus operator --api-url "$BUS_AUTH_API_URL" --token "$ADMIN_JWT" auth approve --email user@example.com
{"email":"user@example.com","status":"approved","account_id":"acc"}

Sisäinen token-bootstrap on erillinen, koska se ei ole normaali loppukäyttäjän kirjautuminen. Se vaatii X-Bus-Internal-Key -avaimen joko lipusta, tiedostosta tai operaattorin ympäristöstä:

$ bus operator --api-url "$BUS_AUTH_API_URL" \
  --internal-key-file ./local/internal-key \
  token issue \
  --subject usage-worker \
  --audience ai.hg.fi/auth \
  --scope "usage:read usage:delete"
{"access_token":"service-token","token_type":"Bearer","expires_in":600}

Rajaus tekee käyttäjän ja operaattorin vastuista selkeämmät. bus auth voi keskittyä salasanattomaan kirjautumiseen ja käyttäjän omiin API-tokeneihin, kun taas bus operator käsittelee admin- ja asennusautomaation tehtävät.

Komennon nykyinen pinta löytyy bus-operator-dokumentaatiosta. Loppukäyttäjän auth-virta on kuvattu erikseen bus-auth-dokumentaatiossa.