Commit Graph

18 Commits

Author SHA1 Message Date
hatiyildiz
04559e5c37 docs(reconcile-pass-1): align docs with ground truth at dd578d1c
Reconcile Pass 1 — first holistic LLM-driven reconciliation pass per
~/.claude/skills/reconcile-catalyst-docs/SKILL.md. Skill triggered after
the post-Group-M architectural batch (#161, #162, #163, #167, #168,
#169, #170, #171, #173, #174, #175). Live ground truth verified against
kubectl + ls platform/ + git log + GHCR + componentGroups.ts.

Drift categories fixed:

- A. Numerical: bp-powerdns 1.0.5 → 1.0.6; component-logos 63 → 62
  (powerdns SVG missing, tracked under #173); bootstrap kit 11 → 12
  with bp-powerdns added per #167.
- B. Service: pool-domain-manager + 5 registrar adapters
  (Cloudflare/Namecheap/GoDaddy/OVH/Dynadot, #170) added to
  IMPLEMENTATION-STATUS, ARCHITECTURE, PLATFORM-TECH-STACK, GLOSSARY,
  and PROVISIONING-PLAN; bp-powerdns added to ARCHITECTURE bootstrap
  kit + Catalyst-on-Catalyst dependency tree.
- C. Architectural: SOVEREIGN-PROVISIONING §3 + DEMO-RUNBOOK Step 4
  + ORCHESTRATOR-STATE Step 6 rewritten from Dynadot-direct DNS writes
  to PowerDNS authoritative + PDM /v1/commit + registrar-adapter
  NS-flip; PROVISIONING-PLAN Phase 4 paths corrected to
  products/catalyst/bootstrap/api/ (per INVIOLABLE-PRINCIPLES #3 the
  Go provisioner does NOT call cloud APIs); Phase 6 retitled and
  rewritten for the new DNS architecture.
- D. Process: RUNBOOK-PROVISIONING §2 wizard-step table + DEMO-RUNBOOK
  Step 2 wizard-step table updated to canonical 7-step ordering
  (Org → Domain → Topology → Provider → Credentials → Components →
  Review per WIZARD_STEPS in WizardLayout.tsx, post #169 + #174); the
  three-mode StepDomain (pool / byo-manual / byo-api per #169) and
  two-tab StepComponents (mandatory infra + apps per #161/#162/#175)
  now documented.
- E. Cross-doc: Group G  across PROVISIONING-PLAN +
  ORCHESTRATOR-STATE (superseded by #167+#163+#170, not by the
  original Dynadot-multi-domain plan); Group C  in
  PROVISIONING-PLAN (Flux is reconciling from openova-public today);
  README Stack-at-a-glance DNS row expanded.
- F. Stale terminology: 11-grep banned-terms scan clean — every k8gb
  residual is a legitimate "removed at #171, replaced by lua-records"
  reference.

VALIDATION-LOG.md gains the Reconcile Pass 1 entry per skill spec.
Reconcile-skill numbering is independent of the Audit-skill numbering
(which continues at Pass 108+).

Files: 13 docs + VALIDATION-LOG entry.
Escalations: none.
2026-04-29 09:40:10 +02:00
hatiyildiz
f5daac52af refactor(platform): remove k8gb — replaced by PowerDNS lua-records (#171)
PowerDNS lua-records (`ifurlup`, `pickclosest`, `ifportup`) cover everything
k8gb was doing — geo-aware response selection, health-checked failover,
weighted round-robin — at the authoritative DNS layer. Eliminates a
separate K8s controller, CRD set, and CoreDNS plugin from every Sovereign.

Changes:
- platform/k8gb/ deleted (Chart.yaml, values.yaml, blueprint.yaml never
  authored — only README existed)
- products/catalyst/bootstrap/ui/public/component-logos/k8gb.svg deleted
- componentGroups.ts: remove k8gb component (PowerDNS already there)
- componentLogos.tsx: drop logo_k8gb + k8gb map entry
- model.ts DEFAULT_COMPONENT_GROUPS spine: replace k8gb with powerdns
- StepInfrastructure.tsx: copy refers to PowerDNS lua-records, not k8gb
- provision.html: replace k8gb tile and edges with powerdns
- catalog.generated.ts regenerated (now includes bp-powerdns)
- docs sweep — every k8gb reference in PLATFORM-TECH-STACK, NAMING-
  CONVENTION, SOVEREIGN-PROVISIONING, SRE, ARCHITECTURE, GLOSSARY,
  COMPONENT-LOGOS, IMPLEMENTATION-STATUS, BUSINESS-STRATEGY,
  TECHNOLOGY-FORECAST, README, infra/hetzner/README, platform READMEs
  (cilium, external-dns, failover-controller, litmus, flux, opentofu)
  rewritten to point at PowerDNS lua-records / MULTI-REGION-DNS.md.
  Historical entries in VALIDATION-LOG.md preserved as audit trail.
- New docs/MULTI-REGION-DNS.md — canonical reference for the lua-record
  patterns (ifurlup all/pickclosest/pickfirst, ifportup, pickwhashed),
  Application Placement → lua-record selector mapping, when to add a
  second Sovereign region, operational checks.

Closes #171.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 08:51:09 +02:00
hatiyildiz
7b24f969c1 docs(platform-tech-stack): cross-doc consistency for spire + nats-jetstream + sealed-secrets
Closes #139.

The new platform/ folders added in Pass 105 (spire, nats-jetstream,
sealed-secrets per commit 8c0f766) were missing from the §1 narrative
component lists. They were already in §2.3 (Per-Sovereign supporting
services) but bare names without hyperlinks, while peers like keycloak,
openbao, gitea linked into platform/<x>/.

Changes:
- §1 (Component categorization table):
  - per-host-cluster row now includes 'sealed-secrets (bootstrap-only —
    transient until ESO+OpenBao take over)' after the existing
    'opentofu (bootstrap-only)' entry, matching the canonical bootstrap
    sequence in SOVEREIGN-PROVISIONING.md §3
  - Application Blueprints row now includes 'guacamole' (was missing
    despite §4.5 documenting it as a Communication Application Blueprint
    and bp-relay composing it per §5)
- §2.3 (Per-Sovereign supporting services):
  - spire-server → [spire](../platform/spire/) (server + agent) — links
    into the new G2 chart folder
  - nats-jetstream → [nats-jetstream](../platform/nats-jetstream/) — same
- §3.2 (GitOps and IaC):
  - new row [sealed-secrets](../platform/sealed-secrets/) with bootstrap-
    only semantics per the Phase 0/1 design contract

No semantic change to the architecture. This commit is purely cross-doc
consistency: the same components must be listed everywhere they apply.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 13:49:35 +02:00
hatiyildiz
7cafa3c894 docs(seaweedfs+guacamole): replace MinIO with SeaweedFS as unified S3 encapsulation; add Guacamole to bp-relay
Component-level architectural correction (two changes):

1. MinIO → SeaweedFS as unified S3 encapsulation layer

The old design used MinIO for in-cluster S3 plus separate cold-tier configuration scattered across consumers. The new design positions SeaweedFS as the single S3 encapsulation layer: every Catalyst component talks to one endpoint (seaweedfs.storage.svc:8333). SeaweedFS internally handles hot tier (in-cluster NVMe), warm tier (in-cluster bulk), and cold tier (transparent passthrough to cloud archival storage — Cloudflare R2 / AWS S3 / Hetzner Object Storage / etc., chosen at Sovereign provisioning). One audit/lifecycle/encryption boundary instead of N. No Catalyst component talks to cloud S3 directly anymore — Velero, CNPG WAL archive, OpenSearch snapshots, Loki/Mimir/Tempo, Iceberg, Harbor blob store, Application buckets all share one S3 surface.

2. Apache Guacamole added as Application Blueprint §4.5 Communication

Clientless browser-based RDP/VNC/SSH/kubectl-exec gateway. Keycloak SSO, full session recording to SeaweedFS for compliance evidence (PSD2/DORA/SOX). Composed into bp-relay. Replaces VPN+native-client distribution for auditable remote access.

Component changes:
- DELETED: platform/minio/
- CREATED: platform/seaweedfs/README.md (unified S3 + cold-tier encapsulation; bucket layout; multi-region replication via shared cold backend; migration-from-MinIO section)
- CREATED: platform/guacamole/README.md (clientless remote-desktop gateway; GuacamoleConnection CRD; compliance integration via session recordings)

Doc updates: PLATFORM-TECH-STACK §1+§3.5+§4.5+§5+§7.4; TECHNOLOGY-FORECAST L11+mandatory+a-la-carte counts (52 → 53); ARCHITECTURE §3 topology; SECURITY §4 DB engines; SOVEREIGN-PROVISIONING §1 inputs; SRE §2.5+§7; IMPLEMENTATION-STATUS §3; BLUEPRINT-AUTHORING stateful examples; BUSINESS-STRATEGY 13 component-count anchors + Relay product line; README.md backup row; CLAUDE.md folder count.

Component README updates (S3 endpoint + dependency renames): cnpg, clickhouse, flink, gitea, iceberg, harbor, grafana, livekit, kserve, milvus, opensearch, flux, stalwart, velero (substantive rewrite of velero — now writes exclusively to SeaweedFS with cold-tier auto-routing). Products: relay, fabric.

UI scaffold: products/catalyst/bootstrap/ui/src/shared/constants/components.ts — minio entry replaced with seaweedfs; velero+harbor deps updated; new guacamole entry added.

VALIDATION-LOG entry "Pass 104 — MinIO → SeaweedFS swap + Guacamole add" captures the encapsulation principle and adds Lesson #22: storage tier policy belongs at the encapsulation boundary, not inside every consumer.

Verification: zero remaining MinIO references in canonical docs (one intentional retention in TECHNOLOGY-FORECAST L37 explaining the swap); 53 platform/ folders matching all "53 components" anchors; bp-relay composition includes guacamole.
2026-04-28 10:23:46 +02:00
hatiyildiz
0a6179dd21 docs(unified-repo-model): collapse SME and corporate to one shape — Application = Gitea Repo
Architectural correction. Replaces the previous "one Gitea repo per Environment with Apps as folders" rule with a single uniform shape that scales by configuration only:

- Catalyst Application = one Gitea Repo (always, regardless of scale)
- Branches develop/staging/main map to dev/stg/prod environments
- 5 conventional Gitea Orgs per Sovereign: catalog (public mirror), catalog-sovereign (Sovereign-curated private Blueprints), one per Catalyst Organization (with shared-blueprints + N App repos), system (sovereign-admin scope)
- EnvironmentPolicy CR lives in system/catalyst-config/policies/, same shape for SME and corporate; only field values differ

Removes the SME-vs-corporate dual-shape design that violated the "Application is application" invariant. Teams primitive (proposed for corporate scale) is dropped — team boundaries emerge from CODEOWNERS at the App-repo level. RE-score thresholds and EnvironmentPolicy fields are universal defaults; only their values vary per Org's policy choice.

Files updated line-by-line: GLOSSARY (Application + Environment definitions, new Gitea-Orgs section, 6 component-row updates), NAMING §11.2 (Realization 7-bullet rewrite), ARCHITECTURE (§1, §3 topology, §4 write-side ASCII, §7.1+§7.2+§7.3, §8 promotion, §9 multi-App linkage), PERSONAS-AND-JOURNEYS (§2 surfaces, §4.1 Ahmed, §4.2 Layla full rewrite), BLUEPRINT-AUTHORING §1 (catalog-sovereign source location), PLATFORM-TECH-STACK §2.2+§2.3, SECURITY §3, SOVEREIGN-PROVISIONING §5+§8+§10, IMPLEMENTATION-STATUS §5, SRE §14.

VALIDATION-LOG entry "Pass 103 — UNIFIED REPO MODEL REFACTOR" captures the architectural correction and acknowledges the prior 102-pass audit anchored on the wrong shape (text-shape consistency was correct; the chosen text-shape was inadequate). Lesson #21 added: text-shape audits don't substitute for architectural review.

Verification: zero remaining old-model assertions in canonical docs (grep clean for 'Environment Gitea repo', '/{org}/{org}-{env_type}', 'per-Environment Gitea repos', 'applications/<app>/values', etc.).
2026-04-28 10:13:02 +02:00
hatiyildiz
a9913ed6be docs(pass-62): PLATFORM-TECH-STACK §7 subsection order (Pass 23 carry-over); temporal third-cycle clean
PLATFORM-TECH-STACK §7 had broken subsection numerical order:
§7.1 → §7.4 → §7.2 → §7.3. Pass 23 added §7.4 (per-host-cluster
infrastructure overhead, categorization split) but inserted it
physically between §7.1 and §7.2 instead of after §7.3.

Reordered to canonical §7.1 → §7.2 → §7.3 → §7.4. The "Total mgt
cluster RAM" computation in §7.4 still correctly sums §7.1 + §7.4;
cross-reference in §7.1 ("its budget is in §7.4 below") still reads
accurately since §7.4 follows §7.1 in document order.

Methodology lesson #20: When inserting new subsections, ensure
placement is after existing higher-numbered subsections. Pass 23
added §7.4 logically but inserted physically out-of-order. New-cycle
audits should grep `^###\s+\d+\.\d+` and verify monotonically
increasing subsection numbers.

PLATFORM-TECH-STACK §1-§11 fourth-cycle deep re-scan otherwise clean:
- §1-§5 union-equality holds (Pass 40 + 55 confirmed)
- §6 multi-region mermaid diagram intact
- §10 bp-siem retention fix (Pass 23) intact
- §11 license posture: all Catalyst control-plane components are
  Apache 2.0 / MPL 2.0 / MIT / BSD-3, no BSL

platform/temporal/README.md third-cycle clean — all three
architectural fixes intact:
- Pass 32 image: harbor.<location-code>.<sovereign-domain>/fabric/...
- Pass 35 DNS: temporal.<env>.<sovereign-domain>
- Pass 38 namespace: fabric (post-fuse rename)

Cross-namespace pattern (temporal control plane in `temporal` namespace,
customer workers in `fabric`) correctly modelled.
2026-04-28 01:42:29 +02:00
hatiyildiz
b9b28b75b8 docs(pass-40): PLATFORM-TECH-STACK §1 incomplete component lists; iceberg clean
§1 summary table had three incomplete component lists vs the detailed
§2-§4 sections. The drift survived because earlier passes focused on
the detail sections, treating the §1 summary as an assumed-correct
intro rather than cross-checking against detail.

Catalyst control plane row: missing provisioning (§2.2) and observability
(§2.3 Grafana stack). Added both. Reordered to match §2 subsection order.

Per-host-cluster infrastructure row: missing external-dns (§3.1),
opentofu (§3.2 — marked bootstrap-only to prevent Pass 23-style
miscategorization), minio + velero (§3.5), failover-controller (§3.6).

Application Blueprints row: missing anthropic-adapter (§4.6, member of
bp-cortex). Added.

§1 is now strictly the union of §2+§3+§4 — a true index, not a
parallel list that drifts independently.

§2-§5 detailed sections all clean. iceberg README clean (literal
MINIO_ACCESS_KEY placeholders flagged with clickhouse's similar
minioadmin issue for a future security-hardening pass).

Pass 23 lesson inverted: the lesson was "deep-read later sections"; this
pass demonstrates summary sections also need cross-reference checks
against detail. Both directions need re-scans.
2026-04-27 23:14:07 +02:00
hatiyildiz
c98b7f32be docs(pass-23): PLATFORM-TECH-STACK §7 categorization split + §10 fictional bp-siem fix
Pass 23 — drift-detection on PLATFORM-TECH-STACK §6-§11 (less-
scrutinized in earlier passes) + platform/litmus.

§7.1 Resource estimates:
- Crossplane was listed under "Catalyst control plane" — but
  Crossplane is per-host-cluster infrastructure per §3.2. Same
  categorization slip pattern as the §3 topology fix in Pass 6.
- Split into:
  * §7.1 (Catalyst-specific only): +SPIRE server row that was
    missing; subtotal corrected to ~11.3 GB. Removed Crossplane.
  * New §7.4 (Per-host-cluster overhead): explicit breakdown for
    Cilium / Flux / Crossplane / cert-manager / ESO / Kyverno /
    Trivy / Falco / Harbor / MinIO / Velero / small operators.
    Subtotal ~8.8 GB per host cluster.
- §7.2 heading renamed "Per-Organization vcluster (workload
  regions)" for clarity.

§10 SIEM/SOAR:
- "This pipeline is itself a composite Blueprint (bp-siem)" — but
  bp-siem doesn't exist in §5's composite Blueprint inventory.
  The SIEM pipeline is a COMPOSITION of existing Application
  Blueprints (Strimzi + OpenSearch + ClickHouse + bp-specter on
  top of per-host-cluster Falco/Trivy/Kyverno), not a single
  packaged composite.
- Reworded to make the actual composition explicit. Audit-log
  fallback now correctly points at the Grafana stack
  (per-Sovereign observability) rather than implying SIEM is
  required for any audit retention.

platform/litmus/README.md: clean. Banner correct, integration
table consistent (Grafana, Kyverno, Gitea Actions, failover-
controller integrations all match the agreed model).

VALIDATION-LOG: Pass 23 entry added.

Refs #37
2026-04-27 22:15:40 +02:00
hatiyildiz
15905cee6f docs(iter-9-12): repo structure clarity, PLATFORM-TECH-STACK reorg, SRE alignment
README + CLAUDE.md (iter 9):
- README's "Build a Blueprint" section was contradicting itself: said
  "A Blueprint is a Git repo" while elsewhere we'd locked in the
  monorepo decision. Rewritten: Blueprint = a folder under
  platform/<name>/ or products/<name>/ in this monorepo. CI publishes
  per-folder OCI artifacts.
- CLAUDE.md "Repo structure": replaced the brief tree with a more
  honest one that distinguishes target structure from current
  placeholders (core/apps/ is target console+projector+...; current
  has only legacy bootstrap/ and manager/ .gitkeep dirs). Annotated
  each products/<name>/ folder with current state (axon = real code;
  others = README only; catalyst = bootstrap/ui scaffold).
- CLAUDE.md banned-terms entry "Workspace": now covers component
  names too (was only Catalyst scope), matching GLOSSARY's expanded
  banned-term entry.

PLATFORM-TECH-STACK (iter 10) — substantive reorganization:

The §1 categorization established three buckets:
  (a) Catalyst control plane (per-Sovereign on mgt)
  (b) Per-host-cluster infrastructure (every host cluster)
  (c) Application Blueprints (a la carte)

But §2 "Catalyst control plane components" was mixing buckets (a)
and (b): it listed flux, crossplane, cert-manager, kyverno, harbor,
external-secrets, reloader, vpa, keda, k8gb, coraza, falco, trivy,
sigstore, syft-grype, minio, velero, failover-controller all under
"Catalyst control plane" — but those are per-host-cluster
infrastructure per §1, and §1 itself said Crossplane "Never
user-facing" / per-host-cluster.

Reorganized §2 + §3:
- §2 now contains ONLY the Catalyst control plane:
    2.1 User-facing surfaces (console, marketplace, admin)
    2.2 Catalyst backend services (projector, catalog-svc, provisioning,
        environment-controller, blueprint-controller, billing)
    2.3 Per-Sovereign supporting services (keycloak, openbao, spire-
        server, nats-jetstream, gitea, observability)
- New §3 Per-host-cluster infrastructure with subsections for
  networking, GitOps+IaC, security+policy, scaling+ops, storage+
  registry, resilience.
- Application Blueprints renumbered §3 → §4. Added missing
  opensearch row to §4.1 (was previously misplaced in observability).
- Composite Blueprints (Products) §4 → §5.
- Multi-Region §5 → §6. Resource estimates §6 → §7. Cluster
  deployment §7 → §8. User choice §8 → §9. SIEM §9 → §10. License §10 → §11.

Cross-doc references to PLATFORM-TECH-STACK §1 / §2 (in NAMING,
ARCHITECTURE, IMPLEMENTATION-STATUS) all still resolve correctly
under the new numbering.

SRE (iter 11):
- §2.4 split-brain table: "MongoDB" → "FerretDB" (MongoDB was
  retired in favor of FerretDB-on-CNPG per project-memory).
- §2.5 data replication: clarified each row's layer (Application
  Blueprint vs per-host-cluster vs Catalyst control plane) instead
  of misclassifying MinIO/Harbor as Application Blueprints. Added
  OpenSearch row.
- §3.1 Flagger and §3.2 Flipt: explicitly marked "Status: design,
  not yet a deployed Blueprint" since they're "components to watch"
  in TECHNOLOGY-FORECAST, not in the current PLATFORM-TECH-STACK §3
  inventory.

BUSINESS-STRATEGY + TECHNOLOGY-FORECAST (iter 12):
- Final scan: clean. No tenant/operator-team/Catalyst-IDP/Lifecycle
  Manager/Synapse(product) violations remaining.

Refs #37
2026-04-27 21:17:15 +02:00
hatiyildiz
27325edb32 docs(iter-2): glossary alignment — rename workspace-controller, fix definitions
GLOSSARY.md line-by-line audit. Eight corrections.

1. workspace-controller → environment-controller everywhere. The
   controller reconciles the Environment CRD; "workspace" is banned as
   a Catalyst scope, so it cannot be in a component name either. Fixed
   in: GLOSSARY, ARCHITECTURE, PLATFORM-TECH-STACK, NAMING-CONVENTION,
   SOVEREIGN-PROVISIONING, IMPLEMENTATION-STATUS, core/README,
   BUSINESS-STRATEGY. Banned-term entry in GLOSSARY now explicitly
   covers component names too.

2. "workspace repos" (per-Environment Gitea repos) → "Environment
   Gitea repos" in GLOSSARY, PLATFORM-TECH-STACK.

3. JWT claim {workspace, org, role} → {environment, org, role} in
   ARCHITECTURE projector diagram.

4. OpenOva definition refined: was "Never used to name a product",
   which contradicted "OpenOva Catalyst", "OpenOva Cortex". Now: brand
   prefix in product names; bare "OpenOva" = the company; bare
   "Catalyst" = the platform.

5. Catalyst definition completed: was missing provisioning, billing,
   gitea, observability — now lists all 14 control-plane components,
   pointing at the table below.

6. Catalyst components table: added `provisioning` (validates
   configSchema, commits to Environment Gitea); reordered to match
   ARCHITECTURE §3 grouping; clarified each component's source-of-truth
   (catalog-svc reads monorepo + Gitea, blueprint-controller watches
   monorepo + Gitea, etc.).

7. Environment definition: refers to NAMING §2.4 for env_type values;
   removed inline list that didn't match canonical ordering. Added
   concrete examples (acme-prod, acme-dev, bankdhofar-uat).

8. Application example: dropped "RocketChat" which appeared nowhere
   else; replaced with generic "running deployment" plus the
   established WordPress / Postgres examples.

9. sovereign-admin description: was "runs Crossplane" — Crossplane is
   platform plumbing not user-facing. Now: "manages the underlying
   clusters via Crossplane (which is platform plumbing, not a
   user-facing surface)".

Banned-term coverage:
- "Workspace" entry now covers BOTH the Catalyst scope AND component
  naming (workspace-controller → environment-controller).

Refs #37
2026-04-27 21:06:09 +02:00
hatiyildiz
2c4902b409 docs(iter-1): add IMPLEMENTATION-STATUS, fix wrong-org refs, reconcile monorepo
First validation iteration. Three concrete corrections.

1. Add docs/IMPLEMENTATION-STATUS.md as the bridge between target
   architecture and current code state. Status legend ( / 🚧 / 📐 / ⏸)
   applied per-component. Catalyst control plane = mostly 📐. Component
   READMEs = 🚧 (README only, no Blueprint manifests yet). products/axon
   =  (only product with real code). core/ = 📐 (just .gitkeep).

2. Status banner added to ARCHITECTURE, SECURITY, SOVEREIGN-PROVISIONING,
   BLUEPRINT-AUTHORING, PERSONAS-AND-JOURNEYS, PLATFORM-TECH-STACK, SRE
   pointing readers at IMPLEMENTATION-STATUS.md before they treat any
   described feature as built. GLOSSARY also references it.

3. Architectural decision (Option A — monorepo canonical):
   - Each platform/<name>/ and products/<name>/ folder is the source of
     ONE Blueprint, published as ghcr.io/openova-io/<name>:<semver> by
     CI fan-out from the monorepo root.
   - BLUEPRINT-AUTHORING.md §1, §2, §13 rewritten to match.
   - README.md "what's in this repo" rewritten to clarify monorepo +
     OCI-fan-out shape; no longer claims every directory is a Blueprint
     in a way that contradicts BLUEPRINT-AUTHORING.

Wrong-org fixes (3 places):
   - docs/PERSONAS-AND-JOURNEYS.md:13   github.com/openova → openova-io
   - docs/BLUEPRINT-AUTHORING.md:13     github.com/openova → openova-io
   - docs/BLUEPRINT-AUTHORING.md:404    github.com/openova → openova-io
   - docs/BLUEPRINT-AUTHORING.md ghcr.io/openova/* (3 refs) → openova-io

API group consistency:
   - All references unified to catalyst.openova.io/v1alpha1
     (was mixed v1 / v1alpha1; v1alpha1 is correct since the CRDs are
     design-stage with no implementation).

core/README.md updated to honestly describe the directory tree as
"target structure with .gitkeep placeholders" rather than implying
the apps/console, apps/projector, etc. binaries already exist.
The legacy apps/bootstrap and apps/manager directories are
acknowledged as transitional placeholders that will be removed when
the new apps/ layout is scaffolded.

CLAUDE.md and .claude/project-memory.md updated to put
IMPLEMENTATION-STATUS.md second in the read-first ordering.

Refs #37
2026-04-27 20:43:31 +02:00
hatiyildiz
4b3a6884f5 docs(stack,sre): align tech stack and SRE handbook with Catalyst control plane
Two related rewrites that put the control plane / application Blueprint
distinction front and center.

PLATFORM-TECH-STACK.md
  - §1: explicit three-way component categorization — Catalyst control
    plane (one per Sovereign), per-host-cluster infrastructure (every
    cluster), Application Blueprints (inside per-Org vclusters).
  - §2: Catalyst control plane components listed by responsibility —
    user-facing surfaces, backend services, identity, secrets, event
    spine, GitOps, networking, security, scaling, storage,
    observability, resilience.
  - §3: Application Blueprints (the a-la-carte catalog) — Valkey and
    Strimzi explicitly callout that they are Application Blueprints,
    NOT control-plane components (control plane uses NATS JetStream).
  - §4: composite Blueprints (Cortex, Axon, Fingate, Fabric, Relay)
    repositioned as Applications running ON Catalyst, not as parallel
    products.
  - §5: multi-region diagram showing independent OpenBao Raft per
    region, NATS leaf nodes, Crossplane on mgt.
  - §6: resource estimates updated for control plane (~12 GB +
    per-Org Keycloak in SME tier).
  - §10: license posture table — every control-plane component carries
    a redistribution-safe license (no BSL).

SRE.md
  - §2: multi-region principles updated; explicit "no stretched
    clusters" applies to OpenBao, JetStream, etcd, every quorum-
    based component.
  - §2.5: data replication patterns now scoped to Application
    Blueprints (the things a customer installs), separate from
    control-plane patterns documented in SECURITY.md and
    ARCHITECTURE.md.
  - §4: alert-to-action mapping segmented by Catalyst control plane
    vs per-product (Cortex, Fingate); new alerts: OpenBaoSealed,
    JetstreamLagHigh.
  - §7-§13: terminology aligned to Catalyst (console instead of IDP);
    runbooks now Runbook CRD-backed; incident severities updated.
  - §13.2-13.3: Catalyst-specific incidents (workspace-controller,
    OpenBao seal, projector lag) plus AI Hub incidents under
    bp-cortex installation.

Refs #37
2026-04-27 20:06:20 +02:00
Emrah Baysal
54b1b4bd3d docs: add unified naming convention and align existing docs
- Add docs/NAMING-CONVENTION.md — canonical naming standard for all
  cloud resources, K8s objects, DNS, and tags across all providers.
  Covers dimension taxonomy (provider/region/building-block/environment),
  the Don't-Repeat-the-Parent principle, 4-char DNS location codes with
  full lookup table, multi-tenant scoping via namespace, and migration rules.

- Fix SRE.md: remove primary/DR region labels; clusters are named by
  building block (rtz/dmz/mgt), not failover role. Both regions run
  symmetric rtz clusters; k8gb owns traffic distribution.

- Fix PLATFORM-TECH-STACK.md: update both Mermaid diagrams and region
  table to use Region A / Region B (rtz cluster) language.

- Fix core/README.md: Platform CRD example now references cluster context
  names (hz-fsn-rtz-prod / hz-hel-rtz-prod) instead of primary/standby roles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 12:22:52 +01:00
talent-mesh
435f49738d feat: restructure platform to 52 components and 9 products
Technology forecast and strategic review restructure:
- Remove 13 components (backstage, mongodb, activemq, vitess, airflow, camel, dapr, superset, searxng, langserve, trino, lago, rabbitmq)
- Add 10 components (sigstore, syft-grype, nemo-guardrails, langfuse, reloader, matrix, ferretdb, litmus, livekit, coraza)
- Rename product: Synapse → Axon (SaaS LLM Gateway)
- Merge products: Titan + Fuse → Fabric (Data & Integration)
- New product: Relay (Communication)
- Replace Backstage with Catalyst IDP
- Replace MongoDB with FerretDB (MongoDB wire protocol on CNPG)
- Add supply chain security (Sigstore/Cosign, Syft+Grype)
- Add AI safety and observability (NeMo Guardrails, LangFuse)
- Add technology forecast 2027-2030 document
- Full verification pass: zero stale references across all docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 21:00:19 +00:00
talent-mesh
10245dff98 feat: ecosystem expansion to 55 components with license compliance
- Replace BSL-licensed components with open-source alternatives:
  Terraform→OpenTofu (MPL 2.0), Vault→OpenBao (MPL 2.0),
  Redpanda→Strimzi/Kafka (Apache 2.0), n8n→Airflow (Apache 2.0)
- Add 14 new platform components: activemq, camel, clickhouse, dapr,
  debezium, falco, flink, iceberg, opensearch, rabbitmq, superset,
  temporal, trino, vitess
- Rename meta-platforms/ to products/ with new product names:
  Cortex (AI Hub), Fingate (Open Banking), Titan (Data Lakehouse),
  Fuse (Microservices Integration)
- Update all documentation, READMEs, and cross-references

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 18:15:11 +00:00
talent-mesh
c9d04a53b4 refactor: flatten platform/ structure (41 components)
Remove hierarchical grouping (networking/, security/, etc.) and use flat
structure for all 41 platform components.

Changes:
- All components now directly under platform/ (no subfolders)
- AI Hub components moved from meta-platforms/ai-hub/components/ to platform/
- Open Banking components (lago, openmeter) moved to platform/
- meta-platforms/ now only contains README files that reference platform/
- Open Banking custom services remain in meta-platforms/open-banking/services/

Structure:
- platform/ (41 components, flat)
- meta-platforms/ai-hub/ (README only, references platform/)
- meta-platforms/open-banking/ (README + 6 custom services)

All documentation links updated.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 15:19:48 +00:00
talent-mesh
49f8bbc84d refactor: move harbor to registry/, kyverno to policy/
- Harbor moved from storage/ to registry/ (artifact management, not storage)
- Kyverno moved from security/ to policy/ (policy engine for validation,
  mutation, generation - broader than just security)

Updated structure:
- platform/registry/harbor/
- platform/policy/kyverno/

All documentation links updated accordingly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 11:53:21 +00:00
talent-mesh
535710289c feat: create OpenOva monorepo structure
Consolidate all component repos into a single monorepo:

- core/: Bootstrap + Lifecycle Manager application
- platform/: Individual component blueprints organized by category
  - networking/ (cilium, k8gb, external-dns, stunner)
  - security/ (cert-manager, external-secrets, vault, kyverno, trivy)
  - observability/ (grafana stack)
  - storage/ (minio, harbor, velero)
  - scaling/ (keda, vpa)
  - failover/ (failover-controller)
  - gitops/ (flux, gitea)
  - idp/ (backstage)
  - data/ (cnpg, mongodb, valkey, redpanda)
  - communication/ (stalwart)
  - iac/ (terraform, crossplane)
  - identity/ (keycloak)
- meta-platforms/: Bundled vertical solutions
  - ai-hub/ (enterprise AI platform)
  - open-banking/ (PSD2/FAPI fintech sandbox)
- docs/: Platform documentation (PLATFORM-TECH-STACK.md, SRE.md)

All internal links updated to use relative paths within monorepo.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 10:53:18 +00:00