datom
A Unified Framework for Versioned, Traceable Tabular Data
Provides versioned storage for tabular data without a database or a server. Each table is written as an immutable, content-addressed version -- identical content is detected and stored only once -- while its version history and metadata are kept as code in a 'git' repository and the data itself in a local filesystem or cloud object storage ('S3'). Any past version can be read back exactly by its identifier, and each table records the sources it was derived from, so a project carries full data lineage. A lightweight reader role retrieves current or historical data from storage alone, without 'git' or write access, giving downstream analyses and pipelines a single versioned source of truth. It targets analytical and scientific data management, such as preparing clinical study datasets, and is designed as a foundation for higher-level governance tooling.
README
# {{{project_name}}}
> This repository is managed by [datom](https://github.com/amashadihossein/datom) — a version-controlled data management system for tabular data.
## Storage
| Setting | Value |
|---------|-------|
| Backend | `{{{backend}}}` |
| Root | `{{{root}}}` |
| Prefix | {{{prefix_display}}} |
| Region | `{{{region}}}` |
## Getting Started
### 1. Clone this repository
```bash
git clone {{{remote_url}}}
```
### 2. Create a store and connect
**Developer** (has git clone + storage + GitHub access):
```r
library(datom)
store <- datom_store(
governance = {{{gov_constructor}}},
data = {{{store_constructor}}},
github_pat = Sys.getenv("GITHUB_PAT"),
data_repo_url = "{{{remote_url}}}"
)
conn <- datom_get_conn(path = ".", store = store)
```
**Reader** (storage only, no git clone needed):
```r
library(datom)
store <- datom_store(
governance = {{{gov_constructor}}},
data = {{{store_constructor}}}
)
conn <- datom_get_conn(store = store, project_name = "{{{project_name}}}")
```
### 3. Explore
```r
# List all tables
datom_list(conn)
# View version history of a specific table
datom_history(conn, "table_name")
# Read the latest version
datom_read(conn, "table_name")
# Read a specific version (use hash from datom_list or datom_history)
datom_read(conn, "table_name", version = "a8ee7a31")
```
## Notes
- **Do not commit data files** to this repository. The `.gitignore` is configured
to exclude common data formats. Actual data lives in storage as parquet files;
git tracks only metadata.
- See the datom documentation for details on store configuration.
---
*Initialized on {{{created_at}}} with datom v{{{datom_version}}}.*
Versions across snapshots
| Version | Repository | File | Size |
|---|---|---|---|
0.1.1 |
rolling linux/jammy R-4.5 | datom_0.1.1.tar.gz |
670.4 KiB |
0.1.1 |
rolling linux/noble R-4.5 | datom_0.1.1.tar.gz |
670.4 KiB |
0.1.1 |
rolling source/ R- | datom_0.1.1.tar.gz |
345.7 KiB |
0.1.1 |
latest linux/jammy R-4.5 | datom_0.1.1.tar.gz |
670.4 KiB |
0.1.1 |
latest linux/noble R-4.5 | datom_0.1.1.tar.gz |
670.4 KiB |
0.1.1 |
latest source/ R- | datom_0.1.1.tar.gz |
345.7 KiB |
0.1.1 |
2026-04-23 source/ R- | datom_0.1.1.tar.gz |
0 B |