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
- Create and manage Agama projects using the dashboard
- Create and make changes to the authentication flows using a low-code drag-and-drop visual editor
- Manage multiple projects from a single development repository
- Publish and release an Agama project to a release repository
- Use the template editor to create and edit UI templates used in the flow
- Import and export flows
- Deploy and test Agama projects
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 follows:
- 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, by creating a README. A repository without an initial commit will not be visible to the Agama Lab. - Allow access to Agama Lab for the development repository.
- Sign in to the Agama Lab, navigate to
Flow Designer
, and clickselect repository
. - Select whether your GitHub account is an organization or an individual account. Select the development repository from the dropdown. Click on the
Let's go
button. - Click on the
+ New Project
button to create a new Agama project in the development repository. - 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. - When the flow has been created in the project and tested as well, the project is ready to be released as a
.gama
package. However, this cannot happen in the current development repository. This is because a development repository may have multiple other projects that 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 calledpublishing
an Agama project.
Publishing A Project
- In the GitHub account, create a new repository that will be used as the release repository. To create this repository, follow the same steps that were followed while creating the development repository.
- Allow Agama Lab access to this repository using the Agama Lab GitHub app.
- From the Agama Lab Flow Designer, open the development repository and open the project that you want to release.
- On the left navigation menu, right-click on the
code
directory and click on thepublish 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 the development repository to the new release repository. You can see the release artifacts, like the.gama
package, under therelease
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.
Owner Workflow
The owner of the GitHub release repository can use Agama Lab to make changes to the project in the release repository.
- Open the release repository and the project in the Agama Lab
- Make the required changes to the project
- Save the project
- Right-click on the
code
directory on the left navigation and click on theRelease Project
option - Provide the version number to be used for the next release and click on the
Release
button. This should create a new release in the GitHub 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:
- Create a fork of the release repository.
- Open the project in Agama Lab from the forked repository.
- Make the desired changes and save the project. This will create a commit in the forked repository.
- Go to GitHub and create a PR targeting the release repository.
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.