town/external/cmd/signup/thoughts.md

42 lines
1.3 KiB
Markdown
Raw Normal View History

# New commands for signups, rough draft
2023-02-03 03:48:40 +00:00
## 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>`