with Agama Lab, Gluu’s low code identity orchestration platform, your business can build the perfect identity flows in minutes, not months.

Flow Designer

Authentication Flow Designer is a complete set of tools that you need to build, manage, maintain, and test your Agama projects and authentication flows. You can use the flow designer to

Agama Project Life-cycle

Agama Project Life-cycle

Creating A New Project

After installing the GitHub Agama Lab app, you can create an Agama project using the Agama Lab. High-level steps involved in creating, updating, and releasing a project are as below:

  1. Create a new public repository in GitHub. We will use this as a development repository. Make an initial commit to this repository to initialize it, for example, creating a README. A repository without an initial commit will not be visible to the Agama Lab.
  2. Allow access to Agama Lab to the development repository.
  3. Sign in to the Agama Lab, navigate to Flow Designer, and click select repository.
  4. Select whether your GitHub account is an organization or an individual account. Select the development repository from the dropdown. Click on Let's go button.
  5. Click on + New Project button to create a new Agama Project in the development repository.
  6. Once a project is created, it can be developed and updated using the Flow Designer’s visual editor. Every time the flow is changed and saved, the Agama Lab adds a new commit to the development repository’s agama-lab-branch branch.
  7. When the flow has been created in the project, and tested as well, the project is ready to be released as .gama package. But this can not happen in the current development repository. This is because a development repository may have multiple other projects which are still under development. To release a project, it has to be moved to a different GitHub repository called a release repository. This process of making the first release from the development repository to the release repository is also called publishing an Agama project.

Publishing A Project

  1. In the GitHub account, create a new repository that will be used as release repository. To create this repository, follow the same steps that were followed while creating development repository.
  2. Allow the Agama Lab access to this repository using Agama Lab GitHub app.
  3. From the Agama Lab flow designer, open the development repository and open the project that you want to release.
  4. On the left navigation menu, right-click on the code directory and click on publish project option. Provide the desired first version number and the URI of the target repository. Pressing ok will initiate the publishing process where Agama Lab will move the complete project from development repository to the new release repository. You can see the release artifacts like .gama package under the release section of the release repository.

Releasing A Project

The first release of the project has already been created as a part of the publishing process. As a result of the publishing process, the project has been moved to its dedicated release repository as well. All subsequent changes to the project should be made to this release repository and not to the development repository.code directory and click on publish project option. Provide the desired first version number and the URI of the target repository. Pressing ok will initiate the publishing process where Agama Lab will move the complete project from development repository to the new release repository. You can see the release artifacts like .gama package under the release section of the release repository.

Owner Workflow

The owner of the GitHub release repository can use Agama Lab to make changes to the project in the release repository.

When the changes are ready, the owner can create a new release from Agama Lab in the release repository.

Contributor Workflow

If you are not an owner of the release repository but want to propose changes to the project, Follow the steps below:

Once the owner merges the PR in the release repository, the changes will be available in the next release of the project

Glossary of Terms

Agama project

An Agama project is represented by a .gama archive. It contains one or more .flow files of related authentication flows along with the libraries, UI assets, and the documentation required for the flows. A .gama package is used to deploy the Agama project on a compatible IAM server.

Agama flow

An Agama flow is represented by a .flow file. Code is written using Agama DSL.

Development Repository

A development repository is a GitHub repository that stores multiple Agama projects and it is used during the development of the projects. All the projects are stored in the branch agama-lab-flow-designer.

Release repository

A release repository is a GitHub repository where an Agama project is published from a development repository when the project is ready to move to production. The release repository holds a single Agama project in the main branch.