git-annex/doc/design/assistant/webapp.mdwn
2013-03-12 21:57:11 -04:00

47 lines
2 KiB
Markdown

The webapp is a web server that displays a shiny interface.
## interface
* Combine the replist with the dashboard. Put the list of repos or nudge
to make repos on top, and the transfers below. Make a "+ Add repo" button
on the list of repos that expands a hidden div, showing the repo creation
choices. Only one problem: If I have 20 repositories, all
I can see on the dashboard w/o scrolling is my repos..
* drag and drop to reorder
* keep it accessible to blind, etc
## other features
* there could be a UI to export a file, which would make it be served up
over http by the web app
* there could be a UI (some javascript thing) in the web browser to
submit urls to the web app to be added to the annex and downloaded.
See: [[todo/wishlist:_an_"assistant"_for_web-browsing_--_tracking_the_sources_of_the_downloads]]
* Display the `inotify max_user_watches` exceeded message. **done**
* Display something sane when kqueue runs out of file descriptors.
* allow removing git remotes **done**
* allow disabling syncing to here, which should temporarily disable all
local syncing. **done**
## first start **done**
* make git repo **done**
* generate a nice description like "joey@hostname Desktop/annex" **done**
* record repository that was made, and use it next time run **done**
* write a pid file, to prevent more than one first-start process running
at once **done**
## security **acceptable/done**
* Listen only to localhost. **done**
* Instruct the user's web browser to open an url that contains a secret
token. This guards against other users on the same system. **done**
(I would like to avoid passwords or other authentication methods,
it's your local system.)
* Don't pass the url with secret token directly to the web browser,
as that exposes it to `ps`. Instead, write a html file only the user can read,
that redirects to the webapp. **done**
* Alternative for Linux at least would be to write a small program using
GTK+ Webkit, that runs the webapp, and can know what user ran it, avoiding
needing authentication.