town/external/cmd/signup/thoughts.md

1.3 KiB

New commands for signups, rough draft

town-signup

this binary is run by OpenSSH when a user anywhere in the world runs ssh join@tilde.town. It should:

  • collect information about an application from a user
  • allow them to edit their responses before submitting
  • write a yaml file of their responses to disk

review-signups

this binary is run by town admins in order to review, approve, notate, and reject applications. It should:

  • iterate over signups
  • allow fuzzy finding a particular signup
  • allow approval using create-user
  • allow rejection
    • just move signup to archived rejected signup directory
  • allow notating an application, ie:
    • lock the yaml file for writing
    • add notes to the yaml file that can be seen by other admins
  • print info about historical signups

create-user

this binary is called by review-signups to take a yaml application and create a user on disk. It should:

  • create the user idempotently
    • adduser
    • usermod to set group
    • calling add-key for user
  • move the yaml file to an archive directory of approved signups

user-key

this binary helps manage keys for users; basically automating the listing, adding, and removing of public keys for a user.

  • user-key add <username> <keyfile
  • user-key list <username>
  • user-key remove <username>