datanotes 3.0.0 → 3.2.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.
- package/README.md +1 -5
- package/dist/api/client.d.cts +37 -4
- package/dist/api/client.d.ts +37 -4
- package/dist/api/index.cjs +563 -60
- package/dist/api/index.d.cts +3 -2
- package/dist/api/index.d.ts +3 -2
- package/dist/api/index.js +563 -60
- package/dist/api/mcp.cjs +181 -11
- package/dist/api/mcp.js +181 -11
- package/dist/api/otlp.d.cts +63 -15
- package/dist/api/otlp.d.ts +63 -15
- package/dist/api/redact.d.cts +25 -0
- package/dist/api/redact.d.ts +25 -0
- package/dist/api/tokens.d.cts +5 -0
- package/dist/api/tokens.d.ts +5 -0
- package/dist/api/tracing.d.cts +107 -0
- package/dist/api/tracing.d.ts +107 -0
- package/dist/datanotes.cjs +9934 -2656
- package/dist/docs/administration/limits.md +96 -12
- package/dist/docs/administration/run-the-service.md +18 -0
- package/dist/docs/api/operations/add_column.md +1 -0
- package/dist/docs/api/operations/add_constraint.md +2 -0
- package/dist/docs/api/operations/alter_column.md +1 -1
- package/dist/docs/api/operations/alter_table.md +3 -2
- package/dist/docs/api/operations/check_table.md +1 -1
- package/dist/docs/api/operations/create_table.md +3 -1
- package/dist/docs/api/operations/describe_table.md +1 -1
- package/dist/docs/api/operations/graph_neighbors.md +4 -2
- package/dist/docs/api/operations/graph_path.md +3 -3
- package/dist/docs/api/operations/graph_traverse.md +2 -2
- package/dist/docs/api/operations/insert_row.md +2 -2
- package/dist/docs/api/operations/record_tool_call.md +1 -0
- package/dist/docs/api/operations/tags/queries.md +2 -2
- package/dist/docs/api/operations/tags/rows-dml.md +1 -1
- package/dist/docs/api.md +4 -4
- package/dist/docs/develop/concurrency.md +36 -1
- package/dist/docs/develop/http-api.md +11 -1
- package/dist/docs/develop/telemetry.md +224 -25
- package/dist/docs/guides/data-quality/check-constraints.md +14 -13
- package/dist/docs/guides/data-quality/hand-edits.md +10 -10
- package/dist/docs/guides/database-objects/bases.md +11 -11
- package/dist/docs/guides/database-objects/catalogs-and-schemas.md +16 -10
- package/dist/docs/guides/database-objects/columns.md +38 -38
- package/dist/docs/guides/database-objects/relations.md +173 -36
- package/dist/docs/guides/database-objects/tables.md +90 -109
- package/dist/docs/guides/database-objects/views.md +44 -44
- package/dist/docs/guides/history/back-up.md +12 -4
- package/dist/docs/guides/history/change-data-feed.md +34 -34
- package/dist/docs/guides/history/journal-and-undo.md +12 -12
- package/dist/docs/guides/history/restore.md +20 -20
- package/dist/docs/guides/history/table-history.md +31 -31
- package/dist/docs/guides/history/vacuum.md +1 -10
- package/dist/docs/guides/read-and-write/automatic-links.md +15 -15
- package/dist/docs/guides/read-and-write/import-notes.md +21 -21
- package/dist/docs/guides/read-and-write/joins-and-aggregates.md +7 -7
- package/dist/docs/guides/read-and-write/read-and-filter.md +10 -10
- package/dist/docs/guides/read-and-write/write-rows.md +10 -10
- package/dist/docs/guides/search/link-graph.md +95 -0
- package/dist/docs/guides/search/text.md +1 -1
- package/dist/docs/guides/security/who-did-what.md +2 -0
- package/dist/docs/reference/cli.md +10 -3
- package/dist/docs/reference/compatibility.md +33 -13
- package/dist/docs/reference/errors.md +1 -1
- package/dist/docs/reference/operations/auxiliary.md +2 -2
- package/dist/docs/reference/operations/queries.md +3 -3
- package/dist/docs/reference/operations/rows.md +1 -1
- package/dist/docs/reference/operations/schema.md +15 -11
- package/dist/docs/reference/operations.md +39 -39
- package/dist/docs/reference/settings.md +37 -25
- package/dist/docs/release-notes.md +145 -0
- package/dist/docs/start/how-it-works.md +35 -3
- package/dist/docs/start/quick-start.md +2 -0
- package/package.json +3 -2
|
@@ -58,7 +58,7 @@ Answer:
|
|
|
58
58
|
```json
|
|
59
59
|
{
|
|
60
60
|
"ok": true,
|
|
61
|
-
"migration_id": "
|
|
61
|
+
"migration_id": "20261019T040638-create_table-create-table-main-public-film",
|
|
62
62
|
"summary": null
|
|
63
63
|
}
|
|
64
64
|
```
|
|
@@ -67,7 +67,7 @@ Answer:
|
|
|
67
67
|
|
|
68
68
|
```yaml
|
|
69
69
|
# Metastore (Datanotes): catalogs, schemas, tables, columns, views.
|
|
70
|
-
id:
|
|
70
|
+
id: 01a15257-09b6-7466-9ee6-59ac45171fa4
|
|
71
71
|
config:
|
|
72
72
|
history: true
|
|
73
73
|
|
|
@@ -305,10 +305,11 @@ Answer (83 lines)
|
|
|
305
305
|
|
|
306
306
|
## Add fixed front matter keys, a note template and tags
|
|
307
307
|
|
|
308
|
-
`create_table` takes
|
|
308
|
+
`create_table` takes four more arguments:
|
|
309
309
|
|
|
310
310
|
* **`fields`**: front matter keys every new row gets with a fixed value and no checks, such as `cssclasses`, which styles the notes in Obsidian
|
|
311
311
|
* **`row_template`**: the text of every new row’s note, with `{column}` placeholders
|
|
312
|
+
* **`instructions`**: how an agent fills a row, such as which columns come first and what to ask you
|
|
312
313
|
* **`tags`**: key/value labels for the table, which `list_tables` and `describe_table` return
|
|
313
314
|
|
|
314
315
|
**`create_table`**
|
|
@@ -353,6 +354,7 @@ Answer (83 lines)
|
|
|
353
354
|
"filename": "{occurred_at:YYYY-MM-DD} {film}",
|
|
354
355
|
"fields": { "cssclasses": ["watch"] },
|
|
355
356
|
"row_template": "Watched {film} ({where}).\n\n## Thoughts\n",
|
|
357
|
+
"instructions": "1. Ask me which film I watched and where.\n2. Fill `occurred_at` only when I give a time: it defaults to now.\n",
|
|
356
358
|
"tags": { "area": "films" }
|
|
357
359
|
}
|
|
358
360
|
```
|
|
@@ -377,24 +379,24 @@ Answer:
|
|
|
377
379
|
"ok": true,
|
|
378
380
|
"op": "insert_row",
|
|
379
381
|
"files_created": 1,
|
|
380
|
-
"planned_creates": ["datanotes/main/public/watch/2026-10-
|
|
382
|
+
"planned_creates": ["datanotes/main/public/watch/2026-10-19 Nosferatu.md"],
|
|
381
383
|
"commits": [{ "table": "main.public.watch", "version": 1, "operation": "WRITE" }],
|
|
382
|
-
"migration_id": "
|
|
384
|
+
"migration_id": "20261019T040638-insert_row-insert-into-watch"
|
|
383
385
|
}
|
|
384
386
|
```
|
|
385
387
|
|
|
386
|
-
`datanotes/main/public/watch/2026-10-
|
|
388
|
+
`datanotes/main/public/watch/2026-10-19 Nosferatu.md` now reads:
|
|
387
389
|
|
|
388
390
|
```markdown
|
|
389
391
|
---
|
|
390
392
|
table: main.public.watch
|
|
391
393
|
cssclasses:
|
|
392
394
|
- watch
|
|
393
|
-
id:
|
|
395
|
+
id: 01a15257-0aa0-7f95-8445-28bb94536020
|
|
394
396
|
film: Nosferatu
|
|
395
397
|
where: outdoor screening
|
|
396
398
|
place: the park by the river
|
|
397
|
-
occurred_at: 2026-10-
|
|
399
|
+
occurred_at: 2026-10-19T04:06:38Z
|
|
398
400
|
---
|
|
399
401
|
Watched Nosferatu (outdoor screening).
|
|
400
402
|
|
|
@@ -402,6 +404,46 @@ Watched Nosferatu (outdoor screening).
|
|
|
402
404
|
## Thoughts
|
|
403
405
|
```
|
|
404
406
|
|
|
407
|
+
## Tell agents how to fill a row with `instructions`
|
|
408
|
+
|
|
409
|
+
`describe_table` returns a table’s `instructions`, so an agent reads them before it writes a row. `alter_table` changes them, and `instructions: ""` removes them.
|
|
410
|
+
|
|
411
|
+
**`describe_table`**
|
|
412
|
+
|
|
413
|
+
```json
|
|
414
|
+
{ "table": "watch" }
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Answer:
|
|
418
|
+
|
|
419
|
+
```json
|
|
420
|
+
{
|
|
421
|
+
"qualified": "main.public.watch",
|
|
422
|
+
"instructions": "1. Ask me which film I watched and where.\n2. Fill `occurred_at` only when I give a time: it defaults to now.\n"
|
|
423
|
+
}
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
**`alter_table`**
|
|
427
|
+
|
|
428
|
+
```json
|
|
429
|
+
{
|
|
430
|
+
"table": "watch",
|
|
431
|
+
"instructions": "1. Ask me which film I watched, where and with whom.\n2. Fill `occurred_at` only when I give a time: it defaults to now.\n"
|
|
432
|
+
}
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Answer:
|
|
436
|
+
|
|
437
|
+
```json
|
|
438
|
+
{
|
|
439
|
+
"ok": true,
|
|
440
|
+
"op": "alter_table",
|
|
441
|
+
"planned_texts": ["datanotes/metastore.yaml"],
|
|
442
|
+
"commits": [{ "table": "main.public.watch", "version": 2, "operation": "ALTER TABLE" }],
|
|
443
|
+
"migration_id": "20261019T040638-alter_table-alter-table-main-public-watch"
|
|
444
|
+
}
|
|
445
|
+
```
|
|
446
|
+
|
|
405
447
|
## Set a table’s options when you create it
|
|
406
448
|
|
|
407
449
|
`create_table` also takes the options that `alter_table` changes later. Two of them:
|
|
@@ -465,28 +507,8 @@ Answer:
|
|
|
465
507
|
],
|
|
466
508
|
"planned_moves": [
|
|
467
509
|
{
|
|
468
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000000.
|
|
469
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000000.
|
|
470
|
-
},
|
|
471
|
-
{
|
|
472
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000001.json",
|
|
473
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000001.json"
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000002.json",
|
|
477
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000002.json"
|
|
478
|
-
},
|
|
479
|
-
{
|
|
480
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000003.json",
|
|
481
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000003.json"
|
|
482
|
-
},
|
|
483
|
-
{
|
|
484
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000004.json",
|
|
485
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000004.json"
|
|
486
|
-
},
|
|
487
|
-
{
|
|
488
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000005.json",
|
|
489
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000005.json"
|
|
510
|
+
"from": "store:transaction_log/diary.classics.actors/00000000000000000000.segment.jsonl",
|
|
511
|
+
"to": "store:transaction_log/diary.classics.actor/00000000000000000000.segment.jsonl"
|
|
490
512
|
},
|
|
491
513
|
{
|
|
492
514
|
"from": "datanotes/diary/classics/actors/Max Schreck.md",
|
|
@@ -503,14 +525,14 @@ Answer:
|
|
|
503
525
|
{ "table": "classics.actors", "name": "actor" }
|
|
504
526
|
```
|
|
505
527
|
|
|
506
|
-
Answer
|
|
528
|
+
Answer:
|
|
507
529
|
|
|
508
530
|
```json
|
|
509
531
|
{
|
|
510
532
|
"ok": true,
|
|
511
533
|
"op": "alter_table",
|
|
512
534
|
"notes_changed": 1,
|
|
513
|
-
"files_moved":
|
|
535
|
+
"files_moved": 2,
|
|
514
536
|
"planned_edits": [
|
|
515
537
|
{
|
|
516
538
|
"path": "datanotes/diary/classics/actors/Max Schreck.md",
|
|
@@ -520,28 +542,8 @@ Answer (48 lines)
|
|
|
520
542
|
],
|
|
521
543
|
"planned_moves": [
|
|
522
544
|
{
|
|
523
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000000.
|
|
524
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000000.
|
|
525
|
-
},
|
|
526
|
-
{
|
|
527
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000001.json",
|
|
528
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000001.json"
|
|
529
|
-
},
|
|
530
|
-
{
|
|
531
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000002.json",
|
|
532
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000002.json"
|
|
533
|
-
},
|
|
534
|
-
{
|
|
535
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000003.json",
|
|
536
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000003.json"
|
|
537
|
-
},
|
|
538
|
-
{
|
|
539
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000004.json",
|
|
540
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000004.json"
|
|
541
|
-
},
|
|
542
|
-
{
|
|
543
|
-
"from": "store:transaction_log/diary.classics.actors/00000000000000000005.json",
|
|
544
|
-
"to": "store:transaction_log/diary.classics.actor/00000000000000000005.json"
|
|
545
|
+
"from": "store:transaction_log/diary.classics.actors/00000000000000000000.segment.jsonl",
|
|
546
|
+
"to": "store:transaction_log/diary.classics.actor/00000000000000000000.segment.jsonl"
|
|
545
547
|
},
|
|
546
548
|
{
|
|
547
549
|
"from": "datanotes/diary/classics/actors/Max Schreck.md",
|
|
@@ -552,7 +554,7 @@ Answer (48 lines)
|
|
|
552
554
|
"commits": [
|
|
553
555
|
{ "table": "diary.classics.actor", "version": 6, "operation": "ALTER TABLE" }
|
|
554
556
|
],
|
|
555
|
-
"migration_id": "
|
|
557
|
+
"migration_id": "20261019T040655-alter_table-move-table-diary-classics-acto"
|
|
556
558
|
}
|
|
557
559
|
```
|
|
558
560
|
|
|
@@ -564,14 +566,14 @@ Then move it to a schema of its own:
|
|
|
564
566
|
{ "table": "classics.actor", "catalog": "diary", "schema": "credits" }
|
|
565
567
|
```
|
|
566
568
|
|
|
567
|
-
Answer
|
|
569
|
+
Answer:
|
|
568
570
|
|
|
569
571
|
```json
|
|
570
572
|
{
|
|
571
573
|
"ok": true,
|
|
572
574
|
"op": "alter_table",
|
|
573
575
|
"notes_changed": 1,
|
|
574
|
-
"files_moved":
|
|
576
|
+
"files_moved": 2,
|
|
575
577
|
"planned_edits": [
|
|
576
578
|
{
|
|
577
579
|
"path": "datanotes/diary/classics/actor/Max Schreck.md",
|
|
@@ -581,32 +583,8 @@ Answer (52 lines)
|
|
|
581
583
|
],
|
|
582
584
|
"planned_moves": [
|
|
583
585
|
{
|
|
584
|
-
"from": "store:transaction_log/diary.classics.actor/00000000000000000000.
|
|
585
|
-
"to": "store:transaction_log/diary.credits.actor/00000000000000000000.
|
|
586
|
-
},
|
|
587
|
-
{
|
|
588
|
-
"from": "store:transaction_log/diary.classics.actor/00000000000000000001.json",
|
|
589
|
-
"to": "store:transaction_log/diary.credits.actor/00000000000000000001.json"
|
|
590
|
-
},
|
|
591
|
-
{
|
|
592
|
-
"from": "store:transaction_log/diary.classics.actor/00000000000000000002.json",
|
|
593
|
-
"to": "store:transaction_log/diary.credits.actor/00000000000000000002.json"
|
|
594
|
-
},
|
|
595
|
-
{
|
|
596
|
-
"from": "store:transaction_log/diary.classics.actor/00000000000000000003.json",
|
|
597
|
-
"to": "store:transaction_log/diary.credits.actor/00000000000000000003.json"
|
|
598
|
-
},
|
|
599
|
-
{
|
|
600
|
-
"from": "store:transaction_log/diary.classics.actor/00000000000000000004.json",
|
|
601
|
-
"to": "store:transaction_log/diary.credits.actor/00000000000000000004.json"
|
|
602
|
-
},
|
|
603
|
-
{
|
|
604
|
-
"from": "store:transaction_log/diary.classics.actor/00000000000000000005.json",
|
|
605
|
-
"to": "store:transaction_log/diary.credits.actor/00000000000000000005.json"
|
|
606
|
-
},
|
|
607
|
-
{
|
|
608
|
-
"from": "store:transaction_log/diary.classics.actor/00000000000000000006.json",
|
|
609
|
-
"to": "store:transaction_log/diary.credits.actor/00000000000000000006.json"
|
|
586
|
+
"from": "store:transaction_log/diary.classics.actor/00000000000000000000.segment.jsonl",
|
|
587
|
+
"to": "store:transaction_log/diary.credits.actor/00000000000000000000.segment.jsonl"
|
|
610
588
|
},
|
|
611
589
|
{
|
|
612
590
|
"from": "datanotes/diary/classics/actor/Max Schreck.md",
|
|
@@ -617,7 +595,7 @@ Answer (52 lines)
|
|
|
617
595
|
"commits": [
|
|
618
596
|
{ "table": "diary.credits.actor", "version": 7, "operation": "ALTER TABLE" }
|
|
619
597
|
],
|
|
620
|
-
"migration_id": "
|
|
598
|
+
"migration_id": "20261019T040655-alter_table-move-table-diary-classics-acto-2"
|
|
621
599
|
}
|
|
622
600
|
```
|
|
623
601
|
|
|
@@ -681,7 +659,7 @@ Answer:
|
|
|
681
659
|
"commits": [
|
|
682
660
|
{ "table": "diary.classics.film", "version": 13, "operation": "ALTER TABLE" }
|
|
683
661
|
],
|
|
684
|
-
"migration_id": "
|
|
662
|
+
"migration_id": "20261019T040655-alter_table-alter-table-diary-classics-fil-5"
|
|
685
663
|
}
|
|
686
664
|
```
|
|
687
665
|
|
|
@@ -733,7 +711,7 @@ Answer:
|
|
|
733
711
|
"commits": [
|
|
734
712
|
{ "table": "diary.classics.film", "version": 14, "operation": "ALTER TABLE" }
|
|
735
713
|
],
|
|
736
|
-
"migration_id": "
|
|
714
|
+
"migration_id": "20261019T040655-alter_table-alter-table-diary-classics-fil-6"
|
|
737
715
|
}
|
|
738
716
|
```
|
|
739
717
|
|
|
@@ -775,7 +753,7 @@ Answer:
|
|
|
775
753
|
"commits": [
|
|
776
754
|
{ "table": "diary.classics.film", "version": 15, "operation": "ALTER TABLE" }
|
|
777
755
|
],
|
|
778
|
-
"migration_id": "
|
|
756
|
+
"migration_id": "20261019T040655-alter_table-alter-table-diary-classics-fil-7"
|
|
779
757
|
}
|
|
780
758
|
```
|
|
781
759
|
|
|
@@ -795,7 +773,7 @@ Answer:
|
|
|
795
773
|
"commits": [
|
|
796
774
|
{ "table": "diary.classics.film", "version": 16, "operation": "ALTER TABLE" }
|
|
797
775
|
],
|
|
798
|
-
"migration_id": "
|
|
776
|
+
"migration_id": "20261019T040655-alter_table-alter-table-diary-classics-fil-8"
|
|
799
777
|
}
|
|
800
778
|
```
|
|
801
779
|
|
|
@@ -815,7 +793,7 @@ Answer:
|
|
|
815
793
|
"commits": [
|
|
816
794
|
{ "table": "diary.classics.film", "version": 17, "operation": "ALTER TABLE" }
|
|
817
795
|
],
|
|
818
|
-
"migration_id": "
|
|
796
|
+
"migration_id": "20261019T040655-alter_table-alter-table-diary-classics-fil-9"
|
|
819
797
|
}
|
|
820
798
|
```
|
|
821
799
|
|
|
@@ -842,7 +820,7 @@ Answer:
|
|
|
842
820
|
"files_created": 1,
|
|
843
821
|
"planned_creates": ["datanotes/diary/classics/film/1925/Battleship Potemkin (1925).md"],
|
|
844
822
|
"commits": [{ "table": "diary.classics.film", "version": 18, "operation": "WRITE" }],
|
|
845
|
-
"migration_id": "
|
|
823
|
+
"migration_id": "20261019T040655-insert_row-insert-into-film-4"
|
|
846
824
|
}
|
|
847
825
|
```
|
|
848
826
|
|
|
@@ -852,7 +830,7 @@ Answer:
|
|
|
852
830
|
---
|
|
853
831
|
table: diary.classics.film
|
|
854
832
|
cut: restored
|
|
855
|
-
id:
|
|
833
|
+
id: 01a15257-4d4f-7108-9b86-834bf7261cc6
|
|
856
834
|
title: Battleship Potemkin
|
|
857
835
|
year: 1925
|
|
858
836
|
minutes: 75
|
|
@@ -883,7 +861,7 @@ Answer:
|
|
|
883
861
|
"commits": [
|
|
884
862
|
{ "table": "diary.classics.film", "version": 19, "operation": "ALTER TABLE" }
|
|
885
863
|
],
|
|
886
|
-
"migration_id": "
|
|
864
|
+
"migration_id": "20261019T040655-alter_table-alter-table-diary-classics-fil-10"
|
|
887
865
|
}
|
|
888
866
|
```
|
|
889
867
|
|
|
@@ -905,7 +883,7 @@ Answer:
|
|
|
905
883
|
"files_created": 1,
|
|
906
884
|
"planned_creates": ["datanotes/diary/classics/film/1924/Sherlock Jr. (1924).md"],
|
|
907
885
|
"commits": [{ "table": "diary.classics.film", "version": 20, "operation": "WRITE" }],
|
|
908
|
-
"migration_id": "
|
|
886
|
+
"migration_id": "20261019T040655-insert_row-insert-into-film-5"
|
|
909
887
|
}
|
|
910
888
|
```
|
|
911
889
|
|
|
@@ -915,7 +893,7 @@ Answer:
|
|
|
915
893
|
---
|
|
916
894
|
table: diary.classics.film
|
|
917
895
|
cut: restored
|
|
918
|
-
id:
|
|
896
|
+
id: 01a15257-4d65-7ac8-9da9-cebd6bcb8f00
|
|
919
897
|
title: Sherlock Jr.
|
|
920
898
|
year: 1924
|
|
921
899
|
minutes: 45
|
|
@@ -948,7 +926,7 @@ Answer:
|
|
|
948
926
|
"commits": [
|
|
949
927
|
{ "table": "diary.classics.film", "version": 21, "operation": "ALTER TABLE" }
|
|
950
928
|
],
|
|
951
|
-
"migration_id": "
|
|
929
|
+
"migration_id": "20261019T040655-alter_table-alter-table-diary-classics-fil-11"
|
|
952
930
|
}
|
|
953
931
|
```
|
|
954
932
|
|
|
@@ -1030,7 +1008,7 @@ Answer:
|
|
|
1030
1008
|
```json
|
|
1031
1009
|
{
|
|
1032
1010
|
"ok": true,
|
|
1033
|
-
"migration_id": "
|
|
1011
|
+
"migration_id": "20261019T040655-create_table-create-table-diary-log-watch"
|
|
1034
1012
|
}
|
|
1035
1013
|
```
|
|
1036
1014
|
|
|
@@ -1059,7 +1037,7 @@ Answer:
|
|
|
1059
1037
|
"files_created": 1,
|
|
1060
1038
|
"planned_creates": ["datanotes/diary/log/watch/2026/10/2026-10-06 2130.md"],
|
|
1061
1039
|
"commits": [{ "table": "diary.log.watch", "version": 1, "operation": "WRITE" }],
|
|
1062
|
-
"migration_id": "
|
|
1040
|
+
"migration_id": "20261019T040655-insert_row-insert-into-watch"
|
|
1063
1041
|
}
|
|
1064
1042
|
```
|
|
1065
1043
|
|
|
@@ -1068,7 +1046,7 @@ Answer:
|
|
|
1068
1046
|
```markdown
|
|
1069
1047
|
---
|
|
1070
1048
|
table: diary.log.watch
|
|
1071
|
-
id:
|
|
1049
|
+
id: 01a15257-4da6-75c4-814b-80ede5508ccc
|
|
1072
1050
|
film: "[[Nosferatu (1922)]]"
|
|
1073
1051
|
occurred_at: 2026-10-06T21:30:00+02:00
|
|
1074
1052
|
where: outdoor screening
|
|
@@ -1104,7 +1082,7 @@ Answer:
|
|
|
1104
1082
|
"commits": [
|
|
1105
1083
|
{ "table": "sandbox.classics.film_copy", "version": 0, "operation": "CLONE" }
|
|
1106
1084
|
],
|
|
1107
|
-
"migration_id": "
|
|
1085
|
+
"migration_id": "20261019T040655-clone_table-clone-diary-classics-film-to-s"
|
|
1108
1086
|
}
|
|
1109
1087
|
```
|
|
1110
1088
|
|
|
@@ -1170,7 +1148,7 @@ Answer:
|
|
|
1170
1148
|
"commits": [
|
|
1171
1149
|
{ "table": "sandbox.classics.film_empty", "version": 0, "operation": "CLONE" }
|
|
1172
1150
|
],
|
|
1173
|
-
"migration_id": "
|
|
1151
|
+
"migration_id": "20261019T040655-clone_table-clone-diary-classics-film-to-s-2"
|
|
1174
1152
|
}
|
|
1175
1153
|
```
|
|
1176
1154
|
|
|
@@ -1252,7 +1230,7 @@ Answer:
|
|
|
1252
1230
|
],
|
|
1253
1231
|
"planned_texts": ["datanotes/metastore.yaml"],
|
|
1254
1232
|
"commits": [{ "table": "main.public.scratch", "version": 2, "operation": "DROP TABLE" }],
|
|
1255
|
-
"migration_id": "
|
|
1233
|
+
"migration_id": "20261019T040638-drop_table-drop-table-scratch"
|
|
1256
1234
|
}
|
|
1257
1235
|
```
|
|
1258
1236
|
|
|
@@ -1276,7 +1254,7 @@ The engine wrote this file in its own words. It holds `film`, `watch` and `revie
|
|
|
1276
1254
|
|
|
1277
1255
|
```yaml
|
|
1278
1256
|
# Metastore (Datanotes): catalogs, schemas, tables, columns, views.
|
|
1279
|
-
id:
|
|
1257
|
+
id: 01a15257-09b6-7466-9ee6-59ac45171fa4
|
|
1280
1258
|
config:
|
|
1281
1259
|
history: true
|
|
1282
1260
|
|
|
@@ -1335,6 +1313,14 @@ catalogs:
|
|
|
1335
1313
|
description: Each time I watch a film
|
|
1336
1314
|
tags:
|
|
1337
1315
|
area: films
|
|
1316
|
+
row_template: |
|
|
1317
|
+
Watched {film} ({where}).
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
## Thoughts
|
|
1321
|
+
instructions: |
|
|
1322
|
+
1. Ask me which film I watched, where and with whom.
|
|
1323
|
+
2. Fill `occurred_at` only when I give a time: it defaults to now.
|
|
1338
1324
|
options:
|
|
1339
1325
|
filename: "{occurred_at:YYYY-MM-DD} {film}"
|
|
1340
1326
|
archive: _archive
|
|
@@ -1344,11 +1330,11 @@ catalogs:
|
|
|
1344
1330
|
columns:
|
|
1345
1331
|
- name: id
|
|
1346
1332
|
type: string
|
|
1347
|
-
required: true
|
|
1348
|
-
description: "Unique id of the row (UUIDv7): set when the row is created, never changes"
|
|
1349
1333
|
unique: true
|
|
1350
1334
|
identity: uuid
|
|
1335
|
+
required: true
|
|
1351
1336
|
dense: true
|
|
1337
|
+
description: "Unique id of the row (UUIDv7): set when the row is created, never changes"
|
|
1352
1338
|
- name: film
|
|
1353
1339
|
type: string
|
|
1354
1340
|
required: true
|
|
@@ -1373,11 +1359,6 @@ catalogs:
|
|
|
1373
1359
|
min: 0
|
|
1374
1360
|
step: 0.01
|
|
1375
1361
|
description: What the ticket cost, if anything
|
|
1376
|
-
row_template: |
|
|
1377
|
-
Watched {film} ({where}).
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
## Thoughts
|
|
1381
1362
|
review:
|
|
1382
1363
|
description: What I wrote about a film after watching it
|
|
1383
1364
|
options:
|