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