docs(guide): add platform.repo-map — repository & org map

New module documenting where every repo lives: the hiveiq-src (product) vs
hiveiq-ops (devops/openmetal/docs) org split, repos tagged by purpose
(service/SPA/lib/agent/tooling/config), the hiveops- vs hiveiq- naming quirk,
and the openmetal prod/dev split + on-disk vs Gitea naming.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 18:03:08 -04:00
parent 879e118579
commit 805373eb17
@@ -0,0 +1,80 @@
---
module: platform.repo-map
title: Repository & Org Map — where every repo lives
tab: Overview
order: 10
audience: dev
---
# Repository & org map
Git hosting is **Gitea** (`hiveiq-gitea.directlx.dev`). Answers "where does repo X live / which org."
## Orgs at a glance
| Org | Holds | Notes |
|-----|-------|-------|
| **`hiveiq-src`** | All product code — services, SPAs, agent, browser, shared libs, the Guide, tooling, Claude config | 46 repos; the main product org |
| **`hiveiq-ops`** | Ops/infra — DevOps orchestration, OpenMetal deploy configs, docs | 4 repos; **this is where `hiveiq-devops` lives** |
| `bcos` | `bcos.*` external/customer-facing infra | secondary |
| `actions` | Gitea Actions runner definitions | CI internals |
> **Naming quirk:** product repos are prefixed **`hiveops-`** (the internal codebase name) even though
> the external brand is **HiveIQ** — see `platform.branding`. Ops repos are prefixed **`hiveiq-`**.
> And `hiveiq-ops` exists **both** as an org (the 4 infra repos below) **and** as an umbrella repo
> inside `hiveiq-src` ("Operations repo — deployment configs, infrastructure, documentation").
## `hiveiq-ops` org — ops & infrastructure
| Repo | Purpose |
|------|---------|
| `hiveiq-devops` | Docker/Ansible unified DevOps orchestration (k3s, compose) |
| `hiveiq-openmetal-prod` | **Production** OpenMetal deploy config — `bcos.cloud`, services VM `173.231.195.250` |
| `hiveiq-openmetal-dev` | **Dev** OpenMetal deploy config — `bcos.dev`, all-in-one VM `173.231.195.251` |
| `hiveiq-docs` | Documentation site content |
The two `openmetal-*` repos were split 2026-06-30 (previously duplicated). Both nest under
`/source/hiveiq-ops/hiveiq-openmetal/` on disk. On the VM the deployed clone is named
**`hiveops-openmetal`** (note `hiveops` on the box vs `hiveiq` in Gitea); services run from
`~/hiveiq/hiveops-openmetal/hiveops/instances/{services,database,browser,…}` (prod) or
`…/instances/dev` (bcos.dev). Config changes commit to the Gitea repo, then sync to the VM (VMs are
hand-managed, not git-fed; `.env` secrets are gitignored → live on VM + Vaultwarden).
## `hiveiq-src` org — product code
**Backend microservices** (Spring Boot): `hiveops-auth`, `hiveops-mgmt`, `hiveops-config`,
`hiveops-incident`, `hiveops-journal`, `hiveops-remote`, `hiveops-ai`, `hiveops-messaging`,
`hiveops-reports`, `hiveops-analytics`, `hiveops-agent-proxy`, `hiveops-recon`, `hiveops-claims`,
`hiveops-vault` (CIT visit tracking + cash count), `hiveops-feedback` (feedback.bcos.cloud intake),
`hiveops-devices`. Several ship a `frontend/` SPA in the same repo (incident, analytics, reports,
recon, claims, vault, feedback).
**Standalone SPAs** (Svelte/TS): `hiveops-msp`, `hiveops-dashboard`, `hiveops-mobile`,
`hiveops-website`, `hiveops-transactions`, `hiveops-fleet`, `hiveops-devices`,
`hiveops-aria` (ATM threat monitoring / IOC detection), `hiveops-access` (dual-control access mgmt),
`hiveops-adoons` (Adoons chat frontend), `hiveops-profile`.
**Agent & desktop:** `hiveops-agent` (Java, runs on ATMs) · `hiveops-browser` (Electron desktop client).
**Shared libraries** (Maven, published to the Gitea Maven registry): `hiveops-bom` (dependency BOM),
`hiveops-security-common` (shared JWT validation).
**Config:** `hiveops-config` (Spring Cloud Config **server**) · `hiveops-config-repo` (the git-backed
config **content** it serves).
**Knowledge / design:** `hiveops-guide` (this Guide — content API + admin SPA) ·
`hiveops-template` (frontend design-system reference — copy to start a new SPA; see `platform.frontend-template`).
**Tooling & testing:** `hiveops-cdn-api` (CDN admin API — hotfix upload, OTP) · `hiveops-mcp` (MCP server) ·
`hiveops-release` (What's New + agent download proxy) · `hiveops-simulator` (bcos.dev fleet simulator, ~30 virtual devices) ·
`hiveops-e2e` (Playwright SPA tests) · `hiveops-devtest` (throwaway smoke-test repo — safe to delete) ·
`hiveops-deploy` (Docker Compose single-server configs) · `hiveops-src` (monorepo root — top-level tracking / VERSIONS.md).
**Claude config:** `hiveiq-claude` (ways-of-working, process docs, postmortems) ·
`hiveiq-dlx-claude` (cross-Claude handoff with dlx-claude).
**Archived / misc:** `hiveops-qds-monitor` (DEPRECATED — early incident bridge, superseded by
`hiveops-agent`) · `hiveops-general`, `hiveops-tools/hiveops-generator` (Tkinter journal generator).
> Product ports, backends, and data sources per app → **`platform.module-map`**. Deploy targets and
> the prod/dev environment split → **`platform.deployment`** / **`platform.topology`**.