Skip to content

Key dependencies

This page seeks to comprehensively document the tools and services that CATS depends on significantly and directly.

Minor and indirect dependencies are documented on the licenses page.

Diagram

This diagram includes the core libraries/frameworks and services/runtimes listed below.

Key dependencies diagram

Core libraries and frameworks

These codebases are integrated as core building blocks throughout the CATS system. CATS can be easily considered a derivative work of these projects so it is important that only software distributed under permissive open-source licenses be used here. These would all be very expensive to replace so it is important that they all be well-maintained projects that CATS keeps up-to-date with.

  • Laravel (MIT)
  • Vue (MIT)
  • Bootstrap (MIT)
  • BootstrapVue (MIT)

Services and runtimes

CATS runs on top of these services and runtimes without modifying them. Permissive licenses are less critical at this layer because we are not distributing any derivative work. These are all used directly by CATS and are non-trivial to replace.

More difficult to replace

  • PHP (PHP License, like BSD)
  • PostgreSQL (PostgreSQL Licence, like BSD)

Less difficult to replace

  • Kubernetes (Apache 2.0)
  • Mapbox (SaaS)
  • Geocodio (SaaS)
  • QuickBooks (SaaS)
  • Postmark (SaaS)
  • Twilio (SaaS)

Hosting providers

These services provide physical infrastructure and managed platforms for CATS’ self-hosted components and operations. They should all be commodity services with many competitors that could be switched to.

  • Linode
    • Managed Kubernetes (commodity)
    • S3-compatible object storage (commodity)
  • GitHub
    • Git source control (commodity)
    • Actions (proprietary but semi-portable)
    • Package hosting (commodity)
    • Documentation hosting (commodity)

Operations support

These tools are used to support operations, but are not directly critical to CATS system availability.

  • Sentry (SaaS + Apache 2.0)
  • NewRelic (SaaS)
  • Cabot (MIT)
  • Slack (SaaS)
  • GitHub Actions (SaaS)
  • Restic (BSD)
  • HotJar (SaaS)
  • vaultwarden (GPL)

Development tools

These tools are used by developers to make changes to the CATS system.

  • Visual Studio Code (MIT)
  • GitHub (SaaS)
  • Jira (SaaS)
  • Git (GPL)