halkyon_meditate_server and its generated client, copied from Todo's and stripped to the module, the register and the sync engine (ADR 0038, D1, D7): content_key, meditate_settings and sitting, synced and sealed, each indexing spaceId and deleted with the person's space; two migrations, the initial one and sittings (purely additive, the ADR explains the SQL); ports 8280 to 8282 and PostgreSQL 8290 (D13). Tests: the module's basics naming `meditate`, the sync engine refusing calls without a session, the register's modes, and a person's deletion taking their rows alone. halkyon_base's forwarding page knows Meditate's ways back (meditate-loopback on 43826, meditate-scheme app.halkyon.meditate), which halkyon_app's repository names among the apps' ports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
260 lines
No EOL
7.5 KiB
JSON
260 lines
No EOL
7.5 KiB
JSON
{
|
|
"__className__": "serverpod.DatabaseMigration",
|
|
"actions": [
|
|
{
|
|
"__className__": "serverpod.DatabaseMigrationAction",
|
|
"type": "createTable",
|
|
"createTable": {
|
|
"__className__": "serverpod.TableDefinition",
|
|
"name": "content_key",
|
|
"dartName": "ContentKey",
|
|
"module": "halkyon_meditate",
|
|
"schema": "public",
|
|
"columns": [
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "id",
|
|
"fieldName": "id",
|
|
"columnType": 7,
|
|
"isNullable": false,
|
|
"columnDefault": "random_v7",
|
|
"dartType": "UuidValue?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "spaceId",
|
|
"fieldName": "spaceId",
|
|
"columnType": 6,
|
|
"isNullable": true,
|
|
"dartType": "int?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "dataKeyId",
|
|
"fieldName": "dataKeyId",
|
|
"columnType": 0,
|
|
"isNullable": false,
|
|
"dartType": "String"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "sealedKey",
|
|
"fieldName": "sealedKey",
|
|
"columnType": 5,
|
|
"isNullable": false,
|
|
"dartType": "dart:typed_data:ByteData"
|
|
}
|
|
],
|
|
"foreignKeys": [
|
|
{
|
|
"__className__": "serverpod.ForeignKeyDefinition",
|
|
"constraintName": "content_key_fk_0",
|
|
"columns": [
|
|
"spaceId"
|
|
],
|
|
"referenceTable": "offline_sync_spaces",
|
|
"referenceTableSchema": "public",
|
|
"referenceColumns": [
|
|
"id"
|
|
],
|
|
"onUpdate": 3,
|
|
"onDelete": 4
|
|
}
|
|
],
|
|
"indexes": [
|
|
{
|
|
"__className__": "serverpod.IndexDefinition",
|
|
"indexName": "content_key_space_idx",
|
|
"elements": [
|
|
{
|
|
"__className__": "serverpod.IndexElementDefinition",
|
|
"type": 0,
|
|
"definition": "spaceId"
|
|
}
|
|
],
|
|
"type": "btree",
|
|
"isUnique": false,
|
|
"isPrimary": false
|
|
}
|
|
],
|
|
"managed": true
|
|
}
|
|
},
|
|
{
|
|
"__className__": "serverpod.DatabaseMigrationAction",
|
|
"type": "createTable",
|
|
"createTable": {
|
|
"__className__": "serverpod.TableDefinition",
|
|
"name": "meditate_settings",
|
|
"dartName": "MeditateSettings",
|
|
"module": "halkyon_meditate",
|
|
"schema": "public",
|
|
"columns": [
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "id",
|
|
"fieldName": "id",
|
|
"columnType": 7,
|
|
"isNullable": false,
|
|
"columnDefault": "random_v7",
|
|
"dartType": "UuidValue?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "spaceId",
|
|
"fieldName": "spaceId",
|
|
"columnType": 6,
|
|
"isNullable": true,
|
|
"dartType": "int?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "keyId",
|
|
"fieldName": "keyId",
|
|
"columnType": 0,
|
|
"isNullable": true,
|
|
"dartType": "String?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "payload",
|
|
"fieldName": "payload",
|
|
"columnType": 5,
|
|
"isNullable": false,
|
|
"dartType": "dart:typed_data:ByteData"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "nonce",
|
|
"fieldName": "nonce",
|
|
"columnType": 5,
|
|
"isNullable": true,
|
|
"dartType": "dart:typed_data:ByteData?"
|
|
}
|
|
],
|
|
"foreignKeys": [
|
|
{
|
|
"__className__": "serverpod.ForeignKeyDefinition",
|
|
"constraintName": "meditate_settings_fk_0",
|
|
"columns": [
|
|
"spaceId"
|
|
],
|
|
"referenceTable": "offline_sync_spaces",
|
|
"referenceTableSchema": "public",
|
|
"referenceColumns": [
|
|
"id"
|
|
],
|
|
"onUpdate": 3,
|
|
"onDelete": 4
|
|
}
|
|
],
|
|
"indexes": [
|
|
{
|
|
"__className__": "serverpod.IndexDefinition",
|
|
"indexName": "meditate_settings_space_idx",
|
|
"elements": [
|
|
{
|
|
"__className__": "serverpod.IndexElementDefinition",
|
|
"type": 0,
|
|
"definition": "spaceId"
|
|
}
|
|
],
|
|
"type": "btree",
|
|
"isUnique": false,
|
|
"isPrimary": false
|
|
}
|
|
],
|
|
"managed": true
|
|
}
|
|
},
|
|
{
|
|
"__className__": "serverpod.DatabaseMigrationAction",
|
|
"type": "createTable",
|
|
"createTable": {
|
|
"__className__": "serverpod.TableDefinition",
|
|
"name": "sitting",
|
|
"dartName": "Sitting",
|
|
"module": "halkyon_meditate",
|
|
"schema": "public",
|
|
"columns": [
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "id",
|
|
"fieldName": "id",
|
|
"columnType": 7,
|
|
"isNullable": false,
|
|
"columnDefault": "random_v7",
|
|
"dartType": "UuidValue?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "spaceId",
|
|
"fieldName": "spaceId",
|
|
"columnType": 6,
|
|
"isNullable": true,
|
|
"dartType": "int?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "keyId",
|
|
"fieldName": "keyId",
|
|
"columnType": 0,
|
|
"isNullable": true,
|
|
"dartType": "String?"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "payload",
|
|
"fieldName": "payload",
|
|
"columnType": 5,
|
|
"isNullable": false,
|
|
"dartType": "dart:typed_data:ByteData"
|
|
},
|
|
{
|
|
"__className__": "serverpod.ColumnDefinition",
|
|
"name": "nonce",
|
|
"fieldName": "nonce",
|
|
"columnType": 5,
|
|
"isNullable": true,
|
|
"dartType": "dart:typed_data:ByteData?"
|
|
}
|
|
],
|
|
"foreignKeys": [
|
|
{
|
|
"__className__": "serverpod.ForeignKeyDefinition",
|
|
"constraintName": "sitting_fk_0",
|
|
"columns": [
|
|
"spaceId"
|
|
],
|
|
"referenceTable": "offline_sync_spaces",
|
|
"referenceTableSchema": "public",
|
|
"referenceColumns": [
|
|
"id"
|
|
],
|
|
"onUpdate": 3,
|
|
"onDelete": 4
|
|
}
|
|
],
|
|
"indexes": [
|
|
{
|
|
"__className__": "serverpod.IndexDefinition",
|
|
"indexName": "sitting_space_idx",
|
|
"elements": [
|
|
{
|
|
"__className__": "serverpod.IndexElementDefinition",
|
|
"type": 0,
|
|
"definition": "spaceId"
|
|
}
|
|
],
|
|
"type": "btree",
|
|
"isUnique": false,
|
|
"isPrimary": false
|
|
}
|
|
],
|
|
"managed": true
|
|
}
|
|
}
|
|
],
|
|
"warnings": [],
|
|
"migrationApiVersion": 1
|
|
} |