Skip to content

cnstr/api

Repository files navigation

Canister API

The API for Canister (version 2)

Build Status Codacy Uptime Release License

This project hosts the Canister API and accompanying services.
It is written in Rust and utilizes various crates such as:

The API is deployed on Kubernetes and is accessible here.
If you're interested in the API documentation, you can find it here.

Development

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.

Deployment

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