Titanium JIRA Archive
Appcelerator Daemon (DAEMON)

[DAEMON-73] Titanium CLI.next

GitHub Issuen/a
TypeEpic
PriorityHigh
StatusOpen
ResolutionUnresolved
Affected Version/sn/a
Fix Version/sTitanium CLI 6.0.0
ComponentsTitanium CLI
Labelscb-next
ReporterChris Barber
AssigneeChris Barber
Created2017-04-12T19:53:05.000+0000
Updated2021-02-18T22:36:13.000+0000

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. This ticket is comprised of 2 major components: Titanium CLI client and the Titanium appcd plugin.

Titanium CLI Client

The Titanium CLI "client" is the "titanium" package distributed via npm. It has 2 jobs: 1. Make sure the Appc Daemon is running 2. Execute the request command The client makes 2 types of appcd requests to the Titanium appcd plugin running in : 1. Discover the port to connect to and execute a command 2. Retrieve the schema for the Titanium CLI commands and options (needed for AMPLIFY CLI integration)

Titanium appcd plugin

When 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.

AMPLIFY CLI Integration

The 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.

Architecture Overview

Refer to https://techweb.axway.com/confluence/pages/viewpage.action?pageId=179741921 for more information.

Comments

No comments

JSON Source