kinto_box 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +190 -1
- data/lib/kinto_box/kinto_group.rb +0 -4
- data/lib/kinto_box/kinto_object.rb +2 -18
- data/lib/kinto_box/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f41cad2d2d36c3deaf4c1804af203d22dfa86a59
|
4
|
+
data.tar.gz: 19d61573448b09387cee1acd839c0e5be0f00565
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48009280a182692c987a599f913847a2b96539d9394595bed282c6e01ed03f8136935f48155783b18c9beac23d06aac25e7f1b3e2fbdcc0233358b4364570481
|
7
|
+
data.tar.gz: dfc240b5ac5970a1c1bcce4368b6f9f8930f9171fe36df89787918dcf8e2f04d69442ccf892b958ece98fa55e3ab8987e84db81d4d22d74d52002568f09b470a
|
data/README.md
CHANGED
@@ -19,8 +19,197 @@ Or install it yourself as:
|
|
19
19
|
$ gem install kinto_box
|
20
20
|
|
21
21
|
## Usage
|
22
|
+
To use kinto_box, add `require 'kinto_box'` to your file.
|
22
23
|
|
23
|
-
|
24
|
+
|
25
|
+
### Connection and Authentication
|
26
|
+
|
27
|
+
|
28
|
+
To connect to a kinto server, you can pass the username and password to the client
|
29
|
+
|
30
|
+
```
|
31
|
+
kinto_client = KintoBox::KintoClient.new('https://kinto.dev.mozaws.net', {:username => 'token', :password => 'my-secret'})
|
32
|
+
```
|
33
|
+
|
34
|
+
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.
|
35
|
+
|
36
|
+
|
37
|
+
### Buckets
|
38
|
+
|
39
|
+
#### Creating a new bucket
|
40
|
+
|
41
|
+
To create a new bucket named `TestBucket`
|
42
|
+
|
43
|
+
```
|
44
|
+
bucket = kinto_client.create_bucket('TestBucket')
|
45
|
+
```
|
46
|
+
|
47
|
+
#### Using a bucket
|
48
|
+
|
49
|
+
To connect to a bucket named `TestBucket`
|
50
|
+
|
51
|
+
```
|
52
|
+
bucket = kinto_client.bucket('TestBucket')
|
53
|
+
```
|
54
|
+
|
55
|
+
> Note: This does not create the bucket nor check if the bucket exists on the server.
|
56
|
+
|
57
|
+
To check if the bucket exists use
|
58
|
+
|
59
|
+
```
|
60
|
+
bucket.exists?
|
61
|
+
```
|
62
|
+
|
63
|
+
To get information about the bucket, use
|
64
|
+
|
65
|
+
```
|
66
|
+
bucket.info
|
67
|
+
```
|
68
|
+
|
69
|
+
#### Bucket permissions
|
70
|
+
|
71
|
+
To get permissions set on the bucket, use
|
72
|
+
|
73
|
+
```
|
74
|
+
bucket.permissions
|
75
|
+
```
|
76
|
+
|
77
|
+
To add permission to the bucket, use `add_permission(principal, permission)`
|
78
|
+
|
79
|
+
See `http://kinto.readthedocs.io/en/stable/api/1.x/permissions.html#api-permissions` to see valid principals and permissions
|
80
|
+
|
81
|
+
For convenience, the following are supported. `everyone` and `anonymous` is the same as `System.Everyone`. And `authenticated` is the same as `System.Authenticated`
|
82
|
+
|
83
|
+
#### Deleting bucket
|
84
|
+
To delete a bucket, use
|
85
|
+
|
86
|
+
```
|
87
|
+
bucket.delete
|
88
|
+
```
|
89
|
+
|
90
|
+
### Collections
|
91
|
+
|
92
|
+
#### Creating a collection
|
93
|
+
|
94
|
+
To create a collection named `TestCollection`, use
|
95
|
+
|
96
|
+
```
|
97
|
+
collection = bucket.create_collection('TestCollection')
|
98
|
+
```
|
99
|
+
|
100
|
+
#### Using a collection
|
101
|
+
|
102
|
+
To connect to a collection named `TestCollection`
|
103
|
+
|
104
|
+
```
|
105
|
+
collection = bucket.collection('TestCollection')
|
106
|
+
```
|
107
|
+
|
108
|
+
> Note: This does not create the collectiont nor check if the collection exists on the server.
|
109
|
+
|
110
|
+
To check if the collection exists use
|
111
|
+
|
112
|
+
```
|
113
|
+
collection.exists?
|
114
|
+
```
|
115
|
+
|
116
|
+
To get information about the bucket, use
|
117
|
+
|
118
|
+
```
|
119
|
+
collection.info
|
120
|
+
```
|
121
|
+
|
122
|
+
#### Collection permissions
|
123
|
+
|
124
|
+
To get permissions set on the collection, use
|
125
|
+
|
126
|
+
```
|
127
|
+
collection.permissions
|
128
|
+
```
|
129
|
+
|
130
|
+
To add permission to the bucket, use `collection.add_permission(principal, permission)`
|
131
|
+
|
132
|
+
|
133
|
+
#### Deleting a collection
|
134
|
+
To delete a bucket, use
|
135
|
+
|
136
|
+
```
|
137
|
+
collection.delete
|
138
|
+
```
|
139
|
+
|
140
|
+
To read from the collection
|
141
|
+
|
142
|
+
```
|
143
|
+
records = collection.list_records
|
144
|
+
```
|
145
|
+
|
146
|
+
To delete all records from the collection
|
147
|
+
|
148
|
+
```
|
149
|
+
records = collection.delete_records
|
150
|
+
```
|
151
|
+
|
152
|
+
### Records
|
153
|
+
|
154
|
+
To add an object to the collection
|
155
|
+
|
156
|
+
```
|
157
|
+
data = { 'foo' => 'value1' }
|
158
|
+
collection.create_record(data)
|
159
|
+
```
|
160
|
+
|
161
|
+
#### Deleting a record
|
162
|
+
```
|
163
|
+
record.delete
|
164
|
+
```
|
165
|
+
|
166
|
+
#### Update data in a record
|
167
|
+
|
168
|
+
```
|
169
|
+
record.update({'bar' => new_value})
|
170
|
+
```
|
171
|
+
|
172
|
+
This add a value bar to the record
|
173
|
+
|
174
|
+
To replace the data entirely, use
|
175
|
+
|
176
|
+
```
|
177
|
+
record.replace({'bar' => new_value})
|
178
|
+
```
|
179
|
+
|
180
|
+
This drops the property food taht existed before the update.
|
181
|
+
|
182
|
+
|
183
|
+
### Groups
|
184
|
+
|
185
|
+
#### Creatinga group
|
186
|
+
|
187
|
+
```
|
188
|
+
group = bucket.create_group(group_name, member)
|
189
|
+
```
|
190
|
+
|
191
|
+
Member can be any valid principal
|
192
|
+
|
193
|
+
|
194
|
+
#### Deleting a group
|
195
|
+
```
|
196
|
+
group.delete
|
197
|
+
```
|
198
|
+
|
199
|
+
#### Manging members
|
200
|
+
|
201
|
+
```
|
202
|
+
group.add_member(user)
|
203
|
+
group.remove_member(user)
|
204
|
+
```
|
205
|
+
|
206
|
+
To replace all members, use
|
207
|
+
|
208
|
+
```
|
209
|
+
group.update_members(users)
|
210
|
+
```
|
211
|
+
|
212
|
+
See `test/kinto_box_test` for more usages
|
24
213
|
|
25
214
|
## Development
|
26
215
|
|
@@ -22,12 +22,12 @@ module KintoBox
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def add_permission(principal, permission)
|
25
|
-
@kinto_client.patch(@url_path, {'permissions' => {
|
25
|
+
@kinto_client.patch(@url_path, {'permissions' => { permission => [principal_name(principal)] }})
|
26
26
|
return self
|
27
27
|
end
|
28
28
|
|
29
29
|
def replace_permission(principal, permission)
|
30
|
-
@kinto_client.put(@url_path, {'permissions' => {
|
30
|
+
@kinto_client.put(@url_path, {'permissions' => { permission => [principal_name(principal)] }})
|
31
31
|
return self
|
32
32
|
end
|
33
33
|
|
@@ -37,22 +37,6 @@ module KintoBox
|
|
37
37
|
|
38
38
|
private
|
39
39
|
|
40
|
-
def permission_name(permission)
|
41
|
-
case permission.downcase
|
42
|
-
when 'read'
|
43
|
-
return 'read'
|
44
|
-
when 'write'
|
45
|
-
return 'write'
|
46
|
-
when 'create'
|
47
|
-
return 'collection:create' if self.kind_of? KintoBucket
|
48
|
-
return 'record:create' if self.kind_of? KintoCollection
|
49
|
-
when 'group:create'
|
50
|
-
return 'group:create'
|
51
|
-
else
|
52
|
-
raise Exception 'not a valid permission'
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
40
|
def principal_name(principal)
|
57
41
|
case principal.downcase
|
58
42
|
when 'authenticated'
|
data/lib/kinto_box/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kinto_box
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kavya Sukumar
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|