Skip to main content

Buddora

The operating system for animal health, services, safety, commerce, education & identity.

This site is a public summary of Buddora's engineering: architecture, APIs, data & event models, security, operations, and deployment.

It is not the canonical record. The canonical documents live in the repository under docs/ — docs/architecture/DEPLOYMENT.md for what is actually deployed, docs/operations/DEPLOYMENT.md for how to deploy it, docs/adr/ for decisions, docs/security/ for the security analysis, and ROADMAP.md for scope and status. Where this site and those documents disagree, they are right. This page exists because this site drifted badly by pretending otherwise.

Current implementation status​

Buddora is built as a modular monolith in Go over PostgreSQL, with eight Next.js portals, three long-running workers (relay, notifier, trust-consumer), a one-shot reconcile job, and an Expo mobile app. apps/api/internal/modules holds 52 modules; packages/contracts holds 53 OpenAPI documents and contracts/asyncapi holds 45 AsyncAPI documents. That is far more than the "Animal Digital Passport plus a web portal" this page described until 2026-08-28.

Breadth is not readiness, and the two must not be conflated:

AreaStatus
Platform foundation (config, logging, http, tenancy, authz, outbox, audit, telemetry)Implemented
Row-level securityImplemented — 73 tables carry ENABLE + FORCE ROW LEVEL SECURITY; the application connects as a NOBYPASSRLS runtime role. 33 of the 73 are exercised by the integration suite
Animal Digital Passport, Safety / Lost & Found, Organizations & MembershipImplemented; integration-tested
Eight web portals (web, admin, pro, seller, shelter, academy, connect, provider)Deployed; each gated on lint + typecheck at image build
apps/mobile (Expo)A real product, not a stub, and not released. 15 screens, offline cache, deep links, push registration — and it has only ever authenticated through the X-Debug-Actor development bypass, so it has never run against a non-development deployment. See ADR-031
OIDC/JWKS verification (Keycloak) & OpenFGA adapterImplemented; unit-tested and live-verified locally against real Keycloak + OpenFGA (-tags=live_keycloak / -tags=live_openfga), on demand rather than automatically
Academy credentials (Open Badges 3.0)Implemented; four public credential routes, per-country accreditation gating the claim (ADR-029)
apps/aiHas a Dockerfile and health routes; nothing deploys it, and it exposes no business endpoint

For the checkbox-level truth of any domain, read ROADMAP.md. Summarizing it further here is what produced the version of this table that was wrong.

How anything gets verified​

GitHub Actions does not execute for this project. The gates that do run are scripts/verify.sh (23 checks, on a developer's machine) and the per-image checks in each Dockerfile (on every Coolify build). See Build and deployment — read it before trusting any claim about a control on this site.

Local development​

Local dev is turnkey for identity: the compose stack auto-imports a Keycloak realm with an audience mapper and a demo user; scripts/bootstrap-openfga.sh provisions the OpenFGA store and model. See Local Development.

See the Roadmap, the canonical ROADMAP.md, and the Production Readiness report — the last of which ROADMAP.md itself records as stale (dated 2026-07-27, still scoping the product as Passport plus web). Read it as a historical artefact, not as current status.

How this documentation is organized​

  • Product — vision and functional specifications.
  • Architecture — style, ADRs, domain model, multi-tenancy, country policy, AI.
  • API & Data — API guidelines, OpenAPI, database model, event catalog.
  • Security & Privacy — baseline, threat model, privacy.
  • Operations — Coolify deployment, local dev, build & deployment, monitoring, backup/DR, runbooks.
  • Engineering — coding standards, testing, release process.