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

  • GitLab supports two ways of registering your EasyCLA bot with GitLab :

    • Integrations: Navigate to Integrations tab of Project Settings. To have your EasyCLA bot listed under Add an integration section, you must create a MR (Merge Request) to GitLab's codebase, and get that accepted. The code must be written in Ruby.

    • Webhook : The other way of integrating your bot with GitLab is to add a webhook which will be called on certain events that happen in GitLab Project, such as opening MR (Merge Request). The webhook must respond in certain time frame. GitLab has a Webhook API where you can interact with programmatically and add/edit/delete your webhook which can make the integration smoother from user point of view.

EasyCLA Backend

The EasyCLA tool has two backend components.

  • Python - some older APIs are implemented in python and can be found in the cla-backend directory.

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

EasyCLA Frontend or Consoles

The EasyCLA frontend consists of three independent Single Page Applications (SPAs) built with the Ionic framework:

  • EasyCLA Project Console for a project's director or manager (typically an LF staff member) to oversee the project's CLA setup. It is sometimes referred as the LFX Project Control Center in this documentation.

  • 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.

  • 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.

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 Release Process

The following diagram illustrates the EasyCLA release process:

Last updated

Copyright © 2022 The Linux Foundation®. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks.