Skip to content
This repository was archived by the owner on Jan 29, 2026. It is now read-only.

mickey-services/dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dashboard

dev panel for mickey services

NOTICE

this repo is being archived as a new dashboard will be put in place and this shit didnt even reach prod lmfao. but, i hope someone can find some use out of it, which is why its being archived, not deleted

setup

bun install
bun run dev

server outputs:

dashboard running on port 3000
admin token: mickey-admin-abc123def456
login endpoint: POST /auth/login
admin login: POST /auth/admin-login

admin setup

before admin can login, add your ascii armoured gpg public key to data/admin.asc:

gpg --export --armor "your-key-id" > data/admin.asc

the file is gitignored so it won't be committed.

authentication

access path format

each user gets a unique access path when they log in:

{first8CharsOfPubKey}{base36Timestamp}{sha256HashFirst12Chars}

example: miibjqnb2x1abc123def456

login flow

  1. admin creates a user session token via admin panel
  2. user calls POST /auth/login with userId, sessionToken, and publicKey (ascii armoured gpg format)
  3. server encrypts a challenge code with the user's public key and returns loginId and encrypted
  4. user decrypts the challenge with their private key (use kleopatra or save the message to a file and decrypt)
  5. user calls POST /auth/verify-login with loginId and decryptedCode
  6. server verifies and returns unique accessPath and token (valid 1 hour)
  7. user prefixes all api calls with /{accessPath}/...
  8. include x-session-token header with token value

session expiry

  • access sessions expire after 1 hour
  • expired sessions cleaned automatically every 5 minutes
  • sensitive actions require pgp challenge if last challenge was over 15 minutes ago

roles

  • admin - full access, user management, settings
  • manager - tracking, audit, project assignment
  • dev - pipeline view, notes, plugins
  • client - send messages/projects only

public routes

no authentication required.

method path description
POST /auth/login start login with userId, sessionToken, publicKey
POST /auth/admin-login start admin login with adminToken (uses data/admin.asc)
POST /auth/verify-login complete login with loginId, decryptedCode
POST /auth/logout end session
POST /auth/verify-challenge verify pgp challenge for reauth

protected routes

all routes prefixed with /{accessPath}.

core

method path roles description
GET / all list loaded plugins

pipeline

method path roles description
POST /pipeline/send client send message or project
GET /pipeline/messages dev, manager get all messages
GET /pipeline/projects dev, manager get all projects
POST /pipeline/projects/:id/assign manager assign project to dev

plugins

method path roles description
GET /plugins all list installed plugins
POST /plugins/register-key dev, manager register public key
POST /plugins/challenge dev, manager get encrypted challenge
POST /plugins/install dev, manager install plugin after verification

manager

method path roles description
GET /manager/track manager, admin view action log
GET /manager/track/summary manager, admin action summary stats
GET /manager/plugins/audit manager, admin plugin install audit
DELETE /manager/track/clear manager, admin clear action log (requires reauth)

admin

method path roles description
GET /admin/sessions admin list all user sessions
POST /admin/sessions admin create new user session
DELETE /admin/sessions/:token admin revoke user session
GET /admin/settings admin get dashboard settings
PUT /admin/settings admin update dashboard settings

plugin routes

plugins add their own routes under /{accessPath}/{pluginPathName}.

notes

built-in plugin for dev notes with reminders.

method path description
GET /notes get user notes
POST /notes create note with optional reminder
PUT /notes/:id update note
DELETE /notes/:id delete note
GET /notes/reminders get pending reminders

adding plugins

plugins are defined in plugins/*.yaml:

name: my-plugin
path_name: myplugin
github_repo: https://github.com/org/repo
install_file: install.sh
user_id: user123

install requires public key challenge verification - the dashboard encrypts a code with your registered public key, you decrypt it and submit to confirm identity.

settings

admin can configure via settings panel:

  • default session expiry (days)
  • max plugins per user
  • allow client messages

About

Mickey Services developer dashboard

Resources

License

Stars

Watchers

Forks

Packages

No packages published