mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-19 17:01:13 +00:00
Shell: Integrate Cloudshell to existing shells (#2098)
* first draft * refactored code * ux fix * add custom header support and fix ui * minor changes * hide last command also * remove logger * bug fixes * updated loick file * fix tests * moved files * update readme * documentation update * fix compilationerror * undefined check handle * format fix * format fix * fix lints * format fix * fix unrelatred test * code refator * fix format * ut fix * cgmanifest * Revert "cgmanifest" This reverts commit 2e76a6926ee0d3d4e0510f2e04e03446c2ca8c47. * fix snap * test fix * formatting code * updated xterm * include username in command * cloudshell add exit * fix test * format fix * tets fix * fix multiple open cloudshell calls * socket time out after 20 min * remove unused code * 120 min * Addressed comments
This commit is contained in:
91
src/Explorer/Tabs/CloudShellTab/Models/DataModels.tsx
Normal file
91
src/Explorer/Tabs/CloudShellTab/Models/DataModels.tsx
Normal file
@@ -0,0 +1,91 @@
|
||||
export const enum OsType {
|
||||
Linux = "linux",
|
||||
Windows = "windows",
|
||||
}
|
||||
|
||||
export const enum ShellType {
|
||||
Bash = "bash",
|
||||
PowerShellCore = "pwsh",
|
||||
}
|
||||
|
||||
export const enum NetworkType {
|
||||
Default = "Default",
|
||||
Isolated = "Isolated",
|
||||
}
|
||||
|
||||
/**
|
||||
* Azure CloudShell session types:
|
||||
* - Mounted: Sessions with persistent storage via an Azure File Share mount.
|
||||
* Files and configurations are preserved between sessions, allowing for
|
||||
* continuity of work across multiple CloudShell sessions.
|
||||
*
|
||||
* - Ephemeral: Temporary sessions without persistent storage.
|
||||
* All files and changes are discarded when the session ends.
|
||||
* These sessions start faster but don't retain user data.
|
||||
*
|
||||
* The session type affects resource allocation, startup time,
|
||||
* and whether user files/configurations persist between sessions.
|
||||
*/
|
||||
export const enum SessionType {
|
||||
Mounted = "Mounted",
|
||||
Ephemeral = "Ephemeral",
|
||||
}
|
||||
|
||||
export type CloudShellSettings = {
|
||||
properties: UserSettingProperties;
|
||||
};
|
||||
|
||||
export type UserSettingProperties = {
|
||||
networkType: string;
|
||||
preferredLocation: string;
|
||||
preferredOsType: OsType;
|
||||
preferredShellType: ShellType;
|
||||
userSubscription: string;
|
||||
sessionType: SessionType;
|
||||
vnetSettings: object;
|
||||
};
|
||||
|
||||
export type ProvisionConsoleResponse = {
|
||||
properties: {
|
||||
osType: OsType;
|
||||
provisioningState: string;
|
||||
uri: string;
|
||||
};
|
||||
};
|
||||
|
||||
export type Authorization = {
|
||||
token: string;
|
||||
};
|
||||
|
||||
export type ConnectTerminalResponse = {
|
||||
id: string;
|
||||
idleTimeout: string;
|
||||
rootDirectory: string;
|
||||
socketUri: string;
|
||||
tokenUpdated: boolean;
|
||||
};
|
||||
|
||||
export type ProviderAuthorization = {
|
||||
applicationId: string;
|
||||
roleDefinitionId: string;
|
||||
};
|
||||
|
||||
export type ProviderResourceType = {
|
||||
resourceType: string;
|
||||
locations: string[];
|
||||
apiVersions: string[];
|
||||
defaultApiVersion?: string;
|
||||
capabilities?: string;
|
||||
};
|
||||
|
||||
export type RegistrationState = "Registered" | "NotRegistered" | "Registering" | "Unregistering";
|
||||
export type RegistrationPolicy = "RegistrationRequired" | "RegistrationOptional";
|
||||
|
||||
export type CloudShellProviderInfo = {
|
||||
id: string;
|
||||
namespace: string;
|
||||
authorizations?: ProviderAuthorization[];
|
||||
resourceTypes: ProviderResourceType[];
|
||||
registrationState: RegistrationState;
|
||||
registrationPolicy: RegistrationPolicy;
|
||||
};
|
||||
Reference in New Issue
Block a user