summaryrefslogtreecommitdiff
path: root/doc/design/external_special_remote_protocol.mdwn
Commit message (Collapse)AuthorAge
* remove incorrect bit about multiple concurrent transfers, and improve ↵Gravatar Joey Hess2016-09-26
| | | | description of protocol flow
* add todo itemGravatar Joey Hess2016-05-23
|
* note commands which do not get a replyGravatar Joey Hess2016-05-23
|
* note version for recently added commandGravatar Joey Hess2016-05-23
|
* use DIRHASH-LOWER for consistencyGravatar Joey Hess2016-05-03
|
* Added DIRHASH_LOWER to external special remote protocol.Gravatar Joey Hess2016-05-03
|
* clarify tha DIRHASH returns mixed caseGravatar Joey Hess2016-04-25
| | | | | Maybe not the best thing that it does, but it can't really be changed w/o breaking existing remotes.
* Clarified CHECKURL-MULTI syntaxGravatar 0xloem@0bd8a79a57e4f0dcade8fc81d162c37eae4d67302016-04-04
|
* responseGravatar Joey Hess2015-09-09
|
* enable parallel build for fast mode and explicitly disable for productionGravatar Joey Hess2015-08-14
| | | | | Currently, ghc has issues getting reproducible builds with parallel building. https://ghc.haskell.org/trac/ghc/ticket/4012
* oops, didn't mean to commit these changes yetGravatar Joey Hess2015-08-14
|
* commentGravatar Joey Hess2015-08-14
|
* Added WHEREIS to external special remote protocol.Gravatar Joey Hess2015-08-13
|
* followuGravatar Joey Hess2015-08-11
|
* Added SETURIPRESENT and SETURIMISSING to external special remote protocolGravatar Joey Hess2015-03-05
| | | | | | | | | Useful for things like ipfs that don't use regular urls. An external special remote can add a regular url to a key, and then git-annex get will download it from the web. But for ipfs, we want to instead tell git-annex that the uri uses OtherDownloader. Before this change, the external special remote protocol lacked a way to do that.
* updateGravatar Joey Hess2014-12-11
|
* Expand checkurl to support recommended filename, and multi-file-urlsGravatar Joey Hess2014-12-11
| | | | This commit was sponsored by an anonymous bitcoiner.
* Revert "let url claims optionally include a suggested filename"Gravatar Joey Hess2014-12-11
| | | | | | This reverts commit bc0bf97b20c48e1d1a35d25e2e76a311c102438c. Putting filename in the claim was a bad idea.
* let url claims optionally include a suggested filenameGravatar Joey Hess2014-12-11
|
* typoGravatar Joey Hess2014-12-08
|
* Urls can now be claimed by remotes. This will allow creating, for example, a ↵Gravatar Joey Hess2014-12-08
| | | | external special remote that handles magnet: and *.torrent urls.
* implement CLAIMURL for external special remoteGravatar Joey Hess2014-12-08
|
* External special remote protocol now includes commands for setting and ↵Gravatar Joey Hess2014-12-08
| | | | getting the urls associated with a key.
* fix languageGravatar Joey Hess2014-12-05
|
* DOC: minor typos and rewording in few docsGravatar Yaroslav Halchenko2014-12-04
|
* make explicit the implicit requirement that CHECKPRESENT not say a key is ↵Gravatar Joey Hess2014-07-28
| | | | present until it's all done being stored
* fix missing SETCONFIG ValueGravatar Joey Hess2014-02-10
|
* add GETAVAILABILITY to external special remote protocolGravatar Joey Hess2014-01-13
| | | | | And some reworking of types, and added an annex-availability git config setting.
* external special remote protocol: Added GETGITDIR.Gravatar Joey Hess2014-01-13
|
* add DEBUGGravatar Joey Hess2014-01-07
|
* notes on long-running network connectionsGravatar Joey Hess2014-01-06
|
* add remote state logsGravatar Joey Hess2014-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | This allows a remote to store a piece of arbitrary state associated with a key. This is needed to support Tahoe, where the file-cap is calculated from the data stored in it, and used to retrieve a key later. Glacier also would be much improved by using this. GETSTATE and SETSTATE are added to the external special remote protocol. Note that the state is left as-is even when a key is removed from a remote. It's up to the remote to decide when it wants to clear the state. The remote state log, $KEY.log.rmt, is a UUID-based log. However, rather than using the old UUID-based log format, I created a new variant of that format. The new varient is more space efficient (since it lacks the "timestamp=" hack, and easier to parse (and the parser doesn't mess with whitespace in the value), and avoids compatability cruft in the old one. This seemed worth cleaning up for these new files, since there could be a lot of them, while before UUID-based logs were only used for a few log files at the top of the git-annex branch. The transition code has also been updated to handle these new UUID-based logs. This commit was sponsored by Daniel Hofer.
* added GETWANTED, SETWANTED for Tobias's flickr remoteGravatar Joey Hess2014-01-01
| | | | | | | | | | | | | | | This was unexpectedly difficult because of a depdenency cycle. To parse a preferred content expression involves several things that need to operate on the list of remotes. Which needs Remote.External. The only way to avoid this cycle (I tried breaking it at several points) was to skip parsing the expression in SETWANTED. That's sorta ok, because git-annex already has to deal with unparsable preferred content expressions being stored, in order to handle eg, upgrades. But I'm still not very happy that I cannot check it. I feel this is a strong indication that I need to beware of further bloating the special remote protocol interface.
* external special remote protocol: Added GETUUID.Gravatar Joey Hess2013-12-31
|
* mention that INITREMOTE is also called by git-annex enableremoteGravatar Joey Hess2013-12-29
|
* implement PREPARE-FAILURE for TobiasGravatar Joey Hess2013-12-29
|
* add webapp support to TODOGravatar Joey Hess2013-12-27
|
* add credential storage support for external special remotes & update exampleGravatar Joey Hess2013-12-27
|
* hint about PROGRESS throttlingGravatar Joey Hess2013-12-27
|
* todo: url listsGravatar Joey Hess2013-12-27
|
* defer SETSTATE and GETSTATE for nowGravatar Joey Hess2013-12-27
| | | | | TAHOE-LAFS may use these eventually, but that's TBD and none of git-annex's own special remotes need that, except for the web special remote's urls.
* implement GETCONFIG and SETCONFIGGravatar Joey Hess2013-12-27
| | | | | | | | | | | Changed protocol spec to make SETCONFIG only store it persistently when run during INITREMOTE. I see no reason to support storing it persistently at other times, and doing so would unnecessarily complicate the code. Also, letting that be done would probably result in use for storing data that doesn't really belong there, and special remote authors who don't understand how the union merging works would probably be surprised the results.
* updateGravatar Joey Hess2013-12-27
|
* improve commentsGravatar Joey Hess2013-12-27
|
* don't send PREPARE before INITREMOTEGravatar Joey Hess2013-12-27
| | | | | | | | That complicated special remote programs, because they had to avoid making PREPARE fail if some configuration is missing, because the remote might not be initialized yet. Instead, complicate git-annex slightly by only sending PREPARE immediately before some other request other than INITREMOTE (or PREPARE of course).
* make some requests optional, simplify and future-proof protocol moreGravatar Joey Hess2013-12-27
|
* external special remote documentation and example scriptGravatar Joey Hess2013-12-26
|
* simplify PROGRESSGravatar Joey Hess2013-12-26
| | | | Only one transfer will be running at a time, per external special remote.
* future-proofingGravatar Joey Hess2013-12-25
|
* basic data types and serialization for external special remote protocolGravatar Joey Hess2013-12-25
| | | | | | | | | | This is mostly straightforward, but did turn out quite nicely stronly typed, and with a quite nice automatic tokenization and parsing of received messages. Made a few minor changes to the protocol to clear up ambiguities and make it easier to parse. Note particularly that setting remote configuration is moved to a separate command, which allows a remote to set arbitrary data.