botnote 0.1.55 → 0.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.
Files changed (52) hide show
  1. package/dist/cli.js +3 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/db/migrations/0028_workspaces.sql +65 -0
  4. package/dist/db/migrations/0029_drop_global_uniques.sql +38 -0
  5. package/dist/db/schema.d.ts +215 -2
  6. package/dist/db/schema.js +32 -4
  7. package/dist/db/schema.js.map +1 -1
  8. package/dist/rest/routes.js +58 -58
  9. package/dist/rest/routes.js.map +1 -1
  10. package/dist/rest/server.d.ts +11 -1
  11. package/dist/rest/server.js +19 -3
  12. package/dist/rest/server.js.map +1 -1
  13. package/dist/service/embedding.d.ts +5 -0
  14. package/dist/service/embedding.js +6 -1
  15. package/dist/service/embedding.js.map +1 -1
  16. package/dist/service/embedding_settings.d.ts +4 -3
  17. package/dist/service/embedding_settings.js +13 -16
  18. package/dist/service/embedding_settings.js.map +1 -1
  19. package/dist/service/entities.d.ts +29 -20
  20. package/dist/service/entities.js +101 -60
  21. package/dist/service/entities.js.map +1 -1
  22. package/dist/service/feedback.d.ts +3 -2
  23. package/dist/service/feedback.js +8 -4
  24. package/dist/service/feedback.js.map +1 -1
  25. package/dist/service/opening_brief.d.ts +2 -1
  26. package/dist/service/opening_brief.js +6 -7
  27. package/dist/service/opening_brief.js.map +1 -1
  28. package/dist/service/projects.d.ts +6 -5
  29. package/dist/service/projects.js +25 -13
  30. package/dist/service/projects.js.map +1 -1
  31. package/dist/service/recurrence.d.ts +7 -6
  32. package/dist/service/recurrence.js +36 -14
  33. package/dist/service/recurrence.js.map +1 -1
  34. package/dist/service/scope.d.ts +14 -0
  35. package/dist/service/scope.js +19 -0
  36. package/dist/service/scope.js.map +1 -0
  37. package/dist/service/search.d.ts +3 -2
  38. package/dist/service/search.js +12 -9
  39. package/dist/service/search.js.map +1 -1
  40. package/dist/service/sessions.d.ts +7 -8
  41. package/dist/service/sessions.js +8 -8
  42. package/dist/service/sessions.js.map +1 -1
  43. package/dist/service/tasks.d.ts +2 -1
  44. package/dist/service/tasks.js +13 -6
  45. package/dist/service/tasks.js.map +1 -1
  46. package/dist/service/tokens.d.ts +7 -6
  47. package/dist/service/tokens.js +17 -10
  48. package/dist/service/tokens.js.map +1 -1
  49. package/dist/service/workspace_settings.d.ts +3 -2
  50. package/dist/service/workspace_settings.js +11 -15
  51. package/dist/service/workspace_settings.js.map +1 -1
  52. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import { buildMcpServer } from "./mcp/server.js";
6
6
  import { EmbeddingService } from "./service/embedding.js";
7
7
  import { purgeExpired } from "./service/entities.js";
8
8
  import { materializeScheduledRecurrences } from "./service/recurrence.js";
9
+ import { resolveDefaultScope } from "./service/scope.js";
9
10
  import { DEFAULT_PORT, envValue, resolveBaseUrl } from "./config.js";
10
11
  import { authConfigFromEnv, isLoopback } from "./rest/auth.js";
11
12
  import { buildServer } from "./rest/server.js";
@@ -27,10 +28,11 @@ async function runRest() {
27
28
  DEFAULT_RECURRENCE_MATERIALIZE_INTERVAL_MS);
28
29
  await migrate();
29
30
  const { db } = createDb();
31
+ const defaultScope = await resolveDefaultScope(db);
30
32
  const embedding = new EmbeddingService(db, { apiKey: process.env.OPENAI_API_KEY });
31
33
  await embedding.reloadConfig();
32
34
  const auth = authConfigFromEnv();
33
- const app = await buildServer({ db, embedding, logLevel, auth });
35
+ const app = await buildServer({ db, embedding, logLevel, auth, defaultScope });
34
36
  await app.listen({ port, host });
35
37
  app.log.info(`botnote v${VERSION} listening on http://${host}:${port} (docs: /docs, embeddings ${embedding.isEnabled() ? "ON" : "OFF"})`);
36
38
  if (!auth.required && !isLoopback(host) && host !== "localhost") {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ -- Workspaces: the tenant boundary shared by the single-user OSS build and the
2
+ -- hosted multi-user build (BOT-113, subtask 1 of BOT-101).
3
+ --
4
+ -- Schema only. Every tenant table gains workspace_id with a DEFAULT pointing
5
+ -- at the fixed default workspace, which backfills existing rows in the same
6
+ -- statement and keeps inserts from the previous release working. Service code
7
+ -- starts filtering by it in the next release (BOT-114); the old global unique
8
+ -- indexes stay until that release has shipped.
9
+
10
+ CREATE TABLE IF NOT EXISTS workspaces (
11
+ id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
12
+ slug text NOT NULL,
13
+ name text NOT NULL,
14
+ created_at timestamptz NOT NULL DEFAULT now(),
15
+ updated_at timestamptz NOT NULL DEFAULT now()
16
+ );
17
+
18
+ CREATE UNIQUE INDEX IF NOT EXISTS workspaces_slug_idx ON workspaces (slug);
19
+
20
+ DROP TRIGGER IF EXISTS workspaces_touch_updated_at ON workspaces;
21
+ CREATE TRIGGER workspaces_touch_updated_at
22
+ BEFORE UPDATE ON workspaces
23
+ FOR EACH ROW EXECUTE FUNCTION botnote_touch_updated_at();
24
+
25
+ INSERT INTO workspaces (id, slug, name)
26
+ VALUES ('00000000-0000-4000-8000-000000000001', 'default', 'Default workspace')
27
+ ON CONFLICT (id) DO NOTHING;
28
+
29
+ ALTER TABLE projects
30
+ ADD COLUMN IF NOT EXISTS workspace_id uuid NOT NULL
31
+ DEFAULT '00000000-0000-4000-8000-000000000001' REFERENCES workspaces(id);
32
+ ALTER TABLE entities
33
+ ADD COLUMN IF NOT EXISTS workspace_id uuid NOT NULL
34
+ DEFAULT '00000000-0000-4000-8000-000000000001' REFERENCES workspaces(id);
35
+ ALTER TABLE recurrence_rules
36
+ ADD COLUMN IF NOT EXISTS workspace_id uuid NOT NULL
37
+ DEFAULT '00000000-0000-4000-8000-000000000001' REFERENCES workspaces(id);
38
+ ALTER TABLE tokens
39
+ ADD COLUMN IF NOT EXISTS workspace_id uuid NOT NULL
40
+ DEFAULT '00000000-0000-4000-8000-000000000001' REFERENCES workspaces(id);
41
+ ALTER TABLE sessions
42
+ ADD COLUMN IF NOT EXISTS workspace_id uuid NOT NULL
43
+ DEFAULT '00000000-0000-4000-8000-000000000001' REFERENCES workspaces(id);
44
+ ALTER TABLE embedding_settings
45
+ ADD COLUMN IF NOT EXISTS workspace_id uuid NOT NULL
46
+ DEFAULT '00000000-0000-4000-8000-000000000001' REFERENCES workspaces(id);
47
+ ALTER TABLE workspace_settings
48
+ ADD COLUMN IF NOT EXISTS workspace_id uuid NOT NULL
49
+ DEFAULT '00000000-0000-4000-8000-000000000001' REFERENCES workspaces(id);
50
+
51
+ -- Tenant-scoped uniqueness. The global projects_key_idx and
52
+ -- entities_idempotency_idx remain for one release so the current code keeps
53
+ -- its guarantees; BOT-114 drops them once every query is scoped.
54
+ CREATE UNIQUE INDEX IF NOT EXISTS projects_ws_key_unique
55
+ ON projects (workspace_id, key);
56
+ CREATE UNIQUE INDEX IF NOT EXISTS entities_ws_idem_unique
57
+ ON entities (workspace_id, idempotency_key)
58
+ WHERE idempotency_key IS NOT NULL;
59
+
60
+ CREATE INDEX IF NOT EXISTS entities_ws_kind_created_idx
61
+ ON entities (workspace_id, kind, created_at DESC);
62
+ CREATE INDEX IF NOT EXISTS recurrence_rules_ws_idx
63
+ ON recurrence_rules (workspace_id, enabled, next_occurrence_at);
64
+ CREATE INDEX IF NOT EXISTS tokens_ws_idx ON tokens (workspace_id);
65
+ CREATE INDEX IF NOT EXISTS sessions_ws_idx ON sessions (workspace_id);
@@ -0,0 +1,38 @@
1
+ -- Workspace scoping is live in service code as of this release (BOT-114,
2
+ -- subtask 2 of BOT-101): every tenant-facing query filters by workspace_id and
3
+ -- every insert stamps it.
4
+ --
5
+ -- 1. The per-workspace unique indexes from 0028 (projects_ws_key_unique,
6
+ -- entities_ws_idem_unique) now carry the invariant, so the pre-workspace
7
+ -- global uniques are redundant and would wrongly reject the same project
8
+ -- key or idempotency key reused in a second workspace.
9
+ --
10
+ -- 2. workspace_settings and embedding_settings were singletons keyed by
11
+ -- id = 'default'. They become one row per workspace: the primary key moves
12
+ -- to workspace_id and `id` stays as a constant discriminator column. The
13
+ -- CHECK (id = 'default') is kept on purpose — it no longer limits the row
14
+ -- count once id is not unique, and keeping it means the N-1 code path
15
+ -- (INSERT id='default' ... ON CONFLICT DO NOTHING; SELECT WHERE id='default')
16
+ -- still runs unchanged against this schema.
17
+
18
+ DROP INDEX IF EXISTS projects_key_idx;
19
+ DROP INDEX IF EXISTS entities_idempotency_idx;
20
+
21
+ DO $$
22
+ BEGIN
23
+ IF EXISTS (SELECT 1 FROM pg_constraint
24
+ WHERE conname = 'workspace_settings_pkey'
25
+ AND conrelid = 'workspace_settings'::regclass
26
+ AND pg_get_constraintdef(oid) = 'PRIMARY KEY (id)') THEN
27
+ ALTER TABLE workspace_settings DROP CONSTRAINT workspace_settings_pkey;
28
+ ALTER TABLE workspace_settings ADD CONSTRAINT workspace_settings_pkey PRIMARY KEY (workspace_id);
29
+ END IF;
30
+
31
+ IF EXISTS (SELECT 1 FROM pg_constraint
32
+ WHERE conname = 'embedding_settings_pkey'
33
+ AND conrelid = 'embedding_settings'::regclass
34
+ AND pg_get_constraintdef(oid) = 'PRIMARY KEY (id)') THEN
35
+ ALTER TABLE embedding_settings DROP CONSTRAINT embedding_settings_pkey;
36
+ ALTER TABLE embedding_settings ADD CONSTRAINT embedding_settings_pkey PRIMARY KEY (workspace_id);
37
+ END IF;
38
+ END $$;
@@ -7,6 +7,99 @@ export declare const ACTOR_KINDS: readonly ["human", "agent", "system"];
7
7
  export type ActorKind = (typeof ACTOR_KINDS)[number];
8
8
  export declare const EDGE_KINDS: readonly ["blocks", "references", "parent_of", "supersedes"];
9
9
  export type EdgeKind = (typeof EDGE_KINDS)[number];
10
+ export declare const DEFAULT_WORKSPACE_ID = "00000000-0000-4000-8000-000000000001";
11
+ export declare const workspaces: import("drizzle-orm/pg-core").PgTableWithColumns<{
12
+ name: "workspaces";
13
+ schema: undefined;
14
+ columns: {
15
+ id: import("drizzle-orm/pg-core").PgColumn<{
16
+ name: "id";
17
+ tableName: "workspaces";
18
+ dataType: "string";
19
+ columnType: "PgUUID";
20
+ data: string;
21
+ driverParam: string;
22
+ notNull: true;
23
+ hasDefault: true;
24
+ isPrimaryKey: true;
25
+ isAutoincrement: false;
26
+ hasRuntimeDefault: false;
27
+ enumValues: undefined;
28
+ baseColumn: never;
29
+ identity: undefined;
30
+ generated: undefined;
31
+ }, {}, {}>;
32
+ slug: import("drizzle-orm/pg-core").PgColumn<{
33
+ name: "slug";
34
+ tableName: "workspaces";
35
+ dataType: "string";
36
+ columnType: "PgText";
37
+ data: string;
38
+ driverParam: string;
39
+ notNull: true;
40
+ hasDefault: false;
41
+ isPrimaryKey: false;
42
+ isAutoincrement: false;
43
+ hasRuntimeDefault: false;
44
+ enumValues: [string, ...string[]];
45
+ baseColumn: never;
46
+ identity: undefined;
47
+ generated: undefined;
48
+ }, {}, {}>;
49
+ name: import("drizzle-orm/pg-core").PgColumn<{
50
+ name: "name";
51
+ tableName: "workspaces";
52
+ dataType: "string";
53
+ columnType: "PgText";
54
+ data: string;
55
+ driverParam: string;
56
+ notNull: true;
57
+ hasDefault: false;
58
+ isPrimaryKey: false;
59
+ isAutoincrement: false;
60
+ hasRuntimeDefault: false;
61
+ enumValues: [string, ...string[]];
62
+ baseColumn: never;
63
+ identity: undefined;
64
+ generated: undefined;
65
+ }, {}, {}>;
66
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
67
+ name: "created_at";
68
+ tableName: "workspaces";
69
+ dataType: "date";
70
+ columnType: "PgTimestamp";
71
+ data: Date;
72
+ driverParam: string;
73
+ notNull: true;
74
+ hasDefault: true;
75
+ isPrimaryKey: false;
76
+ isAutoincrement: false;
77
+ hasRuntimeDefault: false;
78
+ enumValues: undefined;
79
+ baseColumn: never;
80
+ identity: undefined;
81
+ generated: undefined;
82
+ }, {}, {}>;
83
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
84
+ name: "updated_at";
85
+ tableName: "workspaces";
86
+ dataType: "date";
87
+ columnType: "PgTimestamp";
88
+ data: Date;
89
+ driverParam: string;
90
+ notNull: true;
91
+ hasDefault: true;
92
+ isPrimaryKey: false;
93
+ isAutoincrement: false;
94
+ hasRuntimeDefault: false;
95
+ enumValues: undefined;
96
+ baseColumn: never;
97
+ identity: undefined;
98
+ generated: undefined;
99
+ }, {}, {}>;
100
+ };
101
+ dialect: "pg";
102
+ }>;
10
103
  export declare const PROJECT_STATUSES: readonly ["planned", "active", "watching", "paused", "archived"];
11
104
  export type ProjectStatus = (typeof PROJECT_STATUSES)[number];
12
105
  export declare const projects: import("drizzle-orm/pg-core").PgTableWithColumns<{
@@ -30,6 +123,23 @@ export declare const projects: import("drizzle-orm/pg-core").PgTableWithColumns<
30
123
  identity: undefined;
31
124
  generated: undefined;
32
125
  }, {}, {}>;
126
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
127
+ name: "workspace_id";
128
+ tableName: "projects";
129
+ dataType: "string";
130
+ columnType: "PgUUID";
131
+ data: string;
132
+ driverParam: string;
133
+ notNull: true;
134
+ hasDefault: true;
135
+ isPrimaryKey: false;
136
+ isAutoincrement: false;
137
+ hasRuntimeDefault: false;
138
+ enumValues: undefined;
139
+ baseColumn: never;
140
+ identity: undefined;
141
+ generated: undefined;
142
+ }, {}, {}>;
33
143
  key: import("drizzle-orm/pg-core").PgColumn<{
34
144
  name: "key";
35
145
  tableName: "projects";
@@ -224,6 +334,23 @@ export declare const entities: import("drizzle-orm/pg-core").PgTableWithColumns<
224
334
  identity: undefined;
225
335
  generated: undefined;
226
336
  }, {}, {}>;
337
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
338
+ name: "workspace_id";
339
+ tableName: "entities";
340
+ dataType: "string";
341
+ columnType: "PgUUID";
342
+ data: string;
343
+ driverParam: string;
344
+ notNull: true;
345
+ hasDefault: true;
346
+ isPrimaryKey: false;
347
+ isAutoincrement: false;
348
+ hasRuntimeDefault: false;
349
+ enumValues: undefined;
350
+ baseColumn: never;
351
+ identity: undefined;
352
+ generated: undefined;
353
+ }, {}, {}>;
227
354
  projectId: import("drizzle-orm/pg-core").PgColumn<{
228
355
  name: "project_id";
229
356
  tableName: "entities";
@@ -717,6 +844,23 @@ export declare const recurrenceRules: import("drizzle-orm/pg-core").PgTableWithC
717
844
  identity: undefined;
718
845
  generated: undefined;
719
846
  }, {}, {}>;
847
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
848
+ name: "workspace_id";
849
+ tableName: "recurrence_rules";
850
+ dataType: "string";
851
+ columnType: "PgUUID";
852
+ data: string;
853
+ driverParam: string;
854
+ notNull: true;
855
+ hasDefault: true;
856
+ isPrimaryKey: false;
857
+ isAutoincrement: false;
858
+ hasRuntimeDefault: false;
859
+ enumValues: undefined;
860
+ baseColumn: never;
861
+ identity: undefined;
862
+ generated: undefined;
863
+ }, {}, {}>;
720
864
  seriesId: import("drizzle-orm/pg-core").PgColumn<{
721
865
  name: "series_id";
722
866
  tableName: "recurrence_rules";
@@ -1122,6 +1266,23 @@ export declare const tokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
1122
1266
  identity: undefined;
1123
1267
  generated: undefined;
1124
1268
  }, {}, {}>;
1269
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
1270
+ name: "workspace_id";
1271
+ tableName: "tokens";
1272
+ dataType: "string";
1273
+ columnType: "PgUUID";
1274
+ data: string;
1275
+ driverParam: string;
1276
+ notNull: true;
1277
+ hasDefault: true;
1278
+ isPrimaryKey: false;
1279
+ isAutoincrement: false;
1280
+ hasRuntimeDefault: false;
1281
+ enumValues: undefined;
1282
+ baseColumn: never;
1283
+ identity: undefined;
1284
+ generated: undefined;
1285
+ }, {}, {}>;
1125
1286
  name: import("drizzle-orm/pg-core").PgColumn<{
1126
1287
  name: "name";
1127
1288
  tableName: "tokens";
@@ -1240,7 +1401,7 @@ export declare const embeddingSettings: import("drizzle-orm/pg-core").PgTableWit
1240
1401
  driverParam: string;
1241
1402
  notNull: true;
1242
1403
  hasDefault: true;
1243
- isPrimaryKey: true;
1404
+ isPrimaryKey: false;
1244
1405
  isAutoincrement: false;
1245
1406
  hasRuntimeDefault: false;
1246
1407
  enumValues: [string, ...string[]];
@@ -1248,6 +1409,23 @@ export declare const embeddingSettings: import("drizzle-orm/pg-core").PgTableWit
1248
1409
  identity: undefined;
1249
1410
  generated: undefined;
1250
1411
  }, {}, {}>;
1412
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
1413
+ name: "workspace_id";
1414
+ tableName: "embedding_settings";
1415
+ dataType: "string";
1416
+ columnType: "PgUUID";
1417
+ data: string;
1418
+ driverParam: string;
1419
+ notNull: true;
1420
+ hasDefault: true;
1421
+ isPrimaryKey: true;
1422
+ isAutoincrement: false;
1423
+ hasRuntimeDefault: false;
1424
+ enumValues: undefined;
1425
+ baseColumn: never;
1426
+ identity: undefined;
1427
+ generated: undefined;
1428
+ }, {}, {}>;
1251
1429
  enabled: import("drizzle-orm/pg-core").PgColumn<{
1252
1430
  name: "enabled";
1253
1431
  tableName: "embedding_settings";
@@ -1400,7 +1578,7 @@ export declare const workspaceSettings: import("drizzle-orm/pg-core").PgTableWit
1400
1578
  driverParam: string;
1401
1579
  notNull: true;
1402
1580
  hasDefault: true;
1403
- isPrimaryKey: true;
1581
+ isPrimaryKey: false;
1404
1582
  isAutoincrement: false;
1405
1583
  hasRuntimeDefault: false;
1406
1584
  enumValues: [string, ...string[]];
@@ -1408,6 +1586,23 @@ export declare const workspaceSettings: import("drizzle-orm/pg-core").PgTableWit
1408
1586
  identity: undefined;
1409
1587
  generated: undefined;
1410
1588
  }, {}, {}>;
1589
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
1590
+ name: "workspace_id";
1591
+ tableName: "workspace_settings";
1592
+ dataType: "string";
1593
+ columnType: "PgUUID";
1594
+ data: string;
1595
+ driverParam: string;
1596
+ notNull: true;
1597
+ hasDefault: true;
1598
+ isPrimaryKey: true;
1599
+ isAutoincrement: false;
1600
+ hasRuntimeDefault: false;
1601
+ enumValues: undefined;
1602
+ baseColumn: never;
1603
+ identity: undefined;
1604
+ generated: undefined;
1605
+ }, {}, {}>;
1411
1606
  timezone: import("drizzle-orm/pg-core").PgColumn<{
1412
1607
  name: "timezone";
1413
1608
  tableName: "workspace_settings";
@@ -1483,6 +1678,23 @@ export declare const sessions: import("drizzle-orm/pg-core").PgTableWithColumns<
1483
1678
  identity: undefined;
1484
1679
  generated: undefined;
1485
1680
  }, {}, {}>;
1681
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
1682
+ name: "workspace_id";
1683
+ tableName: "sessions";
1684
+ dataType: "string";
1685
+ columnType: "PgUUID";
1686
+ data: string;
1687
+ driverParam: string;
1688
+ notNull: true;
1689
+ hasDefault: true;
1690
+ isPrimaryKey: false;
1691
+ isAutoincrement: false;
1692
+ hasRuntimeDefault: false;
1693
+ enumValues: undefined;
1694
+ baseColumn: never;
1695
+ identity: undefined;
1696
+ generated: undefined;
1697
+ }, {}, {}>;
1486
1698
  tokenHash: import("drizzle-orm/pg-core").PgColumn<{
1487
1699
  name: "token_hash";
1488
1700
  tableName: "sessions";
@@ -1571,6 +1783,7 @@ export declare const sessions: import("drizzle-orm/pg-core").PgTableWithColumns<
1571
1783
  };
1572
1784
  dialect: "pg";
1573
1785
  }>;
1786
+ export type Workspace = typeof workspaces.$inferSelect;
1574
1787
  export type Project = typeof projects.$inferSelect;
1575
1788
  export type Entity = typeof entities.$inferSelect;
1576
1789
  export type Edge = typeof edges.$inferSelect;
package/dist/db/schema.js CHANGED
@@ -24,9 +24,26 @@ export const ENTITY_KINDS = ["task", "note", "comment", "feedback"];
24
24
  export const FEEDBACK_CATEGORIES = ["bug", "feature", "friction", "idea"];
25
25
  export const ACTOR_KINDS = ["human", "agent", "system"];
26
26
  export const EDGE_KINDS = ["blocks", "references", "parent_of", "supersedes"];
27
+ // The single workspace every row belongs to until multi-tenant mode lands.
28
+ // Fixed so migrations, defaults and code agree without a lookup.
29
+ export const DEFAULT_WORKSPACE_ID = "00000000-0000-4000-8000-000000000001";
30
+ export const workspaces = pgTable("workspaces", {
31
+ id: uuid("id").primaryKey().defaultRandom(),
32
+ slug: text("slug").notNull(),
33
+ name: text("name").notNull(),
34
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
35
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
36
+ }, (t) => ({
37
+ slugIdx: uniqueIndex("workspaces_slug_idx").on(t.slug)
38
+ }));
39
+ const workspaceRef = () => uuid("workspace_id")
40
+ .notNull()
41
+ .default(DEFAULT_WORKSPACE_ID)
42
+ .references(() => workspaces.id);
27
43
  export const PROJECT_STATUSES = ["planned", "active", "watching", "paused", "archived"];
28
44
  export const projects = pgTable("projects", {
29
45
  id: uuid("id").primaryKey().defaultRandom(),
46
+ workspaceId: workspaceRef(),
30
47
  key: text("key").notNull(),
31
48
  name: text("name").notNull(),
32
49
  status: text("status").notNull().default("active"),
@@ -40,10 +57,11 @@ export const projects = pgTable("projects", {
40
57
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
41
58
  updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
42
59
  }, (t) => ({
43
- keyIdx: uniqueIndex("projects_key_idx").on(t.key)
60
+ wsKeyIdx: uniqueIndex("projects_ws_key_unique").on(t.workspaceId, t.key)
44
61
  }));
45
62
  export const entities = pgTable("entities", {
46
63
  id: uuid("id").primaryKey().defaultRandom(),
64
+ workspaceId: workspaceRef(),
47
65
  projectId: uuid("project_id").references(() => projects.id, { onDelete: "set null" }),
48
66
  kind: text("kind").notNull(),
49
67
  title: text("title"),
@@ -82,7 +100,10 @@ export const entities = pgTable("entities", {
82
100
  projectKindCreatedIdx: index("entities_project_kind_created_idx").on(t.projectId, t.kind, t.createdAt),
83
101
  parentIdx: index("entities_parent_idx").on(t.parentId),
84
102
  completedAtIdx: index("entities_completed_at_idx").on(t.completedAt),
85
- idempotencyIdx: uniqueIndex("entities_idempotency_idx").on(t.idempotencyKey)
103
+ wsIdempotencyIdx: uniqueIndex("entities_ws_idem_unique")
104
+ .on(t.workspaceId, t.idempotencyKey)
105
+ .where(sql `${t.idempotencyKey} IS NOT NULL`),
106
+ wsKindCreatedIdx: index("entities_ws_kind_created_idx").on(t.workspaceId, t.kind, t.createdAt)
86
107
  }));
87
108
  export const edges = pgTable("edges", {
88
109
  fromId: uuid("from_id")
@@ -102,6 +123,7 @@ export const RECURRENCE_ANCHORS = ["scheduled", "completion"];
102
123
  export const RECURRENCE_EXCEPTION_ACTIONS = ["skipped", "cancelled", "modified"];
103
124
  export const recurrenceRules = pgTable("recurrence_rules", {
104
125
  id: uuid("id").primaryKey().defaultRandom(),
126
+ workspaceId: workspaceRef(),
105
127
  seriesId: uuid("series_id")
106
128
  .notNull()
107
129
  .references(() => entities.id, { onDelete: "cascade" }),
@@ -147,6 +169,7 @@ export const recurrenceExceptions = pgTable("recurrence_exceptions", {
147
169
  }));
148
170
  export const tokens = pgTable("tokens", {
149
171
  id: uuid("id").primaryKey().defaultRandom(),
172
+ workspaceId: workspaceRef(),
150
173
  name: text("name").notNull(),
151
174
  tokenHash: text("token_hash").notNull(),
152
175
  prefix: text("prefix").notNull(),
@@ -158,7 +181,10 @@ export const tokens = pgTable("tokens", {
158
181
  createdIdx: index("tokens_created_idx").on(t.createdAt)
159
182
  }));
160
183
  export const embeddingSettings = pgTable("embedding_settings", {
161
- id: text("id").primaryKey().default("default"),
184
+ // Constant discriminator kept from the singleton era; the row key is the
185
+ // workspace (migration 0029).
186
+ id: text("id").notNull().default("default"),
187
+ workspaceId: workspaceRef().primaryKey(),
162
188
  enabled: boolean("enabled").notNull().default(true),
163
189
  provider: text("provider").notNull().default("openai"),
164
190
  model: text("model").notNull().default("text-embedding-3-small"),
@@ -169,7 +195,8 @@ export const embeddingSettings = pgTable("embedding_settings", {
169
195
  updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
170
196
  });
171
197
  export const workspaceSettings = pgTable("workspace_settings", {
172
- id: text("id").primaryKey().default("default"),
198
+ id: text("id").notNull().default("default"),
199
+ workspaceId: workspaceRef().primaryKey(),
173
200
  timezone: text("timezone").notNull().default("UTC"),
174
201
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
175
202
  updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
@@ -179,6 +206,7 @@ export const workspaceSettings = pgTable("workspace_settings", {
179
206
  // password (env BOTNOTE_PASSWORD) and we mint a row + set the cookie.
180
207
  export const sessions = pgTable("sessions", {
181
208
  id: uuid("id").primaryKey().defaultRandom(),
209
+ workspaceId: workspaceRef(),
182
210
  tokenHash: text("token_hash").notNull(),
183
211
  expiresAt: timestamp("expires_at", { withTimezone: true }).notNull(),
184
212
  userAgent: text("user_agent"),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}