Skip to main content
Version: 0.1.0

Nodes API

CRUD operations for nodes.

Create Node

POST /api/repository/{repo}/{branch}/head/{workspace}/{path}

Request:

{
"node_type": "Article",
"properties": {
"title": "Hello World",
"content": "..."
}
}

Response: Created node object

Get Node

GET /api/repository/{repo}/{branch}/head/{workspace}/{path}

Update Node

PUT /api/repository/{repo}/{branch}/head/{workspace}/{path}

Request:

{
"properties": {
"title": "Updated Title"
}
}

Delete Node

DELETE /api/repository/{repo}/{branch}/head/{workspace}/{path}

Get by ID

GET /api/repository/{repo}/{branch}/head/{workspace}/$ref/{id}

Time Travel

Get node at specific revision:

GET /api/repository/{repo}/{branch}/rev/{revision}/{workspace}/{path}

Revision History

List a node's revisions (git-style "file history"), newest first. Always available regardless of the NodeType auditable flag — this is the structural MVCC history.

GET /api/history/{repo}/{branch}/{workspace}/by-id/{id}?limit=50
GET /api/history/{repo}/{branch}/{workspace}/{path}?limit=50

Response — each entry carries the revision (usable with the rev/{revision} time-travel read above to fetch the full snapshot), plus who/when and whether the node was deleted at that revision:

[
{ "revision": "1718553600000-0", "updated_at": "…", "updated_by": "alice", "deleted": false },
{ "revision": "1718553500000-0", "updated_at": "…", "updated_by": "bob", "deleted": false }
]

Audit Log

Query a node's audit-log entries. Audit logs are only produced for NodeTypes marked auditable: true (see NodeTypes → Auditable).

GET /api/audit/{repo}/{branch}/{workspace}/by-id/{id}
GET /api/audit/{repo}/{branch}/{workspace}/{path}
[
{ "action": "Update", "user_id": "alice", "timestamp": "…", "path": "/content/page", "details": null }
]

Both history and audit reads are authorized through row-level security — you only get results for nodes you can read.