Leapp Documentation

repository·master·Indexed 23 days ago

https://github.com/noovolari/leapp

A cross-platform desktop application built on Electron and Angular, and a corresponding CLI, used to manage and secure cloud credentials in multi-account environments. Leapp automates credential generation, rotation, and session provisioning, storing encrypted data in the OS System Vault. It features a monorepo structure consisting of Leapp Core for domain logic, the Leapp CLI built on Oclif, and the Leapp Desktop App.

Tokens
33.7K
Snippets
72
Records
269
Agent score
83%

What's inside Leapp

  1. Overview of Leapp

    master

    Leapp is a cross-platform desktop application built on Electron designed for managing and securing cloud access in multi-account environments. It provides a safe way to generate and manage cloud credentials across macOS, Windows, and Linux.

    Key capabilities include:

    • One-click cloud credential generation
    • Secure local storage: Data is encrypted and stored in the OS System Vault.
    • Automated credential management: Supports short-lived credential rotation (e.g., for AWS) and automatic provisioning of sessions from AWS Single Sign-on.
    • Multi-account browser support: Extensions for Firefox and Chrome allow opening multiple AWS consoles from different accounts simultaneously.
    • CLI Management: Full management capabilities via the Leapp CLI.
    • Extensibility: Users can create custom plugins using a provided template.
  2. Overview of Leapp

    master
    Leapp is a developer tool designed to manage, secure, and access cloud environments. A key security feature is that all data is persisted and encrypted on your workstation rather than in a centralized cloud, ensuring high levels of data sovereignty and security.
  3. Overview of Leapp Core

    master
    Leapp Core is a library designed to decouple Leapp's domain logic from the specific clients that consume it. It serves as the central logic layer for both the Leapp CLI and the Leapp Desktop App, ensuring that domain rules remain consistent regardless of the user interface or execution environment.
  4. What is Credential Process?

    master

    Credential Process is an AWS configuration option used to instruct the AWS CLI and SDKs to execute an external command to generate valid credentials on the fly.

    Unlike the standard credential file method where credentials are written in plain text to ~/.aws/credentials, Credential Process generates credentials that are printed to stdout and consumed only when needed. This ensures that no sensitive credentials are ever written to disk, reducing the security risk of credential exposure on your machine.

  5. What is a LocalStack session

    master
    A LocalStack session in Leapp allows you to emulate AWS cloud services using a fully functional cloud stack running on your local machine. This enables development and testing of cloud applications with a full cloud experience without interacting with remote AWS infrastructure. Leapp manages the local credential files required to access these emulated resources via the AWS CLI.
  6. What is a Leapp Session?

    master
    A Session is a container for all the information required to connect a developer to a cloud provider. It manages the lifecycle of temporary credentials used within a provider chain. Sessions are stored locally by Leapp in a configuration file known as a Workspace.
  7. How Zero-Knowledge encryption works in Leapp

    master

    Leapp uses a Zero-Knowledge architecture for the PRO and TEAM versions to allow users to persist their configuration online without Leapp being able to access their secrets.

    In this model, the user maintains complete control over the encryption keys. This ensures that the client provides encrypted data to the server, but the server itself never has access to or knowledge of the underlying plaintext passwords or sensitive information. This implementation is based on the same principles used by services like Bitwarden.

  8. How AWS IAM User sessions work in Leapp

    master

    An AWS IAM User session in Leapp represents an AWS entity (person or application) defined by a name and long-term credentials.

    Key Security Behavior: Leapp does not store your long-term credentials in configuration files. Instead, it uses the provided ACCESS KEY ID and SECRET ACCESS KEY to automatically generate and refresh a set of short-term credentials. This minimizes the risk of long-term credential exposure.

  9. Understand the Session model and variables

    master

    The Session class represents a specific connection state in Leapp. All sessions share a set of mandatory variables used for state management and identification.

    VariableDescription
    sessionIdA Unique identifier defined at instantiation. All session operations must reference this ID.
    sessionNameA user-chosen fancy name for recognition.
    statusState Management: inactive, pending, or active (where credentials are available).
    startDateTimeA UTC DateTime string of the last session start, used for sorting/rotation.
    regionThe AWS Region or Azure Location the session targets.
    typeIdentifies Cloud Provider and Access Method (e.g., awsIamUser, azure).
  10. How Leapp manages secrets via System Vaults

    master

    Leapp secures sensitive information (such as cloud environment credentials) by storing them in your workstation's native System Vault rather than in plain text files. This leverages the operating system's integrated encryption.

    To access these secrets, the system uses the Keytar interface. Every secret is stored in the vault under the service name Leapp. To identify specific secrets, look at the description field of the entry in your system vault; the description contains the underlying name Leapp uses to retrieve that specific secret.

  11. Configure IAM Federated Role (assumeRoleWithSAML)

    master

    When using assumeRoleWithSAML, Leapp uses the AssumeRoleWithSAMLResponse API to create temporary security credentials.

    Key behaviors:

    • Leapp default duration: 1 hour.
    • Customization: You can specify a DurationSeconds parameter between 900 seconds (15 minutes) and the maximum session duration allowed by the role (which can range from 1 to 12 hours). The session lasts for the specified duration or until the SAML SessionNotOnOrAfter value, whichever is shorter.
    • Storage: Generated credentials for this method are not cached in the keychain.