Ticket #1208 (closed enhancement: fixed)
Webstore: a datastore with web API
Reported by: | rgrp | Owned by: | rgrp |
---|---|---|---|
Priority: | major | Milestone: | ckan-sprint-2011-10-28 |
Component: | ckan | Keywords: | |
Cc: | Repository: | ckan | |
Theme: | none |
Description
- SQLite based
- Use Cyclone for async http server on top with auth
- Designed to not be specific to CKAN or anything else
Current code is here: https://github.com/okfn/webstore.
API Spec
Read
Two basic ways to query::
GET: /{owner}/{db-name}/?sql=... GET: /{owner}/{db-name}/?table=...&attr=value&attr=value&limit=...
Returns::
{ u'keys': [u'id', u'name'], u'data': [ [1, u'jones'], [u'aaa', u'jones'] ] }
Write
POST to::
/{owner/{database}/{table}
Payload is json data structured as follows::
{
unique_keys: [list of key attributes] data: {dict of values}
}
Authentication and Authorization
Authentication: use basic auth header.
Authorization:
- Default: all read, owner can write
- Restricted: owner can read and write, everyone can do nothing
Possible future: config file can specify a python method (TODO: method signature)
Integration with Other Systems
TODO: Specify how to delegate authenatication to user database in some other system.
Change History
comment:1 Changed 3 years ago by thejimmyg
- Milestone changed from ckan-v1.5-sprint-4 to ckan-current-sprint
comment:2 Changed 3 years ago by rgrp
Propose this ticket can be closed as webstore is now functional and being used. Can open new tickets for specific improvements / adaptations as the need arises.
comment:3 Changed 3 years ago by pudo
- Status changed from new to closed
- Resolution set to fixed
This should be closed:
- https://github.com/okfn/webstore - See README for details
- Python client lib: https://github.com/okfn/webstore-client
- http://webstore.thedatahub.org/ - Demo install
- http://wiki.ckan.net/Webstore - Overview
Rufus and Friedrich are working on this at the moment so putting into the current sprint. I'm considering this as preliminary investigation to inform the wider project that David Raznick is leading on.