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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant