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.
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)