Skip to content

AlphOne 0.14.0

Choose a tag to compare

@SirLouen SirLouen released this 18 Aug 23:26
· 217 commits to main since this release
8aa32c0

Every user you already have becomes an admin when you upgrade. Nothing changes for them, because that is the authority they had. From here on, accounts created through the app arrive as members.

An admin manages users. A member works the product, which is contacts, tasks, and whatever your plugins add. createUser, setUserDisabled and the new setUserRole are reserved to admins, and a member calling one is refused with admin required. Listing users stays open to members so assigning a task to a colleague still works. Promote and demote from the Users screen, where an admin now sees a role column and a member sees the list read only.

A deployment always keeps one admin. Demoting or disabling the last enabled admin is refused, so you cannot lock yourself out.

A role narrows the user, a scope narrows what a token carries of that user's authority, and an operation runs only when both allow it. A token can no longer reach further than the person who created it, whatever its scopes.

Changes that may affect existing integrations

Minting a token now refuses an area the schema does not declare, so a typo like contact:read fails at mint instead of quietly producing a token that can never act. Area names are case sensitive, so TASKS:read is refused where it used to be accepted.

The WhatsApp media download now needs whatsapp:read, and a token scoped elsewhere gets 403. Run alphone token list to see what yours hold and mint replacements where needed.

A plugin can now hold its routes to one scope area, which is what closes that download. The WhatsApp webhook stays public, so inbound messages keep arriving.

Upgrading

This is a normal migration and runs on container start. Rolling migration 00013 back and reapplying it re-grants admin to every user, forfeiting every demotion you have made, so do not roll it back to undo a role change. See Updates and backups for how to save the roles table first.