forked from Azure/azure-storage-node
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.txt
452 lines (357 loc) · 28.1 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
Note: This is an Azure Storage only package. The all up Azure node sdk still has the old storage bits in there. In a future release, those storage bits will be removed and an npm dependency to this storage node sdk will
be taken. This is a CTP v1 release and the changes described below indicate the changes from the Azure node SDK 0.9.8 available here - https://github.com/Azure/azure-sdk-for-node.
2016.01 Version 0.8.0
ALL
* Preview release of the TypeScript definition file at "lib/azure-storage.d.ts".
BLOB
* Added the blob result to the callback of BlobService.commitBlocks.
* Added the speed summary to the downloading APIs.
2015.12 Version 0.7.0
ALL
* Fixed the typo in the function generateDevelopmentStorageCredentials.
* Fixed the issue that the HTTP global agent setting is changed during parallel uploading and downloading and impacts on other Node.js applications.
* Fixed the issue that the chunked stream writing methods do not accept string.
* Fixed the issue that the request fails when the content-length is set to string '0' in the 'sendingRequestEvent' event handler.
* Supported retry on XML parsing errors when the XML in the response body is corrupted.
* Replaced the dependency "mime" to "browserify-mime" to work with Browserify.
BLOB
* Added an option to skip the blob or file size checking prior to the actual downloading.
* Fixed the issue that it doesn't callback when loses the internet connection during uploading/uploading.
* Fixed the issue that the local file cannot be removed in the callback when uploading a blob from a local file.
* Fixed the issue that the stream length doesn't work when it is larger than 32MB in the createBlockBlobFromStream, createPageBlobFromStream, createAppendBlobFromStream and appendFromStream functions.
* Fixed the issue that it doesn't return error in the page range validation when the size exceeds the limit.
* Renamed the function AppendFromLocalFile to appendFromLocalFile.
* Renamed the function AppendFromStream to appendFromStream.
* Renamed the function AppendFromText to appendFromText.
TABLE
* Fixed the issue that listTablesSegmentedWithPrefix with maxResult option throws exception.
2015.09 Version 0.6.0
ALL
* Fixed the MD5 mismatch issue in uploading a blob when running with Node.js v4.0 or io.js.
BLOB
* Fixed the issue that it doesn't prompt appropriate error message when the source URI is missing in BlobService.startCopyBlob().
2015.08 Version 0.5.0
ALL
* Updated storage service version to 2015-02-21. For more information, please see - https://msdn.microsoft.com/en-us/library/azure/dd894041.aspx
* Unified the function parameters for setting ACL of container, table, queue and share.
* Renamed 'AccessPolicy.Permission' to 'AccessPolicy.Permissions' on the result object from get*Acl to match the property name on the signedIdentifier property passed to set*Acl calls.
* Unified the name pattern of the http header constants.
* Split the property parameters from the options parameter for setting properties of blob, share and file.
* Updated the error message when an argument is in a wrong type while it requires a string.
* Exported AccessCondition to generate an object that represents a condition.
* Fixed an issue that the SAS in the SharedAccessSignature part of the connection string cannot start with '?'.
* Deprecated the generateSharedAccessSignatureWithVersion() method in each service.
BLOB
* Supported operating against append blobs.
* Fixed an issue that the file descriptor in the FileReadStream is not closed.
QUEUE
* Fixed an issue that options.messageText doesn't work in QueueService.updateMessage.
2015.06 Version 0.4.5
* Updated the dependency of the 'request' module to avoid the security vulnerability reported by the 'nsp' tool: (https://nodesecurity.io/advisories/qs_dos_extended_event_loop_blocking) and (https://nodesecurity.io/advisories/qs_dos_memory_exhaustion).
* Included package validation in grunt tasks.
2015.05 Version 0.4.4
ALL
* Updated the dependency of the 'validator' module to avoid the security vulnerability reported by the 'nsp' tool. (https://nodesecurity.io/advisories/validator-isurl-denial-of-service)
* Updated the error message when an argument is in a wrong type while it requires a string.
* Updated the grunt file to run test with mocha and generate jsDoc.
BLOB
* Fixed an issue that the metadata is duplicated when creating a page blob.
* Fixed an issue that the metadata is duplicated when setting blob's metadata with metadata in the options.
* Fixed an issue that cannot create an empty block blob with useTransactionalMD5 option.
FILE
* Fixed an issue that the result of file downloading contains wrong values for share, directory or file names.
TABLE
* Fixed an issue that it prompts "Cannot set property 'isSuccessful' of null" when TableService.createTableIfNotExists is called.
2015.03 Version 0.4.3
ALL
* Fixed an issue that setting metadata keys are converted into lowercase. The metadata keys retrieved from the service will however still be converted into lowercase by the http component of Node.js.(https://github.com/joyent/node/issues/1954)
* Included all storage error code strings in the error constants definition.
* Documented the client request ID option in all APIs.
BLOB
* Supported listing blob virtual directories.
* Fixed an issue that exception is thrown when downloading a blob larger than 32MB to a stream.
* Fixed an issue that the process exits when the free memory is low.
2014.12 Version 0.4.2
ALL
* Fixed an issue that batch operation could probably wait without callback.
* Added the readable-stream module to adapt stream operations in both node 0.8 and node 0.10.
* Supported nock in tests.
BLOB
* Supported trimming the default port of http or https when getting URL for the blob service.
* Fixed an issue that the metadata is not populated when getting the blob to text.
FILE
* Supported trimming the default port of http or https when getting URL for the file service.
2014.11.28 Version 0.4.1
ALL
* Fixed an issue where the request does not invoke the callback when the input stream ends with an 'end' event instead of a 'finish' event.
* Fixed an issue where the request does not invoke the callback when the input stream ends with a 'close' event on Node 0.8.X.
* Fixed an issue that the temporary files generated by unit tests are not cleaned up.
* Fixed an issue that the unit tests may fail when the file generated by previous tests is not accessible temporarily.
FILE
* Added support to download a single file in parallel similar to upload. You can set ‘parallelOperationThreadCount’ option for api’s that download a file to indicate number of parallel operations to use for download.
TABLE
* Fixed an issue which caused invalid input errors when the partition key or the row key contains an apostrophe.
2014.10.28 Version 0.4.0
ALL
* Provide an option to enable/disable nagling. Nagling is disabled by default. It can be enabled by setting options.useNagleAlgorithm to true.
* Added batch operation callback in sequence mode.
BLOB
* Added support to download a single blob in parallel similar to upload. You can set ‘parallelOperationThreadCount’ option for api’s that download a blob to indicate number of parallel operations to use for download.
* Added speed summary in blob downloading.
FILE
* Fixed an issue which caused an invalid resource name error when the directory name starts or ends with a '/'
2014.08.20 Version 0.3.3
BLOB
* Fixed an issue where SAS tokens were being incorrectly generated for the root container and when the blob name required encoding.
* Documented the 'parallelOperationThreadCount' option as input to various uploadBlob APIs.
FILE
* Fixed an issue where signing was incorrect when the URI contained '.' or '..'.
* Fixed an issue where "getURI" was requiring a file parameter, although the parameter should be optional.
2014.07.25 Version 0.3.2
ALL
* Fixed an issue which prevented transient server errors like ECONNRESET, ESOCKETTIMEDOUT and ETIMEDOUT from being retried.
BLOB
* Fixed an issue which caused a reference error in blobs due to 'err' not being defined.
2014.07.22 Version 0.3.1
ALL
* Fixed an issue which failed to validate special names for containers and tables.
* Exposed the Validation utility methods so users can use it to validate resource names.
BLOB
* Fixed an issue which caused failures when an error was encountered while uploading big blobs.
2014.07.07 Version 0.3.0
BLOB
* Fixed an issue which failed to return single item blocklists while doing listBlocks.
FILE
* Added File Service support. The File Service and the associated APIs are in preview.
2014.07.01 Version 0.2.1
ALL
* Fixed an issue with casing which caused the module to fail on linux machines.
BLOB
* Fixed an issue which failed to upload an empty blob for empty block blob files uploaded using createBlockBlobFromFile when retry policies were used.
2014.06.16 Version 0.2.0
ALL
* Updated storage service version to 2014-02-14. The SAS tokens generated will therefore contain a signed version of 2014-02-14 and all the requests using SAS credentials have the api-version query parameter appended to the URI.
2014.06.12 Version 0.1.0
ALL
* The package has been renamed to azure-storage.
* There is no separate azure-common sub-package. Everything is condensed into a single package called azure-storage.
* azure.create*Service supports the following configurations:
* create*Service(connection string)
* create*Service(account name, account key)
* create*Service(storage host, sasToken)
* Added the ability to choose which SAS Version to use when generating Shared Access Signatures (either the 2012-02-12 or 2013-08-15 versions).
* Host can be given as either an object with primaryHost and secondaryHost or as a string representing the primary.
* The order credentials are assessed is consistent: If parameters are passed in, they and they alone are honored. There is no mixing (ex, if users pass in host, they won't get the access key from your env var). If no parameters are passed in, the env vars are used. Within both those strategies, the order of evaluation is emulator (in the case of EMULATED env var only), connection string, account/key or SAS, anonymous. If account/key and SAS are passed in, an error is thrown indicating the credentials are invalid.
* Removed the ability to create a storage service from a config file.
* azure.create*Service supports secondaryHost only, but either primaryHost or secondaryHost must be provided.
* Storage service client constructors take the sasToken rather than a credentials object, meaning that the SharedAccessSignature class no longer needs to be used by consumers.
* Ensure request is always built/signed for every retry attempt.
* Custom retry policies should implement the shouldRetry method and return an object with the retryInterval and retryable information in it. Optionally, they can also set the locationMode and targetLocation to which the request should be sent.
* Implemented RA-GRS support. For more information on this, please see - http://blogs.msdn.com/b/windowsazurestorage/archive/2013/12/04/introducing-read-access-geo-replicated-storage-ra-grs-for-windows-azure-storage.aspx
* Service properties updated: replaced metrics with hour metrics and minute metrics, added cors support, added defaults if properties are unspecified to reduce invalid xml exceptions.
* Added maximum execution time, settable for all requests via {blob|queue|table}service.defaultMaximumExecutionTime or for an individual request via options.maximumExecutionTime. This applies to all requests except blob downloads.
* The blob, queue and table services no longer set/modify any values within the options object optionally passed in by the user for every API.
* Fixed an issue where null, empty and white-space only metadata header values were allowed.
* "timeout" query parameter will not be sent to the server if not set by the user. In order to set the timeout per API, please use options.timeoutIntervalInMs. To set it for all requests made via a particular service, please use {blob|queue|table}Service.defaultTimeoutIntervalInMs.
* ECONNRESET is handled in the retry policy filter.
* DevStore with secondary access is supported.
* Set*Acl takes signed identifiers as a parameter - before it was in options.
* GenerateSharedAccessSignature() produces a query string rather than an object.
* The SharedKey class has the methods to create shared access signatures. These should not be in the SharedAccessSignature class because one can only create a SAS if they have the account/key.
* The service client no longer evaluates the port and protocol set on it. Before, if storageserviceclient.host was called and port and protocol had been changed after host was set, host would be incorrect.
* Removed SharedKeyLite and SharedKeyLiteTable in favor of SharedKey and SharedKeyTable which were already the defaults.
* Added separate utility files for Blob, Queue, Table, and Storage. These contain useful enums that were previously found in a single Constants file as well as new utility functions. The old Constants file will mostly include internal-use constants.
BLOB
* createBlobServiceWithSas has been provided to create a blobService to use with a Shared Access Signature. Users can create a blobService using azure.createBlobServiceWithSas(host, sasToken).
* Anonymous access for the blob service is supported.
* Added support for 2013-08-15 Blob SAS changes.
* Renamed listBlobs to listBlobsSegmented and added listBlobsSegmentedWithPrefix. listBlobsSegmented takes in currentToken and listBlobsSegmentedWithPrefix takes in prefix and currentToken along with other parameters. Please look at the documentation of these APIs for a list of parameters that users can set on the options object. These APIs return only error, result and response. The result contains entries which is a list of blobs and a continuation token for successive listing operations.
* Renamed copyBlob to startCopyBlob.
* Renamed putBlockBlobFromStream to _putBlockBlobFromStream and putBlockBlobFromFile to _putBlockBlobFromFile. These are internal methods and should not be called by users directly. Please use createBlockBlobFromStream and createBlockBlobFromFile.
* Renamed page methods: listBlobRegions to listPageRanges, createBlobPagesFromText to createPagesFromText, clearBlobPages to clearPageRanges.
* Renamed block methods: createBlobBlockFromStream to createBlockFromStream, createBlobBlockFromText to createBlockFromText, commitBlobBlocks to commitBlocks, listBlobBlocks to listBlocks.
* BlobService lease methods also work with container leases, simply specify null for the blob parameter.
* Added changeLease method to modify the lease ID of an active lease.
* Fixed lease issues, break lease allows a leaseBreakPeriod of 0, lease time header is returned as an int rather than a string.
* Added snapshot delete options: when deleting a blob with snapshots, users can decide to delete blob and snapshots or just snapshots. The options are provided in BlobUtilities.SnapshotDeleteOptions.*.
* deleteBlob callback does not return isSuccessful.
* Added does{Container|Blob}Exist methods in blobservice that can be used to determine if a particular container or blob exists.
* Added delete{Container|Blob}IfExists methods in blobservice that can be used to delete a container or a blob only when they exist.
* Added ContentMD5 validation for blob downloads. This is turned on by default for all block blob downloads and all page blob range downloads as long as the range is less than 4MB. In order to turn this off, set options.disableContentMD5Validation to true explicitly.
* x-ms-range-get-content-md5 is set internally by the library and users do not have to specify it in the options.
* Removed the option of doing range downloads while downloading a blob to text.
* Added sequence number support for page blobs. Users can set the sequence number of a page blob using blobService.setPageBlobSequenceNumber and manage concurrency issues using x-ms-if-sequence-number-le, x-ms-if-sequence-number-lt and x-ms-if-sequence-number-eq. Please see http://msdn.microsoft.com/en-us/library/azure/ee691975.aspx for more details about using sequence numbers.
* Removed createBlob API. Please use createPageBlob and createBlockBlob* APIs to create the respective blobs.
* Renamed createPagesFromText to _createPagesFromText. This is an internal method and should not be called by users directly.
* Added resizePageBlob that can be used to resize a page blob.
* createPageBlob takes in the blob's sequence number using options.sequenceNumber.
* All the BlobService APIs that took cacheControl/cacheControlHeader, contentType/contentTypeHeader, contentEncoding/contentEncodingHeader, contentLanguage/contentLanguageHeader, contentMD5/contentMD5Header in options only take cacheControl, contentType, contentEncoding, contentLanguage and contentMD5. These are the values that will be set on the blob at the server.
* createPagesFromStream takes in the following 2 options - useTransactionalMD5 to calculate and send/validate content MD5 for each transaction and contentMD5 which is an optional hash value. When contentMD5 is provided, the client library uses that instead of trying to calculate it based on the data being uploaded.
* createBlockBlobFromText, createBlockFromStream and createBlockFromText allows users to set useTransactionalMD5 on options to calculate and send/validate content MD5 for each transaction.
* Added createWriteStreamToBlockBlob, createWriteStreamToNewPageBlob and createWriteStreamToExistingPageBlob that provide a stream for writing to the blob.
* Added createReadStream that provides a stream for reading from the blob.
* blobService can have a default parallelOperationThreadCount which specifies the number of parallel upload operations that may be performed when uploading a blob that is greater than the value specified by singleBlobPutUploadThresholdInBytes. This value can be set using blobService.parallelOperationThreadCount. The default value set on blobService is 1.
* createBlockBlobFromText supports text Buffers in addition to strings.
* createBlockBlobFromText will throw an error if the uploaded content exceeds 64MB.
* BlobService getBlobUrl has been renamed to getUrl as it can also produce container urls. It can no longer create a SAS token (it used to take sharedAccessPolicy) but can take a sasToken produced by the generateSharedAccessSignature method and produce a url with that.
QUEUE
* Added Shared Access Signatures for queues. createQueueServiceWithSas has been provided to create a queueService to use with a Shared Access Signature. Users can create a queueService using azure.createQueueServiceWithSas(host, sasToken).
* Renamed listQueues to listQueuesSegmented and added listQueuesSegmentedWithPrefix. listQueuesSegmented takes in currentToken and listQueuesSegmentedWithPrefix takes in prefix and currentToken along with other parameters. Please look at the documentation of these APIs for a list of parameters that users can set on the options object. These APIs return only error, result and response. The result contains entries which is a list of queues and a continuation token for successive listing operations.
* deleteQueue and deleteMessage callbacks do not return isSuccessful.
* Added an option in the queue service to turn base 64 encoding off.
TABLE
* Added Shared Access Signatures for tables. createTableServiceWithSas has been provided to create a tableService to use with a Shared Access Signature. Users can create a tableService using azure.createTableServiceWithSas(host, sasToken).
* Added JSON support for tables and removed AtomPub. For the different flavours of JSON supported, please see - http://blogs.msdn.com/b/windowsazurestorage/archive/2013/12/05/windows-azure-tables-introducing-json.aspx.
* Renamed queryTables to listTablesSegmented and added listTablesSegmentedWithPrefix. listTablesSegmented takes in currentToken and listTablesSegmentedWithPrefix takes in prefix and currentToken along with options and callback. Please look at the documentation of these APIs for a list of parameters that users can set on the options object. These APIs return only error, result and response. The result contains entries which is a list of tables and a continuation token for successive listing operations.
* deleteTable and deleteEntity callbacks do not return isSuccessful.
* queryEntities in TableService returns 3 parameters instead of 4: the entities and queryResultContinuation parameters are returned within a queryResult object.
* Added support for disabling echo content in inserts. By default, inserts do not echo content.
* Changed table error parsing so that the code string and message string are directly accessible from the error object.
* Removed the getTable method; doesTableExist works similarly.
* createTable does not request content back from the service, but still returns an object containing the TableName.
* Renamed queryEntity in TableService to retrieveEntity.
* Modified how batches work. Instead of turning the service batch mode on/off, a batch is a separate entity like query. Batches are constructed and then executed.
* queryEntities in TableService requires a continuation token.
* TableService updateEntity, mergeEntity and deleteEntity do not take a checkEtag option. The entity's etag is sent if it exists, otherwise * is sent.
* retrieveEntity and queryEntities accept empty partition and row keys.
* Added entity-property-creation helper methods. Users can use the entityGenerator provided in TableUtilities and create entity properties as follows:
var entGen = TableUtilities.entityGenerator;
var entity = { PartitionKey: entGen.String('part2'),
RowKey: entGen.String('row1'),
boolValueTrue: entGen.Boolean(true),
boolValueFalse: entGen.Boolean(false),
intValue: entGen.Int32(42),
dateValue: entGen.DateTime(new Date(Date.UTC(2011, 10, 25))),
complexDateValue: entGen.DateTime(new Date(Date.UTC(2013, 02, 16, 01, 46, 20)))
};
* Removed TableQuery whereKeys method. Instead of tableQuery.whereKeys, tableService.retrieveEntity should be used.
* Removed TableQuery whereNextKeys method. Instead of tableQuery.whereNextKeys, tableService.queryEntities takes currentToken which can be retrieved from a previous queryEntities call in results.
* Removed TableQuery from method. Instead of tableQuery.from, tableService.queryEntities takes table and tableQuery may be null to represent retrieving all entities in the table.
* TableQuery select is an instance method for consistency with top and where. Instead of TableQuery.select('foo'), use new TableQuery().select('foo').
* TableQuery provides helper methods to create filter strings to use with the where clause for a query. Query strings may also include type specifiers where necessary.
For example, to query on a long value, users could do the following:
var tableQuery = new TableQuery().where(TableQuery.int64Filter('Int64Field', TableUtilities.QueryComparisons.EQUAL, '4294967296'));
OR
var tableQuery = new TableQuery().where('Int64Field == ?int64?', '4294967296');
2013.01.15 Version 0.8.0
* Added the Preview Service Management libraries as separate modules
* Added ability to consume PEM files directly from the Service Management libraries
* Added support for createOrUpdate and createRegistrationId in the Notification Hubs libraries
2013.01.10 Version 0.7.19
* Lock validator version
2013.11.27 Version 0.7.18
* Lock xmlbuilder version
2013.11.5 Version 0.7.17
* Added getBlob and createBlob operations that support stream piping
* Added compute, management, network, serviceBus, sql, storage management, store and subscription preview wrappers
* Multiple bugfixes
2013.10.16 Version 0.7.16
* Improved API documentation
* Updated Virtual Machines API to 2013-06-01
* Added website management preview wrappers
* Multiple bugfixes
2013.08.19 Version 0.7.15
* Multiple storage fixes
* Fix issue with Notification Hubs template message sending
2013.08.12 Version 0.7.14
* Multiple storage fixes
* Documentation improvements
* Added support for large blobs upload / download
2013.08.08 Version 0.7.13
* Lock request version
2013.07.29 Version 0.7.12
* Added MPNS support
* Added Service management vnet operations support
2013.07.10 Version 0.7.11
* Hooked up new configuration system to storage APIs
* Support for AZURE_STORAGE_CONNECTION_STRING environment variable
* Included API for websites management
* Fixed UTF-8 support in table batch submit
2013.06.26 Version 0.7.10
* Various fixes in storage APIs
2013.06.19 Version 0.7.9
* First part of new SDK configuration system
* Support for AZURE_SERVICEBUS_CONNECTION_STRING environment variable
* Updated SAS generation logic to include version number
* Infrastructure support for creating passwordless VMs
2013.06.13 Version 0.7.8
* Updates to HDInsight operations
2013.06.06 Version 0.7.7
* Added support for Android notification through Service Bus Notification Hubs
* Support prefixes when listing tables
* Support '$logs' as a valid blob container name to support reading diagnostic information
* Fix for network configuration serialization for subnets
2013.05.30 Version 0.7.6
* Added list, delete and create cluster operations for HD Insight.
2013.05.15 Version 0.7.5
* Fixed registration hubs issue with requiring access key when shared key was provided.
* Fixed registration hubs issue with listByTag, Channel and device token
2013.05.09 Version 0.7.4
* Fixed encoding issue with partition and row keys in table storage query
2013.05.01 Version 0.7.3
* Fixed issue #680: BlobService.getBlobUrl puts permissions in SAS url even if not given
* Changes to test suite & sdk to run in other environments
* Notification hubs registrations
* Support in ServiceManagementClient for role reboot and reimage
2013.04.05 Version 0.7.2
* Removing workaround for SSL issue and forcing node version to be outside the > 0.8 && < 0.10.3 range where the issue occurs
2013.04.03 Version 0.7.1
* Adding (limited) support for node 0.10
* Fixing issue regarding registering providers when using websites or mobiles services
2013.03.25 Version 0.7.0
* Breaking change: Primitive types will be stored for table storage.
* Adding support for creating and deleting affinity groups
* Replacing http-mock by nock and making all tests use it by default
* Adding notification hubs messages for WNS and APNS
* Add Strict SSL validation for server certificates
* Add support for creating subscriptions that expire
2013.03.12 Version 0.6.11
* Added constraint to package.json to restrict to node versions < 0.9.
2013.02.11 Version 0.6.10
* Added helper date.* functions for generating SAS expirations (secondsFromNow, minutesFromNow, hoursFromNow, daysFromNow)
* Added SQL classes for managing SQL Servers, Databases and Firewall rules
* Updating to use latest xml2js
2012.12.12 Version 0.6.9
* Exporting WebResource, Client classes from package to support CLI.
* Install message updated to remind users the CLI is now a separate package.
2012.11.20 Version 0.6.8
* CLI functionality has been pulled out into a new "azure-cli" module. See https://github.com/WindowsAzure/azure-sdk-tools-xplat for details.
* Add support for sb: in ServiceBus connection strings.
* Add functions to ServiceManagement for managing storage accounts.
* Merged #314 from @smarx for allowing empty partition keys on the client.
* Merged #447 from @anodejs for array enumeration and exception on batch response.
* Various other fixes
2012.10.15 Version 0.6.7
* Adding connection strings support for storage and service bus
* Fixing issue with EMULATED and explicit variables making the later more relevant
* Adding Github support
* Adding website application settings support
2012.10.12 Version 0.6.6
* Using fixed version of commander.js to avoid bug in commander.js 1.0.5
2012.10.01 Version 0.6.5
* Bugfixing
2012.09.18 Version 0.6.4
* Multiple Bugfixes around blob streaming
2012.09.09 Version 0.6.3
* Fixing issue with xml2js
2012.08.15 Version 0.6.2
* Multiple Bugfixes
2012.07.02 Version 0.6.1
* Multiple Bugfixes
* Adding subscription setting and listing functionality.
2012.06.06 Version 0.6.0
* Adding CLI tool
* Multiple Bugfixes
2012.04.19 Version 0.5.3
* Service Runtime Wrappers
* Multiple Bugfixes
* Unit tests converted to mocha and code coverage made easy through JSCoverage
2012.02.10 Version 0.5.2
* Service Bus Wrappers
* Storage Services UT run against a mock server.
* Node.exe version requirement lowered to raise compatibility.
* Multiple Bugfixes
2011.12.14 Version 0.5.1
* Multiple bug fixes
2011.12.09 Version 0.5.0
* Initial Release