@holeauth/rbac-drizzle 0.0.1-alpha.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.
@@ -0,0 +1,309 @@
1
+ import * as drizzle_orm from 'drizzle-orm';
2
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
3
+ import { PgTableWithColumns } from 'drizzle-orm/pg-core';
4
+ import { RbacAdapter } from '@holeauth/plugin-rbac';
5
+
6
+ type PgUsersTable = PgTableWithColumns<any> & {
7
+ id: any;
8
+ };
9
+ interface CreateRbacTablesOptions<U extends PgUsersTable> {
10
+ usersTable: U;
11
+ /** Prefix for rbac tables. Default `holeauth_rbac_`. */
12
+ prefix?: string;
13
+ /** Also persist group definitions (opt-in). Default `false` — groups come from YAML. */
14
+ persistGroups?: boolean;
15
+ }
16
+ declare function createRbacTables<U extends PgUsersTable>(opts: CreateRbacTablesOptions<U>): {
17
+ tables: {
18
+ userGroups: PgTableWithColumns<{
19
+ name: string;
20
+ schema: undefined;
21
+ columns: {
22
+ userId: drizzle_orm_pg_core.PgColumn<{
23
+ name: "user_id";
24
+ tableName: string;
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
+ groupId: drizzle_orm_pg_core.PgColumn<{
40
+ name: "group_id";
41
+ tableName: string;
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
+ assignedAt: drizzle_orm_pg_core.PgColumn<{
57
+ name: "assigned_at";
58
+ tableName: string;
59
+ dataType: "date";
60
+ columnType: "PgTimestamp";
61
+ data: Date;
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: true;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: undefined;
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ };
74
+ dialect: "pg";
75
+ }>;
76
+ userPermissions: PgTableWithColumns<{
77
+ name: string;
78
+ schema: undefined;
79
+ columns: {
80
+ userId: drizzle_orm_pg_core.PgColumn<{
81
+ name: "user_id";
82
+ tableName: string;
83
+ dataType: "string";
84
+ columnType: "PgText";
85
+ data: string;
86
+ driverParam: string;
87
+ notNull: true;
88
+ hasDefault: false;
89
+ isPrimaryKey: false;
90
+ isAutoincrement: false;
91
+ hasRuntimeDefault: false;
92
+ enumValues: [string, ...string[]];
93
+ baseColumn: never;
94
+ identity: undefined;
95
+ generated: undefined;
96
+ }, {}, {}>;
97
+ node: drizzle_orm_pg_core.PgColumn<{
98
+ name: "node";
99
+ tableName: string;
100
+ dataType: "string";
101
+ columnType: "PgText";
102
+ data: string;
103
+ driverParam: string;
104
+ notNull: true;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {}>;
114
+ assignedAt: drizzle_orm_pg_core.PgColumn<{
115
+ name: "assigned_at";
116
+ tableName: string;
117
+ dataType: "date";
118
+ columnType: "PgTimestamp";
119
+ data: Date;
120
+ driverParam: string;
121
+ notNull: true;
122
+ hasDefault: true;
123
+ isPrimaryKey: false;
124
+ isAutoincrement: false;
125
+ hasRuntimeDefault: false;
126
+ enumValues: undefined;
127
+ baseColumn: never;
128
+ identity: undefined;
129
+ generated: undefined;
130
+ }, {}, {}>;
131
+ };
132
+ dialect: "pg";
133
+ }>;
134
+ groups?: NonNullable<PgTableWithColumns<{
135
+ name: string;
136
+ schema: undefined;
137
+ columns: {
138
+ id: drizzle_orm_pg_core.PgColumn<{
139
+ name: "id";
140
+ tableName: string;
141
+ dataType: "string";
142
+ columnType: "PgText";
143
+ data: string;
144
+ driverParam: string;
145
+ notNull: true;
146
+ hasDefault: false;
147
+ isPrimaryKey: true;
148
+ isAutoincrement: false;
149
+ hasRuntimeDefault: false;
150
+ enumValues: [string, ...string[]];
151
+ baseColumn: never;
152
+ identity: undefined;
153
+ generated: undefined;
154
+ }, {}, {}>;
155
+ displayName: drizzle_orm_pg_core.PgColumn<{
156
+ name: "display_name";
157
+ tableName: string;
158
+ dataType: "string";
159
+ columnType: "PgText";
160
+ data: string;
161
+ driverParam: string;
162
+ notNull: false;
163
+ hasDefault: false;
164
+ isPrimaryKey: false;
165
+ isAutoincrement: false;
166
+ hasRuntimeDefault: false;
167
+ enumValues: [string, ...string[]];
168
+ baseColumn: never;
169
+ identity: undefined;
170
+ generated: undefined;
171
+ }, {}, {}>;
172
+ description: drizzle_orm_pg_core.PgColumn<{
173
+ name: "description";
174
+ tableName: string;
175
+ dataType: "string";
176
+ columnType: "PgText";
177
+ data: string;
178
+ driverParam: string;
179
+ notNull: false;
180
+ hasDefault: false;
181
+ isPrimaryKey: false;
182
+ isAutoincrement: false;
183
+ hasRuntimeDefault: false;
184
+ enumValues: [string, ...string[]];
185
+ baseColumn: never;
186
+ identity: undefined;
187
+ generated: undefined;
188
+ }, {}, {}>;
189
+ priority: drizzle_orm_pg_core.PgColumn<{
190
+ name: "priority";
191
+ tableName: string;
192
+ dataType: "number";
193
+ columnType: "PgInteger";
194
+ data: number;
195
+ driverParam: string | number;
196
+ notNull: false;
197
+ hasDefault: false;
198
+ isPrimaryKey: false;
199
+ isAutoincrement: false;
200
+ hasRuntimeDefault: false;
201
+ enumValues: undefined;
202
+ baseColumn: never;
203
+ identity: undefined;
204
+ generated: undefined;
205
+ }, {}, {}>;
206
+ isDefault: drizzle_orm_pg_core.PgColumn<{
207
+ name: "is_default";
208
+ tableName: string;
209
+ dataType: "boolean";
210
+ columnType: "PgBoolean";
211
+ data: boolean;
212
+ driverParam: boolean;
213
+ notNull: true;
214
+ hasDefault: true;
215
+ isPrimaryKey: false;
216
+ isAutoincrement: false;
217
+ hasRuntimeDefault: false;
218
+ enumValues: undefined;
219
+ baseColumn: never;
220
+ identity: undefined;
221
+ generated: undefined;
222
+ }, {}, {}>;
223
+ effective: drizzle_orm_pg_core.PgColumn<{
224
+ name: "effective";
225
+ tableName: string;
226
+ dataType: "array";
227
+ columnType: "PgArray";
228
+ data: string[];
229
+ driverParam: string | string[];
230
+ notNull: true;
231
+ hasDefault: true;
232
+ isPrimaryKey: false;
233
+ isAutoincrement: false;
234
+ hasRuntimeDefault: false;
235
+ enumValues: [string, ...string[]];
236
+ baseColumn: drizzle_orm.Column<{
237
+ name: "effective";
238
+ tableName: string;
239
+ dataType: "string";
240
+ columnType: "PgText";
241
+ data: string;
242
+ driverParam: string;
243
+ notNull: false;
244
+ hasDefault: false;
245
+ isPrimaryKey: false;
246
+ isAutoincrement: false;
247
+ hasRuntimeDefault: false;
248
+ enumValues: [string, ...string[]];
249
+ baseColumn: never;
250
+ identity: undefined;
251
+ generated: undefined;
252
+ }, object, object>;
253
+ identity: undefined;
254
+ generated: undefined;
255
+ }, {}, {}>;
256
+ permissions: drizzle_orm_pg_core.PgColumn<{
257
+ name: "permissions";
258
+ tableName: string;
259
+ dataType: "array";
260
+ columnType: "PgArray";
261
+ data: string[];
262
+ driverParam: string | string[];
263
+ notNull: true;
264
+ hasDefault: true;
265
+ isPrimaryKey: false;
266
+ isAutoincrement: false;
267
+ hasRuntimeDefault: false;
268
+ enumValues: [string, ...string[]];
269
+ baseColumn: drizzle_orm.Column<{
270
+ name: "permissions";
271
+ tableName: string;
272
+ dataType: "string";
273
+ columnType: "PgText";
274
+ data: string;
275
+ driverParam: string;
276
+ notNull: false;
277
+ hasDefault: false;
278
+ isPrimaryKey: false;
279
+ isAutoincrement: false;
280
+ hasRuntimeDefault: false;
281
+ enumValues: [string, ...string[]];
282
+ baseColumn: never;
283
+ identity: undefined;
284
+ generated: undefined;
285
+ }, object, object>;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {}>;
289
+ };
290
+ dialect: "pg";
291
+ }> | undefined>;
292
+ };
293
+ relations: {
294
+ userGroupsRelations: drizzle_orm.Relations<string, {
295
+ user: drizzle_orm.One<U["_"]["name"], true>;
296
+ }>;
297
+ userPermissionsRelations: drizzle_orm.Relations<string, {
298
+ user: drizzle_orm.One<U["_"]["name"], true>;
299
+ }>;
300
+ };
301
+ };
302
+ type RbacTables = ReturnType<typeof createRbacTables>['tables'];
303
+ interface CreateRbacAdapterOptions {
304
+ db: any;
305
+ tables: RbacTables;
306
+ }
307
+ declare function createRbacAdapter(opts: CreateRbacAdapterOptions): RbacAdapter;
308
+
309
+ export { type CreateRbacAdapterOptions, type CreateRbacTablesOptions, type PgUsersTable, createRbacAdapter, createRbacTables };
@@ -0,0 +1,309 @@
1
+ import * as drizzle_orm from 'drizzle-orm';
2
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
3
+ import { PgTableWithColumns } from 'drizzle-orm/pg-core';
4
+ import { RbacAdapter } from '@holeauth/plugin-rbac';
5
+
6
+ type PgUsersTable = PgTableWithColumns<any> & {
7
+ id: any;
8
+ };
9
+ interface CreateRbacTablesOptions<U extends PgUsersTable> {
10
+ usersTable: U;
11
+ /** Prefix for rbac tables. Default `holeauth_rbac_`. */
12
+ prefix?: string;
13
+ /** Also persist group definitions (opt-in). Default `false` — groups come from YAML. */
14
+ persistGroups?: boolean;
15
+ }
16
+ declare function createRbacTables<U extends PgUsersTable>(opts: CreateRbacTablesOptions<U>): {
17
+ tables: {
18
+ userGroups: PgTableWithColumns<{
19
+ name: string;
20
+ schema: undefined;
21
+ columns: {
22
+ userId: drizzle_orm_pg_core.PgColumn<{
23
+ name: "user_id";
24
+ tableName: string;
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
+ groupId: drizzle_orm_pg_core.PgColumn<{
40
+ name: "group_id";
41
+ tableName: string;
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
+ assignedAt: drizzle_orm_pg_core.PgColumn<{
57
+ name: "assigned_at";
58
+ tableName: string;
59
+ dataType: "date";
60
+ columnType: "PgTimestamp";
61
+ data: Date;
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: true;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: undefined;
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ };
74
+ dialect: "pg";
75
+ }>;
76
+ userPermissions: PgTableWithColumns<{
77
+ name: string;
78
+ schema: undefined;
79
+ columns: {
80
+ userId: drizzle_orm_pg_core.PgColumn<{
81
+ name: "user_id";
82
+ tableName: string;
83
+ dataType: "string";
84
+ columnType: "PgText";
85
+ data: string;
86
+ driverParam: string;
87
+ notNull: true;
88
+ hasDefault: false;
89
+ isPrimaryKey: false;
90
+ isAutoincrement: false;
91
+ hasRuntimeDefault: false;
92
+ enumValues: [string, ...string[]];
93
+ baseColumn: never;
94
+ identity: undefined;
95
+ generated: undefined;
96
+ }, {}, {}>;
97
+ node: drizzle_orm_pg_core.PgColumn<{
98
+ name: "node";
99
+ tableName: string;
100
+ dataType: "string";
101
+ columnType: "PgText";
102
+ data: string;
103
+ driverParam: string;
104
+ notNull: true;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {}>;
114
+ assignedAt: drizzle_orm_pg_core.PgColumn<{
115
+ name: "assigned_at";
116
+ tableName: string;
117
+ dataType: "date";
118
+ columnType: "PgTimestamp";
119
+ data: Date;
120
+ driverParam: string;
121
+ notNull: true;
122
+ hasDefault: true;
123
+ isPrimaryKey: false;
124
+ isAutoincrement: false;
125
+ hasRuntimeDefault: false;
126
+ enumValues: undefined;
127
+ baseColumn: never;
128
+ identity: undefined;
129
+ generated: undefined;
130
+ }, {}, {}>;
131
+ };
132
+ dialect: "pg";
133
+ }>;
134
+ groups?: NonNullable<PgTableWithColumns<{
135
+ name: string;
136
+ schema: undefined;
137
+ columns: {
138
+ id: drizzle_orm_pg_core.PgColumn<{
139
+ name: "id";
140
+ tableName: string;
141
+ dataType: "string";
142
+ columnType: "PgText";
143
+ data: string;
144
+ driverParam: string;
145
+ notNull: true;
146
+ hasDefault: false;
147
+ isPrimaryKey: true;
148
+ isAutoincrement: false;
149
+ hasRuntimeDefault: false;
150
+ enumValues: [string, ...string[]];
151
+ baseColumn: never;
152
+ identity: undefined;
153
+ generated: undefined;
154
+ }, {}, {}>;
155
+ displayName: drizzle_orm_pg_core.PgColumn<{
156
+ name: "display_name";
157
+ tableName: string;
158
+ dataType: "string";
159
+ columnType: "PgText";
160
+ data: string;
161
+ driverParam: string;
162
+ notNull: false;
163
+ hasDefault: false;
164
+ isPrimaryKey: false;
165
+ isAutoincrement: false;
166
+ hasRuntimeDefault: false;
167
+ enumValues: [string, ...string[]];
168
+ baseColumn: never;
169
+ identity: undefined;
170
+ generated: undefined;
171
+ }, {}, {}>;
172
+ description: drizzle_orm_pg_core.PgColumn<{
173
+ name: "description";
174
+ tableName: string;
175
+ dataType: "string";
176
+ columnType: "PgText";
177
+ data: string;
178
+ driverParam: string;
179
+ notNull: false;
180
+ hasDefault: false;
181
+ isPrimaryKey: false;
182
+ isAutoincrement: false;
183
+ hasRuntimeDefault: false;
184
+ enumValues: [string, ...string[]];
185
+ baseColumn: never;
186
+ identity: undefined;
187
+ generated: undefined;
188
+ }, {}, {}>;
189
+ priority: drizzle_orm_pg_core.PgColumn<{
190
+ name: "priority";
191
+ tableName: string;
192
+ dataType: "number";
193
+ columnType: "PgInteger";
194
+ data: number;
195
+ driverParam: string | number;
196
+ notNull: false;
197
+ hasDefault: false;
198
+ isPrimaryKey: false;
199
+ isAutoincrement: false;
200
+ hasRuntimeDefault: false;
201
+ enumValues: undefined;
202
+ baseColumn: never;
203
+ identity: undefined;
204
+ generated: undefined;
205
+ }, {}, {}>;
206
+ isDefault: drizzle_orm_pg_core.PgColumn<{
207
+ name: "is_default";
208
+ tableName: string;
209
+ dataType: "boolean";
210
+ columnType: "PgBoolean";
211
+ data: boolean;
212
+ driverParam: boolean;
213
+ notNull: true;
214
+ hasDefault: true;
215
+ isPrimaryKey: false;
216
+ isAutoincrement: false;
217
+ hasRuntimeDefault: false;
218
+ enumValues: undefined;
219
+ baseColumn: never;
220
+ identity: undefined;
221
+ generated: undefined;
222
+ }, {}, {}>;
223
+ effective: drizzle_orm_pg_core.PgColumn<{
224
+ name: "effective";
225
+ tableName: string;
226
+ dataType: "array";
227
+ columnType: "PgArray";
228
+ data: string[];
229
+ driverParam: string | string[];
230
+ notNull: true;
231
+ hasDefault: true;
232
+ isPrimaryKey: false;
233
+ isAutoincrement: false;
234
+ hasRuntimeDefault: false;
235
+ enumValues: [string, ...string[]];
236
+ baseColumn: drizzle_orm.Column<{
237
+ name: "effective";
238
+ tableName: string;
239
+ dataType: "string";
240
+ columnType: "PgText";
241
+ data: string;
242
+ driverParam: string;
243
+ notNull: false;
244
+ hasDefault: false;
245
+ isPrimaryKey: false;
246
+ isAutoincrement: false;
247
+ hasRuntimeDefault: false;
248
+ enumValues: [string, ...string[]];
249
+ baseColumn: never;
250
+ identity: undefined;
251
+ generated: undefined;
252
+ }, object, object>;
253
+ identity: undefined;
254
+ generated: undefined;
255
+ }, {}, {}>;
256
+ permissions: drizzle_orm_pg_core.PgColumn<{
257
+ name: "permissions";
258
+ tableName: string;
259
+ dataType: "array";
260
+ columnType: "PgArray";
261
+ data: string[];
262
+ driverParam: string | string[];
263
+ notNull: true;
264
+ hasDefault: true;
265
+ isPrimaryKey: false;
266
+ isAutoincrement: false;
267
+ hasRuntimeDefault: false;
268
+ enumValues: [string, ...string[]];
269
+ baseColumn: drizzle_orm.Column<{
270
+ name: "permissions";
271
+ tableName: string;
272
+ dataType: "string";
273
+ columnType: "PgText";
274
+ data: string;
275
+ driverParam: string;
276
+ notNull: false;
277
+ hasDefault: false;
278
+ isPrimaryKey: false;
279
+ isAutoincrement: false;
280
+ hasRuntimeDefault: false;
281
+ enumValues: [string, ...string[]];
282
+ baseColumn: never;
283
+ identity: undefined;
284
+ generated: undefined;
285
+ }, object, object>;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {}>;
289
+ };
290
+ dialect: "pg";
291
+ }> | undefined>;
292
+ };
293
+ relations: {
294
+ userGroupsRelations: drizzle_orm.Relations<string, {
295
+ user: drizzle_orm.One<U["_"]["name"], true>;
296
+ }>;
297
+ userPermissionsRelations: drizzle_orm.Relations<string, {
298
+ user: drizzle_orm.One<U["_"]["name"], true>;
299
+ }>;
300
+ };
301
+ };
302
+ type RbacTables = ReturnType<typeof createRbacTables>['tables'];
303
+ interface CreateRbacAdapterOptions {
304
+ db: any;
305
+ tables: RbacTables;
306
+ }
307
+ declare function createRbacAdapter(opts: CreateRbacAdapterOptions): RbacAdapter;
308
+
309
+ export { type CreateRbacAdapterOptions, type CreateRbacTablesOptions, type PgUsersTable, createRbacAdapter, createRbacTables };