@authhero/drizzle 0.14.0 → 0.15.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.
@@ -153,9 +153,9 @@ CREATE TABLE `login_sessions` (
153
153
  `authParams_act_as` text(256),
154
154
  `authParams_ui_locales` text(32),
155
155
  `authorization_url` text,
156
- `created_at` text(35) NOT NULL,
157
- `updated_at` text(35) NOT NULL,
158
- `expires_at` text(35) NOT NULL,
156
+ `created_at` integer NOT NULL,
157
+ `updated_at` integer NOT NULL,
158
+ `expires_at` integer NOT NULL,
159
159
  `ip` text(39),
160
160
  `useragent` text,
161
161
  `auth0Client` text(255),
@@ -171,6 +171,7 @@ CREATE INDEX `login_sessions_id_index` ON `login_sessions` (`id`);--> statement-
171
171
  CREATE INDEX `login_sessions_state_idx` ON `login_sessions` (`state`);--> statement-breakpoint
172
172
  CREATE INDEX `login_sessions_state_updated_idx` ON `login_sessions` (`state`,`updated_at`);--> statement-breakpoint
173
173
  CREATE INDEX `login_sessions_tenant_user_idx` ON `login_sessions` (`tenant_id`,`user_id`);--> statement-breakpoint
174
+ CREATE INDEX `idx_login_sessions_expires_at` ON `login_sessions` (`expires_at`);--> statement-breakpoint
174
175
  CREATE TABLE `otps` (
175
176
  `tenant_id` text(191) NOT NULL,
176
177
  `id` text(255) PRIMARY KEY NOT NULL,
@@ -204,26 +205,29 @@ CREATE TABLE `refresh_tokens` (
204
205
  `resource_servers` text NOT NULL,
205
206
  `device` text NOT NULL,
206
207
  `rotating` integer NOT NULL,
207
- `created_at` text(35) NOT NULL,
208
- `expires_at` text(35),
209
- `idle_expires_at` text(35),
210
- `last_exchanged_at` text(35),
208
+ `created_at` integer NOT NULL,
209
+ `expires_at` integer,
210
+ `idle_expires_at` integer,
211
+ `last_exchanged_at` integer,
211
212
  PRIMARY KEY(`tenant_id`, `id`),
212
213
  FOREIGN KEY (`tenant_id`) REFERENCES `tenants`(`id`) ON UPDATE no action ON DELETE cascade
213
214
  );
214
215
  --> statement-breakpoint
216
+ CREATE INDEX `idx_refresh_tokens_user_id` ON `refresh_tokens` (`tenant_id`,`user_id`);--> statement-breakpoint
217
+ CREATE INDEX `idx_refresh_tokens_session_id` ON `refresh_tokens` (`session_id`);--> statement-breakpoint
218
+ CREATE INDEX `idx_refresh_tokens_expires_at` ON `refresh_tokens` (`expires_at`);--> statement-breakpoint
215
219
  CREATE TABLE `sessions` (
216
220
  `id` text(21) NOT NULL,
217
221
  `tenant_id` text(191) NOT NULL,
218
222
  `user_id` text(255),
219
- `created_at` text(35) NOT NULL,
220
- `updated_at` text(35) NOT NULL,
221
- `expires_at` text(35),
222
- `idle_expires_at` text(35),
223
- `authenticated_at` text(35),
224
- `last_interaction_at` text(35),
225
- `used_at` text(35),
226
- `revoked_at` text(35),
223
+ `created_at` integer NOT NULL,
224
+ `updated_at` integer NOT NULL,
225
+ `expires_at` integer,
226
+ `idle_expires_at` integer,
227
+ `authenticated_at` integer,
228
+ `last_interaction_at` integer,
229
+ `used_at` integer,
230
+ `revoked_at` integer,
227
231
  `device` text NOT NULL,
228
232
  `clients` text NOT NULL,
229
233
  `login_session_id` text(21),
@@ -232,6 +236,8 @@ CREATE TABLE `sessions` (
232
236
  );
233
237
  --> statement-breakpoint
234
238
  CREATE INDEX `IDX_sessions_login_session_id` ON `sessions` (`login_session_id`);--> statement-breakpoint
239
+ CREATE INDEX `idx_sessions_user_id` ON `sessions` (`tenant_id`,`user_id`);--> statement-breakpoint
240
+ CREATE INDEX `idx_sessions_expires_at` ON `sessions` (`expires_at`);--> statement-breakpoint
235
241
  CREATE TABLE `tickets` (
236
242
  `tenant_id` text(191) NOT NULL,
237
243
  `id` text(255) PRIMARY KEY NOT NULL,
@@ -438,6 +444,7 @@ CREATE TABLE `resource_servers` (
438
444
  `verification_key` text(4096),
439
445
  `options` text(4096),
440
446
  `is_system` integer DEFAULT 0 NOT NULL,
447
+ `metadata` text(4096),
441
448
  `created_at` text(35) NOT NULL,
442
449
  `updated_at` text(35) NOT NULL,
443
450
  PRIMARY KEY(`tenant_id`, `id`)
@@ -460,6 +467,7 @@ CREATE TABLE `roles` (
460
467
  `name` text(50) NOT NULL,
461
468
  `description` text(255),
462
469
  `is_system` integer DEFAULT 0 NOT NULL,
470
+ `metadata` text(4096),
463
471
  `created_at` text(35) NOT NULL,
464
472
  `updated_at` text(35) NOT NULL,
465
473
  PRIMARY KEY(`tenant_id`, `id`)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "6",
3
3
  "dialect": "sqlite",
4
- "id": "18d1a52e-e035-4e11-8380-4010025f05a2",
4
+ "id": "e23a8232-7310-495e-a88e-c153ca437174",
5
5
  "prevId": "00000000-0000-0000-0000-000000000000",
6
6
  "tables": {
7
7
  "tenants": {
@@ -1074,21 +1074,21 @@
1074
1074
  },
1075
1075
  "created_at": {
1076
1076
  "name": "created_at",
1077
- "type": "text(35)",
1077
+ "type": "integer",
1078
1078
  "primaryKey": false,
1079
1079
  "notNull": true,
1080
1080
  "autoincrement": false
1081
1081
  },
1082
1082
  "updated_at": {
1083
1083
  "name": "updated_at",
1084
- "type": "text(35)",
1084
+ "type": "integer",
1085
1085
  "primaryKey": false,
1086
1086
  "notNull": true,
1087
1087
  "autoincrement": false
1088
1088
  },
1089
1089
  "expires_at": {
1090
1090
  "name": "expires_at",
1091
- "type": "text(35)",
1091
+ "type": "integer",
1092
1092
  "primaryKey": false,
1093
1093
  "notNull": true,
1094
1094
  "autoincrement": false
@@ -1174,6 +1174,13 @@
1174
1174
  "user_id"
1175
1175
  ],
1176
1176
  "isUnique": false
1177
+ },
1178
+ "idx_login_sessions_expires_at": {
1179
+ "name": "idx_login_sessions_expires_at",
1180
+ "columns": [
1181
+ "expires_at"
1182
+ ],
1183
+ "isUnique": false
1177
1184
  }
1178
1185
  },
1179
1186
  "foreignKeys": {
@@ -1429,34 +1436,57 @@
1429
1436
  },
1430
1437
  "created_at": {
1431
1438
  "name": "created_at",
1432
- "type": "text(35)",
1439
+ "type": "integer",
1433
1440
  "primaryKey": false,
1434
1441
  "notNull": true,
1435
1442
  "autoincrement": false
1436
1443
  },
1437
1444
  "expires_at": {
1438
1445
  "name": "expires_at",
1439
- "type": "text(35)",
1446
+ "type": "integer",
1440
1447
  "primaryKey": false,
1441
1448
  "notNull": false,
1442
1449
  "autoincrement": false
1443
1450
  },
1444
1451
  "idle_expires_at": {
1445
1452
  "name": "idle_expires_at",
1446
- "type": "text(35)",
1453
+ "type": "integer",
1447
1454
  "primaryKey": false,
1448
1455
  "notNull": false,
1449
1456
  "autoincrement": false
1450
1457
  },
1451
1458
  "last_exchanged_at": {
1452
1459
  "name": "last_exchanged_at",
1453
- "type": "text(35)",
1460
+ "type": "integer",
1454
1461
  "primaryKey": false,
1455
1462
  "notNull": false,
1456
1463
  "autoincrement": false
1457
1464
  }
1458
1465
  },
1459
- "indexes": {},
1466
+ "indexes": {
1467
+ "idx_refresh_tokens_user_id": {
1468
+ "name": "idx_refresh_tokens_user_id",
1469
+ "columns": [
1470
+ "tenant_id",
1471
+ "user_id"
1472
+ ],
1473
+ "isUnique": false
1474
+ },
1475
+ "idx_refresh_tokens_session_id": {
1476
+ "name": "idx_refresh_tokens_session_id",
1477
+ "columns": [
1478
+ "session_id"
1479
+ ],
1480
+ "isUnique": false
1481
+ },
1482
+ "idx_refresh_tokens_expires_at": {
1483
+ "name": "idx_refresh_tokens_expires_at",
1484
+ "columns": [
1485
+ "expires_at"
1486
+ ],
1487
+ "isUnique": false
1488
+ }
1489
+ },
1460
1490
  "foreignKeys": {
1461
1491
  "refresh_tokens_tenant_id_tenants_id_fk": {
1462
1492
  "name": "refresh_tokens_tenant_id_tenants_id_fk",
@@ -1510,56 +1540,56 @@
1510
1540
  },
1511
1541
  "created_at": {
1512
1542
  "name": "created_at",
1513
- "type": "text(35)",
1543
+ "type": "integer",
1514
1544
  "primaryKey": false,
1515
1545
  "notNull": true,
1516
1546
  "autoincrement": false
1517
1547
  },
1518
1548
  "updated_at": {
1519
1549
  "name": "updated_at",
1520
- "type": "text(35)",
1550
+ "type": "integer",
1521
1551
  "primaryKey": false,
1522
1552
  "notNull": true,
1523
1553
  "autoincrement": false
1524
1554
  },
1525
1555
  "expires_at": {
1526
1556
  "name": "expires_at",
1527
- "type": "text(35)",
1557
+ "type": "integer",
1528
1558
  "primaryKey": false,
1529
1559
  "notNull": false,
1530
1560
  "autoincrement": false
1531
1561
  },
1532
1562
  "idle_expires_at": {
1533
1563
  "name": "idle_expires_at",
1534
- "type": "text(35)",
1564
+ "type": "integer",
1535
1565
  "primaryKey": false,
1536
1566
  "notNull": false,
1537
1567
  "autoincrement": false
1538
1568
  },
1539
1569
  "authenticated_at": {
1540
1570
  "name": "authenticated_at",
1541
- "type": "text(35)",
1571
+ "type": "integer",
1542
1572
  "primaryKey": false,
1543
1573
  "notNull": false,
1544
1574
  "autoincrement": false
1545
1575
  },
1546
1576
  "last_interaction_at": {
1547
1577
  "name": "last_interaction_at",
1548
- "type": "text(35)",
1578
+ "type": "integer",
1549
1579
  "primaryKey": false,
1550
1580
  "notNull": false,
1551
1581
  "autoincrement": false
1552
1582
  },
1553
1583
  "used_at": {
1554
1584
  "name": "used_at",
1555
- "type": "text(35)",
1585
+ "type": "integer",
1556
1586
  "primaryKey": false,
1557
1587
  "notNull": false,
1558
1588
  "autoincrement": false
1559
1589
  },
1560
1590
  "revoked_at": {
1561
1591
  "name": "revoked_at",
1562
- "type": "text(35)",
1592
+ "type": "integer",
1563
1593
  "primaryKey": false,
1564
1594
  "notNull": false,
1565
1595
  "autoincrement": false
@@ -1593,6 +1623,21 @@
1593
1623
  "login_session_id"
1594
1624
  ],
1595
1625
  "isUnique": false
1626
+ },
1627
+ "idx_sessions_user_id": {
1628
+ "name": "idx_sessions_user_id",
1629
+ "columns": [
1630
+ "tenant_id",
1631
+ "user_id"
1632
+ ],
1633
+ "isUnique": false
1634
+ },
1635
+ "idx_sessions_expires_at": {
1636
+ "name": "idx_sessions_expires_at",
1637
+ "columns": [
1638
+ "expires_at"
1639
+ ],
1640
+ "isUnique": false
1596
1641
  }
1597
1642
  },
1598
1643
  "foreignKeys": {
@@ -3035,6 +3080,13 @@
3035
3080
  "autoincrement": false,
3036
3081
  "default": 0
3037
3082
  },
3083
+ "metadata": {
3084
+ "name": "metadata",
3085
+ "type": "text(4096)",
3086
+ "primaryKey": false,
3087
+ "notNull": false,
3088
+ "autoincrement": false
3089
+ },
3038
3090
  "created_at": {
3039
3091
  "name": "created_at",
3040
3092
  "type": "text(35)",
@@ -3176,6 +3228,13 @@
3176
3228
  "autoincrement": false,
3177
3229
  "default": 0
3178
3230
  },
3231
+ "metadata": {
3232
+ "name": "metadata",
3233
+ "type": "text(4096)",
3234
+ "primaryKey": false,
3235
+ "notNull": false,
3236
+ "autoincrement": false
3237
+ },
3179
3238
  "created_at": {
3180
3239
  "name": "created_at",
3181
3240
  "type": "text(35)",
@@ -5,9 +5,9 @@
5
5
  {
6
6
  "idx": 0,
7
7
  "version": "6",
8
- "when": 1768311719931,
9
- "tag": "0000_quiet_power_pack",
8
+ "when": 1768383700549,
9
+ "tag": "0000_unique_leader",
10
10
  "breakpoints": true
11
11
  }
12
12
  ]
13
- }
13
+ }
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "type": "git",
12
12
  "url": "https://github.com/markusahlstrand/authhero"
13
13
  },
14
- "version": "0.14.0",
14
+ "version": "0.15.0",
15
15
  "files": [
16
16
  "dist",
17
17
  "src/schema",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "drizzle-orm": "^0.44.2",
44
- "@authhero/adapter-interfaces": "0.121.0"
44
+ "@authhero/adapter-interfaces": "0.122.0"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsc && vite build",
@@ -15,14 +15,14 @@ export const sessions = sqliteTable(
15
15
  .notNull()
16
16
  .references(() => tenants.id, { onDelete: "cascade" }),
17
17
  user_id: text("user_id", { length: 255 }),
18
- created_at: text("created_at", { length: 35 }).notNull(),
19
- updated_at: text("updated_at", { length: 35 }).notNull(),
20
- expires_at: text("expires_at", { length: 35 }),
21
- idle_expires_at: text("idle_expires_at", { length: 35 }),
22
- authenticated_at: text("authenticated_at", { length: 35 }),
23
- last_interaction_at: text("last_interaction_at", { length: 35 }),
24
- used_at: text("used_at", { length: 35 }),
25
- revoked_at: text("revoked_at", { length: 35 }),
18
+ created_at: integer("created_at").notNull(),
19
+ updated_at: integer("updated_at").notNull(),
20
+ expires_at: integer("expires_at"),
21
+ idle_expires_at: integer("idle_expires_at"),
22
+ authenticated_at: integer("authenticated_at"),
23
+ last_interaction_at: integer("last_interaction_at"),
24
+ used_at: integer("used_at"),
25
+ revoked_at: integer("revoked_at"),
26
26
  device: text("device").notNull(),
27
27
  clients: text("clients").notNull(),
28
28
  login_session_id: text("login_session_id", { length: 21 }),
@@ -30,6 +30,8 @@ export const sessions = sqliteTable(
30
30
  (table) => [
31
31
  primaryKey({ columns: [table.tenant_id, table.id], name: "sessions_pk" }),
32
32
  index("IDX_sessions_login_session_id").on(table.login_session_id),
33
+ index("idx_sessions_user_id").on(table.tenant_id, table.user_id),
34
+ index("idx_sessions_expires_at").on(table.expires_at),
33
35
  ],
34
36
  );
35
37
 
@@ -46,16 +48,19 @@ export const refreshTokens = sqliteTable(
46
48
  resource_servers: text("resource_servers").notNull(),
47
49
  device: text("device").notNull(),
48
50
  rotating: integer("rotating", { mode: "boolean" }).notNull(),
49
- created_at: text("created_at", { length: 35 }).notNull(),
50
- expires_at: text("expires_at", { length: 35 }),
51
- idle_expires_at: text("idle_expires_at", { length: 35 }),
52
- last_exchanged_at: text("last_exchanged_at", { length: 35 }),
51
+ created_at: integer("created_at").notNull(),
52
+ expires_at: integer("expires_at"),
53
+ idle_expires_at: integer("idle_expires_at"),
54
+ last_exchanged_at: integer("last_exchanged_at"),
53
55
  },
54
56
  (table) => [
55
57
  primaryKey({
56
58
  columns: [table.tenant_id, table.id],
57
59
  name: "refresh_tokens_pk",
58
60
  }),
61
+ index("idx_refresh_tokens_user_id").on(table.tenant_id, table.user_id),
62
+ index("idx_refresh_tokens_session_id").on(table.session_id),
63
+ index("idx_refresh_tokens_expires_at").on(table.expires_at),
59
64
  ],
60
65
  );
61
66
 
@@ -91,9 +96,9 @@ export const loginSessions = sqliteTable(
91
96
  authParams_act_as: text("authParams_act_as", { length: 256 }),
92
97
  authParams_ui_locales: text("authParams_ui_locales", { length: 32 }),
93
98
  authorization_url: text("authorization_url"),
94
- created_at: text("created_at", { length: 35 }).notNull(),
95
- updated_at: text("updated_at", { length: 35 }).notNull(),
96
- expires_at: text("expires_at", { length: 35 }).notNull(),
99
+ created_at: integer("created_at").notNull(),
100
+ updated_at: integer("updated_at").notNull(),
101
+ expires_at: integer("expires_at").notNull(),
97
102
  ip: text("ip", { length: 39 }),
98
103
  useragent: text("useragent"),
99
104
  auth0Client: text("auth0Client", { length: 255 }),
@@ -111,6 +116,7 @@ export const loginSessions = sqliteTable(
111
116
  index("login_sessions_state_idx").on(table.state),
112
117
  index("login_sessions_state_updated_idx").on(table.state, table.updated_at),
113
118
  index("login_sessions_tenant_user_idx").on(table.tenant_id, table.user_id),
119
+ index("idx_login_sessions_expires_at").on(table.expires_at),
114
120
  ],
115
121
  );
116
122