Skip to content

Contribute to Caracal

Caracal welcomes bug reports, documentation fixes, tests, SDK improvements, and platform features. This section is the contributor journey from a fresh clone to a merged pull request; the canonical policy lives in CONTRIBUTING.md.

The workspace is multi-language: TypeScript applications, Go services, multi-language SDK packages, Docker/Helm infrastructure, and Astro documentation.

DirectoryWhat lives there
apps/TypeScript applications: the Admin API, Coordinator, runtime CLI, web console, and console auth backend.
services/Go data-plane services: STS, Gateway, and Audit.
packages/SDKs and shared libraries in TypeScript, Python, and Go: core, engine, SDK, identity, OAuth, verify, and adapters.
infra/Docker, Helm, Postgres, Redis, and OpenTofu deployment assets.
docs/This documentation site.
tests/Cross-language test suites and shared fixtures.
scripts/Repository automation for setup, style, tests, and releases.

Each service, app, and package directory self-documents its rules in an instructions.md file.

Follow the path in order; each page ends where the next begins.

NeedPage
Prepare your machineSet Up Locally
Learn project boundaries and naming conventionsFollow Project Standards
Work on an issue or pull requestMake a Change
Run the right checksValidate Changes
NeedPage
Understand review, ownership, and security processUnderstand Governance
Prepare, publish, or recover a releaseRelease Caracal
  • File bugs, documentation gaps, and feature requests through the issue templates. A small focused fix can go straight to a pull request; medium and larger changes start with an issue or proposal before code, as sized in Contribution Scale.
  • Report suspected vulnerabilities through Report a Vulnerability, never in public issues.
  • Interactions follow the repository Code of Conduct.
  • Toolchain versions are pinned in Set Up Locally; no prior knowledge of the repository is assumed beyond those tools.

Start with Set Up Locally before making source changes.