The project aims to build a continuous deployment pipeline to offer FLINT as a SaaS over cloud. The project also aims to simplify the process of installation by supporting a single command or step installation process.
Table of Contents
- Technology Stack
- Layered Architecture Setup on Google Cloud
- FAQ and Other Questions
- Contributors
- Maintainers Reviewers Ambassadors Coaches
- Create a service account with project owner permissions in your project. This is used by Terraform to provision all the necessary resources.
- Copy
main.tf
from thelayered
directory of this repository to your Cloud Console machine. - In
main.tf
, change theproject
variable to your project ID. Change any other variables if necessary. - Download the key for the service account created in step 1 (in JSON format) to your project's Cloud Console machine. Rename it as
service_account.json
. - Run
terraform apply
. After this command finishes, it should output the URL to FLINT Cloud (ingress).
- In the same directory as where
main.tf
is present, runterraform destroy
. In case this fails, simply run it again.
These steps can be followed to locally setup the API endpoints. This is independent of the above mentioned production setup.
In order to run the REST API, navigate to the local/rest_api_flint.example
folder.
Follow these steps: -
docker build -t flint-api .
docker run --rm -p 8080:8080 flint-api
Currently the REST API has the following endpoints available for access:-
Endpoint | Functionality |
---|---|
\help\all | Produces a help message with information on all options for moja.CLI. |
\help\arg | Produces a help message with information on option arg for moja.CLI. |
\version | Outputs the version number of moja.CLI. |
\point | Runs point example and outputs point_example.csv as an attachment to be downloaded. Parameters (multipart-form data) file for point_example can be passed to override the default configurations. |
\rothc | Runs rothc example and outputs point_rothc_example.csv as an attachment to be downloaded. Parameters (multipart-form data) file for rothc_example can be passed to override the default configurations. |
This REST API is built using the flask-restful
package and has been containerized using Docker
.
In order to run the Flask GCBM API, navigate to the local/rest_api_gcbm
please follow the following steps: -
docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .
docker run -v path to the unzipped GCBM_Demo_Run.zip folder:/gcbm_files --rm -p 8080:8080 gcbm-api
For instruction 2, unzip the folder GCBM_Demo_Run.zip
present at the root of the directory
On unzipping, a folder layers
is created, make note of the path of this folder
We have mounted the layers
folder as gcbm_files onto our container.
Example:
Assume the path to the unzipped folder is /home/layers
, instruction 2 will be :
docker run -v /home/layers:/gcbm_files --rm -p 8080:8080 gcbm-api
Currently the REST API has the following endpoints available for access:-
Endpoint | Functionality |
---|---|
\help\all | Produces a help message with information on all options for moja.CLI. |
\help\arg | Produces a help message with information on option arg for moja.CLI. |
\version | Outputs the version number of moja.CLI. |
\gcbm | Runs flint-gcbm and outputs some files in the output directory along with the output db. |
Parameters (multipart-form data) file
for gcbm_config and input_db
for input sqlite db can be passed to override the default configurations.
This REST API is built using the flask-restful
package and has been containerized using Docker
.
Feel free to join our Slack community and get to know everyone.
If you would like to volunteer as a mentor, or for any other questions, please contact andrew@moja.global. We'd love to have you involved.
To contribute to FLINT.Cloud:
Go through our contributing guidelines over here.
- You can find FAQs on the Wiki.
- If you have a question about the code, submit user feedback in the relevant repository
- If you have a general question about a project or repository or moja global, join moja global and
- submit a discussion to the project, repository or moja global team
- submit a message to the relevant channel on moja global's Slack workspace.
- If you have other questions, please write to info@moja.global
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
The following people are Maintainers Reviewers Ambassadors or Coaches
moja global 📆 |
Maintainers review and accept proposed changes
Reviewers check proposed changes before they go to the Maintainers
Ambassadors are available to provide training related to this repository
Coaches are available to provide information to new contributors to this repository
This project is released under the Mozilla Public License Version 2.0.