Data.sparkfun.com: A place to push your data
data.sparkfun.com
data.sparkfun.com
Edit: I know you can install phant yourself, but I'm not a node guy so I don't have an enviro just at the ready. I do use VMware player all the time thought to try stuff out. An aws image wouldn't be terrible either. Doesn't sound like a long hike to make a nice polished "IoT" backend server.
Yeah, we'll get on that.
$ npm install -g phant
$ phant
$ telnet localhost 8081
phant> create
Enter a title> library
Enter a description> a bunch of books
Enter fields (comma separated)> title,author
Enter tags (comma separated)> paper,cloth
Stream created!
PUBLIC KEY: yrDmwO3XZEF6vMajz9oVTwPYVNM
PRIVATE KEY: NYzxmKOdl8tEQ0Bn2d3WhXLbn2O
DELETE KEY: WxpPb29VEkuyAemL8za2INraDPb
$ curl "http://localhost:8080/input/yrDmwO3XZEF6vMajz9oVTwPYVNM.json" -H 'Content-Type: application/json' -d '{"title": "The Book of Virtues", "author": "William J. Bennett"}' -H 'Phant-Private-Key: NYzxmKOdl8tEQ0Bn2d3WhXLbn2O'
$ curl "http://localhost:8080/output/yrDmwO3XZEF6vMajz9oVTwPYVNM.json"
[{"author":"William J. Bennett","timestamp":"2014-07-10T18:07:13.964Z","title":"The Book of Virtues"}]I suspect people will also want to run aggregations/rollups of their data and that's something we enable in Streametry [1] in addition to other analytics. I might try to build a a bridge to Sparkfun.
We're aware this isn't exactly optimal. Suggestions welcome.
Re: Key revocation, that's a good question and we should probably think hard about it. It's trivial to create a new stream, but obviously that could be a pain for various reasons.
Yeah no SSL support on Arduino-capable hardware is a bummer. I have been able to do Amazon's signature generation on an Arduino without too much trouble though (just need to run SHA256 hash algorithm a few times). I would definitely think about key revocation and renewal since folks will need it if someone steals their keys.
The other method might be, as a sibling said, HMAC the message with a shared private key. If you can specify that clocks should be pretty close, your reply attack window becomes small.
[0]: http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol
Security on 8-bit microcontrollers is one of the hardest problems we've encountered when building this service, and I think it's going to take a lot of community support to help us figure out a good solution that works on most devices. Thanks for all of the input so far!
Right now the web UI is fairly simple, but we will start adding features soon.
The bar along the top will turn red when the stream is getting close to full.
edit: Actually, using the middle mouse button and arrows work once the focus is on the right element, but no scroll bar in sight.
edit edit: The scrollbar is actually at the bottom of the page, but it does behave a bit weird.
https://github.com/sparkfun/phant/tree/master/examples
And a tiny PHP wrapper here:
https://github.com/sparkfun/SparkLib/blob/master/lib/SparkLi...
For the production server, we are currently using MongoDb for metadata storage and the same CSV module for logged data storage.
I'd be interested in a blog post about how you choose this architecture.
Looks like a pretty nice project.
Edit: nm. Added ?callback=foo and saw it's already supported!
This is as close to the mindset of the original Pachube as I've seen in a long while.
Nice work!