@intx/db 0.1.2 → 0.2.2

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 (121) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +21 -2
  3. package/dist/asset-resolution.d.ts +52 -0
  4. package/dist/asset-resolution.js +66 -0
  5. package/dist/catalog-resolution.d.ts +76 -0
  6. package/dist/catalog-resolution.js +151 -0
  7. package/dist/client.d.ts +9 -0
  8. package/dist/client.js +18 -0
  9. package/dist/config.d.ts +11 -0
  10. package/dist/config.js +16 -0
  11. package/dist/connection.d.ts +3 -0
  12. package/dist/connection.js +23 -0
  13. package/dist/credential-resolution.d.ts +110 -0
  14. package/dist/credential-resolution.js +116 -0
  15. package/dist/grant-store.d.ts +3 -0
  16. package/dist/grant-store.js +37 -0
  17. package/dist/index.d.ts +13 -0
  18. package/dist/index.js +12 -0
  19. package/dist/migrate.d.ts +36 -0
  20. package/dist/migrate.js +135 -0
  21. package/dist/model-source-resolution.d.ts +69 -0
  22. package/dist/model-source-resolution.js +165 -0
  23. package/dist/parse-row.d.ts +193 -0
  24. package/dist/parse-row.js +141 -0
  25. package/dist/pg-error.d.ts +3 -0
  26. package/dist/pg-error.js +19 -0
  27. package/dist/pricing.d.ts +15 -0
  28. package/dist/pricing.js +24 -0
  29. package/dist/schema/agent-assets.d.ts +109 -0
  30. package/dist/schema/agent-assets.js +15 -0
  31. package/dist/schema/agents.d.ts +405 -0
  32. package/dist/schema/agents.js +57 -0
  33. package/dist/schema/assets.d.ts +143 -0
  34. package/{src/schema/assets.ts → dist/schema/assets.js} +7 -16
  35. package/dist/schema/auth.d.ts +606 -0
  36. package/dist/schema/auth.js +47 -0
  37. package/dist/schema/catalog.d.ts +794 -0
  38. package/dist/schema/catalog.js +102 -0
  39. package/dist/schema/column-types.d.ts +26 -0
  40. package/dist/schema/column-types.js +15 -0
  41. package/dist/schema/credentials.d.ts +305 -0
  42. package/{src/schema/credentials.ts → dist/schema/credentials.js} +16 -22
  43. package/dist/schema/git-tokens.d.ts +256 -0
  44. package/{src/schema/git-tokens.ts → dist/schema/git-tokens.js} +15 -38
  45. package/dist/schema/grants.d.ts +211 -0
  46. package/dist/schema/grants.js +24 -0
  47. package/dist/schema/index.d.ts +21 -0
  48. package/dist/schema/index.js +21 -0
  49. package/dist/schema/instances.d.ts +262 -0
  50. package/dist/schema/instances.js +39 -0
  51. package/dist/schema/messages.d.ts +414 -0
  52. package/dist/schema/messages.js +71 -0
  53. package/dist/schema/oauth-clients.d.ts +246 -0
  54. package/{src/schema/oauth-clients.ts → dist/schema/oauth-clients.js} +8 -14
  55. package/dist/schema/offerings.d.ts +160 -0
  56. package/dist/schema/offerings.js +18 -0
  57. package/dist/schema/principals.d.ts +128 -0
  58. package/{src/schema/principals.ts → dist/schema/principals.js} +7 -14
  59. package/dist/schema/providers.d.ts +220 -0
  60. package/{src/schema/providers.ts → dist/schema/providers.js} +5 -11
  61. package/dist/schema/roles.d.ts +242 -0
  62. package/dist/schema/roles.js +33 -0
  63. package/dist/schema/session-assets.d.ts +129 -0
  64. package/dist/schema/session-assets.js +28 -0
  65. package/dist/schema/sessions.d.ts +143 -0
  66. package/dist/schema/sessions.js +24 -0
  67. package/dist/schema/sidecar.d.ts +128 -0
  68. package/dist/schema/sidecar.js +18 -0
  69. package/dist/schema/tenants.d.ts +235 -0
  70. package/{src/schema/tenants.ts → dist/schema/tenants.js} +10 -27
  71. package/dist/schema/wallets.d.ts +354 -0
  72. package/dist/schema/wallets.js +41 -0
  73. package/dist/schema/workflow-deployments.d.ts +129 -0
  74. package/dist/schema/workflow-deployments.js +37 -0
  75. package/dist/tenant-hierarchy.d.ts +22 -0
  76. package/dist/tenant-hierarchy.js +55 -0
  77. package/migrations/0029_loose_warlock.sql +1 -0
  78. package/migrations/0030_session_asset_audit_split.sql +5 -0
  79. package/migrations/0031_gigantic_nicolaos.sql +68 -0
  80. package/migrations/0032_lethal_misty_knight.sql +1 -0
  81. package/migrations/0033_old_payback.sql +1 -0
  82. package/migrations/0034_sleepy_songbird.sql +11 -0
  83. package/migrations/0035_violet_giant_man.sql +3 -0
  84. package/migrations/0036_sharp_the_executioner.sql +2 -0
  85. package/migrations/meta/0029_snapshot.json +2664 -0
  86. package/migrations/meta/0030_snapshot.json +2670 -0
  87. package/migrations/meta/0031_snapshot.json +3100 -0
  88. package/migrations/meta/0032_snapshot.json +3106 -0
  89. package/migrations/meta/0033_snapshot.json +3112 -0
  90. package/migrations/meta/0034_snapshot.json +3198 -0
  91. package/migrations/meta/0035_snapshot.json +3225 -0
  92. package/migrations/meta/0036_snapshot.json +3237 -0
  93. package/migrations/meta/_journal.json +56 -0
  94. package/package.json +22 -11
  95. package/drizzle.config.ts +0 -23
  96. package/src/client.ts +0 -24
  97. package/src/config.ts +0 -19
  98. package/src/connection.ts +0 -27
  99. package/src/credential-resolution.ts +0 -378
  100. package/src/grant-store.ts +0 -51
  101. package/src/index.ts +0 -32
  102. package/src/migrate.test.ts +0 -35
  103. package/src/migrate.ts +0 -168
  104. package/src/parse-row.test.ts +0 -113
  105. package/src/parse-row.ts +0 -185
  106. package/src/schema/agent-assets.ts +0 -21
  107. package/src/schema/agents.ts +0 -49
  108. package/src/schema/auth.ts +0 -51
  109. package/src/schema/grants.ts +0 -26
  110. package/src/schema/index.ts +0 -19
  111. package/src/schema/instances.ts +0 -36
  112. package/src/schema/messages.ts +0 -108
  113. package/src/schema/offerings.ts +0 -20
  114. package/src/schema/roles.ts +0 -51
  115. package/src/schema/session-assets.ts +0 -49
  116. package/src/schema/sessions.ts +0 -26
  117. package/src/schema/sidecar.ts +0 -14
  118. package/src/schema/wallets.ts +0 -44
  119. package/src/tenant-hierarchy.ts +0 -34
  120. package/tsconfig.json +0 -4
  121. package/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,256 @@
1
+ export declare const gitToken: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "git_token";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "git_token";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ tenantId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "tenant_id";
24
+ tableName: "git_token";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: false;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ userId: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "user_id";
41
+ tableName: "git_token";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ principalId: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "principal_id";
58
+ tableName: "git_token";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: string;
62
+ driverParam: string;
63
+ notNull: false;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: [string, ...string[]];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ name: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "name";
75
+ tableName: "git_token";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: true;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: [string, ...string[]];
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ kind: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "kind";
92
+ tableName: "git_token";
93
+ dataType: "string";
94
+ columnType: "PgText";
95
+ data: "pat" | "svc";
96
+ driverParam: string;
97
+ notNull: true;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: ["pat", "svc"];
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ tokenHashSha256: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "token_hash_sha256";
109
+ tableName: "git_token";
110
+ dataType: "custom";
111
+ columnType: "PgCustomColumn";
112
+ data: Uint8Array<ArrayBufferLike>;
113
+ driverParam: Uint8Array<ArrayBufferLike>;
114
+ notNull: true;
115
+ hasDefault: false;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: undefined;
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {
124
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
125
+ }>;
126
+ resource: import("drizzle-orm/pg-core").PgColumn<{
127
+ name: "resource";
128
+ tableName: "git_token";
129
+ dataType: "string";
130
+ columnType: "PgText";
131
+ data: string;
132
+ driverParam: string;
133
+ notNull: true;
134
+ hasDefault: false;
135
+ isPrimaryKey: false;
136
+ isAutoincrement: false;
137
+ hasRuntimeDefault: false;
138
+ enumValues: [string, ...string[]];
139
+ baseColumn: never;
140
+ identity: undefined;
141
+ generated: undefined;
142
+ }, {}, {}>;
143
+ refPattern: import("drizzle-orm/pg-core").PgColumn<{
144
+ name: "ref_pattern";
145
+ tableName: "git_token";
146
+ dataType: "string";
147
+ columnType: "PgText";
148
+ data: string;
149
+ driverParam: string;
150
+ notNull: true;
151
+ hasDefault: false;
152
+ isPrimaryKey: false;
153
+ isAutoincrement: false;
154
+ hasRuntimeDefault: false;
155
+ enumValues: [string, ...string[]];
156
+ baseColumn: never;
157
+ identity: undefined;
158
+ generated: undefined;
159
+ }, {}, {}>;
160
+ actions: import("drizzle-orm/pg-core").PgColumn<{
161
+ name: "actions";
162
+ tableName: "git_token";
163
+ dataType: "array";
164
+ columnType: "PgArray";
165
+ data: string[];
166
+ driverParam: string | string[];
167
+ notNull: true;
168
+ hasDefault: false;
169
+ isPrimaryKey: false;
170
+ isAutoincrement: false;
171
+ hasRuntimeDefault: false;
172
+ enumValues: [string, ...string[]];
173
+ baseColumn: import("drizzle-orm").Column<{
174
+ name: "actions";
175
+ tableName: "git_token";
176
+ dataType: "string";
177
+ columnType: "PgText";
178
+ data: string;
179
+ driverParam: string;
180
+ notNull: false;
181
+ hasDefault: false;
182
+ isPrimaryKey: false;
183
+ isAutoincrement: false;
184
+ hasRuntimeDefault: false;
185
+ enumValues: [string, ...string[]];
186
+ baseColumn: never;
187
+ identity: undefined;
188
+ generated: undefined;
189
+ }, {}, {}>;
190
+ identity: undefined;
191
+ generated: undefined;
192
+ }, {}, {
193
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
194
+ name: "actions";
195
+ dataType: "string";
196
+ columnType: "PgText";
197
+ data: string;
198
+ enumValues: [string, ...string[]];
199
+ driverParam: string;
200
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
201
+ size: undefined;
202
+ }>;
203
+ expiresAt: import("drizzle-orm/pg-core").PgColumn<{
204
+ name: "expires_at";
205
+ tableName: "git_token";
206
+ dataType: "date";
207
+ columnType: "PgTimestamp";
208
+ data: Date;
209
+ driverParam: string;
210
+ notNull: true;
211
+ hasDefault: false;
212
+ isPrimaryKey: false;
213
+ isAutoincrement: false;
214
+ hasRuntimeDefault: false;
215
+ enumValues: undefined;
216
+ baseColumn: never;
217
+ identity: undefined;
218
+ generated: undefined;
219
+ }, {}, {}>;
220
+ revokedAt: import("drizzle-orm/pg-core").PgColumn<{
221
+ name: "revoked_at";
222
+ tableName: "git_token";
223
+ dataType: "date";
224
+ columnType: "PgTimestamp";
225
+ data: Date;
226
+ driverParam: string;
227
+ notNull: false;
228
+ hasDefault: false;
229
+ isPrimaryKey: false;
230
+ isAutoincrement: false;
231
+ hasRuntimeDefault: false;
232
+ enumValues: undefined;
233
+ baseColumn: never;
234
+ identity: undefined;
235
+ generated: undefined;
236
+ }, {}, {}>;
237
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
238
+ name: "created_at";
239
+ tableName: "git_token";
240
+ dataType: "date";
241
+ columnType: "PgTimestamp";
242
+ data: Date;
243
+ driverParam: string;
244
+ notNull: true;
245
+ hasDefault: true;
246
+ isPrimaryKey: false;
247
+ isAutoincrement: false;
248
+ hasRuntimeDefault: false;
249
+ enumValues: undefined;
250
+ baseColumn: never;
251
+ identity: undefined;
252
+ generated: undefined;
253
+ }, {}, {}>;
254
+ };
255
+ dialect: "pg";
256
+ }>;
@@ -1,28 +1,9 @@
1
1
  import { sql } from "drizzle-orm";
2
- import {
3
- customType,
4
- pgTable,
5
- text,
6
- timestamp,
7
- uniqueIndex,
8
- } from "drizzle-orm/pg-core";
9
-
10
- import { user } from "./auth";
11
- import { principal } from "./principals";
12
- import { tenant } from "./tenants";
13
-
14
- const bytea = customType<{ data: Uint8Array; driverData: Buffer }>({
15
- dataType() {
16
- return "bytea";
17
- },
18
- toDriver(value) {
19
- return Buffer.from(value);
20
- },
21
- fromDriver(value) {
22
- return new Uint8Array(value);
23
- },
24
- });
25
-
2
+ import { pgTable, text, timestamp, uniqueIndex } from "drizzle-orm/pg-core";
3
+ import { user } from "./auth.js";
4
+ import { bytea } from "./column-types.js";
5
+ import { principal } from "./principals.js";
6
+ import { tenant } from "./tenants.js";
26
7
  // Hub-issued bearer tokens for the smart-HTTP git endpoints. Opaque
27
8
  // tokens of the form `itx_pat_<base64>` or `itx_svc_<base64>` whose
28
9
  // SHA-256 digest is stored as `tokenHashSha256` (the raw secret is
@@ -52,16 +33,14 @@ const bytea = customType<{ data: Uint8Array; driverData: Buffer }>({
52
33
  // `(user_id, name)` filtered by `revoked_at is null` lets a user
53
34
  // reuse a friendly name (e.g. "laptop") after revoking the old
54
35
  // token bearing that name.
55
- export const gitToken = pgTable(
56
- "git_token",
57
- {
36
+ export const gitToken = pgTable("git_token", {
58
37
  id: text("id").primaryKey(),
59
38
  tenantId: text("tenant_id").references(() => tenant.id),
60
39
  userId: text("user_id")
61
- .notNull()
62
- .references(() => user.id, { onDelete: "cascade" }),
40
+ .notNull()
41
+ .references(() => user.id, { onDelete: "cascade" }),
63
42
  principalId: text("principal_id").references(() => principal.id, {
64
- onDelete: "cascade",
43
+ onDelete: "cascade",
65
44
  }),
66
45
  name: text("name").notNull(),
67
46
  kind: text("kind", { enum: ["pat", "svc"] }).notNull(),
@@ -72,12 +51,10 @@ export const gitToken = pgTable(
72
51
  expiresAt: timestamp("expires_at", { withTimezone: true }).notNull(),
73
52
  revokedAt: timestamp("revoked_at", { withTimezone: true }),
74
53
  createdAt: timestamp("created_at", { withTimezone: true })
75
- .notNull()
76
- .defaultNow(),
77
- },
78
- (t) => [
54
+ .notNull()
55
+ .defaultNow(),
56
+ }, (t) => [
79
57
  uniqueIndex("git_token_user_id_name_active_idx")
80
- .on(t.userId, t.name)
81
- .where(sql`${t.revokedAt} is null`),
82
- ],
83
- );
58
+ .on(t.userId, t.name)
59
+ .where(sql `${t.revokedAt} is null`),
60
+ ]);
@@ -0,0 +1,211 @@
1
+ export declare const grant: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "grant";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "grant";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ tenantId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "tenant_id";
24
+ tableName: "grant";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ roleId: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "role_id";
41
+ tableName: "grant";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: false;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ principalId: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "principal_id";
58
+ tableName: "grant";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: string;
62
+ driverParam: string;
63
+ notNull: false;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: [string, ...string[]];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ resource: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "resource";
75
+ tableName: "grant";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: true;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: [string, ...string[]];
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ action: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "action";
92
+ tableName: "grant";
93
+ dataType: "string";
94
+ columnType: "PgText";
95
+ data: string;
96
+ driverParam: string;
97
+ notNull: true;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: [string, ...string[]];
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ effect: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "effect";
109
+ tableName: "grant";
110
+ dataType: "string";
111
+ columnType: "PgText";
112
+ data: "allow" | "deny" | "ask";
113
+ driverParam: string;
114
+ notNull: true;
115
+ hasDefault: false;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: ["allow", "deny", "ask"];
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {}>;
124
+ conditions: import("drizzle-orm/pg-core").PgColumn<{
125
+ name: "conditions";
126
+ tableName: "grant";
127
+ dataType: "json";
128
+ columnType: "PgJsonb";
129
+ data: unknown;
130
+ driverParam: unknown;
131
+ notNull: false;
132
+ hasDefault: false;
133
+ isPrimaryKey: false;
134
+ isAutoincrement: false;
135
+ hasRuntimeDefault: false;
136
+ enumValues: undefined;
137
+ baseColumn: never;
138
+ identity: undefined;
139
+ generated: undefined;
140
+ }, {}, {}>;
141
+ origin: import("drizzle-orm/pg-core").PgColumn<{
142
+ name: "origin";
143
+ tableName: "grant";
144
+ dataType: "string";
145
+ columnType: "PgText";
146
+ data: "role" | "system" | "creator" | "invoker";
147
+ driverParam: string;
148
+ notNull: true;
149
+ hasDefault: false;
150
+ isPrimaryKey: false;
151
+ isAutoincrement: false;
152
+ hasRuntimeDefault: false;
153
+ enumValues: ["system", "role", "creator", "invoker"];
154
+ baseColumn: never;
155
+ identity: undefined;
156
+ generated: undefined;
157
+ }, {}, {}>;
158
+ expiresAt: import("drizzle-orm/pg-core").PgColumn<{
159
+ name: "expires_at";
160
+ tableName: "grant";
161
+ dataType: "date";
162
+ columnType: "PgTimestamp";
163
+ data: Date;
164
+ driverParam: string;
165
+ notNull: false;
166
+ hasDefault: false;
167
+ isPrimaryKey: false;
168
+ isAutoincrement: false;
169
+ hasRuntimeDefault: false;
170
+ enumValues: undefined;
171
+ baseColumn: never;
172
+ identity: undefined;
173
+ generated: undefined;
174
+ }, {}, {}>;
175
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
176
+ name: "created_at";
177
+ tableName: "grant";
178
+ dataType: "date";
179
+ columnType: "PgTimestamp";
180
+ data: Date;
181
+ driverParam: string;
182
+ notNull: true;
183
+ hasDefault: true;
184
+ isPrimaryKey: false;
185
+ isAutoincrement: false;
186
+ hasRuntimeDefault: false;
187
+ enumValues: undefined;
188
+ baseColumn: never;
189
+ identity: undefined;
190
+ generated: undefined;
191
+ }, {}, {}>;
192
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
193
+ name: "updated_at";
194
+ tableName: "grant";
195
+ dataType: "date";
196
+ columnType: "PgTimestamp";
197
+ data: Date;
198
+ driverParam: string;
199
+ notNull: true;
200
+ hasDefault: true;
201
+ isPrimaryKey: false;
202
+ isAutoincrement: false;
203
+ hasRuntimeDefault: false;
204
+ enumValues: undefined;
205
+ baseColumn: never;
206
+ identity: undefined;
207
+ generated: undefined;
208
+ }, {}, {}>;
209
+ };
210
+ dialect: "pg";
211
+ }>;
@@ -0,0 +1,24 @@
1
+ import { jsonb, pgTable, text, timestamp } from "drizzle-orm/pg-core";
2
+ import { principal } from "./principals.js";
3
+ import { role } from "./roles.js";
4
+ import { tenant } from "./tenants.js";
5
+ export const grant = pgTable("grant", {
6
+ id: text("id").primaryKey(),
7
+ tenantId: text("tenant_id")
8
+ .notNull()
9
+ .references(() => tenant.id, { onDelete: "cascade" }),
10
+ roleId: text("role_id").references(() => role.id, { onDelete: "cascade" }),
11
+ principalId: text("principal_id").references(() => principal.id, {
12
+ onDelete: "cascade",
13
+ }),
14
+ resource: text("resource").notNull(),
15
+ action: text("action").notNull(),
16
+ effect: text("effect", { enum: ["allow", "deny", "ask"] }).notNull(),
17
+ conditions: jsonb("conditions"),
18
+ origin: text("origin", {
19
+ enum: ["system", "role", "creator", "invoker"],
20
+ }).notNull(),
21
+ expiresAt: timestamp("expires_at"),
22
+ createdAt: timestamp("created_at").notNull().defaultNow(),
23
+ updatedAt: timestamp("updated_at").notNull().defaultNow(),
24
+ });
@@ -0,0 +1,21 @@
1
+ export * from "./auth.js";
2
+ export * from "./tenants.js";
3
+ export * from "./principals.js";
4
+ export * from "./roles.js";
5
+ export * from "./grants.js";
6
+ export * from "./agents.js";
7
+ export * from "./providers.js";
8
+ export * from "./oauth-clients.js";
9
+ export * from "./credentials.js";
10
+ export * from "./assets.js";
11
+ export * from "./agent-assets.js";
12
+ export * from "./wallets.js";
13
+ export * from "./offerings.js";
14
+ export * from "./catalog.js";
15
+ export * from "./sidecar.js";
16
+ export * from "./sessions.js";
17
+ export * from "./instances.js";
18
+ export * from "./session-assets.js";
19
+ export * from "./messages.js";
20
+ export * from "./git-tokens.js";
21
+ export * from "./workflow-deployments.js";
@@ -0,0 +1,21 @@
1
+ export * from "./auth.js";
2
+ export * from "./tenants.js";
3
+ export * from "./principals.js";
4
+ export * from "./roles.js";
5
+ export * from "./grants.js";
6
+ export * from "./agents.js";
7
+ export * from "./providers.js";
8
+ export * from "./oauth-clients.js";
9
+ export * from "./credentials.js";
10
+ export * from "./assets.js";
11
+ export * from "./agent-assets.js";
12
+ export * from "./wallets.js";
13
+ export * from "./offerings.js";
14
+ export * from "./catalog.js";
15
+ export * from "./sidecar.js";
16
+ export * from "./sessions.js";
17
+ export * from "./instances.js";
18
+ export * from "./session-assets.js";
19
+ export * from "./messages.js";
20
+ export * from "./git-tokens.js";
21
+ export * from "./workflow-deployments.js";