The following list of desired activities might already be implemented, in some way or another. The goal is to make it possible to do this via the API (v2). If applicable, I'm mentioning how to do this via the UI.
list accounts: similar to searching for accounts in Admin → User Search, there should be a way to get all accounts, with a limit like 1000 and pagination, and optionally them by email, (partial) name or account_id (i.e. then this just returns 0 or 1 entries).
each output should contain a few basic facts: account_id, first_name, last_name, "user name", email_address, deleted, banned, last_active, created
For a given account_id:
update an account: allow admins to change the first_name, last_name, email_address (+ a check if it exists, and throws an error if the new email address already exists), and that "user name"
banning an account: set/clear the "ban" flag
get projects belonging to an account: for a given account_id, list all projects that user is a collaborator of. For simplicity, I think it should be like in the admin interface (which also lists projects for a given account) and list these projects with project_id, title, list of collaborator IDs (?), last_active, created, name, and state (i.e. is the project running or not).
deleting an account: set/clear the "delete" flag
For a given project_id:
updating a project: allow admins to the change the project's title, description, name, etc. i.e. these basic fields.
manage licenses: A bit more complex is adding/removing licenses.
list licenses (their IDs) applied to a project
add/remove a license_id
manage collaborators:
list collabs on a project (like, list accounts) but by belonging to a project
add/remove an account_id as a collaborator
stopping a project: this the analog of "project stop" in the UI
starting a project: similar to start
blocking a project: I think that's not exposed anywhere, but there is a "block" flag for projects (which causes them to stop and make it impossible to start them again)
deleting a project: setting the delete flag
License management:
I don't know how much of this is implemented already. In the Admin panel, there is a way to create/edit/delete licenses. This is similar to accounts, in some sense.
list licenses: either paginated, or with a filter (by title/description/license_id)
create license: this does not need to be complex. Just a way to create one, and returning the ID. The data for a license contains its title/description, configuration, start, and (optional) end date, and a run_limit (at least 1). There is also a "manager" of a license, which means there are account_id's to add or remove.
edit license: probably similar to create
delete/invalidate: licenses shouldn't be deleted, otherwise it might break assumptions. In any case, invalidating means to set the end-date to the current time (because outside the start/end date range, a license is invalid).
The following list of desired activities might already be implemented, in some way or another. The goal is to make it possible to do this via the API (v2). If applicable, I'm mentioning how to do this via the UI.
For a given
account_id
:For a given
project_id
:License management:
I don't know how much of this is implemented already. In the Admin panel, there is a way to create/edit/delete licenses. This is similar to accounts, in some sense.