{ "id": "123687", "key": "TIMOB-15980", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "15935", "description": "2014 Sprint 06", "name": "2014 Sprint 06", "archived": true, "released": true, "releaseDate": "2014-03-28" }, { "id": "15936", "description": "2014 Sprint 06 SDK", "name": "2014 Sprint 06 SDK", "archived": true, "released": true, "releaseDate": "2014-03-28" }, { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-03-18T19:12:14.000+0000", "created": "2013-12-13T01:06:18.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "planning-3.3.0" ], "versions": [], "issuelinks": [ { "id": "34372", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "outwardIssue": { "id": "124972", "key": "TIDOC-1467", "fields": { "summary": "Document NSURLConnection", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "35583", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "127190", "key": "TIMOB-16554", "fields": { "summary": "iOS: NewHTTPClient missing response from ondatastream callback", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "35586", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "127207", "key": "TIMOB-16557", "fields": { "summary": "iOS: NewHTTPClient not able to send numbers as post data", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "35674", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "127329", "key": "TIMOB-16565", "fields": { "summary": "iOS: NewHTTPClient Content-Disposition and the Content-Type not set correctly on POST files", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "35328", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "90409", "key": "TIMOB-8770", "fields": { "summary": "Conflicts between ASI Http symbols and modules", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "35329", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "82271", "key": "TIMOB-5973", "fields": { "summary": "ASIHTTP no longer under active development; need to investigate replacement", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2014-06-27T20:27:03.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "We currently use the ASIHttp library to provide network connection support. This library is out of date and deprecated. We aim to replace it with NSUrlConnection to provide better support for mobile app security solutions.", "attachment": [], "flagged": false, "summary": "iOS: Replace ASIHttp with NSURLConnection", "creator": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [ { "id": "125144", "key": "TIMOB-16271", "fields": { "summary": "NSURLConnection: Request Methods", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "125146", "key": "TIMOB-16272", "fields": { "summary": "NSURLConnection: Async and Sync requests", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "125147", "key": "TIMOB-16273", "fields": { "summary": "NSURLConnection: POST forms (files, data, etc)", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "125148", "key": "TIMOB-16274", "fields": { "summary": "NSURLConnection: Implement Authentication & Credential support", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "125149", "key": "TIMOB-16275", "fields": { "summary": "NSURLConnection: Cookie Management", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "125151", "key": "TIMOB-16276", "fields": { "summary": "NSURLConnection: SSL and TLS support", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "125152", "key": "TIMOB-16277", "fields": { "summary": "Replace existing ASIHttpLibrary from the SDK", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } }, { "id": "127749", "key": "TIMOB-16635", "fields": { "summary": "NSURLConnection: Download data to file if specified", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } } ], "reporter": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "284172", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "yes, yes, and yes again.", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2013-12-13T02:47:03.000+0000", "updated": "2013-12-13T02:47:03.000+0000" }, { "id": "289505", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Initial implementation can be found at https://github.com/pec1985/TiHTTPClient", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-01-23T22:40:34.000+0000", "updated": "2014-01-23T22:40:34.000+0000" }, { "id": "291467", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/5323", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-02-05T19:41:33.000+0000", "updated": "2014-02-05T19:41:33.000+0000" }, { "id": "295707", "author": { "name": "jeffbonnes", "key": "jeffbonnes", "displayName": "Jeff Bonnes", "active": true, "timeZone": "Australia/Sydney" }, "body": "The 'Content-Length' header only seems to be available on the 'last' ondatastream event - not on all events as previously occurred. This would be very useful as we display 'downloading XXXKb of XXXXKb' messages for the user. This is using NTLM Authentication over SSL. Sample code and log output for the same file below:\r\n\r\nCode:\r\n\tfileXhr.ondatastream = function(e) {\r\n\t\tfilelog.debug('xhr.ondatastream fired');\r\n\t\tfilelog.debug('status=' + fileXhr.status);\r\n\t\tvar totalBytes = fileXhr.getResponseHeader('Content-Length');\r\n\t\tfilelog.debug('Totalbytes:' + totalBytes);\r\n\t\tfilelog.debug('Progress=' + e.progress);\r\n\t};\r\n\r\nOld ASIHttpRequest httpClient\r\n[DEBUG] : fileXhr 233ms 130mb ^4mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 234ms 130mb ^4mb status=401\r\n[DEBUG] : fileXhr 234ms 130mb ^4mb Totalbytes:1293\r\n[DEBUG] : fileXhr 234ms 130mb ^4mb Progress=1\r\n[DEBUG] : fileXhr 734ms 133mb ^1mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 735ms 133mb ^1mb status=200\r\n[DEBUG] : fileXhr 735ms 133mb ^1mb Totalbytes:1571627\r\n[DEBUG] : fileXhr 735ms 133mb ^1mb Progress=0.07360270619392395\r\n[DEBUG] : fileXhr 984ms 133mb ^0mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 984ms 133mb ^0mb status=200\r\n[DEBUG] : fileXhr 984ms 133mb ^0mb Totalbytes:1571627\r\n[DEBUG] : fileXhr 984ms 133mb ^0mb Progress=0.3759238123893738\r\n[DEBUG] : fileXhr 1234ms 114mb ^20mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 1235ms 114mb ^20mb status=200\r\n[DEBUG] : fileXhr 1235ms 114mb ^20mb Totalbytes:1571627\r\n[DEBUG] : fileXhr 1235ms 114mb ^20mb Progress=0.6678200364112854\r\n[DEBUG] : fileXhr 1485ms 86mb ^47mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 1485ms 86mb ^47mb status=200\r\n[DEBUG] : fileXhr 1485ms 86mb ^47mb Totalbytes:1571627\r\n[DEBUG] : fileXhr 1486ms 86mb ^47mb Progress=0.9909908771514893\r\n[DEBUG] : fileXhr 1490ms 85mb ^49mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 1490ms 85mb ^49mb status=200\r\n[DEBUG] : fileXhr 1490ms 85mb ^49mb Totalbytes:1571627\r\n[DEBUG] : fileXhr 1490ms 85mb ^49mb Progress=1.00082266330719\r\n[DEBUG] : fileXhr 1493ms 81mb ^53mb starting onload\r\n\r\nNew NSUrlConnection httpClient\r\n[DEBUG] : fileXhr 118ms 118mb ^-8mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 118ms 118mb ^-8mb status=0\r\n[DEBUG] : fileXhr 118ms 118mb ^-8mb Totalbytes:undefined\r\n[DEBUG] : fileXhr 118ms 118mb ^-8mb Progress=0.010242888703942299\r\n[DEBUG] : fileXhr 150ms 118mb ^-8mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 150ms 118mb ^-8mb status=0\r\n[DEBUG] : fileXhr 150ms 118mb ^-8mb Totalbytes:undefined\r\n[DEBUG] : fileXhr 150ms 118mb ^-8mb Progress=0.05194234848022461\r\n[DEBUG] : fileXhr 182ms 118mb ^-8mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 182ms 118mb ^-8mb status=0\r\n[DEBUG] : fileXhr 182ms 118mb ^-8mb Totalbytes:undefined\r\n[DEBUG] : fileXhr 182ms 118mb ^-8mb Progress=0.09364181011915207\r\n[DEBUG] : fileXhr 215ms 118mb ^-8mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 215ms 118mb ^-8mb status=0\r\n[DEBUG] : fileXhr 215ms 118mb ^-8mb Totalbytes:undefined\r\n[DEBUG] : fileXhr 215ms 118mb ^-8mb Progress=0.13534127175807953\r\n... etc ...\r\n[DEBUG] : fileXhr 870ms 118mb ^-8mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 870ms 118mb ^-8mb status=0\r\n[DEBUG] : fileXhr 870ms 118mb ^-8mb Totalbytes:undefined\r\n[DEBUG] : fileXhr 870ms 118mb ^-8mb Progress=0.896356463432312\r\n[DEBUG] : fileXhr 905ms 118mb ^-8mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 905ms 118mb ^-8mb status=0\r\n[DEBUG] : fileXhr 905ms 118mb ^-8mb Totalbytes:undefined\r\n[DEBUG] : fileXhr 905ms 118mb ^-8mb Progress=0.9380559325218201\r\n[DEBUG] : fileXhr 935ms 116mb ^-6mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 935ms 116mb ^-6mb status=0\r\n[DEBUG] : fileXhr 935ms 116mb ^-6mb Totalbytes:undefined\r\n[DEBUG] : fileXhr 935ms 116mb ^-6mb Progress=0.9797554016113281\r\n[DEBUG] : fileXhr 951ms 116mb ^-6mb xhr.ondatastream fired\r\n[DEBUG] : fileXhr 951ms 116mb ^-6mb status=200\r\n[DEBUG] : fileXhr 951ms 116mb ^-6mb Totalbytes:1571627\r\n[DEBUG] : fileXhr 951ms 116mb ^-6mb Progress=1\r\n\r\n", "updateAuthor": { "name": "jeffbonnes", "key": "jeffbonnes", "displayName": "Jeff Bonnes", "active": true, "timeZone": "Australia/Sydney" }, "created": "2014-03-05T04:38:24.000+0000", "updated": "2014-03-05T04:38:24.000+0000" }, { "id": "295781", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-03-05T19:00:22.000+0000", "updated": "2014-03-05T19:00:22.000+0000" }, { "id": "295872", "author": { "name": "jeffbonnes", "key": "jeffbonnes", "displayName": "Jeff Bonnes", "active": true, "timeZone": "Australia/Sydney" }, "body": "Got another one for you. When POSTing files, the filename in Content-Disposition and the Content-Type are not being set properly. See the requests for the old and new below (full requests follow)\r\n\r\nOld ASIHttpRequest httpClient:\r\n{code}\r\nContent-Disposition: form-data; name=\"files\"; filename=\"*residential-tenancy-agreement.PDF*\"\r\nContent-Type: *application/pdf*\r\n{code}\r\nNew NSUrlConnection httpClient:\r\n{code}\r\nContent-Disposition: form-data; name=\"files\"; filename=\"*file0*\"\r\nContent-Type: *application/octet-stream*\r\n{code}\r\n----\r\nFull Headers:\r\nOld ASIHttpRequest httpClient:\r\n{code}\r\nPOST /default.aspx?a=anr&t=6&u=335602 HTTP/1.1\r\nHost: grundy01.kapish.local:443\r\nX-Titanium-Id: 3fe5003f-1574-4300-8e76-8ef1dd10ecf5\r\nX-Requested-With: XMLHttpRequest\r\nProxy-Connection: close\r\nContent-Type: multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY-D28F5749-96F6-4114-8778-A54A880DDD56\r\nAccept-Encoding: gzip\r\nContent-Length: 1571868\r\nCookie: ASP.NET_SessionId=1lvlt34iui0xbenq0ihiuxfd\r\nConnection: close\r\nUser-Agent: Appcelerator Titanium/3.3.0.v20140304134105 (iPad Simulator/7.0.3; iPhone OS; en_US;)\r\n\r\n--0xKhTmLbOuNdArY-D28F5749-96F6-4114-8778-A54A880DDD56\r\nContent-Disposition: form-data; name=\"files\"; filename=\"residential-tenancy-agreement.PDF\"\r\nContent-Type: application/pdf\r\n\r\n%PDF-1.6\r\n%‚„œ” etc...\r\n{code}\r\n\r\n\r\nNew NSUrlConnection httpClient:\r\n{code}\r\nPOST /default.aspx?a=anr&t=6&u=335602 HTTP/1.1\r\nHost: grundy01.kapish.local:443\r\nAccept-Language: en-us\r\nUser-Agent: Appcelerator Titanium/3.3.0.v20140304134105 (iPad Simulator/7.0.3; iPhone OS; en_US;)\r\nProxy-Connection: keep-alive\r\nX-Requested-With: XMLHttpRequest\r\nAccept: */*\r\nContent-Type: multipart/form-data; charset=utf-8; boundary=0xTibOuNdArY_1394075012\r\nConnection: keep-alive\r\nCookie: ASP.NET_SessionId=2g4bbjjehrc52dds1h4iu4cb\r\nAuthorization: Digest username=\"jbonnes\", realm=\"Digest\", nonce=\"+Upgraded+v1779ef9b7eb16488297431a0b2983f3d4dee2999de838cf01fc2b41b649d8fa0e50337c8f9175eb389c113e8639c2dfcbac9f094388418f24\", uri=\"/default.aspx?a=anr&t=6&u=335602\", response=\"9bd9ff848af6c3b5613693c4b08fccb2\", algorithm=\"MD5-sess\", cnonce=\"df4afa0d131fa3e18a2c5144c5270ffd\", nc=00000006, qop=\"auth\"\r\nX-Titanium-Id: 3fe5003f-1574-4300-8e76-8ef1dd10ecf5\r\nContent-Length: 1571791\r\nAccept-Encoding: gzip, deflate\r\n\r\n--0xTibOuNdArY_1394075012\r\nContent-Disposition: form-data; name=\"files\"; filename=\"file0\"\r\nContent-Type: application/octet-stream\r\n\r\n%PDF-1.6\r\n%‚„œ” etc....\r\n{code}\r\n", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-03-06T03:13:43.000+0000", "updated": "2014-03-06T19:44:34.000+0000" }, { "id": "295963", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-03-06T18:39:30.000+0000", "updated": "2014-03-06T18:39:30.000+0000" }, { "id": "296114", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Tested with several apps and found no problems.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-03-07T14:30:39.000+0000", "updated": "2014-03-07T14:30:39.000+0000" }, { "id": "307908", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~fokke] Thanks Fokke. We do appreciate the feedback.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-06-06T21:56:34.000+0000", "updated": "2014-06-06T21:56:34.000+0000" }, { "id": "308992", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Primary testing complete. Will continue to evaluate any upcoming changes.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-06-13T21:01:58.000+0000", "updated": "2014-06-13T21:01:58.000+0000" }, { "id": "311385", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Testing has not uncovered any issues with feature implementation.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-06-27T20:26:54.000+0000", "updated": "2014-06-27T20:26:54.000+0000" } ], "maxResults": 13, "total": 13, "startAt": 0 } } }