datanotes 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/SECURITY.md +5 -3
  2. package/dist/api/extensions.cjs +1345 -21
  3. package/dist/api/extensions.js +1345 -21
  4. package/dist/api/index.cjs +1345 -21
  5. package/dist/api/index.js +1345 -21
  6. package/dist/api/mcp.cjs +1345 -21
  7. package/dist/api/mcp.js +1345 -21
  8. package/dist/datanotes.cjs +2927 -609
  9. package/dist/docs/administration/extensions.md +2 -2
  10. package/dist/docs/api/operations/add_column.md +1 -0
  11. package/dist/docs/api/operations/alter_table.md +4 -3
  12. package/dist/docs/api/operations/check_table.md +1 -0
  13. package/dist/docs/api/operations/create_table.md +1 -0
  14. package/dist/docs/api/operations/describe_database.md +2 -0
  15. package/dist/docs/api/operations/describe_history.md +1 -0
  16. package/dist/docs/api/operations/describe_semantic_index.md +1 -0
  17. package/dist/docs/api/operations/describe_table.md +1 -0
  18. package/dist/docs/api/operations/graph_neighbors.md +1 -0
  19. package/dist/docs/api/operations/graph_path.md +1 -0
  20. package/dist/docs/api/operations/graph_traverse.md +1 -0
  21. package/dist/docs/api/operations/infer_table.md +1 -0
  22. package/dist/docs/api/operations/list_changes.md +1 -0
  23. package/dist/docs/api/operations/list_folder.md +1 -0
  24. package/dist/docs/api/operations/list_link_targets.md +1 -0
  25. package/dist/docs/api/operations/list_migrations.md +1 -0
  26. package/dist/docs/api/operations/list_tables.md +2 -0
  27. package/dist/docs/api/operations/list_webhooks.md +1 -0
  28. package/dist/docs/api/operations/read_note.md +1 -0
  29. package/dist/docs/api/operations/search.md +39 -0
  30. package/dist/docs/api/operations/search_notes.md +1 -0
  31. package/dist/docs/api/operations/select_rows.md +1 -0
  32. package/dist/docs/api/operations/semantic_search.md +1 -0
  33. package/dist/docs/api/operations/table_changes.md +1 -0
  34. package/dist/docs/api/operations/tags/queries.md +1 -0
  35. package/dist/docs/api/operations/tags/tokens.md +1 -1
  36. package/dist/docs/api/operations/tokens_create.md +1 -0
  37. package/dist/docs/api/operations/tokens_update.md +2 -1
  38. package/dist/docs/api.md +5 -4
  39. package/dist/docs/develop/build-an-app.md +2 -1
  40. package/dist/docs/develop/change-feed-and-webhooks.md +1 -1
  41. package/dist/docs/develop/http-api.md +1 -1
  42. package/dist/docs/guides/data-quality/check-constraints.md +10 -10
  43. package/dist/docs/guides/data-quality/hand-edits.md +8 -8
  44. package/dist/docs/guides/database-objects/bases.md +11 -11
  45. package/dist/docs/guides/database-objects/catalogs-and-schemas.md +30 -10
  46. package/dist/docs/guides/database-objects/columns.md +243 -40
  47. package/dist/docs/guides/database-objects/relations.md +28 -28
  48. package/dist/docs/guides/database-objects/tables.md +167 -43
  49. package/dist/docs/guides/database-objects/views.md +44 -44
  50. package/dist/docs/guides/history/change-data-feed.md +34 -34
  51. package/dist/docs/guides/history/journal-and-undo.md +12 -12
  52. package/dist/docs/guides/history/restore.md +20 -20
  53. package/dist/docs/guides/history/table-history.md +31 -31
  54. package/dist/docs/guides/read-and-write/automatic-links.md +15 -15
  55. package/dist/docs/guides/read-and-write/import-notes.md +20 -20
  56. package/dist/docs/guides/read-and-write/joins-and-aggregates.md +7 -7
  57. package/dist/docs/guides/read-and-write/read-and-filter.md +10 -10
  58. package/dist/docs/guides/read-and-write/write-rows.md +10 -10
  59. package/dist/docs/guides/search/hybrid.md +162 -0
  60. package/dist/docs/guides/search/text.md +1 -1
  61. package/dist/docs/guides/security/security-model.md +5 -3
  62. package/dist/docs/guides/security/tokens.md +121 -8
  63. package/dist/docs/reference/cli.md +1 -1
  64. package/dist/docs/reference/glossary.md +1 -1
  65. package/dist/docs/reference/operations/auxiliary.md +3 -3
  66. package/dist/docs/reference/operations/queries.md +16 -0
  67. package/dist/docs/reference/operations/rows.md +1 -1
  68. package/dist/docs/reference/operations/schema.md +5 -5
  69. package/dist/docs/reference/operations.md +6 -5
  70. package/dist/docs/release-notes.md +59 -0
  71. package/dist/docs/start/connect-agents.md +10 -3
  72. package/package.json +1 -1
@@ -41,7 +41,7 @@ Answer:
41
41
  "ok": true,
42
42
  "op": "create_view",
43
43
  "planned_texts": ["datanotes/metastore.yaml"],
44
- "migration_id": "20261020T173838-create_view-create-view-main-public-vw_rec"
44
+ "migration_id": "20261024T063913-create_view-create-view-main-public-vw_rec"
45
45
  }
46
46
  ```
47
47
 
@@ -65,16 +65,16 @@ Answer:
65
65
  "total": 2,
66
66
  "rows": [
67
67
  {
68
- "path": "datanotes/main/public/watch/2026-10-18T2030.md",
68
+ "path": "datanotes/main/public/watch/2026-10-22T2030.md",
69
69
  "film": "[[The Gold Rush]]",
70
- "occurred_at": "2026-10-18T20:30",
70
+ "occurred_at": "2026-10-22T20:30",
71
71
  "where": "home",
72
72
  "place": "my living room"
73
73
  },
74
74
  {
75
- "path": "datanotes/main/public/watch/2026-10-15T2115.md",
75
+ "path": "datanotes/main/public/watch/2026-10-19T2115.md",
76
76
  "film": "[[Charade]]",
77
- "occurred_at": "2026-10-15T21:15",
77
+ "occurred_at": "2026-10-19T21:15",
78
78
  "where": "home",
79
79
  "place": "my living room"
80
80
  }
@@ -156,7 +156,7 @@ Answer:
156
156
  "ok": true,
157
157
  "op": "create_view",
158
158
  "planned_texts": ["datanotes/metastore.yaml"],
159
- "migration_id": "20261020T173838-create_view-create-view-main-public-vw_rec-2"
159
+ "migration_id": "20261024T063914-create_view-create-view-main-public-vw_rec"
160
160
  }
161
161
  ```
162
162
 
@@ -194,7 +194,7 @@ Answer:
194
194
  "ok": true,
195
195
  "op": "create_view",
196
196
  "planned_texts": ["datanotes/metastore.yaml"],
197
- "migration_id": "20261020T173838-create_view-create-view-main-public-vw_las"
197
+ "migration_id": "20261024T063914-create_view-create-view-main-public-vw_las"
198
198
  }
199
199
  ```
200
200
 
@@ -214,59 +214,59 @@ Answer (65 lines)
214
214
  {
215
215
  "path": "datanotes/main/public/film/Night of the Living Dead.md",
216
216
  "title": "Night of the Living Dead",
217
- "watched_on": "2026-10-19",
217
+ "watched_on": "2026-10-23",
218
218
  "cast": [
219
219
  {
220
220
  "path": "datanotes/main/public/actor/Duane Jones.md",
221
221
  "table": "main.public.actor",
222
- "id": "01a15a64-cd02-7854-912e-cabd75c26751",
222
+ "id": "01a16ca2-896a-723d-9bf0-d5abc6f8bbc4",
223
223
  "name": "Duane Jones",
224
224
  "born": "1937-04-02"
225
225
  }
226
226
  ],
227
227
  "viewing": [
228
- { "path": "datanotes/main/public/watch/2026-10-19T2200.md", "where": "cinema" }
228
+ { "path": "datanotes/main/public/watch/2026-10-23T2200.md", "where": "cinema" }
229
229
  ]
230
230
  },
231
231
  {
232
232
  "path": "datanotes/main/public/film/The Gold Rush.md",
233
233
  "title": "The Gold Rush",
234
- "watched_on": "2026-10-18",
234
+ "watched_on": "2026-10-22",
235
235
  "cast": [
236
236
  {
237
237
  "path": "datanotes/main/public/actor/Charlie Chaplin.md",
238
238
  "table": "main.public.actor",
239
- "id": "01a15a64-cce6-7e75-ad76-6a1acf6fdf25",
239
+ "id": "01a16ca2-8934-7eb4-827e-5043b7fcfd56",
240
240
  "name": "Charlie Chaplin",
241
241
  "born": "1889-04-16"
242
242
  }
243
243
  ],
244
244
  "viewing": [
245
- { "path": "datanotes/main/public/watch/2026-10-18T2030.md", "where": "home" }
245
+ { "path": "datanotes/main/public/watch/2026-10-22T2030.md", "where": "home" }
246
246
  ]
247
247
  },
248
248
  {
249
249
  "path": "datanotes/main/public/film/Charade.md",
250
250
  "title": "Charade",
251
- "watched_on": "2026-10-15",
251
+ "watched_on": "2026-10-19",
252
252
  "cast": [
253
253
  {
254
254
  "path": "datanotes/main/public/actor/Cary Grant.md",
255
255
  "table": "main.public.actor",
256
- "id": "01a15a64-ccf1-7ea6-a4ba-74e39aef4496",
256
+ "id": "01a16ca2-8944-7dd4-944e-5fcac42b9d73",
257
257
  "name": "Cary Grant",
258
258
  "born": "1904-01-18"
259
259
  },
260
260
  {
261
261
  "path": "datanotes/main/public/actor/Audrey Hepburn.md",
262
262
  "table": "main.public.actor",
263
- "id": "01a15a64-ccfc-73b5-8bf8-e5a988156438",
263
+ "id": "01a16ca2-895c-7e12-9674-74302f0e6d67",
264
264
  "name": "Audrey Hepburn",
265
265
  "born": "1929-05-04"
266
266
  }
267
267
  ],
268
268
  "viewing": [
269
- { "path": "datanotes/main/public/watch/2026-10-15T2115.md", "where": "home" }
269
+ { "path": "datanotes/main/public/watch/2026-10-19T2115.md", "where": "home" }
270
270
  ]
271
271
  }
272
272
  ],
@@ -313,7 +313,7 @@ Answer:
313
313
  "ok": true,
314
314
  "op": "create_view",
315
315
  "planned_texts": ["datanotes/metastore.yaml"],
316
- "migration_id": "20261020T173838-create_view-create-view-main-public-vw_mos"
316
+ "migration_id": "20261024T063914-create_view-create-view-main-public-vw_mos"
317
317
  }
318
318
  ```
319
319
 
@@ -382,7 +382,7 @@ Answer:
382
382
  "ok": true,
383
383
  "op": "create_view",
384
384
  "planned_texts": ["datanotes/metastore.yaml"],
385
- "migration_id": "20261020T173838-create_view-create-view-main-public-vw_lat"
385
+ "migration_id": "20261024T063914-create_view-create-view-main-public-vw_lat"
386
386
  }
387
387
  ```
388
388
 
@@ -400,59 +400,59 @@ Answer (64 lines)
400
400
  "total": 4,
401
401
  "rows": [
402
402
  {
403
- "path": "datanotes/main/public/watch/2026-10-19T2200.md",
403
+ "path": "datanotes/main/public/watch/2026-10-23T2200.md",
404
404
  "film": {
405
405
  "path": "datanotes/main/public/film/Night of the Living Dead.md",
406
406
  "table": "main.public.film",
407
- "id": "01a15a64-cd43-7e4e-8275-3d766d831eab",
407
+ "id": "01a16ca2-89d7-75b2-985e-231483636e52",
408
408
  "title": "Night of the Living Dead",
409
409
  "year": 1968,
410
410
  "minutes": 96,
411
411
  "status": "watched",
412
412
  "rating": 4,
413
- "watched_on": "2026-10-19",
413
+ "watched_on": "2026-10-23",
414
414
  "director": "George A. Romero",
415
415
  "cast": ["[[Duane Jones]]"]
416
416
  },
417
- "occurred_at": "2026-10-19T22:00",
417
+ "occurred_at": "2026-10-23T22:00",
418
418
  "where": "cinema",
419
419
  "_source": "watch"
420
420
  },
421
421
  {
422
- "path": "datanotes/main/public/watch/2026-10-18T2030.md",
422
+ "path": "datanotes/main/public/watch/2026-10-22T2030.md",
423
423
  "film": {
424
424
  "path": "datanotes/main/public/film/The Gold Rush.md",
425
425
  "table": "main.public.film",
426
- "id": "01a15a64-cd27-7bc5-ac61-1712f0e17cb4",
426
+ "id": "01a16ca2-8998-78ea-87d6-04d333028e0c",
427
427
  "title": "The Gold Rush",
428
428
  "year": 1925,
429
429
  "minutes": 95,
430
430
  "status": "watched",
431
431
  "rating": 5,
432
- "watched_on": "2026-10-18",
432
+ "watched_on": "2026-10-22",
433
433
  "director": "Charlie Chaplin",
434
434
  "cast": ["[[Charlie Chaplin]]"]
435
435
  },
436
- "occurred_at": "2026-10-18T20:30",
436
+ "occurred_at": "2026-10-22T20:30",
437
437
  "where": "home",
438
438
  "_source": "watch"
439
439
  },
440
440
  {
441
- "path": "datanotes/main/public/watch/2026-10-15T2115.md",
441
+ "path": "datanotes/main/public/watch/2026-10-19T2115.md",
442
442
  "film": {
443
443
  "path": "datanotes/main/public/film/Charade.md",
444
444
  "table": "main.public.film",
445
- "id": "01a15a64-cd3c-767c-8c4e-bd40e8b9597f",
445
+ "id": "01a16ca2-89b8-76fb-bd2a-22824fd5062c",
446
446
  "title": "Charade",
447
447
  "year": 1963,
448
448
  "minutes": 113,
449
449
  "status": "watched",
450
450
  "rating": 4,
451
- "watched_on": "2026-10-15",
451
+ "watched_on": "2026-10-19",
452
452
  "director": "Stanley Donen",
453
453
  "cast": ["[[Cary Grant]]", "[[Audrey Hepburn]]"]
454
454
  },
455
- "occurred_at": "2026-10-15T21:15",
455
+ "occurred_at": "2026-10-19T21:15",
456
456
  "where": "home",
457
457
  "_source": "watch"
458
458
  }
@@ -476,14 +476,14 @@ Answer:
476
476
  "ok": true,
477
477
  "op": "drop_view",
478
478
  "planned_texts": ["datanotes/metastore.yaml"],
479
- "migration_id": "20261020T173838-drop_view-drop-view-main-public-vw_most_"
479
+ "migration_id": "20261024T063914-drop_view-drop-view-main-public-vw_most_"
480
480
  }
481
481
  ```
482
482
 
483
483
  **`undo_migration`**
484
484
 
485
485
  ```json
486
- { "migration_id": "20261020T173838-drop_view-drop-view-main-public-vw_most_" }
486
+ { "migration_id": "20261024T063914-drop_view-drop-view-main-public-vw_most_" }
487
487
  ```
488
488
 
489
489
  Answer:
@@ -492,8 +492,8 @@ Answer:
492
492
  {
493
493
  "ok": true,
494
494
  "op": "undo_migration",
495
- "undoes": "20261020T173838-drop_view-drop-view-main-public-vw_most_",
496
- "migration_id": "20261020T173838-undo_migration-undo-20261020t173838-drop_view",
495
+ "undoes": "20261024T063914-drop_view-drop-view-main-public-vw_most_",
496
+ "migration_id": "20261024T063914-undo_migration-undo-20261024t063914-drop_view",
497
497
  "conflicts": [],
498
498
  "failed": []
499
499
  }
@@ -526,7 +526,7 @@ Answer:
526
526
  "ok": true,
527
527
  "op": "create_view",
528
528
  "planned_texts": ["datanotes/metastore.yaml"],
529
- "migration_id": "20261020T173838-create_view-create-view-main-reports-vw_wa"
529
+ "migration_id": "20261024T063914-create_view-create-view-main-reports-vw_wa"
530
530
  }
531
531
  ```
532
532
 
@@ -619,7 +619,7 @@ Answer:
619
619
  ```json
620
620
  {
621
621
  "ok": true,
622
- "migration_id": "20261020T173838-batch-views-for-film-and-actor-notes",
622
+ "migration_id": "20261024T063914-batch-views-for-film-and-actor-notes",
623
623
  "steps": [
624
624
  { "op": "create_view", "ok": true },
625
625
  { "op": "create_view", "ok": true },
@@ -645,13 +645,13 @@ Answer:
645
645
  "total": 2,
646
646
  "rows": [
647
647
  {
648
- "path": "datanotes/main/public/watch/2026-10-01T2100.md",
649
- "occurred_at": "2026-10-01T21:00",
648
+ "path": "datanotes/main/public/watch/2026-10-05T2100.md",
649
+ "occurred_at": "2026-10-05T21:00",
650
650
  "where": "home"
651
651
  },
652
652
  {
653
- "path": "datanotes/main/public/watch/2026-10-18T2030.md",
654
- "occurred_at": "2026-10-18T20:30",
653
+ "path": "datanotes/main/public/watch/2026-10-22T2030.md",
654
+ "occurred_at": "2026-10-22T20:30",
655
655
  "where": "home"
656
656
  }
657
657
  ],
@@ -679,9 +679,9 @@ Answer:
679
679
  "total": 1,
680
680
  "rows": [
681
681
  {
682
- "path": "datanotes/main/public/watch/2026-10-18T2030.md",
682
+ "path": "datanotes/main/public/watch/2026-10-22T2030.md",
683
683
  "film": "[[The Gold Rush]]",
684
- "occurred_at": "2026-10-18T20:30",
684
+ "occurred_at": "2026-10-22T20:30",
685
685
  "where": "home"
686
686
  }
687
687
  ],
@@ -766,7 +766,7 @@ The engine wrote this page’s views under `views:` in their schema, next to the
766
766
 
767
767
  ```yaml
768
768
  # Metastore (Datanotes): catalogs, schemas, tables, columns, views.
769
- id: 01a15a64-ccbd-7663-822f-4b752a5e5880
769
+ id: 01a16ca2-8907-71b2-9310-d55e75339146
770
770
  config:
771
771
  history: true
772
772
 
@@ -23,56 +23,56 @@ Answer (74 lines)
23
23
  "events": [
24
24
  {
25
25
  "seq": 3,
26
- "at": "2026-10-20T17:38:45.800Z",
26
+ "at": "2026-10-24T06:39:21.559Z",
27
27
  "table": "main.public.film",
28
28
  "kind": "insert",
29
29
  "op": "insert_row",
30
30
  "path": "datanotes/main/public/film/Nosferatu.md",
31
- "row_id": "01a15a64-eba4-78a0-8889-dbeb57ac2389",
31
+ "row_id": "01a16ca2-a7d5-7737-94a4-665de1585de4",
32
32
  "changes": {
33
- "id": { "after": "01a15a64-eba4-78a0-8889-dbeb57ac2389" },
33
+ "id": { "after": "01a16ca2-a7d5-7737-94a4-665de1585de4" },
34
34
  "title": { "after": "Nosferatu" },
35
35
  "status": { "after": "to watch" }
36
36
  },
37
37
  "source": "engine",
38
38
  "row": {
39
- "id": "01a15a64-eba4-78a0-8889-dbeb57ac2389",
39
+ "id": "01a16ca2-a7d5-7737-94a4-665de1585de4",
40
40
  "title": "Nosferatu",
41
41
  "status": "to watch"
42
42
  },
43
43
  "actor": { "session": "history", "harness": "docs-example", "auth": "owner" },
44
- "migration_id": "20261020T173845-insert_row-insert-into-film"
44
+ "migration_id": "20261024T063921-insert_row-insert-into-film"
45
45
  },
46
46
  {
47
47
  "seq": 4,
48
- "at": "2026-10-20T17:38:45.805Z",
48
+ "at": "2026-10-24T06:39:21.563Z",
49
49
  "table": "main.public.film",
50
50
  "kind": "insert",
51
51
  "op": "insert_row",
52
52
  "path": "datanotes/main/public/film/Metropolis.md",
53
- "row_id": "01a15a64-ebaa-7f66-815e-0e853c3f9723",
53
+ "row_id": "01a16ca2-a7d9-7d07-bb9a-d508ec25aa9d",
54
54
  "changes": {
55
- "id": { "after": "01a15a64-ebaa-7f66-815e-0e853c3f9723" },
55
+ "id": { "after": "01a16ca2-a7d9-7d07-bb9a-d508ec25aa9d" },
56
56
  "title": { "after": "Metropolis" },
57
57
  "status": { "after": "to watch" }
58
58
  },
59
59
  "source": "engine",
60
60
  "row": {
61
- "id": "01a15a64-ebaa-7f66-815e-0e853c3f9723",
61
+ "id": "01a16ca2-a7d9-7d07-bb9a-d508ec25aa9d",
62
62
  "title": "Metropolis",
63
63
  "status": "to watch"
64
64
  },
65
65
  "actor": { "session": "history", "harness": "docs-example", "auth": "owner" },
66
- "migration_id": "20261020T173845-insert_row-insert-into-film-2"
66
+ "migration_id": "20261024T063921-insert_row-insert-into-film-2"
67
67
  },
68
68
  {
69
69
  "seq": 5,
70
- "at": "2026-10-20T17:38:45.812Z",
70
+ "at": "2026-10-24T06:39:21.567Z",
71
71
  "table": "main.public.film",
72
72
  "kind": "update",
73
73
  "op": "update_row",
74
74
  "path": "datanotes/main/public/film/Nosferatu.md",
75
- "row_id": "01a15a64-eba4-78a0-8889-dbeb57ac2389",
75
+ "row_id": "01a16ca2-a7d5-7737-94a4-665de1585de4",
76
76
  "changes": {
77
77
  "status": { "before": "to watch", "after": "watched" },
78
78
  "rating": { "after": 4 },
@@ -80,14 +80,14 @@ Answer (74 lines)
80
80
  },
81
81
  "source": "engine",
82
82
  "row": {
83
- "id": "01a15a64-eba4-78a0-8889-dbeb57ac2389",
83
+ "id": "01a16ca2-a7d5-7737-94a4-665de1585de4",
84
84
  "title": "Nosferatu",
85
85
  "status": "watched",
86
86
  "rating": 4,
87
87
  "watched_on": "2026-10-03"
88
88
  },
89
89
  "actor": { "session": "history", "harness": "docs-example", "auth": "owner" },
90
- "migration_id": "20261020T173845-update_row-update-film"
90
+ "migration_id": "20261024T063921-update_row-update-film"
91
91
  }
92
92
  ],
93
93
  "last": 5,
@@ -116,25 +116,25 @@ Answer:
116
116
  "events": [
117
117
  {
118
118
  "seq": 14,
119
- "at": "2026-10-20T17:38:50.383Z",
119
+ "at": "2026-10-24T06:39:26.157Z",
120
120
  "table": "main.public.film",
121
121
  "kind": "insert",
122
122
  "op": "insert_row",
123
123
  "path": "datanotes/main/public/film/His Girl Friday.md",
124
- "row_id": "01a15a64-fd8c-7044-91f6-47834fc6801b",
124
+ "row_id": "01a16ca2-b9cb-7116-8d88-7d5e7edbc95f",
125
125
  "changes": {
126
- "id": { "after": "01a15a64-fd8c-7044-91f6-47834fc6801b" },
126
+ "id": { "after": "01a16ca2-b9cb-7116-8d88-7d5e7edbc95f" },
127
127
  "title": { "after": "His Girl Friday" },
128
128
  "status": { "after": "to watch" }
129
129
  },
130
130
  "source": "engine",
131
131
  "row": {
132
- "id": "01a15a64-fd8c-7044-91f6-47834fc6801b",
132
+ "id": "01a16ca2-b9cb-7116-8d88-7d5e7edbc95f",
133
133
  "title": "His Girl Friday",
134
134
  "status": "to watch"
135
135
  },
136
136
  "actor": { "session": "history", "harness": "docs-example", "auth": "owner" },
137
- "migration_id": "20261020T173850-insert_row-insert-into-film"
137
+ "migration_id": "20261024T063926-insert_row-insert-into-film"
138
138
  }
139
139
  ],
140
140
  "last": 14,
@@ -149,19 +149,19 @@ Answer:
149
149
  **`create_webhook`**
150
150
 
151
151
  ```json
152
- { "url": "http://127.0.0.1:34423/datanotes-hook", "tables": ["film"] }
152
+ { "url": "http://127.0.0.1:41077/datanotes-hook", "tables": ["film"] }
153
153
  ```
154
154
 
155
155
  Answer:
156
156
 
157
157
  ```json
158
158
  {
159
- "id": "wh_a32ea056d332",
160
- "url": "http://127.0.0.1:34423/datanotes-hook",
159
+ "id": "wh_670ae5a26400",
160
+ "url": "http://127.0.0.1:41077/datanotes-hook",
161
161
  "tables": ["film"],
162
162
  "enabled": true,
163
163
  "cursor": 14,
164
- "created_at": "2026-10-20T17:38:50.388Z",
164
+ "created_at": "2026-10-24T06:39:26.161Z",
165
165
  "failures": 0,
166
166
  "status": "ok",
167
167
  "secret": "<shown once>"
@@ -183,28 +183,28 @@ The receiver got this request:
183
183
  ```json
184
184
  {
185
185
  "headers": {
186
- "x-datanotes-signature": "sha256=fc7f73741881ea46714a5f8165612f9fbf080f1b657a1325e90eb7906fec9c7a"
186
+ "x-datanotes-signature": "sha256=25c7d2babbac4ce0a36cfdcd8bb86ce1bb234a64c1c19feb6caaa83daab91715"
187
187
  },
188
188
  "body": {
189
- "webhook": "wh_a32ea056d332",
189
+ "webhook": "wh_670ae5a26400",
190
190
  "events": [
191
191
  {
192
192
  "seq": 15,
193
- "at": "2026-10-20T17:38:50.394Z",
193
+ "at": "2026-10-24T06:39:26.165Z",
194
194
  "table": "main.public.film",
195
195
  "kind": "update",
196
196
  "op": "update_row",
197
197
  "path": "datanotes/main/public/film/His Girl Friday.md",
198
- "row_id": "01a15a64-fd8c-7044-91f6-47834fc6801b",
198
+ "row_id": "01a16ca2-b9cb-7116-8d88-7d5e7edbc95f",
199
199
  "changes": { "status": { "before": "to watch", "after": "watched" } },
200
200
  "source": "engine",
201
201
  "row": {
202
- "id": "01a15a64-fd8c-7044-91f6-47834fc6801b",
202
+ "id": "01a16ca2-b9cb-7116-8d88-7d5e7edbc95f",
203
203
  "title": "His Girl Friday",
204
204
  "status": "watched"
205
205
  },
206
206
  "actor": { "session": "history", "harness": "docs-example", "auth": "owner" },
207
- "migration_id": "20261020T173850-update_row-update-film"
207
+ "migration_id": "20261024T063926-update_row-update-film"
208
208
  }
209
209
  ],
210
210
  "last": 15
@@ -220,13 +220,13 @@ Answer:
220
220
  {
221
221
  "webhooks": [
222
222
  {
223
- "id": "wh_a32ea056d332",
224
- "url": "http://127.0.0.1:34423/datanotes-hook",
223
+ "id": "wh_670ae5a26400",
224
+ "url": "http://127.0.0.1:41077/datanotes-hook",
225
225
  "tables": ["film"],
226
226
  "enabled": true,
227
227
  "cursor": 15,
228
- "created_at": "2026-10-20T17:38:50.388Z",
229
- "last_delivery": "2026-10-20T17:38:50.399Z",
228
+ "created_at": "2026-10-24T06:39:26.161Z",
229
+ "last_delivery": "2026-10-24T06:39:26.168Z",
230
230
  "failures": 0,
231
231
  "status": "ok"
232
232
  }
@@ -237,7 +237,7 @@ Answer:
237
237
  **`delete_webhook`**
238
238
 
239
239
  ```json
240
- { "id": "wh_a32ea056d332" }
240
+ { "id": "wh_670ae5a26400" }
241
241
  ```
242
242
 
243
243
  Answer:
@@ -87,11 +87,11 @@ Answer:
87
87
  "total": 13,
88
88
  "migrations": [
89
89
  {
90
- "migration_id": "20261020T173833-delete_rows-archive-1-rows-of-film",
90
+ "migration_id": "20261024T063907-delete_rows-archive-1-rows-of-film",
91
91
  "op": "delete_rows",
92
92
  "summary": "archive 1 rows of film",
93
93
  "table": "main.public.film",
94
- "executed_at": "2026-10-20T17:38:33.057Z",
94
+ "executed_at": "2026-10-24T06:39:07.729Z",
95
95
  "notes_changed": 0,
96
96
  "files_changed": 1,
97
97
  "undone": false,
@@ -99,11 +99,11 @@ Answer:
99
99
  "by": "docs-example"
100
100
  },
101
101
  {
102
- "migration_id": "20261020T173833-merge_rows-merge-2-rows-into-film",
102
+ "migration_id": "20261024T063907-merge_rows-merge-2-rows-into-film",
103
103
  "op": "merge_rows",
104
104
  "summary": "merge 2 rows into film",
105
105
  "table": "main.public.film",
106
- "executed_at": "2026-10-20T17:38:33.044Z",
106
+ "executed_at": "2026-10-24T06:39:07.720Z",
107
107
  "notes_changed": 1,
108
108
  "files_changed": 1,
109
109
  "undone": false,
@@ -111,11 +111,11 @@ Answer:
111
111
  "by": "docs-example"
112
112
  },
113
113
  {
114
- "migration_id": "20261020T173833-update_rows-update-film",
114
+ "migration_id": "20261024T063907-update_rows-update-film",
115
115
  "op": "update_rows",
116
116
  "summary": "update film",
117
117
  "table": "main.public.film",
118
- "executed_at": "2026-10-20T17:38:33.030Z",
118
+ "executed_at": "2026-10-24T06:39:07.710Z",
119
119
  "notes_changed": 3,
120
120
  "files_changed": 0,
121
121
  "undone": false,
@@ -129,7 +129,7 @@ Answer:
129
129
  **`undo_migration`**
130
130
 
131
131
  ```json
132
- { "migration_id": "20261020T173833-delete_rows-archive-1-rows-of-film" }
132
+ { "migration_id": "20261024T063907-delete_rows-archive-1-rows-of-film" }
133
133
  ```
134
134
 
135
135
  Answer:
@@ -138,8 +138,8 @@ Answer:
138
138
  {
139
139
  "ok": true,
140
140
  "op": "undo_migration",
141
- "undoes": "20261020T173833-delete_rows-archive-1-rows-of-film",
142
- "migration_id": "20261020T173833-undo_migration-undo-20261020t173833-delete_ro",
141
+ "undoes": "20261024T063907-delete_rows-archive-1-rows-of-film",
142
+ "migration_id": "20261024T063907-undo_migration-undo-20261024t063907-delete_ro",
143
143
  "conflicts": [],
144
144
  "failed": []
145
145
  }
@@ -197,7 +197,7 @@ Answer:
197
197
  }
198
198
  ],
199
199
  "commits": [{ "table": "main.public.film", "version": 14, "operation": "UPDATE" }],
200
- "migration_id": "20261020T173833-update_row-update-film-4"
200
+ "migration_id": "20261024T063907-update_row-update-film-5"
201
201
  }
202
202
  ```
203
203
 
@@ -216,7 +216,7 @@ Then someone changes the rating again:
216
216
  **`undo_migration`**
217
217
 
218
218
  ```json
219
- { "migration_id": "20261020T173833-update_row-update-film-4" }
219
+ { "migration_id": "20261024T063907-update_row-update-film-5" }
220
220
  ```
221
221
 
222
222
  Refused:
@@ -249,7 +249,7 @@ The undo of an insert trashes the new note only while it’s as the insert left
249
249
  **`undo_migration`**
250
250
 
251
251
  ```json
252
- { "migration_id": "20261020T173833-insert_row-insert-into-film" }
252
+ { "migration_id": "20261024T063907-insert_row-insert-into-film-6" }
253
253
  ```
254
254
 
255
255
  Refused: