Show HN: Hashmap.me – Simple HTTP-Based Data Storage and Retrieval (hashmap.me)
I'm excited to share Hashmap.me, a small tool I've built to simplify data storage and retrieval. It's a straightforward service that allows developers to store data records via HTTP requests and retrieve them easily, all without the hassle of setting up and managing a database. Initially I built this because I was tired of creating a database to prototype my own projects, I just wanted to persist my in memory cache between restarts early on.
Each hashmap you create corresponds to its own collection in MongoDB.
Perfect for small projects, quick prototypes, or learning purposes. I'd love to get your feedback and hear your thoughts!
Check it out here: https://hashmap.me
Thanks for taking a look!
39 comments
[ 2.7 ms ] story [ 108 ms ] threadDo you support conditional GET AND PUT (i.e. eTags)?
I do not currently support anything like that, however I think you bring up a very good point, and it could be very beneficial. One could however add their own lastModified variable as a part of the json blob they push up and implement the support themselves. From your teaching perspective of course, that may not be a great experience for the students.
Either you could try adding limitations that would make it less appealing to shady folks, e.g. amount of storage in the value.
Or most likely adding user accounts and depending on how far you need to go captchas or offload it by e.g. using GitHub oauth (and coupling yourself and your users to a 3P).
Neither of them are great. While the tool is fairly unpopular there probably isn't an issue.
Implementing authentication and or authorization is not beyond my ability, and could have been setup, but it would have severely tarnished ease of access to the platform, and hindered the amount of people who already tried out the service.
Side note, I just tested a curl command with
and it went through, updating the already existing first key in the collection, so you're not even sanitizing your inputs - there's likely some Mongo lookup code that will enumerate the existing collections, or overwrite someone else's data, or possibly read all of it, I am not going to continue with the probing (are you sanitizing the api key?). You can either assume good faith from all your users, or open the API to the internet, but definitely not both.Services like requestbin have had a lot of trouble with this sort of thing, historically https://web.archive.org/web/20190711192140/https://github.co...
> We have discontinued the publicly hosted version of RequestBin due to ongoing abuse that made it very difficult to keep the site up reliably. Please see instructions below for setting up your own self-hosted instance.
(note, that message is old, requestbin did live on despite it, iiuc)
For a second I thought it would be nice to not auto append a UUID to the hash, but I can imagine it’s simpler not having to check for or manage collisions.
Thanks HN <3
Anyways they mass created hashmaps using UUIDs. Someone lower in the comments made a great point on this, unfortunately this is why people have to crack down on things and require accounts and stuff like that before you can use a service.
:) Service is up and running, but we'll see for how long.
Still, a great place to backup my video library!
I once thought about doing this using RDF/Tuple based data where most elements are forced to be UUID-4's (whose purpose and meaning are invisible) except for values. I imagined a public service without a token.
https://hashmap.me?key=key1&value=value1&token=tony-test-d87...
I think for Read it makes a ton of sense to be able to provide a key to only get that specific key from your dataset.
I could add support for allowing you to use your token in the url to avoid headers, but to be very clear that token should NEVER be exposed to other users or to the public, that token isn't changeable, and if another user has it they can modify your dataset. Maybe I could add read only tokens at some point?
With your exact URL above, are you proposing the ability to Write data from the browser? I see you're providing a value so it lead me to believe you're suggesting writing a key/value pair with your token from the browser
Even if it was something like "/api/read?key=getOnlyThisKey" which returns your value or perhaps a 404 or maybe a 204, implying your response was succesful, but there was no key with the specified requested key.