@opentrust/db 7.1.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 (83) hide show
  1. package/dist/client.d.ts +3 -0
  2. package/dist/client.d.ts.map +1 -0
  3. package/dist/client.js +51 -0
  4. package/dist/dialect.d.ts +3 -0
  5. package/dist/dialect.d.ts.map +1 -0
  6. package/dist/dialect.js +12 -0
  7. package/dist/generate.d.ts +2 -0
  8. package/dist/generate.d.ts.map +1 -0
  9. package/dist/generate.js +20 -0
  10. package/dist/helpers.d.ts +11 -0
  11. package/dist/helpers.d.ts.map +1 -0
  12. package/dist/helpers.js +32 -0
  13. package/dist/index.d.ts +13 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +12 -0
  16. package/dist/migrate.d.ts +2 -0
  17. package/dist/migrate.d.ts.map +1 -0
  18. package/dist/migrate.js +61 -0
  19. package/dist/queries/agents.d.ts +25 -0
  20. package/dist/queries/agents.d.ts.map +1 -0
  21. package/dist/queries/agents.js +46 -0
  22. package/dist/queries/auth.d.ts +18 -0
  23. package/dist/queries/auth.d.ts.map +1 -0
  24. package/dist/queries/auth.js +77 -0
  25. package/dist/queries/detection-results.d.ts +24 -0
  26. package/dist/queries/detection-results.d.ts.map +1 -0
  27. package/dist/queries/detection-results.js +43 -0
  28. package/dist/queries/observations.d.ts +58 -0
  29. package/dist/queries/observations.d.ts.map +1 -0
  30. package/dist/queries/observations.js +212 -0
  31. package/dist/queries/policies.d.ts +25 -0
  32. package/dist/queries/policies.d.ts.map +1 -0
  33. package/dist/queries/policies.js +38 -0
  34. package/dist/queries/scanners.d.ts +25 -0
  35. package/dist/queries/scanners.d.ts.map +1 -0
  36. package/dist/queries/scanners.js +56 -0
  37. package/dist/queries/settings.d.ts +8 -0
  38. package/dist/queries/settings.d.ts.map +1 -0
  39. package/dist/queries/settings.js +30 -0
  40. package/dist/queries/usage.d.ts +18 -0
  41. package/dist/queries/usage.d.ts.map +1 -0
  42. package/dist/queries/usage.js +54 -0
  43. package/dist/schema/index.d.ts +4415 -0
  44. package/dist/schema/index.d.ts.map +1 -0
  45. package/dist/schema/index.js +19 -0
  46. package/dist/schema/mysql.d.ts +1479 -0
  47. package/dist/schema/mysql.d.ts.map +1 -0
  48. package/dist/schema/mysql.js +151 -0
  49. package/dist/schema/pg.d.ts +1479 -0
  50. package/dist/schema/pg.d.ts.map +1 -0
  51. package/dist/schema/pg.js +151 -0
  52. package/dist/schema/sqlite.d.ts +1479 -0
  53. package/dist/schema/sqlite.d.ts.map +1 -0
  54. package/dist/schema/sqlite.js +153 -0
  55. package/dist/seed.d.ts +2 -0
  56. package/dist/seed.d.ts.map +1 -0
  57. package/dist/seed.js +49 -0
  58. package/drizzle/sqlite/0000_serious_martin_li.sql +143 -0
  59. package/drizzle/sqlite/meta/0000_snapshot.json +945 -0
  60. package/drizzle/sqlite/meta/_journal.json +13 -0
  61. package/drizzle.config.mysql.ts +10 -0
  62. package/drizzle.config.pg.ts +10 -0
  63. package/drizzle.config.sqlite.ts +10 -0
  64. package/package.json +55 -0
  65. package/src/client.ts +66 -0
  66. package/src/dialect.ts +13 -0
  67. package/src/generate.ts +26 -0
  68. package/src/helpers.ts +47 -0
  69. package/src/index.ts +12 -0
  70. package/src/migrate.ts +74 -0
  71. package/src/queries/agents.ts +68 -0
  72. package/src/queries/auth.ts +94 -0
  73. package/src/queries/detection-results.ts +58 -0
  74. package/src/queries/observations.ts +275 -0
  75. package/src/queries/policies.ts +59 -0
  76. package/src/queries/scanners.ts +74 -0
  77. package/src/queries/settings.ts +34 -0
  78. package/src/queries/usage.ts +69 -0
  79. package/src/schema/index.ts +22 -0
  80. package/src/schema/mysql.ts +207 -0
  81. package/src/schema/pg.ts +208 -0
  82. package/src/schema/sqlite.ts +199 -0
  83. package/src/seed.ts +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/schema/mysql.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInB,CAAC;AAGH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBlB,CAAC;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB9B,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBpB,CAAC;AAGF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBrB,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB5B,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBhC,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB5B,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActB,CAAC;AAGF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaxB,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { mysqlTable, varchar, text, boolean, int, float, datetime, json, index, } from "drizzle-orm/mysql-core";
2
+ // ─── Settings ─────────────────────────────────────────────────
3
+ export const settings = mysqlTable("settings", {
4
+ key: varchar("key", { length: 255 }).primaryKey(),
5
+ value: text("value").notNull(),
6
+ updatedAt: datetime("updated_at").notNull().$defaultFn(() => new Date()),
7
+ });
8
+ // ─── Agents ─────────────────────────────────────────────────────
9
+ export const agents = mysqlTable("agents", {
10
+ id: varchar("id", { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
11
+ tenantId: varchar("tenant_id", { length: 64 }).notNull().default("default"),
12
+ name: varchar("name", { length: 255 }).notNull(),
13
+ description: text("description"),
14
+ provider: varchar("provider", { length: 50 }).notNull().default("custom"),
15
+ status: varchar("status", { length: 50 }).notNull().default("inactive"),
16
+ lastSeenAt: datetime("last_seen_at"),
17
+ metadata: json("metadata").notNull().default({}),
18
+ createdAt: datetime("created_at").notNull().$defaultFn(() => new Date()),
19
+ updatedAt: datetime("updated_at").notNull().$defaultFn(() => new Date()),
20
+ }, (table) => ({
21
+ statusIdx: index("idx_agents_status").on(table.status),
22
+ tenantIdIdx: index("idx_agents_tenant_id").on(table.tenantId),
23
+ }));
24
+ // ─── Scanner Definitions ────────────────────────────────────────
25
+ export const scannerDefinitions = mysqlTable("scanner_definitions", {
26
+ id: varchar("id", { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
27
+ tenantId: varchar("tenant_id", { length: 64 }).notNull().default("default"),
28
+ scannerId: varchar("scanner_id", { length: 10 }).notNull(),
29
+ name: varchar("name", { length: 255 }).notNull(),
30
+ description: text("description").notNull(),
31
+ config: json("config").notNull().default({}),
32
+ isEnabled: boolean("is_enabled").notNull().default(true),
33
+ isDefault: boolean("is_default").notNull().default(false),
34
+ }, (table) => ({
35
+ scannerIdIdx: index("idx_scanner_defs_scanner_id").on(table.scannerId),
36
+ tenantIdIdx: index("idx_scanner_defs_tenant_id").on(table.tenantId),
37
+ }));
38
+ // ─── Policies ───────────────────────────────────────────────────
39
+ export const policies = mysqlTable("policies", {
40
+ id: varchar("id", { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
41
+ tenantId: varchar("tenant_id", { length: 64 }).notNull().default("default"),
42
+ name: varchar("name", { length: 255 }).notNull(),
43
+ description: text("description"),
44
+ scannerIds: json("scanner_ids").notNull().default([]),
45
+ action: varchar("action", { length: 50 }).notNull().default("log"),
46
+ sensitivityThreshold: float("sensitivity_threshold").notNull().default(0.5),
47
+ isEnabled: boolean("is_enabled").notNull().default(true),
48
+ createdAt: datetime("created_at").notNull().$defaultFn(() => new Date()),
49
+ updatedAt: datetime("updated_at").notNull().$defaultFn(() => new Date()),
50
+ }, (table) => ({
51
+ tenantIdIdx: index("idx_policies_tenant_id").on(table.tenantId),
52
+ }));
53
+ // ─── Usage Logs ─────────────────────────────────────────────────
54
+ export const usageLogs = mysqlTable("usage_logs", {
55
+ id: varchar("id", { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
56
+ tenantId: varchar("tenant_id", { length: 64 }).notNull().default("default"),
57
+ agentId: varchar("agent_id", { length: 36 }),
58
+ endpoint: varchar("endpoint", { length: 255 }).notNull(),
59
+ statusCode: int("status_code").notNull(),
60
+ responseSafe: boolean("response_safe"),
61
+ categories: json("categories").notNull().default([]),
62
+ latencyMs: int("latency_ms").notNull(),
63
+ requestId: varchar("request_id", { length: 64 }).notNull(),
64
+ createdAt: datetime("created_at").notNull().$defaultFn(() => new Date()),
65
+ }, (table) => ({
66
+ agentIdIdx: index("idx_usage_logs_agent_id").on(table.agentId),
67
+ createdAtIdx: index("idx_usage_logs_created_at").on(table.createdAt),
68
+ tenantIdIdx: index("idx_usage_logs_tenant_id").on(table.tenantId),
69
+ }));
70
+ // ─── Detection Results ──────────────────────────────────────────
71
+ export const detectionResults = mysqlTable("detection_results", {
72
+ id: varchar("id", { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
73
+ tenantId: varchar("tenant_id", { length: 64 }).notNull().default("default"),
74
+ agentId: varchar("agent_id", { length: 36 }),
75
+ safe: boolean("safe").notNull(),
76
+ categories: json("categories").notNull().default([]),
77
+ sensitivityScore: float("sensitivity_score").notNull().default(0),
78
+ findings: json("findings").notNull().default([]),
79
+ latencyMs: int("latency_ms").notNull(),
80
+ requestId: varchar("request_id", { length: 64 }).notNull(),
81
+ createdAt: datetime("created_at").notNull().$defaultFn(() => new Date()),
82
+ }, (table) => ({
83
+ agentIdIdx: index("idx_detection_results_agent_id").on(table.agentId),
84
+ createdAtIdx: index("idx_detection_results_created_at").on(table.createdAt),
85
+ tenantIdIdx: index("idx_detection_results_tenant_id").on(table.tenantId),
86
+ }));
87
+ // ─── Tool Call Observations ─────────────────────────────────────
88
+ export const toolCallObservations = mysqlTable("tool_call_observations", {
89
+ id: varchar("id", { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
90
+ tenantId: varchar("tenant_id", { length: 64 }).notNull().default("default"),
91
+ agentId: varchar("agent_id", { length: 36 }).notNull(),
92
+ sessionKey: varchar("session_key", { length: 255 }),
93
+ toolName: varchar("tool_name", { length: 255 }).notNull(),
94
+ category: varchar("category", { length: 64 }),
95
+ accessPattern: varchar("access_pattern", { length: 32 }),
96
+ paramsJson: json("params_json"),
97
+ phase: varchar("phase", { length: 16 }).notNull(),
98
+ resultJson: json("result_json"),
99
+ error: text("error"),
100
+ durationMs: int("duration_ms"),
101
+ blocked: boolean("blocked").notNull().default(false),
102
+ blockReason: text("block_reason"),
103
+ timestamp: datetime("timestamp").notNull().$defaultFn(() => new Date()),
104
+ }, (table) => ({
105
+ agentIdIdx: index("idx_tool_obs_agent_id").on(table.agentId),
106
+ toolNameIdx: index("idx_tool_obs_tool_name").on(table.toolName),
107
+ timestampIdx: index("idx_tool_obs_timestamp").on(table.timestamp),
108
+ tenantIdIdx: index("idx_tool_obs_tenant_id").on(table.tenantId),
109
+ }));
110
+ // ─── Agent Permissions ────────────────────────────────────────
111
+ export const agentPermissions = mysqlTable("agent_permissions", {
112
+ id: varchar("id", { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
113
+ tenantId: varchar("tenant_id", { length: 64 }).notNull().default("default"),
114
+ agentId: varchar("agent_id", { length: 36 }).notNull(),
115
+ toolName: varchar("tool_name", { length: 255 }).notNull(),
116
+ category: varchar("category", { length: 64 }),
117
+ accessPattern: varchar("access_pattern", { length: 32 }),
118
+ targetsJson: json("targets_json").notNull().default([]),
119
+ callCount: int("call_count").notNull().default(0),
120
+ errorCount: int("error_count").notNull().default(0),
121
+ firstSeen: datetime("first_seen").notNull().$defaultFn(() => new Date()),
122
+ lastSeen: datetime("last_seen").notNull().$defaultFn(() => new Date()),
123
+ }, (table) => ({
124
+ agentIdIdx: index("idx_agent_perms_agent_id").on(table.agentId),
125
+ toolNameIdx: index("idx_agent_perms_tool_name").on(table.toolName),
126
+ tenantIdIdx: index("idx_agent_perms_tenant_id").on(table.tenantId),
127
+ uniqueAgentTool: index("idx_agent_perms_unique").on(table.tenantId, table.agentId, table.toolName),
128
+ }));
129
+ // ─── Magic Links ─────────────────────────────────────────────
130
+ export const magicLinks = mysqlTable("magic_links", {
131
+ id: varchar("id", { length: 36 }).primaryKey(),
132
+ email: varchar("email", { length: 255 }).notNull(),
133
+ token: text("token").notNull(),
134
+ expiresAt: varchar("expires_at", { length: 32 }).notNull(),
135
+ usedAt: varchar("used_at", { length: 32 }),
136
+ createdAt: varchar("created_at", { length: 32 }).notNull(),
137
+ }, (table) => ({
138
+ tokenIdx: index("idx_magic_links_token").on(table.token),
139
+ emailIdx: index("idx_magic_links_email").on(table.email),
140
+ }));
141
+ // ─── User Sessions ────────────────────────────────────────────
142
+ export const userSessions = mysqlTable("user_sessions", {
143
+ id: varchar("id", { length: 36 }).primaryKey(),
144
+ email: varchar("email", { length: 255 }).notNull(),
145
+ token: text("token").notNull(),
146
+ expiresAt: varchar("expires_at", { length: 32 }).notNull(),
147
+ createdAt: varchar("created_at", { length: 32 }).notNull(),
148
+ }, (table) => ({
149
+ tokenIdx: index("idx_user_sessions_token").on(table.token),
150
+ emailIdx: index("idx_user_sessions_email").on(table.email),
151
+ }));