algoliasearch 1.8.0 → 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ac8623995ca3e9c6b72fe9fbd383b5299bab50bb
4
- data.tar.gz: bd8674170dc90b586d95b84f464821e81c2557e0
3
+ metadata.gz: 249bdbdfe9306f6396363418d097060519a2b666
4
+ data.tar.gz: 29cd2a19ac2652eb9b19ec9a6e1a4e74aa9d6faf
5
5
  SHA512:
6
- metadata.gz: e8ad094f497aa8055eaafb7b16404112c150da2d561a9d1eb47e3211b61ebc9594b52d146032032454930e9a98e3a305cea0f1b351c2efb09628527e50f02700
7
- data.tar.gz: 6ab947d1f2ab8c2cb4d018e2333f8ae7dbb18dd021e4f320cb93a307042b228050cc4a2f162fa02a75ed06e0cffd50420e4ec1f3d8893bb6238f1fe8e9e4ace1
6
+ metadata.gz: c5fdf482ba1c5734c95009719c836132b7e1e18d810a7959d6d48bd767669648e8d75221103f2080359cbe8d611c17575b42da65ddfc60b22ed76a1a0e88e4ce
7
+ data.tar.gz: c1ddb83fbc011fb659831ba67545d7ed2b65ed8d2320fc16f76749d46a097a7cc22b92e44908eff216d636ecdf3f0d49b3f43ac9178f72a65dc1d5b0eba03e35
data/ChangeLog CHANGED
@@ -1,5 +1,8 @@
1
1
  CHANGELOG
2
2
 
3
+ 2016-04-14 1.8.1
4
+ * Ensure we're using an absolute path for the `ca-bundle.crt` file (could fix some `OpenSSL::X509::StoreError: system lib` errors)
5
+
3
6
  2016-04-06 1.8.0
4
7
  * Upgraded to httpclient 2.7.1 (includes ruby 2.3.0 deprecation fixes)
5
8
  * Upgraded WebMock URLs
data/README.md CHANGED
@@ -51,9 +51,9 @@ Table of Contents
51
51
  1. [Clear an index](#clear-an-index)
52
52
  1. [Wait indexing](#wait-indexing)
53
53
  1. [Batch writes](#batch-writes)
54
- 1. [Security / User API Keys](#security--user-api-keys)
55
- 1. [Copy or rename an index](#copy-or-rename-an-index)
56
- 1. [Backup / Retrieve all index content](#backup--retrieve-of-all-index-content)
54
+ 1. [Copy / Move an index](#copy--move-an-index)
55
+ 1. [Backup / Export an index](#backup--export-an-index)
56
+ 1. [API Keys](#api-keys)
57
57
  1. [Logs](#logs)
58
58
  1. [Mock](#mock)
59
59
 
@@ -1907,14 +1907,65 @@ The attribute **action** can have these values:
1907
1907
  - partialUpdateObjectNoCreate
1908
1908
  - deleteObject
1909
1909
 
1910
- Security / User API Keys
1910
+ Copy / Move an index
1911
+ ==================
1912
+
1913
+ You can easily copy or rename an existing index using the `copy` and `move` commands.
1914
+ **Note**: Move and copy commands overwrite the destination index.
1915
+
1916
+ ```ruby
1917
+ # Rename MyIndex in MyIndexNewName
1918
+ puts Algolia.move_index("MyIndex", "MyIndexNewName")
1919
+ # Copy MyIndex in MyIndexCopy
1920
+ puts Algolia.copy_index("MyIndex", "MyIndexCopy")
1921
+ ```
1922
+
1923
+ The move command is particularly useful if you want to update a big index atomically from one version to another. For example, if you recreate your index `MyIndex` each night from a database by batch, you only need to:
1924
+ 1. Import your database into a new index using [batches](#batch-writes). Let's call this new index `MyNewIndex`.
1925
+ 1. Rename `MyNewIndex` to `MyIndex` using the move command. This will automatically override the old index and new queries will be served on the new one.
1926
+
1927
+ ```ruby
1928
+ # Rename MyNewIndex in MyIndex (and overwrite it)
1929
+ puts Algolia.move_index("MyNewIndex", "MyIndex")
1930
+ ```
1931
+
1932
+
1933
+ Backup / Export an index
1934
+ ==================
1935
+
1936
+ The `search` method cannot return more than 1,000 results. If you need to
1937
+ retrieve all the content of your index (for backup, SEO purposes or for running
1938
+ a script on it), you should use the `browse` method instead. This method lets
1939
+ you retrieve objects beyond the 1,000 limit.
1940
+
1941
+ This method is optimized for speed. To make it fast, distinct, typo-tolerance,
1942
+ word proximity, geo distance and number of matched words are disabled. Results
1943
+ are still returned ranked by attributes and custom ranking.
1944
+
1945
+
1946
+ Example:
1947
+
1948
+ ```ruby
1949
+ # Iterate with a filter over the index
1950
+ index.browse({:query => "test", :numericFilters => 'i=42'}) do
1951
+ # Do something
1952
+ end
1953
+ ```
1954
+
1955
+
1956
+
1957
+
1958
+ API Keys
1911
1959
  ==================
1912
1960
 
1913
1961
  The ADMIN API key provides full control of all your indices.
1914
1962
  You can also generate user API keys to control security.
1915
1963
  These API keys can be restricted to a set of operations or/and restricted to a given index.
1916
1964
 
1917
- To list existing keys, you can use `list_user_keys` method:
1965
+ ## List API keys
1966
+
1967
+ To list existing keys, you can use:
1968
+
1918
1969
  ```ruby
1919
1970
  # Lists global API Keys
1920
1971
  Algolia.list_user_keys
@@ -1933,7 +1984,10 @@ Each key is defined by a set of permissions that specify the authorized actions.
1933
1984
  * **analytics**: Allowed to retrieve analytics through the analytics API.
1934
1985
  * **listIndexes**: Allowed to list all accessible indexes.
1935
1986
 
1936
- Example of API Key creation:
1987
+ ## Create API keys
1988
+
1989
+ To create API keys:
1990
+
1937
1991
  ```ruby
1938
1992
  # Creates a new global API key that can only perform search actions
1939
1993
  res = Algolia.add_user_key(["search"])
@@ -2087,7 +2141,9 @@ res = Algolia.add_user_key(params)
2087
2141
  puts res['key']
2088
2142
  ```
2089
2143
 
2090
- Update the permissions of an existing key:
2144
+ ## Update API keys
2145
+
2146
+ To update the permissions of an existing key:
2091
2147
  ```ruby
2092
2148
  # Update an existing global API key that is valid for 300 seconds
2093
2149
  res = Algolia.update_user_key("myAPIKey", ["search"], 300)
@@ -2100,7 +2156,7 @@ puts res['key']
2100
2156
  res = index.update_user_key("myAPIKey", ["search"], 300, 100, 20, ['my_index1', 'my_index2'])
2101
2157
  puts res['key']
2102
2158
  ```
2103
- Get the permissions of a given key:
2159
+ To get the permissions of a given key:
2104
2160
  ```ruby
2105
2161
  # Gets the rights of a global key
2106
2162
  Algolia.get_user_key("f420238212c54dcfad07ea0aa6d5c45f")
@@ -2108,7 +2164,9 @@ Algolia.get_user_key("f420238212c54dcfad07ea0aa6d5c45f")
2108
2164
  index.get_user_key("71671c38001bf3ac857bc82052485107")
2109
2165
  ```
2110
2166
 
2111
- Delete an existing key:
2167
+ ## Delete API keys
2168
+
2169
+ To delete an existing key:
2112
2170
  ```ruby
2113
2171
  # Deletes a global key
2114
2172
  Algolia.delete_user_key("f420238212c54dcfad07ea0aa6d5c45f")
@@ -2118,7 +2176,9 @@ index.delete_user_key("71671c38001bf3ac857bc82052485107")
2118
2176
 
2119
2177
 
2120
2178
 
2121
- You may have a single index containing per user data. In that case, all records should be tagged with their associated user_id in order to add a `tagFilters=user_42` filter at query time to retrieve only what a user has access to. If you're using the [JavaScript client](http://github.com/algolia/algoliasearch-client-js), it will result in a security breach since the user is able to modify the `tagFilters` you've set by modifying the code from the browser. To keep using the JavaScript client (recommended for optimal latency) and target secured records, you can generate a secured API key from your backend:
2179
+ ## Secured API keys (frontend)
2180
+
2181
+ You may have a single index containing **per user** data. In that case, all records should be tagged with their associated `user_id` in order to add a `tagFilters=user_42` filter at query time to retrieve only what a user has access to. If you're using the [JavaScript client](http://github.com/algolia/algoliasearch-client-js), it will result in a security breach since the user is able to modify the `tagFilters` you've set by modifying the code from the browser. To keep using the JavaScript client (recommended for optimal latency) and target secured records, you can generate a secured API key from your backend:
2122
2182
 
2123
2183
  ```ruby
2124
2184
  # generate a public API key for user 42. Here, records are tagged with:
@@ -2148,7 +2208,7 @@ You can mix rate limits and secured API keys by setting a `userToken` query para
2148
2208
  ```ruby
2149
2209
  # generate a public API key for user 42. Here, records are tagged with:
2150
2210
  # - 'user_XXXX' if they are visible by user XXXX
2151
- public_key = Algolia.generate_secured_api_key 'YourRateLimitedApiKey', {'tagFilters'=> 'user_42', 'userToken'=> 'user_42'}
2211
+ public_key = Algolia.generate_secured_api_key 'YourSearchOnlyApiKey', {'tagFilters'=> 'user_42', 'userToken'=> 'user_42'}
2152
2212
  ```
2153
2213
 
2154
2214
  This public API key can then be used in your JavaScript code as follow:
@@ -2169,54 +2229,6 @@ index.search('another query', function(err, content) {
2169
2229
  ```
2170
2230
 
2171
2231
 
2172
- Copy or rename an index
2173
- ==================
2174
-
2175
- You can easily copy or rename an existing index using the `copy` and `move` commands.
2176
- **Note**: Move and copy commands overwrite the destination index.
2177
-
2178
- ```ruby
2179
- # Rename MyIndex in MyIndexNewName
2180
- puts Algolia.move_index("MyIndex", "MyIndexNewName")
2181
- # Copy MyIndex in MyIndexCopy
2182
- puts Algolia.copy_index("MyIndex", "MyIndexCopy")
2183
- ```
2184
-
2185
- The move command is particularly useful if you want to update a big index atomically from one version to another. For example, if you recreate your index `MyIndex` each night from a database by batch, you only need to:
2186
- 1. Import your database into a new index using [batches](#batch-writes). Let's call this new index `MyNewIndex`.
2187
- 1. Rename `MyNewIndex` to `MyIndex` using the move command. This will automatically override the old index and new queries will be served on the new one.
2188
-
2189
- ```ruby
2190
- # Rename MyNewIndex in MyIndex (and overwrite it)
2191
- puts Algolia.move_index("MyNewIndex", "MyIndex")
2192
- ```
2193
-
2194
-
2195
- Backup / Retrieve of all index content
2196
- ==================
2197
-
2198
- The `search` method cannot return more than 1,000 results. If you need to
2199
- retrieve all the content of your index (for backup, SEO purposes or for running
2200
- a script on it), you should use the `browse` method instead. This method lets
2201
- you retrieve objects beyond the 1,000 limit.
2202
-
2203
- This method is optimized for speed. To make it fast, distinct, typo-tolerance,
2204
- word proximity, geo distance and number of matched words are disabled. Results
2205
- are still returned ranked by attributes and custom ranking.
2206
-
2207
-
2208
- Example:
2209
-
2210
- ```ruby
2211
- # Iterate with a filter over the index
2212
- index.browse({:query => "test", :numericFilters => 'i=42'}) do
2213
- # Do something
2214
- end
2215
- ```
2216
-
2217
-
2218
-
2219
-
2220
2232
  Logs
2221
2233
  ==================
2222
2234
 
@@ -389,7 +389,7 @@ module Algolia
389
389
  hinfo[:session].connect_timeout = connect_timeout
390
390
  hinfo[:session].send_timeout = send_timeout
391
391
  hinfo[:session].receive_timeout = receive_timeout
392
- hinfo[:session].ssl_config.add_trust_ca File.join(File.dirname(__FILE__), '..', '..', 'resources', 'ca-bundle.crt')
392
+ hinfo[:session].ssl_config.add_trust_ca File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'resources', 'ca-bundle.crt'))
393
393
  hinfo
394
394
  end
395
395
  end
@@ -1,3 +1,3 @@
1
1
  module Algolia
2
- VERSION = "1.8.0"
2
+ VERSION = "1.8.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: algoliasearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Algolia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  version: '0'
132
132
  requirements: []
133
133
  rubyforge_project:
134
- rubygems_version: 2.5.1
134
+ rubygems_version: 2.4.8
135
135
  signing_key:
136
136
  specification_version: 4
137
137
  summary: A simple Ruby client for the algolia.com REST API