Users and keys.
Customers have a paid plan. Testers have a tester key. Users are free accounts with no active plan.
Owner: leave the username empty (or type owner) and use HUB_ADMIN_PASSWORD. Other admins use the username the owner gave them.
| Username | Name | Type | Expires | Last sign-in |
|---|
Paid keys are for customers. Tester keys are for people trying the app. Both redeem the same way.
| Key | Plan | Seats | Expires | Note | Holder |
|---|
Each admin has their own username and password, and everything they do shows in Activity. Admins can manage users and keys; only the owner can add or remove admins.
| Username | Role | Added | Last sign-in |
|---|
Change the password for your admin account.
The owner password is the server setting HUB_ADMIN_PASSWORD. Change it there and restart the site; every owner session signs out.
Add the Discord bot, the Telegram bot, or another one. Customers link their Espada account by sending a short code to that bot.
| Bot | Platform | Link | People | Token |
|---|
When someone sends their code, the bot calls this site. Use the token from when the bot was added. It looks like esb_…
Confirm a link: POST /api/bots/confirm with header Authorization: Bearer TOKEN and body {"code":"AB12CD","external_id":"their id","external_name":"their name"}
Look someone up later: GET /api/bots/who?external_id=THEIR_ID with the same header. The answer includes their Espada username and whether their plan is active.
Every admin action, newest first.
| When | Admin | Action | Target | Detail |
|---|
Pick a ticket to read and reply. Urgent and unread tickets are at the top.
Saved answers you can drop into any reply.
Plans on /pricing. Each plan's button opens a payment ticket with the plan name filled in. Put one perk per line. Mark one plan as "Best value" to highlight it.