Skip to content

amuleapi: expose a guest (low-rights) password like the web server? #593

Description

@ngosang

Summary

The Preferences dialog lets you configure two credentials for the classic
Web server: a Full rights password and an optional Low rights (guest)
password
. For amuleapi it only exposes a single Admin password. This is
a suggestion to discuss whether amuleapi should get guest parity — no strong
opinion, just raising it so the team can decide.

Current behaviour

Web server — both passwords are stored (encrypted) in amule.conf:

  • Full rights → /WebServer/Password
  • Low rights / guest → /WebServer/PasswordLow
  • Enable low-rights user → /WebServer/UseLowRightsUser

amuleapi — only the admin password is exposed:

  • Admin → /AmuleApi/Password in amule.conf
  • When amule launches amuleapi (--amule-config-file), this value is applied
    only as the admin password, in memory. The amuleapi-passwords file on
    disk is not touched.

amuleapi does support a guest role internally (read-only), but its password
can currently only be set via the CLI:

amuleapi --set-guest-pass=<plain>

which writes it to the amuleapi-passwords file. There is no field for it in
the Preferences dialog, and amule never pushes a guest password when it starts
amuleapi.

Questions for discussion

  1. Should the Preferences dialog expose an amuleapi guest (low-rights)
    password too, mirroring the web server (a /AmuleApi/PasswordLow field
    plus an enable checkbox), so amule pushes it to amuleapi on startup?
  2. If added, should these amuleapi credentials be persisted to disk when
    changed (e.g. written to amuleapi-passwords), or kept in-memory only like
    the current admin push — so a standalone operator's CLI-set passwords are
    preserved?

No preference here — flagging the asymmetry and letting you decide whether it's
worth it or working as intended.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions