BooleX.ai DOCS Book a demo
Docs / IT documentation

Accounts and sign-in

Named accounts, roles, the site directory over LDAPS, the lockout and the audit log.

Named accounts

Every user has a named account with one role: viewer, technician, expert or administrator (see Roles). Accounts live in /config/users.json (BOOLE_USERS_FILE) with scrypt password hashes only. Passwords have at least 12 characters.

shell
docker compose -f deploy/compose.yaml run --rm assistant python -m edge.users add NAME ROLE [--password-file FILE] [--language pl]
docker compose -f deploy/compose.yaml run --rm assistant python -m edge.users list

Without --password-file the command prompts for the password. --language sets the answer language (Languages and themes). Administrators can also add accounts through POST /api/admin/users.

Site directory (LDAPS)

Users can sign in with their network account. Configure the directory in config/directory.json:

config/directory.json
{"url": "ldaps://dc1.site.local",
 "user_dn": "uid={user},ou=people,dc=site,dc=local",
 "roles": {"jsmith": "expert"},
 "default_role": "technician"}

Only ldaps:// is accepted, so passwords never cross the network in the clear. Users bind as themselves: no service account is needed. A local account of the same name is tried first. Put the directory's CA in the edge PC's system trust store.

Sign-in controls

  • Lockout. 5 failed sign-ins for one account within 5 minutes lock it for 15 minutes, local and directory accounts alike. A successful sign-in does not clear an active lock.
  • One message for an unknown user and a wrong password, and the same work either way, so accounts cannot be guessed.
  • Sessions are kept in memory and sent as an HttpOnly, SameSite=Strict cookie over HTTPS. Restarting the assistant signs everyone out.
  • Roles are checked on every API request, not only in the Web UI.

Audit log

Every sign-in, failed sign-in, lockout, question and answer (with the sources cited), profile and configuration change, import and erasure is written to the audit log in the platform store. The log is append-only: the database roles cannot change or delete its rows, and a restore re-inserts it.

Removing a user

Remove the account from users.json, or erase it with its personal data: see Personal data.