Skip to content

[Initiative] Hydrated Catalog View in ScyllaDB with Lossless YAML Export #136

@juliuskrah

Description

@juliuskrah

Summary

Add a hydrated resource view that materializes merged spec + computed status, and provide faithful YAML export from the CLI with Markdown preserved in block scalar form.

In Scope

  • Define hydrated persistence model in ScyllaDB for catalog resources (spec, status, metadata)
  • Persist Markdown body as spec.content during parse/hydration
  • Materialize status fields produced by controller logic into hydrated records
  • Implement CLI -o yaml export path that reassembles Kubernetes-style resource output from hydrated storage
  • Render spec.content as YAML block scalar (|) to preserve Markdown formatting
  • Add round-trip fidelity tests for import -> hydrate -> export

Out of Scope

  • Markdown rendering/sanitization rules in UI
  • Mutating admission behavior
  • Query language redesign

Acceptance Criteria

  • Hydrated records store both spec and status in ScyllaDB with documented schema
  • spec.content is populated from Markdown body for applicable resource kinds
  • CLI YAML export emits valid Kubernetes-style documents
  • Exported Markdown content is preserved using block scalar style with no lossy folding
  • Round-trip tests verify semantic equivalence for representative resources
  • Performance baseline exists for hydration and export at catalog scale

Implementation Notes

Hydration separates author intent (spec) from machine observations (status) while keeping both queryable. YAML export must be user-trustworthy: if Markdown formatting is rewritten or folded unexpectedly, authoring workflows degrade and diff noise increases. Preserving spec.content with block scalars keeps Git history legible and aligns with declarative UX expectations.

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions