Skip to content

feat: typed properties backend with recursive MetadataValue tree#1218

Open
perber wants to merge 1 commit into
mainfrom
feature/typed-properties
Open

feat: typed properties backend with recursive MetadataValue tree#1218
perber wants to merge 1 commit into
mainfrom
feature/typed-properties

Conversation

@perber

@perber perber commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Replaces the flat map[string]string properties with a recursive MetadataValue type (text, number, boolean, date, datetime, null, list, object) that round-trips through YAML frontmatter without data loss.

  • New MetadataValue struct with YAML↔typed conversion in core/tree
  • UpsertContentAndMetadata and UpdateNode accept map[string]MetadataValue; the editor now owns all non-system properties (absent keys are dropped)
  • Properties index now indexes numbers, booleans, dates and list elements (dot notation: owners.0, owners.1) for richer filter/search
  • Tags and Properties promoted to first-class fields on tree.Page, populated at load time — eliminates the extra ReadPageRaw call per GET
  • enrichPageMetadata removed; dto mapping reads directly from page fields
  • Path shadowing in dto.Page fixed; RFC3339 dead-code loop removed
  • Plan for nested/range property search added to plans/
Replaces the flat map[string]string properties with a recursive
MetadataValue type (text, number, boolean, date, datetime, null, list,
object) that round-trips through YAML frontmatter without data loss.

- New MetadataValue struct with YAML↔typed conversion in core/tree
- UpsertContentAndMetadata and UpdateNode accept map[string]MetadataValue;
  the editor now owns all non-system properties (absent keys are dropped)
- Properties index now indexes numbers, booleans, dates and list elements
  (dot notation: owners.0, owners.1) for richer filter/search
- Tags and Properties promoted to first-class fields on tree.Page,
  populated at load time — eliminates the extra ReadPageRaw call per GET
- enrichPageMetadata removed; dto mapping reads directly from page fields
- Path shadowing in dto.Page fixed; RFC3339 dead-code loop removed
- Plan for nested/range property search added to plans/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant