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:
axum
for the web serverreqwest
for the HTTP clientprisma
for 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.yaml
file with the new image tag - Apply the new deployment to the cluster
Copyright (c) 2023, Aarnav Tale