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
publicrepository 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 gobutton. - Click on the
+ New Projectbutton 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-branchbranch. - When the flow has been created in the project and tested as well, the project is ready to be released as a
.gamapackage. 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 calledpublishingan 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
codedirectory and click on thepublish projectoption. 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.gamapackage, under thereleasesection 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
codedirectory on the left navigation and click on theRelease Projectoption - Provide the version number to be used for the next release and click on the
Releasebutton. 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.