{ "id": "167089", "key": "DAEMON-73", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false }, "project": { "id": "12519", "key": "DAEMON", "name": "Appcelerator Daemon" }, "fixVersions": [ { "id": "20992", "description": "", "name": "Titanium CLI 6.0.0", "archived": false, "released": false, "releaseDate": "2020-06-30" } ], "resolution": null, "resolutiondate": null, "created": "2017-04-12T19:53:05.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "cb-next" ], "versions": [], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2021-02-18T22:36:13.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "15104", "name": "Titanium CLI" } ], "description": "The Titanium CLI.next, aka v6, will replace the existing Appc CLI and Titanium CLI v5. The Titanium CLI.next is a radical architecture change that will depend on the Appc Daemon where the Titanium CLI itself is a dumb client and all of the CLI logic lives in an Appc Daemon plugin. This new architecture will give us speed, flexibility, release management, and testability.\r\n\r\nThis ticket is comprised of 2 major components: Titanium CLI client and the Titanium appcd plugin.\r\n\r\nh4. Titanium CLI Client\r\n\r\nThe Titanium CLI \"client\" is the \"titanium\" package distributed via npm. It has 2 jobs:\r\n\r\n1. Make sure the Appc Daemon is running\r\n2. Execute the request command\r\n\r\nThe client makes 2 types of appcd requests to the Titanium appcd plugin running in :\r\n\r\n1. Discover the port to connect to and execute a command\r\n2. Retrieve the schema for the Titanium CLI commands and options (needed for AMPLIFY CLI integration)\r\n\r\nh4. Titanium appcd plugin\r\n\r\nWhen executing a command, we need bi-directional communication for stdio. Despite the Appc Daemon using a WebSockets-based protocol, it does not support and it is not feasible (DAEMON-267) to add bi-directional communication over the WebSocket protocol. Instead the Titanium appcd plugin will start its own server for the Titanium CLI to connect to.\r\n\r\nh4. AMPLIFY CLI Integration\r\n\r\nThe Titanium CLI client is an AMPLIFY CLI extension which means it is installable via the AMPLIFY CLI Package Manager. Once installed, the AMPLIFY CLI will fetch the Titanium CLI's schema from the Titanium appcd plugin and append it to the AMPLIFY CLI's command schema. This allows AMPLIFY CLI users to benefit from integrated help and future features such as bash completion.\r\n\r\nh4. Architecture Overview\r\n\r\nRefer to https://techweb.axway.com/confluence/pages/viewpage.action?pageId=179741921 for more information.", "attachment": [], "flagged": false, "summary": "Titanium CLI.next", "creator": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "closedSprints": [ { "id": 1141, "state": "closed", "name": "2019 Sprint 12", "startDate": "2019-06-03T22:00:37.435Z", "endDate": "2019-06-14T22:00:00.000Z", "completeDate": "2019-06-15T03:44:20.826Z", "originBoardId": 114 }, { "id": 1135, "state": "closed", "name": "2019 Sprint 10", "startDate": "2019-05-06T15:32:03.726Z", "endDate": "2019-05-19T15:32:00.000Z", "completeDate": "2019-05-24T19:50:33.411Z", "originBoardId": 228 } ], "comment": { "comments": [], "maxResults": 0, "total": 0, "startAt": 0 } } }