The API for Canister (version 2)
This project hosts the Canister API and accompanying services.
It is written in Rust and utilizes various crates such as:
axumfor the web serverreqwestfor the HTTP clientprismafor the database client (viaprisma-client-rs)
The API is deployed on Kubernetes and is accessible here.
If you're interested in the API documentation, you can find it here.
This project utilizes task and docker compose for a development environment.
In order to populate the databases, cnstr/core needs to be setup and run once.
The project also requires the Rust toolchain installed and cargo-watch installed (cargo install cargo-watch).
Once you have setup everything, running task dev will start the API with hot-reloading and the databases.
This project isn't intended to be deployed by anyone other than the maintainers.
When deployed, the project is relicensed under a proprietary license.
The task deploy command will trigger the CI/CD at cnstr/ci.
The deployment will run the following steps:
- Build and publish the Docker image to Google Artifact Registry (gcr.io)
- Distribute and upload the OpenAPI reference to bump.sh
- Rewrite the
kubernetes/api.yamlfile with the new image tag - Apply the new deployment to the cluster
Copyright (c) 2023, Aarnav Tale