Kinto Box is a ruby client for Kinto
Installation
Add this line to your application's Gemfile:
gem 'kinto_box'
And then execute:
$ bundle
Or install it yourself as:
$ gem install kinto_box
Usage
To use kinto_box, add require 'kinto_box'
to your file.
Connection and Authentication
To connect to a kinto server, you can pass the username and password to the client
kinto_client = KintoBox.new('https://kinto.dev.mozaws.net', {:username => 'token', :password => 'my-secret'})
If no credentials are passed, the gem looks for KINTO_API_TOKEN
environment variable. The environment variable should store the Base64 encoding of username:password
string, for this to work.
Buckets
Creating a new bucket
To create a new bucket named TestBucket
bucket = kinto_client.create_bucket('TestBucket')
Using a bucket
To connect to a bucket named TestBucket
bucket = kinto_client.bucket('TestBucket')
Note: This does not create the bucket nor check if the bucket exists on the server.
To check if the bucket exists use
bucket.exists?
To get information about the bucket, use
bucket.info
Bucket permissions
To get permissions set on the bucket, use
bucket.permissions
To add permission to the bucket, use add_permission(principal, permission)
See http://kinto.readthedocs.io/en/stable/api/1.x/permissions.html#api-permissions
to see valid principals and permissions
For convenience, the following are supported. everyone
and anonymous
is the same as System.Everyone
. And authenticated
is the same as System.Authenticated
Deleting bucket
To delete a bucket, use
bucket.delete
Collections
Creating a collection
To create a collection named TestCollection
, use
collection = bucket.create_collection('TestCollection')
Using a collection
To connect to a collection named TestCollection
collection = bucket.collection('TestCollection')
Note: This does not create the collection nor check if the collection exists on the server.
To check if the collection exists use
collection.exists?
To get information about the bucket, use
collection.info
Collection permissions
To get permissions set on the collection, use
collection.permissions
To add permission to the bucket, use collection.add_permission(principal, permission)
Deleting a collection
To delete a bucket, use
collection.delete
To read from the collection
records = collection.list_records
List records support filtering and sorting. It follows the convention described here and here.
records = collection.list_records('min_val=10','val')
The above line will return all records where val
is at least 10 and sorted ascending on the field val
To delete all records from the collection
records = collection.delete_records
Records
To add an object to the collection
data = { 'foo' => 'value1' }
collection.create_record(data)
Deleting a record
record.delete
Update data in a record
record.update({'bar' => new_value})
This add a value bar to the record
To replace the data entirely, use
record.replace({'bar' => new_value})
This drops the property food taht existed before the update.
Groups
Creatinga group
group = bucket.create_group(group_name, member)
Member can be any valid principal
Deleting a group
group.delete
Manging members
group.add_member(user)
group.remove_member(user)
To replace all members, use
group.update_members(users)
See test/kinto_box_test
for more usages
Development
After checking out the repo, run bundle install
to install dependencies. Then, run bundle exec rake test
to run the tests.
To install this gem onto your local machine, run bundle exec rake install
.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/kavyasukumar/kinto_box.
License
The gem is available as open source under the terms of the MIT License.