### AWS SSM Agent Installation Guide Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Official AWS documentation for installing and configuring the AWS SSM Agent, required for logging into EC2 instances via Leapp. ```text https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-v3.html ``` -------------------------------- ### Plugin SDK Examples Source: https://github.com/noovolari/leapp/blob/master/docs/plugins/plugins-development.md Code examples demonstrating the usage of various PluginEnvironment methods. ```APIDOC ### Example: Display a toast message in Leapp ```typescript this.pluginEnvironment.log("Hello World", LogLevel.info, true); ``` ### Example: Fetch basic usage ```typescript const res = await this.pluginEnvironment.fetch("https://example.com"); // Insert a custom URL const response = await res.json(); ``` ### Example: Open a URL in the browser ```typescript this.pluginEnvironment.openExternalUrl("https://leapp.cloud"); ``` ### Example: Create a session ```typescript // Assuming SessionData and other necessary types are imported const sessionData: SessionData = { // ... populate with session details ... }; const sessionId = await this.pluginEnvironment.createSession(sessionData); console.log("Session created with ID:", sessionId); ``` ### Example: Clone a session ```typescript // Assuming 'sessionToClone' is an existing Session object // const sessionToClone: Session = ...; // const clonedSessionId = await this.pluginEnvironment.cloneSession(sessionToClone); // console.log("Session cloned with ID:", clonedSessionId); ``` ### Example: Update a session ```typescript // Assuming 'sessionToUpdate' is an existing Session object and 'newSessionData' is SessionData // const sessionToUpdate: Session = ...; // const newSessionData: SessionData = { ... }; // await this.pluginEnvironment.updateSession(newSessionData, sessionToUpdate); // console.log("Session updated successfully."); ``` ### Example: Open terminal with command ```typescript await this.pluginEnvironment.openTerminal("ls -la"); ``` ### Example: Open terminal with command and environment variables ```typescript const envVariables = { MY_VAR: "my_value" }; await this.pluginEnvironment.openTerminal("echo $MY_VAR", envVariables); ``` ### Example: Get profile ID by name ```typescript const profileId = this.pluginEnvironment.getProfileIdByName("my-profile"); console.log("Profile ID:", profileId); ``` ### Example: Get Idp URL ID by URL ```typescript const idpUrlId = this.pluginEnvironment.getIdpUrlIdByUrl("https://idp.example.com"); console.log("IdP URL ID:", idpUrlId); ``` ``` -------------------------------- ### Install and Use Leapp CLI Source: https://github.com/noovolari/leapp/blob/master/docs/cli/index.md Install the Leapp CLI globally using npm. After installation, you can run Leapp commands. Use `--version` to check the installed version and `--help [COMMAND]` for command-specific help. ```sh-session $ npm install -g @noovolari/leapp-cli $ leapp COMMAND running command... $ leapp (--version) @noovolari/leapp-cli/0.1.65 darwin-x64 node-v21.6.2 $ leapp --help [COMMAND] USAGE $ leapp COMMAND ... ``` -------------------------------- ### Display Leapp Version Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/version.md Use this command to display the installed versions of the Leapp CLI and its core components. No setup is required. ```console USAGE $ leapp version DESCRIPTION Displays the Cli and Core versions EXAMPLES $leapp version ``` -------------------------------- ### Install and Verify Leapp CLI Source: https://context7.com/noovolari/leapp/llms.txt Install the Leapp CLI globally using npm and verify the installation by checking the version. ```bash # Install Leapp CLI globally npm install -g @noovolari/leapp-cli # Verify installation leapp --version # @noovolari/leapp-cli/0.1.65 darwin-x64 node-v21.6.2 # Get help leapp --help # USAGE # $ leapp COMMAND # # TOPICS # idp-url SAML 2.0 Identity providers URL management # integration Leapp Integrations management # profile Leapp AWS Multi-profile management # region Leapp regions management # session Sessions management # team Login to your Team account ``` -------------------------------- ### WebConsolePlugin - applySessionAction Example Source: https://github.com/noovolari/leapp/blob/master/docs/plugins/plugins-development.md Example implementation of applySessionAction to open a web console for a given session. ```APIDOC ## POST /api/sessions/webconsole ### Description Opens the web console for the provided session and logs an informational message. ### Method POST ### Endpoint /api/sessions/webconsole ### Request Body - **session** (Session) - Required - The session object for which to open the web console. - **credentials** (any) - Required - Leapp temporary-generated credentials. ### Request Example ```json { "session": { "sessionName": "example-session", "region": "us-east-1" }, "credentials": { ... } } ``` ### Response #### Success Response (200) - **void** - Indicates successful execution. #### Response Example (No specific response body for void return type) ``` -------------------------------- ### Display Leapp CLI and Core Versions Source: https://github.com/noovolari/leapp/blob/master/packages/cli/scopes/version.md Use this command to check the installed versions of the Leapp CLI and its core components. No setup or imports are required. ```bash leapp version ``` -------------------------------- ### Install Root Dependencies Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Installs all project-wide Node.js dependencies defined in the root package.json file. Run this from the project root. ```bash npm install ``` -------------------------------- ### Install and Run Leapp CLI Source: https://github.com/noovolari/leapp/blob/master/packages/cli/README.md Install the Leapp CLI globally using npm and run commands. Displays version information and help for specific commands. ```sh-session $ npm install -g @noovolari/leapp-cli $ leapp COMMAND running command... $ leapp (--version) @noovolari/leapp-cli/0.1.65 darwin-arm64 node-v24.2.0 $ leapp --help [COMMAND] USAGE $ leapp COMMAND ... ``` -------------------------------- ### Start EC2 Instance Session via AWS SSM Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Initiate an AWS Systems Manager Session Manager session for an EC2 instance. Ensure your AWS credentials are active and Python 3.x is installed. ```bash aws ssm start-session --region --target ``` -------------------------------- ### Show Current Workspace Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/workspace.md Use this command to display the current workspace. No setup or imports are required. ```console USAGE $ leapp workspace DESCRIPTION Show the current workspace EXAMPLES $leapp workspace ``` -------------------------------- ### Install gnome-keyring on Debian/Ubuntu Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Install the gnome-keyring package on Debian or Ubuntu systems. This is a dependency for Leapp. ```bash sudo apt-get install gnome-keyring ``` -------------------------------- ### Start Leapp Session Source: https://context7.com/noovolari/leapp/llms.txt Start a session to generate and activate temporary cloud credentials. Can be interactive, by name, by ID, or non-interactively. Supports specifying a session role. ```bash # Interactive session selection leapp session start # Start session by name leapp session start production-aws # Start session by name and role leapp session start production-aws --sessionRole AdminRole # Start session by ID (non-interactive) leapp session start --sessionId 0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d # Non-interactive mode (requires exact match) leapp session start production-aws --noInteractive # Output: # session production-aws started ``` -------------------------------- ### Conventional Commit Examples Source: https://github.com/noovolari/leapp/blob/master/CONTRIBUTING.md Examples of conventional commit message types for various changes. ```git feat: Add new cloud provider ``` ```git docs: Fix typo in Readme ``` -------------------------------- ### AwsCredentialsPlugin - applySessionAction Examples Source: https://github.com/noovolari/leapp/blob/master/docs/plugins/plugins-development.md Examples demonstrating the usage of the applySessionAction method in AwsCredentialsPlugin for different session operations. ```APIDOC ## POST /api/sessions/apply ### Description Applies a session action, such as creating, updating, or cloning a session. ### Method POST ### Endpoint /api/sessions/apply ### Request Body - **session** (Session) - Required - The session object to perform the action on. - **credentials** (any) - Required - Leapp temporary-generated credentials. ### Request Example ```json { "session": { ... }, "credentials": { ... } } ``` ### Response #### Success Response (200) - **void** - Indicates successful execution. #### Response Example (No specific response body for void return type) ``` ```APIDOC ## POST /api/sessions/update ### Description Updates an existing session with new data. ### Method POST ### Endpoint /api/sessions/update ### Request Body - **sessionData** (AwsIamRoleFederatedSessionData) - Required - The new data for the session. - **session** (Session) - Required - The session object to update. ### Request Example ```json { "sessionData": { "samlProviderArn": "arn:aws:iam::000000000000:saml-provider/test", "idpUrlId": "some-idp-url-id", "profileId": "default-profile-id", "region": "us-east-1", "roleArn": "arn:aws:iam::000000000000:role/test", "name": "New Name Session" }, "session": { ... } } ``` ### Response #### Success Response (200) - **void** - Indicates successful execution. #### Response Example (No specific response body for void return type) ``` ```APIDOC ## POST /api/sessions/clone ### Description Clones the selected session. ### Method POST ### Endpoint /api/sessions/clone ### Request Body - **session** (Session) - Required - The session object to clone. ### Request Example ```json { "session": { ... } } ``` ### Response #### Success Response (200) - **void** - Indicates successful execution. #### Response Example (No specific response body for void return type) ``` -------------------------------- ### Web Console Plugin Example Source: https://github.com/noovolari/leapp/blob/master/docs/plugins/plugins-development.md An example of a plugin that extends `AwsCredentialsPlugin` to open the web console. It logs a message and retrieves the session region. ```typescript import { Session } from "@noovolari/leapp-core/models/session"; import { AwsCredentialsPlugin } from "@noovolari/leapp-core/plugin-sdk/aws-credentials-plugin"; import { PluginLogLevel } from "@noovolari/leapp-core/plugin-sdk/plugin-log-level"; export class WebConsolePlugin extends AwsCredentialsPlugin { get actionName(): string { return "Open web console"; } get actionIcon(): string { return "fa fa-globe"; } async applySessionAction(session: Session, credentials: any): Promise { this.pluginEnvironment.log("Opening web console for session: " + session.sessionName, PluginLogLevel.info, true); const sessionRegion = session.region; ``` -------------------------------- ### Generate and Log Credentials Source: https://context7.com/noovolari/leapp/llms.txt Example of generating session credentials and process credentials, then logging them. Ensure awsSessionService is properly initialized. ```typescript // Example usage const credentials = await awsSessionService.generateCredentials(sessionId); console.log(credentials.sessionToken.aws_access_key_id); ``` ```typescript const processCredentials = await awsSessionService.generateProcessCredentials(sessionId); console.log(JSON.stringify(processCredentials)); ``` -------------------------------- ### Install Leapp App via Homebrew Source: https://github.com/noovolari/leapp/blob/master/docs/installation/install-leapp.md Use this command to install the Leapp application on macOS using Homebrew Cask. Ensure Homebrew is installed first. ```bash brew install leapp ``` -------------------------------- ### Install gnome-keyring on Red Hat-based systems Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Install the gnome-keyring package on Red Hat-based systems. This is a dependency for Leapp. ```bash sudo yum install gnome-keyring ``` -------------------------------- ### Login to Leapp Team Account Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/team.md Use this command to log in to your Leapp Team account. No specific setup is required beyond having the Leapp CLI installed. ```console USAGE $ leapp team login DESCRIPTION Login to your Team account EXAMPLES $leapp team login ``` -------------------------------- ### Install Leapp CLI via Homebrew Source: https://github.com/noovolari/leapp/blob/master/docs/installation/install-leapp.md Install the Leapp CLI using the provided Homebrew formula. This command is for general use across supported systems. ```bash brew install Noovolari/brew/leapp-cli ``` -------------------------------- ### Start Method Template for AWS Sessions Source: https://github.com/noovolari/leapp/wiki/project-structure The template implementation for starting an AWS session. It handles session activation by generating and applying new temporary credentials. Specific credential generation and application logic must be provided by implementing classes. ```typescript async start(sessionId: string): Promise { try { this.stopAllWithSameNameProfile(sessionId); this.sessionLoading(sessionId); **const credentialsInfo = await this.generateCredentials(sessionId); await this.applyCredentials(sessionId, credentialsInfo);** this.sessionActivate(sessionId); } catch (error) { this.sessionError(sessionId, error); } } ``` -------------------------------- ### leapp session start Source: https://github.com/noovolari/leapp/blob/master/packages/cli/scopes/session.md Starts a new Leapp session or resumes an existing one. ```APIDOC ## leapp session start [SESSIONNAME] ### Description Start a session ### Method Not specified (CLI command) ### Endpoint Not applicable (CLI command) ### Parameters #### Path Parameters - **SESSIONNAME** (string) - Optional - Name of the Leapp session #### Query Parameters - **sessionId** (string) - Optional - Session Id to identify the session in Leapp, recover it with $leapp session list -x - **sessionRole** (string) - Optional - Session Role of one or more sessions in Leapp - **noInteractive** (boolean) - Optional - If the specified session is not unique or doesn't exist, throw an error without starting the interactive session selection mode ### Request Example ``` leapp session start [SESSIONNAME] --sessionId --sessionRole --noInteractive ``` ### Response Success Response (200) - No specific response fields mentioned. ### Response Example ``` (Output indicating session start or status) ``` ``` -------------------------------- ### Install gnome-keyring on Arch Linux Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Install the gnome-keyring package on Arch Linux systems. This is a dependency for Leapp. ```bash sudo pacman -S gnome-keyring ``` -------------------------------- ### Install MSOnline Module Source: https://github.com/noovolari/leapp/wiki/tutorials/azure-gsuite-federation Installs the MSOnline PowerShell module, which is required for managing Azure AD. Run this command in an elevated PowerShell session. ```powershell Install-Module MSOnline ``` -------------------------------- ### AWS Credential Process Output Example Source: https://context7.com/noovolari/leapp/llms.txt Example output format for AWS credential_process when using generateProcessCredentials. ```json // Output for AWS credential_process: // { // "Version": 1, // "AccessKeyId": "ASIAXXX...", // "SecretAccessKey": "xxx...", // "SessionToken": "xxx...", // "Expiration": "2024-01-15T12:00:00Z" // } ``` -------------------------------- ### Log into GitHub CLI Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Authenticates with GitHub using the CLI. Ensure you have the GitHub CLI installed. ```bash gh auth login ``` -------------------------------- ### Install Leapp CLI on macOS ARM64 Source: https://github.com/noovolari/leapp/blob/master/docs/installation/install-leapp.md Install the Leapp CLI specifically for macOS systems with ARM64 architecture (M1, M2 chips) using this Homebrew formula. The Desktop App must be installed and running for the CLI to function. ```bash brew install Noovolari/brew/leapp-cli-darwin-arm64 ``` -------------------------------- ### Initialize and Use SessionManagementService Source: https://context7.com/noovolari/leapp/llms.txt Initialize the SessionManagementService with repository and sessionFactory. Use it to get, update, and delete sessions. ```typescript import { SessionManagementService } from "@noovolari/leapp-core/services/session-management-service"; import { Repository } from "@noovolari/leapp-core/services/repository"; import { SessionFactory } from "@noovolari/leapp-core/services/session-factory"; // Initialize service const sessionManagementService = new SessionManagementService(repository, sessionFactory); // Get all sessions const sessions = sessionManagementService.getSessions(); console.log(`Total sessions: ${sessions.length}`); // Get session by ID const session = sessionManagementService.getSessionById("0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"); console.log(`Session name: ${session.sessionName}`); // Get active sessions const activeSessions = sessionManagementService.getActiveSessions(); console.log(`Active sessions: ${activeSessions.length}`); // Get pending sessions const pendingSessions = sessionManagementService.getPendingSessions(); // Get sessions that can be assumed (excludes Azure) const assumableSessions = sessionManagementService.getAssumableSessions(); // Get chained role sessions for a parent session const chainedSessions = sessionManagementService.getIamRoleChained(parentSession); // Stop all active sessions await sessionManagementService.stopAllSessions(); // Update session sessionManagementService.updateSession(sessionId, updatedSession); // Delete session sessionManagementService.deleteSession(sessionId); ``` -------------------------------- ### Start a Leapp Session Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/session.md Use this command to start a named Leapp session. Flags can specify a session ID, role, or prevent interactive selection if the session is ambiguous. ```console $leapp session start ``` ```console $leapp session start SESSIONNAME ``` ```console $leapp session start SESSIONNAME --sessionRole SESSIONROLE ``` ```console $leapp session start SESSIONNAME --noInteractive ``` ```console $leapp session start --sessionId SESSIONID ``` -------------------------------- ### Install libsecret-devel on Red Hat-based systems Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Install the libsecret-devel package on Red Hat-based systems. This is a dependency for Leapp. ```bash sudo yum install libsecret-devel ``` -------------------------------- ### Create and Manage Sessions with SessionFactory Source: https://context7.com/noovolari/leapp/llms.txt Use SessionFactory to get session services, create new sessions, and determine compatible session types. ```typescript import { SessionFactory } from "@noovolari/leapp-core/services/session-factory"; import { SessionType } from "@noovolari/leapp-core/models/session-type"; import { AwsIamUserSessionRequest } from "@noovolari/leapp-core/services/session/aws/aws-iam-user-session-request"; // Get appropriate session service for a session type const sessionService = sessionFactory.getSessionService(SessionType.awsIamUser); // Create a new session const sessionRequest = { sessionName: "my-iam-user", region: "us-east-1", profileId: "default-profile-id", accessKey: "AKIAIOSFODNN7EXAMPLE", secretKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }; await sessionFactory.createSession(SessionType.awsIamUser, sessionRequest); // Get compatible session types const awsTypes = sessionFactory.getCompatibleTypes(SessionType.aws); // Returns: [awsIamUser, awsIamRoleFederated, awsIamRoleChained, awsSsoRole] ``` -------------------------------- ### Configure Default Regions for New Sessions Source: https://context7.com/noovolari/leapp/llms.txt Configure default regions for new sessions. Commands allow getting the current default region and setting a new one. ```bash # Get current default region leapp region get-default # Output: us-east-1 # Set default region leapp region set-default --region eu-west-1 # Output: default region set to eu-west-1 ``` -------------------------------- ### Set Up Local Development Environment Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Configures the project to use local packages for Core, CLI, and Desktop App, essential for development. Run from the project root. ```bash npm run set-dev-environment ``` -------------------------------- ### Get Default Leapp Region Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/region.md Displays the currently configured default region for Leapp. No setup is required. ```console leapp region get-default ``` -------------------------------- ### List Configured Integrations Source: https://context7.com/noovolari/leapp/llms.txt Display all configured integrations, showing their alias, type, portal URL, region, and online status. ```bash # List all integrations leapp integration list # Output: # Alias Type Portal URL Region Online # My AWS Organization AWS SSO https://myorg.awsapps.com/start us-east-1 true # My Azure Tenant Azure - westus2 false ``` -------------------------------- ### List Integrations Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/integration.md Use this command to display a list of all configured integrations. Options are available for extended output, column selection, filtering, sorting, and output format. ```console leapp integration list ``` -------------------------------- ### Create Azure Integration Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/integration.md Use this command to create a new Azure integration. Provide an alias, tenant ID, and location. ```console leapp integration create --integrationType AZURE --integrationAlias ALIAS --integrationTenantId TENANT --integrationLocation LOCATION ``` -------------------------------- ### Install libsecret-1-dev on Debian/Ubuntu Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Install the libsecret-1-dev package on Debian or Ubuntu systems. This is a dependency for Leapp. ```bash sudo apt-get install libsecret-1-dev ``` -------------------------------- ### Login to Integration Source: https://github.com/noovolari/leapp/blob/master/packages/cli/scopes/integration.md Use this command to log in and synchronize integration sessions. Requires the integration ID. ```bash leapp integration login --integrationId ID ``` -------------------------------- ### Install libsecret on Arch Linux Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Install the libsecret package on Arch Linux systems. This is a dependency for Leapp. ```bash sudo pacman -S libsecret ``` -------------------------------- ### Instantiate and Log LoggedEntry (Warn, Display) Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Instantiate a LoggedEntry and pass it to the logService.log() method to log and display a toast to the user. Uses LogLevel.warn. ```typescript this.logService.log(new LoggedEntry("To log and show...", this, LogLevel.warn, true)); ``` -------------------------------- ### Clean and Bootstrap Project Packages Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Resets specified packages (core, cli, desktop-app) by removing node_modules and lock files, then reinstalls dependencies and builds the Core if specified. Run from the project root. ```bash npm run clean-and-bootstrap ``` -------------------------------- ### Create Generic Integration Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/integration.md Use this command to create a new integration without specifying type-specific details initially. ```console leapp integration create ``` -------------------------------- ### Start an AWS SSM Session Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/session.md Starts an AWS Systems Manager (SSM) session for accessing EC2 instances. ```APIDOC ## POST /api/leapp/session/start-ssm-session ### Description Starts an AWS SSM session to connect to an EC2 instance. Requires instance ID and region. ### Method POST ### Endpoint /api/leapp/session/start-ssm-session ### Parameters #### Query Parameters - **sessionId** (string) - Optional - Session Id to identify the session in Leapp. - **region** (string) - Required - Session Region for AWS sessions. - **ssmInstanceId** (string) - Required - Instance ID for the EC2 instance to access via SSM. ### Request Example ```json { "sessionId": "123e4567-e89b-12d3-a456-426614174000", "region": "us-east-1", "ssmInstanceId": "i-0123456789abcdef0" } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the operation. - **message** (string) - A confirmation message about the SSM session. #### Response Example ```json { "status": "success", "message": "AWS SSM session started for instance i-0123456789abcdef0 in us-east-1." } ``` ``` -------------------------------- ### Python 3.x Download Link Source: https://github.com/noovolari/leapp/blob/master/docs/installation/requirements.md Link to download Python 3.x, a prerequisite for using AWS SSM with Leapp. ```text https://www.python.org/downloads/ ``` -------------------------------- ### Display Leapp Help Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/help.md Use this command to view general help for the leapp CLI. It can also display help for specific commands. ```console leapp help [COMMANDS] ``` ```console USAGE $ leapp help [COMMANDS] [-n] ARGUMENTS COMMANDS Command to show help for. FLAGS -n, --nested-commands Include all nested commands in the output. DESCRIPTION Display help for leapp. ``` -------------------------------- ### Login to Integration Session Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/integration.md Use this command to log in and synchronize integration sessions. Requires the integration ID. ```console leapp integration login --integrationId ID ``` ```console leapp integration login ``` -------------------------------- ### Update Leapp CLI via npm Source: https://github.com/noovolari/leapp/blob/master/docs/installation/update-leapp.md Use this command to update the Leapp CLI if installed via npm. Ensure you have npm installed and configured. ```bash npm update -g @noovolari/leapp-cli ``` -------------------------------- ### Build and Run Leapp Desktop App in Development Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Executes the build-and-run-dev script to build and launch the Leapp Desktop App in a development environment. Found in packages/desktop-app/package.json. ```bash npm run build-and-run-dev ``` -------------------------------- ### Create Identity Provider URL Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/idp-url.md Use this command to add a new identity provider URL. You can optionally specify the URL address. ```console leapp idp-url create ``` ```console leapp idp-url create --idpUrl ADDRESS ``` -------------------------------- ### Start AWS SSO OIDC Device Authorization Source: https://github.com/noovolari/leapp/wiki/aws-sso-how-it-works Initiates the device authorization flow for AWS SSO OIDC. Requires a valid client ID, client secret, and start URL. This command is used to obtain device and user codes for authorization. ```bash aws sso-oidc start-device-authorization \ --client-id mVZBEoa-gUBj8nugHZUIsWV1LXdlc3QtMQ \ --client-secret eyJraWQiOiJrZXktMTU2Njk2ODAxMyIsImFsZyI6IkhTMzg0In0.eyJzZXJpYWxpemVkIjoie1wiZXhwaXJlZFwiOmZhbHNlLFwiY2xpZW50SWRcIjp7XCJ2YWx1ZVwiOlwibVZaQkVvYS1nVUJqOG51Z0haVUlzV1YxTFhkbGMzUXRNUVwifSxcInRlbmFudElkXCI6bnVsbCxcImNsaWVudE5hbWVcIjpcImxlYXBwXCIsXCJjbGllbnRUeXBlXCI6XCJQVUJMSUNcIixcInRlbXBsYXRlQXJuXCI6bnVsbCxcInRlbXBsYXRlQ29udGV4dFwiOm51bGwsXCJleHBpcmF0aW9uVGltZXN0YW1wXCI6MTYxMTU2ODM0MS45MDkwMDAwMDAsXCJjcmVhdGVkVGltZXN0YW1wXCI6MTYwMzc5MjM0MS45MDkwMDAwMDAsXCJ1cGRhdGVkVGltZXN0YW1wXCI6MTYwMzc5MjM0MS45MDkwMDAwMDAsXCJjcmVhdGVkQnlcIjpudWxsLFwidXBkYXRlZEJ5XCI6bnVsbCxcInN0YXR1c1wiOm51bGwsXCJpbml0aWF0ZUxvZ2luVXJpXCI6bnVsbCxcImVudGl0bGVkUmVzb3VyY2VJZFwiOm51bGwsXCJlbnRpdGxlZFJlc291cmNlQ29udGFpbmVySWRcIjpudWxsLFwiZXh0ZXJuYWxJZFwiOm51bGx9In0.nyRt2ELVoiBh95GiZ_Igzzsn4DkzwfiU446c0lvuS9yqJe5Fk2Ra_tV-htKetQH8 \ --start-url [https://u](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sso-oidc/start-device-authorization.html)rltoSSOendpoint ``` -------------------------------- ### Get Session ID Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/session.md Retrieves the current session ID. ```console leapp session get-id ``` -------------------------------- ### AwsCredentialsPlugin - get actionName Source: https://github.com/noovolari/leapp/blob/master/docs/plugins/plugins-development.md Retrieves the display name for the action provided by the plugin. ```APIDOC ## GET /api/plugin/actionName ### Description Gets the name of the action that will be displayed in Leapp. ### Method GET ### Endpoint /api/plugin/actionName ### Response #### Success Response (200) - **actionName** (string) - The display name of the plugin action (e.g., "My Awesome Plugin"). #### Response Example ```json { "actionName": "Open web console" } ``` ``` -------------------------------- ### Instantiate and Log LoggedEntry (Info, No Display) Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Instantiate a LoggedEntry and pass it to the logService.log() method to only log the event without displaying a toast. Uses LogLevel.info. ```typescript this.logService.log(new LoggedEntry("To log...", this, LogLevel.info, false)); ``` -------------------------------- ### AwsCredentialsPlugin - get actionIcon Source: https://github.com/noovolari/leapp/blob/master/docs/plugins/plugins-development.md Retrieves the FontAwesome icon code for the plugin's action. ```APIDOC ## GET /api/plugin/actionIcon ### Description Gets the FontAwesome icon code for the plugin's action. ### Method GET ### Endpoint /api/plugin/actionIcon ### Response #### Success Response (200) - **actionIcon** (string) - A valid FontAwesome 5 code (e.g., "fa fa-globe"). #### Response Example ```json { "actionIcon": "fa fa-globe" } ``` ``` -------------------------------- ### Create Leapp Lock Backup Source: https://github.com/noovolari/leapp/blob/master/docs/leapp-pro/export-pro-workspace.md Before proceeding with the export, create a backup of your Leapp-lock.json file. This command should be run from the ~/.Leapp directory. ```shell // From ~/.Leapp directory run the following command: cp Leapp-lock.json Leapp-lock.json.bkp ``` -------------------------------- ### Create AWS-SSO Integration Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/integration.md Use this command to create a new AWS-SSO integration. Provide an alias, portal URL, and region. ```console leapp integration create --integrationType AWS-SSO --integrationAlias ALIAS --integrationPortalUrl URL --integrationRegion REGION ``` -------------------------------- ### AwsCredentialsPlugin - applySessionAction with Logging Source: https://github.com/noovolari/leapp/blob/master/docs/plugins/plugins-development.md Example of using applySessionAction to log messages based on session type. ```APIDOC ## POST /api/sessions/log ### Description Applies a session action that logs a message based on the session type. ### Method POST ### Endpoint /api/sessions/log ### Request Body - **session** (Session) - Required - The session object to inspect. - **credentials** (any) - Required - Leapp temporary-generated credentials. ### Request Example ```json { "session": { "type": "awsIamUser", "sessionName": "example-session" }, "credentials": { ... } } ``` ### Response #### Success Response (200) - **void** - Indicates successful execution. #### Response Example (No specific response body for void return type) ``` -------------------------------- ### Make leappalias.sh executable Source: https://github.com/noovolari/leapp/blob/master/docs/troubleshooting/faq.md After creating the 'leappalias.sh' script, make it executable using this command. ```bash chmod +x leappalias.sh ``` -------------------------------- ### Conventional Commit with Body Source: https://github.com/noovolari/leapp/blob/master/CONTRIBUTING.md Example of a commit message with a brief summary and a more detailed paragraph describing the change and its impact. ```git $ git commit -m "feat: a brief summary of the commit A paragraph describing what changed and its impact." ``` -------------------------------- ### Stop a Leapp Session Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/session.md Terminates an active Leapp session. Similar to starting a session, you can specify session details. ```APIDOC ## POST /api/leapp/session/stop ### Description Stops a running Leapp session. Allows specifying the session by name, role, or ID, and can be configured to not prompt interactively. ### Method POST ### Endpoint /api/leapp/session/stop ### Parameters #### Query Parameters - **SESSIONNAME** (string) - Optional - Name of the Leapp session to stop. - **sessionId** (string) - Optional - Session Id to identify the session in Leapp. - **sessionRole** (string) - Optional - Session Role of the session to stop. - **noInteractive** (boolean) - Optional - If true, throws an error if the session is not unique or doesn't exist, instead of prompting for confirmation. ### Request Example ```json { "SESSIONNAME": "my-session", "sessionId": "123e4567-e89b-12d3-a456-426614174000", "noInteractive": false } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the operation. - **message** (string) - A confirmation message that the session has been stopped. #### Response Example ```json { "status": "success", "message": "Session 'my-session' stopped successfully." } ``` ``` -------------------------------- ### View and Switch Between Workspaces Source: https://context7.com/noovolari/leapp/llms.txt View the current workspace and switch between different workspaces. Workspaces are used for organizing collaborative features. ```bash # Show current workspace leapp workspace # Output: Local Workspace # Set workspace leapp set-workspace --workspaceName "Team Workspace" ``` -------------------------------- ### Create Symlink for AZ CLI on macOS Source: https://github.com/noovolari/leapp/blob/master/docs/troubleshooting/faq.md Use this command to create a symbolic link for the AZ CLI if Leapp cannot find it due to macOS sandbox mode. Ensure the path points to your actual AZ binary. ```bash ln -s /path/to/my/az /usr/local/bin/az ``` -------------------------------- ### AWS Session Service Source: https://context7.com/noovolari/leapp/llms.txt Manages AWS credential generation, rotation, and lifecycle, including starting, stopping, and deleting sessions. ```APIDOC ## AWS Session Service ### Description The AwsSessionService manages AWS credential generation and lifecycle. ### Methods - `start(sessionId)`: Starts a session, generating and applying credentials. - `rotate(sessionId)`: Rotates credentials for an active session. - `stop(sessionId)`: Stops a session, removing credentials. - `delete(sessionId)`: Deletes a session and its dependents. - `generateProcessCredentials(sessionId)`: Generates credentials for credential_process. - `getDependantSessions(sessionId)`: Gets dependent chained role sessions. ``` -------------------------------- ### Start a Leapp Session Source: https://github.com/noovolari/leapp/blob/master/docs/cli/scopes/session.md Initiates a Leapp session. You can specify a session name, role, ID, or run in non-interactive mode. ```APIDOC ## POST /api/leapp/session/start ### Description Starts a Leapp session. This command allows for specifying session details like name, role, and ID, and can be run non-interactively. ### Method POST ### Endpoint /api/leapp/session/start ### Parameters #### Query Parameters - **SESSIONNAME** (string) - Optional - Name of the Leapp session. - **sessionId** (string) - Optional - Session Id to identify the session in Leapp. - **sessionRole** (string) - Optional - Session Role of one or more sessions in Leapp. - **noInteractive** (boolean) - Optional - If true, throws an error if the session is not unique or doesn't exist, instead of starting interactive selection. ### Request Example ```json { "SESSIONNAME": "my-session", "sessionRole": "admin", "sessionId": "123e4567-e89b-12d3-a456-426614174000", "noInteractive": false } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the operation. - **message** (string) - A confirmation message. #### Response Example ```json { "status": "success", "message": "Session 'my-session' started successfully." } ``` ``` -------------------------------- ### Build Leapp Core Package Source: https://github.com/noovolari/leapp/blob/master/DEVELOPMENT.md Command to build the Leapp Core package. The output is placed in the /packages/core/dist folder. ```bash npm run build ```