* tmp → tempy
`tmp` adds a SIGINT handler that was causing Clinic to exit prematurely.
`tempy` lets the OS clean up the files.
We're not dealing with massive temporary files, and not with secrets
either, so it's ok for them to stick around for a while.
* Fix test
* Let users specify custom Ask message on CLI
Opens the $EDITOR in order to add a message.
A temporary file is placed in `profiledir/ASK_MESSAGE`. If the profile
is super broken and didn't output a directory, it uses a temporary file
… somewhere (whatever the `tmp` module decides to do).
* handle empty message
* Expand initial message and fix trailing newlines
* Ask usability updates
- `getAskMessage` gets its own file
- vim starts in insert mode with the cursor at the end of the file
- VS Code forks and returns control to the CLI on start, so we can't
easily wait for it to exit; instead, we wait for user confirmation if
the editor closed within 2 seconds without updating the ASK_MESSAGE file.
* reword to avoid 'no quotes' stuff
Co-Authored-By: goto-bus-stop <renee@kooi.me>
* clinic ask (#66)
The `ask` command is used to upload on the private area, e.g.:
```
clinic ask --upload-url=http://localhost:3000 11213.clinic-bubbleprof
```
This will:
- Start the authentication on upload server to obtain a JWT token
- Upload the data to the protected API `/protected/data` on upload server
On the server side, the API can extract the user email from the JWT token to correctly identify the "private" folder for the user
* Authenticate for public uploads and support private uploads without `ask`ing (#102)
`clinic upload xyz.clinic-doctor` now also requires authentication.
A new `clinic upload --private` flag uploads to your private area.
`clinic ask` does `clinic upload --private` and then calls a currently-noop function that can be implemented once we have a `/ask` endpoint on the server.
* Store auth tokens in ~/.node-clinic-rc (#108)
Stores the JWT in ~/.node-clinic-rc after logging in. ~/.node-clinic-rc is a JSON file with upload URLs as keys, JWTs as values.
Use `clinic login` to login manually. Optionally specify an `--upload-url`.
Use `clinic logout` to logout manually. Optionally specify an `--upload-url`. Add `--all` to log out of all Clinic Upload servers, this deletes the ~/.node-clinic-rc file.
Use `clinic user` to show a list of current sessions. Optionally specify an `--upload-url` to only show that session.
You can use the `CLINIC_CREDENTIALS` environment variable to point to a different file. I added this for tests, maybe it's also useful in programmatic environments and warrants docs?
`clinic upload` and `clinic ask` automatically do what `clinic login` does at the start.
* Feature/ask auth flag (#114)
* [666] - Add ask param flag to login URL when authenticating using ask command
* [666] - Factor user terms acceptance into CLI login when validating JWT payload against upload type
* Implement ask with placeholder message (#115)
Means we'll have to reply first to figure out what someone needs help with but it's better than not getting a message at all
* 3.0.0-beta.0@next
* Fix/private public auth redirect (#116)
* Re #99 - Pass flag for private uploads to login URL so app can differentiate intent
* Re #97 - Open new tab on upload callback and create flag to prevent this behaviour if desired
* Re #97 - Update browser open flag to use recommended minimist syntax
* Revert "Disable clinic upload in old CLI. (#117)"
This reverts commit 75f80771b4741a4927788a2d492566d04416e1b7.
* Update tool versions.
* remove weird test? unsure what this was for