Ask HN: How do you manage and version control small structured data?

4 points by Igin 2 days ago

So I work in a heavily regulated field and often come across the need to document all kinds of semi-structured data like requirements, risks, test-cases, etc. Usually these objects need to have a unique ID and relate to each other. They also need to be somehow version controlled.

There are some people using https://github.com/doorstop-dev/doorstop to record this kind of data in a plaintext (YAML) format and store it in git. I think that is really neat for this kind of small scale handcrafted data. But I would like to have a more user friendly frontend for that kind of data manipulation.

It feels like every company has this kind of data somehwere. And for most situations the data is small enough to not warrant a full blown database.

So my question: Do you have any neat workflows and tools for managing small scale semistructured data in a version controlled way?

rlupi a day ago

The other option is Google docs, or similar, which has both cross-links and version history; but you can't link to a specific version of a document, as far as I know. You can however have multiple "document tabs", and that can work as multiple versions too.

  • Igin 21 hours ago

    Totally. We are (mis)using Jira in a similar way as it also has object level versioning as well as an ok entry UI for structured data. The Github "projects" feature allows to do a similar thing. Again misusing the underlying issues as database entries. I do however like the idea of the underlying data be owned by myself and ideally in some kind of human readable format.

rlupi a day ago

the first idea that came to my mind is to use obsidian.md (or another markdown editor) with the git plugin. Markdown supports frontmatter, that allows you to add metadata to docs. It also supports cross-links between documents.

You could even go full zettlekasten (generate IDs that include timestamps), if you want to version documents more explicitly.

  • Igin 21 hours ago

    So would you then create a single document/file for each "entry" or "row" in your database? That would at least ensure that the ids (or filenames) of those items are unique. It still a question of how that database becomes editable in a nice way though. Haven't seen any airtable like tools that work on such a structure.