feat: Enhance API client integration across web and CLI
- Added typedRequestInterfaces import to plugins.ts for better type handling. - Updated CLI client to utilize environment variables for Cloudly API credentials and improved authentication flow. - Refactored appstate.ts to use a shared API client instance, reducing redundancy in API calls for various actions. - Simplified external registry actions in appstate.ts by leveraging the shared API client. - Updated CloudlyDashboard and CloudlyViewSettings components to utilize the shared API client for fetching settings and managing connections. - Removed redundant TypedRequest instances in favor of direct API client calls for improved performance and maintainability. - Exposed the API client in plugins.ts for easier access in UI components.
This commit is contained in:
		| @@ -1,11 +1,28 @@ | ||||
| import * as plugins from './plugins.js'; | ||||
| import { CliClient } from "./classes.cliclient.js"; | ||||
| import { CliClient } from './classes.cliclient.js'; | ||||
|  | ||||
| export const runCli = async () => { | ||||
|   const cliQenv = new plugins.qenv.Qenv(); | ||||
|   const cloudlyUrl = await cliQenv.getEnvVarOnDemand('CLOUDLY_URL'); | ||||
|   const token = process.env.CLOUDLY_TOKEN; | ||||
|   const username = process.env.CLOUDLY_USERNAME; | ||||
|   const password = process.env.CLOUDLY_PASSWORD; | ||||
|  | ||||
|   const apiClient = new plugins.servezoneApi.CloudlyApiClient({ | ||||
|     registerAs: 'cli', | ||||
|     cloudlyUrl: await cliQenv.getEnvVarOnDemand('CLOUDLY_URL'), | ||||
|     cloudlyUrl, | ||||
|   }); | ||||
|   await apiClient.start(); | ||||
|  | ||||
|   if (token) { | ||||
|     await apiClient.getIdentityByToken(token, { tagConnection: true, statefullIdentity: true }); | ||||
|   } else if (username && password) { | ||||
|     await apiClient.loginWithUsernameAndPassword(username, password); | ||||
|   } else { | ||||
|     console.log('No credentials provided. Set CLOUDLY_TOKEN or CLOUDLY_USERNAME/CLOUDLY_PASSWORD.'); | ||||
|   } | ||||
|  | ||||
|   const cliClient = new CliClient(apiClient); | ||||
| }; | ||||
|   // Default action example: list clusters when invoked without subcommands | ||||
|   await cliClient.getClusters(); | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user