Introducing Pond: A New RSS+Atom Syncing Protocol
arturovm.me
arturovm.me
This looks more like an API for a feed reader type application. From a quick read it looks mostly ok for that (although I'd question why...)
Out of interest, why not implement a read-only version of rfc5023/AtomPub[2]?
Anyway...
I'd suggest you get rid of the "Article" Object, and use the Atom "Entry" object instead (or possibly a single-entry Atom feed if you are in XML mode), serialized as JSON
The "Fetch" call should probably take a "since date" as an option, instead of just "since id". It should return a JSON serialized Atom feed, not a custom object.
https://cwiki.apache.org/confluence/display/ABDERA/JSON+Seri... is a pretty decent JSON serialization spec for Atom
Notable omissions: no concept of tagging or saving articles.
Changing "Article" to "Entry"—noted. As for doing away with the custom schema and using the Atom serialization you posted: it's worth noting the protocol is meant to sync with Atom _and_ RSS transparently; to keep things simple and consistent, a middle ground has to be found.
`since_date` is something I'm working on.
https://pond.imperialviolet.org/
It's pretty much impossible to avoid naming collisions for projects. :-/
I have been working on the project for 6 months now, and I even tweeted the author of that project when he posted it, but he just ignored me haha :(
Hopefully, in a couple years, we'll know Langley's Pond by a different name: "email".
The MD5 hash is there to mitigate two issues, currently: some (or most) common users won't pay for a certificate, so instead of sending the password in cleartext, it's hashed as an MD5 to avoid exposure—all of this, of course, is no guarantee against MITM. Which leads us to the second issue: most [non–techie] users re–use their password for a _lot_ of things. At least, if the password is intercepted, it won't be reusable.
It's also worth noting that bcrypt is used server–side to store passwords.
Auth (and very possibly a crypto scheme too) is yet to be tackled. Haven't even decided if it should be part of the spec, or left up to each implementer.
This is especially nasty since the document mentions that not all users will use SSL. If supporting access via a non-secure channel is an absolute requirement, you may want to figure out something more effective...