For the complete documentation index, see llms.txt. This page is also available as Markdown.

EasyCLA Development Components

Following are the third-party services, backend components and frontend consoles used in the development of the EasyCLA tool.

Third-party Services

Besides integration with the LFX platform and its underlying services, EasyCLA uses the following third party services:

  • Docusign for the CLA agreement e-sign flow

  • Docraptor for converting CLA templates from HTML to PDF

  • GitHub for GitHub PR CLA authorization checking/gating

  • Gerrit for CLA authorization review checking/gating

  • Auth0 For Single Sign On

  • Salesforce through the LFX Platform APIs

  • Descartes Visual Compliance for sanctions and trade-compliance screening of organizations. EasyCLA does not call this provider directly — organizations are screened through the LFX Sanctions Screening Service (SSS), a shared LFX platform service that caches screening results and keeps them up to date with the provider. See Automated Sanctions Screening.

  • <200b>GitLab for GitLab merge request CLA authorization checking and gating. In the current EasyCLA workflow, project managers connect a GitLab group from Project Control Center (PCC), open the GitLab installation/authorization URL, authorize the application, and then return to PCC to complete the setup. EasyCLA then manages the GitLab integration through GitLab APIs and webhooks.

EasyCLA Backend

The EasyCLA tool has two backend components.

  • V1 - Some older APIs are implemented in Golang and can be found in the cla-backend-legacy directory. Internally they are v1 and v2 APIs.

  • V2 - Most of the backend development is implemented in Golang, and can be found in the cla-backend-go directory. Internally they are v3 and v4 APIs. In particular, this backend contains APIs powering most of the APIs which integrate with the LFX Platform (including Salesforce data), and the LFX platform permissions model.

EasyCLA Frontend or Consoles

EasyCLA v2 uses multiple web applications that are maintained in separate repositories and monorepos rather than a single Ionic codebase:

  • <200b>EasyCLA Project Console for a project's director or manager (typically an LF staff member) to oversee the project's CLA setup. This experience is delivered through the LFX Project Control Center (PCC).

  • <200b>EasyCLA Contributor Console for a contributor to a project to sign an Individual CLA (ICLA), or to kick off the corporate CLA (CCLA) signature process. This is a standalone Angular application.

  • <200b>EasyCLA Corporate Console for a company's CLA Manager to coordinate the corporate CLA signature process, and then to manage their company's authorized contributors. This experience is delivered by the LFX Corporate CLA Console application.

License

This project’s source code is licensed under the MIT License. A copy of the license is available in LICENSE. The project includes source code from keycloak, which is licensed under the Apache License, version 2.0 (Apache-2.0), a copy of which is available in LICENSE-keycloak. This project’s documentation is licensed under the Creative Commons Attribution 4.0 International License (CC-BY-4.0). A copy of the license is available in LICENSE-docs.

EasyCLA Architecture

The following diagram illustrates EasyCLA architecture:

EasyCLA Architecture Overview

EasyCLA Release Process

The following diagram illustrates the EasyCLA release process:

EasyCLA Release Process

Last updated

Was this helpful?