ai-database 0.1.0 → 2.0.1
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.
- package/.turbo/turbo-build.log +5 -0
- package/CHANGELOG.md +9 -0
- package/README.md +381 -68
- package/TESTING.md +410 -0
- package/TEST_SUMMARY.md +250 -0
- package/TODO.md +128 -0
- package/dist/ai-promise-db.d.ts +370 -0
- package/dist/ai-promise-db.d.ts.map +1 -0
- package/dist/ai-promise-db.js +839 -0
- package/dist/ai-promise-db.js.map +1 -0
- package/dist/authorization.d.ts +531 -0
- package/dist/authorization.d.ts.map +1 -0
- package/dist/authorization.js +632 -0
- package/dist/authorization.js.map +1 -0
- package/dist/durable-clickhouse.d.ts +193 -0
- package/dist/durable-clickhouse.d.ts.map +1 -0
- package/dist/durable-clickhouse.js +422 -0
- package/dist/durable-clickhouse.js.map +1 -0
- package/dist/durable-promise.d.ts +182 -0
- package/dist/durable-promise.d.ts.map +1 -0
- package/dist/durable-promise.js +409 -0
- package/dist/durable-promise.js.map +1 -0
- package/dist/execution-queue.d.ts +239 -0
- package/dist/execution-queue.d.ts.map +1 -0
- package/dist/execution-queue.js +400 -0
- package/dist/execution-queue.js.map +1 -0
- package/dist/index.d.ts +50 -191
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -462
- package/dist/index.js.map +1 -0
- package/dist/linguistic.d.ts +115 -0
- package/dist/linguistic.d.ts.map +1 -0
- package/dist/linguistic.js +379 -0
- package/dist/linguistic.js.map +1 -0
- package/dist/memory-provider.d.ts +304 -0
- package/dist/memory-provider.d.ts.map +1 -0
- package/dist/memory-provider.js +785 -0
- package/dist/memory-provider.js.map +1 -0
- package/dist/schema.d.ts +899 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +1165 -0
- package/dist/schema.js.map +1 -0
- package/dist/tests.d.ts +107 -0
- package/dist/tests.d.ts.map +1 -0
- package/dist/tests.js +568 -0
- package/dist/tests.js.map +1 -0
- package/dist/types.d.ts +972 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +126 -0
- package/dist/types.js.map +1 -0
- package/package.json +37 -37
- package/src/ai-promise-db.ts +1243 -0
- package/src/authorization.ts +1102 -0
- package/src/durable-clickhouse.ts +596 -0
- package/src/durable-promise.ts +582 -0
- package/src/execution-queue.ts +608 -0
- package/src/index.test.ts +868 -0
- package/src/index.ts +337 -0
- package/src/linguistic.ts +404 -0
- package/src/memory-provider.test.ts +1036 -0
- package/src/memory-provider.ts +1119 -0
- package/src/schema.test.ts +1254 -0
- package/src/schema.ts +2296 -0
- package/src/tests.ts +725 -0
- package/src/types.ts +1177 -0
- package/test/README.md +153 -0
- package/test/edge-cases.test.ts +646 -0
- package/test/provider-resolution.test.ts +402 -0
- package/tsconfig.json +9 -0
- package/vitest.config.ts +19 -0
- package/dist/index.d.mts +0 -195
- package/dist/index.mjs +0 -430
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-promise-db.js","sourceRoot":"","sources":["../src/ai-promise-db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authorization Primitives (FGA/RBAC)
|
|
3
|
+
*
|
|
4
|
+
* Based on WorkOS FGA design - Fine-Grained Authorization that:
|
|
5
|
+
* - Extends RBAC with resource-scoped, hierarchical permissions
|
|
6
|
+
* - Uses Subjects, Resources, Roles, Permissions, Assignments
|
|
7
|
+
* - Supports automatic inheritance through resource hierarchy
|
|
8
|
+
* - Integrates with Noun/Verb for action authorization
|
|
9
|
+
*
|
|
10
|
+
* @see https://workos.com/docs/fga
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import type { Noun } from './schema.js';
|
|
14
|
+
/**
|
|
15
|
+
* Subject - who is requesting access
|
|
16
|
+
*
|
|
17
|
+
* Can be a user, group, service account, AI agent, or any entity
|
|
18
|
+
* that can be granted permissions.
|
|
19
|
+
*/
|
|
20
|
+
export interface Subject {
|
|
21
|
+
/** Subject type (user, group, service, agent) */
|
|
22
|
+
type: string;
|
|
23
|
+
/** Unique identifier within the type */
|
|
24
|
+
id: string;
|
|
25
|
+
/** Optional display name */
|
|
26
|
+
name?: string;
|
|
27
|
+
/** Subject metadata */
|
|
28
|
+
metadata?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Subject types
|
|
32
|
+
*/
|
|
33
|
+
export type SubjectType = 'user' | 'group' | 'team' | 'service' | 'agent' | 'role' | string;
|
|
34
|
+
/**
|
|
35
|
+
* Resource - what is being accessed
|
|
36
|
+
*
|
|
37
|
+
* Any entity in the system that can have permissions.
|
|
38
|
+
* Resources form a hierarchy (up to 5 levels).
|
|
39
|
+
*/
|
|
40
|
+
export interface Resource {
|
|
41
|
+
/** Resource type (maps to Noun) */
|
|
42
|
+
type: string;
|
|
43
|
+
/** Unique identifier */
|
|
44
|
+
id: string;
|
|
45
|
+
/** Parent resource (for hierarchy) */
|
|
46
|
+
parent?: ResourceRef;
|
|
47
|
+
/** Resource metadata */
|
|
48
|
+
metadata?: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resource reference (lightweight)
|
|
52
|
+
*/
|
|
53
|
+
export interface ResourceRef {
|
|
54
|
+
type: string;
|
|
55
|
+
id: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Resource type definition
|
|
59
|
+
*/
|
|
60
|
+
export interface ResourceType {
|
|
61
|
+
/** Type name (should match a Noun) */
|
|
62
|
+
name: string;
|
|
63
|
+
/** Human-readable description */
|
|
64
|
+
description?: string;
|
|
65
|
+
/** Parent type in hierarchy (null = root) */
|
|
66
|
+
parentType?: string;
|
|
67
|
+
/** Actions available on this resource type */
|
|
68
|
+
actions?: string[];
|
|
69
|
+
/** Whether this is a high-cardinality type (kept local, not synced) */
|
|
70
|
+
local?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Permission - what action can be performed on what resource type
|
|
74
|
+
*/
|
|
75
|
+
export interface Permission {
|
|
76
|
+
/** Permission name (e.g., 'read', 'write', 'admin') */
|
|
77
|
+
name: string;
|
|
78
|
+
/** Description */
|
|
79
|
+
description?: string;
|
|
80
|
+
/** Resource type this permission applies to */
|
|
81
|
+
resourceType: string;
|
|
82
|
+
/** Actions granted (maps to Verb actions) */
|
|
83
|
+
actions: string[];
|
|
84
|
+
/** Whether this permission extends to child resource types */
|
|
85
|
+
inheritable?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Role - a named collection of permissions
|
|
89
|
+
*
|
|
90
|
+
* Roles are scoped to resource types. A "Workspace Admin" role
|
|
91
|
+
* only makes sense on Workspace resources.
|
|
92
|
+
*/
|
|
93
|
+
export interface Role {
|
|
94
|
+
/** Role identifier */
|
|
95
|
+
id: string;
|
|
96
|
+
/** Display name */
|
|
97
|
+
name: string;
|
|
98
|
+
/** Description */
|
|
99
|
+
description?: string;
|
|
100
|
+
/** Resource type this role is scoped to */
|
|
101
|
+
resourceType: string;
|
|
102
|
+
/** Permissions included in this role */
|
|
103
|
+
permissions: Permission[];
|
|
104
|
+
/** Parent roles (for role inheritance) */
|
|
105
|
+
inherits?: string[];
|
|
106
|
+
/** Metadata */
|
|
107
|
+
metadata?: Record<string, unknown>;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Standard role levels (can be customized)
|
|
111
|
+
*/
|
|
112
|
+
export type RoleLevel = 'owner' | 'admin' | 'editor' | 'viewer' | 'guest' | string;
|
|
113
|
+
/**
|
|
114
|
+
* Assignment - binds a subject to a role on a resource
|
|
115
|
+
*
|
|
116
|
+
* This is the core authorization tuple: (subject, role, resource)
|
|
117
|
+
* Also called a "warrant" in some FGA systems.
|
|
118
|
+
*/
|
|
119
|
+
export interface Assignment {
|
|
120
|
+
/** Unique assignment ID */
|
|
121
|
+
id: string;
|
|
122
|
+
/** Who is granted access */
|
|
123
|
+
subject: Subject;
|
|
124
|
+
/** What role is granted */
|
|
125
|
+
role: string;
|
|
126
|
+
/** On what resource */
|
|
127
|
+
resource: ResourceRef;
|
|
128
|
+
/** When the assignment was created */
|
|
129
|
+
createdAt: Date;
|
|
130
|
+
/** Who created the assignment */
|
|
131
|
+
createdBy?: Subject;
|
|
132
|
+
/** Optional expiration */
|
|
133
|
+
expiresAt?: Date;
|
|
134
|
+
/** Assignment metadata */
|
|
135
|
+
metadata?: Record<string, unknown>;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Assignment input (for creating assignments)
|
|
139
|
+
*/
|
|
140
|
+
export interface AssignmentInput {
|
|
141
|
+
subject: Subject | string;
|
|
142
|
+
role: string;
|
|
143
|
+
resource: ResourceRef | string;
|
|
144
|
+
expiresAt?: Date;
|
|
145
|
+
metadata?: Record<string, unknown>;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Authorization check request
|
|
149
|
+
*/
|
|
150
|
+
export interface AuthzCheckRequest {
|
|
151
|
+
/** Who is requesting */
|
|
152
|
+
subject: Subject | string;
|
|
153
|
+
/** What action */
|
|
154
|
+
action: string;
|
|
155
|
+
/** On what resource */
|
|
156
|
+
resource: ResourceRef | string;
|
|
157
|
+
/** Additional context */
|
|
158
|
+
context?: Record<string, unknown>;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Authorization check result
|
|
162
|
+
*/
|
|
163
|
+
export interface AuthzCheckResult {
|
|
164
|
+
/** Whether access is allowed */
|
|
165
|
+
allowed: boolean;
|
|
166
|
+
/** Why (for debugging/audit) */
|
|
167
|
+
reason?: string;
|
|
168
|
+
/** Which assignment granted access (if allowed) */
|
|
169
|
+
assignment?: Assignment;
|
|
170
|
+
/** Check latency in ms */
|
|
171
|
+
latencyMs?: number;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Batch authorization check
|
|
175
|
+
*/
|
|
176
|
+
export interface AuthzBatchCheckRequest {
|
|
177
|
+
checks: AuthzCheckRequest[];
|
|
178
|
+
}
|
|
179
|
+
export interface AuthzBatchCheckResult {
|
|
180
|
+
results: AuthzCheckResult[];
|
|
181
|
+
latencyMs: number;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Resource hierarchy definition
|
|
185
|
+
*
|
|
186
|
+
* Defines the parent-child relationships between resource types.
|
|
187
|
+
* Permissions can flow down through the hierarchy.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```ts
|
|
191
|
+
* const hierarchy: ResourceHierarchy = {
|
|
192
|
+
* levels: [
|
|
193
|
+
* { type: 'organization', depth: 0 },
|
|
194
|
+
* { type: 'workspace', depth: 1, parentType: 'organization' },
|
|
195
|
+
* { type: 'project', depth: 2, parentType: 'workspace' },
|
|
196
|
+
* { type: 'document', depth: 3, parentType: 'project' },
|
|
197
|
+
* ],
|
|
198
|
+
* maxDepth: 5,
|
|
199
|
+
* }
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
export interface ResourceHierarchy {
|
|
203
|
+
/** Hierarchy levels */
|
|
204
|
+
levels: ResourceType[];
|
|
205
|
+
/** Maximum depth (WorkOS supports up to 5) */
|
|
206
|
+
maxDepth: number;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Common SaaS resource hierarchies
|
|
210
|
+
*/
|
|
211
|
+
export declare const StandardHierarchies: {
|
|
212
|
+
/** Organization → Workspace → Project → Resource */
|
|
213
|
+
readonly saas: {
|
|
214
|
+
readonly levels: [{
|
|
215
|
+
readonly name: "organization";
|
|
216
|
+
readonly description: "Top-level organization";
|
|
217
|
+
}, {
|
|
218
|
+
readonly name: "workspace";
|
|
219
|
+
readonly description: "Workspace within org";
|
|
220
|
+
readonly parentType: "organization";
|
|
221
|
+
}, {
|
|
222
|
+
readonly name: "project";
|
|
223
|
+
readonly description: "Project within workspace";
|
|
224
|
+
readonly parentType: "workspace";
|
|
225
|
+
}, {
|
|
226
|
+
readonly name: "resource";
|
|
227
|
+
readonly description: "Resource within project";
|
|
228
|
+
readonly parentType: "project";
|
|
229
|
+
}];
|
|
230
|
+
readonly maxDepth: 4;
|
|
231
|
+
};
|
|
232
|
+
/** Organization → Team → Repository */
|
|
233
|
+
readonly devtools: {
|
|
234
|
+
readonly levels: [{
|
|
235
|
+
readonly name: "organization";
|
|
236
|
+
readonly description: "Top-level organization";
|
|
237
|
+
}, {
|
|
238
|
+
readonly name: "team";
|
|
239
|
+
readonly description: "Team within org";
|
|
240
|
+
readonly parentType: "organization";
|
|
241
|
+
}, {
|
|
242
|
+
readonly name: "repository";
|
|
243
|
+
readonly description: "Repository owned by team";
|
|
244
|
+
readonly parentType: "team";
|
|
245
|
+
}];
|
|
246
|
+
readonly maxDepth: 3;
|
|
247
|
+
};
|
|
248
|
+
/** Account → Folder → Document */
|
|
249
|
+
readonly documents: {
|
|
250
|
+
readonly levels: [{
|
|
251
|
+
readonly name: "account";
|
|
252
|
+
readonly description: "User account";
|
|
253
|
+
}, {
|
|
254
|
+
readonly name: "folder";
|
|
255
|
+
readonly description: "Folder in account";
|
|
256
|
+
readonly parentType: "account";
|
|
257
|
+
}, {
|
|
258
|
+
readonly name: "document";
|
|
259
|
+
readonly description: "Document in folder";
|
|
260
|
+
readonly parentType: "folder";
|
|
261
|
+
}];
|
|
262
|
+
readonly maxDepth: 3;
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Standard permissions
|
|
267
|
+
*
|
|
268
|
+
* Beyond CRUD, we add `act` for domain-specific verbs (send, pay, publish, etc.)
|
|
269
|
+
*
|
|
270
|
+
* Permission levels:
|
|
271
|
+
* - read → view data (GET operations)
|
|
272
|
+
* - edit → modify data (PUT/PATCH operations)
|
|
273
|
+
* - act → perform actions/verbs (POST operations with side effects)
|
|
274
|
+
* - delete → remove (DELETE operations)
|
|
275
|
+
* - manage → all + role assignment
|
|
276
|
+
*/
|
|
277
|
+
export declare const StandardPermissions: {
|
|
278
|
+
create: (resourceType: string) => Permission;
|
|
279
|
+
read: (resourceType: string) => Permission;
|
|
280
|
+
edit: (resourceType: string) => Permission;
|
|
281
|
+
/**
|
|
282
|
+
* Act - perform domain-specific verbs/actions
|
|
283
|
+
*
|
|
284
|
+
* This is for state transitions and side effects:
|
|
285
|
+
* - invoice.send, invoice.pay, invoice.void
|
|
286
|
+
* - document.publish, document.archive
|
|
287
|
+
* - order.fulfill, order.refund
|
|
288
|
+
*
|
|
289
|
+
* Can be scoped: act:* (all), act:send, act:pay, etc.
|
|
290
|
+
*/
|
|
291
|
+
act: (resourceType: string, verbs?: string[]) => Permission;
|
|
292
|
+
delete: (resourceType: string) => Permission;
|
|
293
|
+
manage: (resourceType: string) => Permission;
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* @deprecated Use StandardPermissions instead
|
|
297
|
+
*/
|
|
298
|
+
export declare const CRUDPermissions: {
|
|
299
|
+
create: (resourceType: string) => Permission;
|
|
300
|
+
read: (resourceType: string) => Permission;
|
|
301
|
+
edit: (resourceType: string) => Permission;
|
|
302
|
+
/**
|
|
303
|
+
* Act - perform domain-specific verbs/actions
|
|
304
|
+
*
|
|
305
|
+
* This is for state transitions and side effects:
|
|
306
|
+
* - invoice.send, invoice.pay, invoice.void
|
|
307
|
+
* - document.publish, document.archive
|
|
308
|
+
* - order.fulfill, order.refund
|
|
309
|
+
*
|
|
310
|
+
* Can be scoped: act:* (all), act:send, act:pay, etc.
|
|
311
|
+
*/
|
|
312
|
+
act: (resourceType: string, verbs?: string[]) => Permission;
|
|
313
|
+
delete: (resourceType: string) => Permission;
|
|
314
|
+
manage: (resourceType: string) => Permission;
|
|
315
|
+
};
|
|
316
|
+
/**
|
|
317
|
+
* Create a verb-scoped permission
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```ts
|
|
321
|
+
* // Single verb
|
|
322
|
+
* const canPay = verbPermission('invoice', 'pay')
|
|
323
|
+
* // { name: 'invoice.pay', actions: ['pay'], resourceType: 'invoice' }
|
|
324
|
+
*
|
|
325
|
+
* // Multiple verbs
|
|
326
|
+
* const canManagePayments = verbPermission('invoice', ['send', 'pay', 'void', 'refund'])
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export declare function verbPermission(resourceType: string, verbs: string | string[], options?: {
|
|
330
|
+
inheritable?: boolean;
|
|
331
|
+
description?: string;
|
|
332
|
+
}): Permission;
|
|
333
|
+
/**
|
|
334
|
+
* Create permissions from a Noun's actions
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```ts
|
|
338
|
+
* const invoicePerms = nounPermissions(InvoiceNoun)
|
|
339
|
+
* // Creates: invoice.create, invoice.send, invoice.pay, invoice.void, etc.
|
|
340
|
+
* ```
|
|
341
|
+
*/
|
|
342
|
+
export declare function nounPermissions(noun: Noun): Permission[];
|
|
343
|
+
/**
|
|
344
|
+
* Permission pattern matching
|
|
345
|
+
*
|
|
346
|
+
* Checks if an action matches a permission pattern.
|
|
347
|
+
*
|
|
348
|
+
* @example
|
|
349
|
+
* ```ts
|
|
350
|
+
* matchesPermission('pay', ['*']) // true - wildcard
|
|
351
|
+
* matchesPermission('pay', ['pay']) // true - exact
|
|
352
|
+
* matchesPermission('pay', ['send', 'pay']) // true - in list
|
|
353
|
+
* matchesPermission('pay', ['send']) // false
|
|
354
|
+
* ```
|
|
355
|
+
*/
|
|
356
|
+
export declare function matchesPermission(action: string, allowedActions: string[]): boolean;
|
|
357
|
+
/**
|
|
358
|
+
* Create standard roles for a resource type
|
|
359
|
+
*/
|
|
360
|
+
export declare function createStandardRoles(resourceType: string): Record<RoleLevel, Role>;
|
|
361
|
+
/**
|
|
362
|
+
* Authorization schema for a Noun
|
|
363
|
+
*
|
|
364
|
+
* Extends a Noun with authorization metadata.
|
|
365
|
+
*/
|
|
366
|
+
export interface AuthorizedNoun extends Noun {
|
|
367
|
+
/** Resource type configuration */
|
|
368
|
+
authorization?: {
|
|
369
|
+
/** Parent resource type in hierarchy */
|
|
370
|
+
parentType?: string;
|
|
371
|
+
/** Available roles for this resource type */
|
|
372
|
+
roles?: Role[];
|
|
373
|
+
/** Custom permissions beyond CRUD */
|
|
374
|
+
permissions?: Permission[];
|
|
375
|
+
/** Whether this is a high-cardinality type */
|
|
376
|
+
local?: boolean;
|
|
377
|
+
/** Default role for new resources */
|
|
378
|
+
defaultRole?: string;
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Add authorization to a Noun
|
|
383
|
+
*/
|
|
384
|
+
export declare function authorizeNoun(noun: Noun, config: AuthorizedNoun['authorization']): AuthorizedNoun;
|
|
385
|
+
/**
|
|
386
|
+
* Authorization engine interface
|
|
387
|
+
*
|
|
388
|
+
* Implemented by providers (WorkOS, in-memory, custom).
|
|
389
|
+
*/
|
|
390
|
+
export interface AuthorizationEngine {
|
|
391
|
+
createResource(resource: Resource): Promise<Resource>;
|
|
392
|
+
getResource(ref: ResourceRef): Promise<Resource | null>;
|
|
393
|
+
deleteResource(ref: ResourceRef): Promise<void>;
|
|
394
|
+
listResources(type: string, parentRef?: ResourceRef): Promise<Resource[]>;
|
|
395
|
+
assign(input: AssignmentInput): Promise<Assignment>;
|
|
396
|
+
unassign(assignmentId: string): Promise<void>;
|
|
397
|
+
getAssignment(id: string): Promise<Assignment | null>;
|
|
398
|
+
listAssignments(filter: {
|
|
399
|
+
subject?: Subject;
|
|
400
|
+
role?: string;
|
|
401
|
+
resource?: ResourceRef;
|
|
402
|
+
}): Promise<Assignment[]>;
|
|
403
|
+
check(request: AuthzCheckRequest): Promise<AuthzCheckResult>;
|
|
404
|
+
batchCheck(request: AuthzBatchCheckRequest): Promise<AuthzBatchCheckResult>;
|
|
405
|
+
listSubjectsWithAccess(resource: ResourceRef, action?: string): Promise<Subject[]>;
|
|
406
|
+
listResourcesForSubject(subject: Subject, resourceType: string, action?: string): Promise<Resource[]>;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Parse subject string to Subject object
|
|
410
|
+
*
|
|
411
|
+
* @example
|
|
412
|
+
* ```ts
|
|
413
|
+
* parseSubject('user:123') // { type: 'user', id: '123' }
|
|
414
|
+
* parseSubject('group:admins') // { type: 'group', id: 'admins' }
|
|
415
|
+
* ```
|
|
416
|
+
*/
|
|
417
|
+
export declare function parseSubject(str: string): Subject;
|
|
418
|
+
/**
|
|
419
|
+
* Format Subject as string
|
|
420
|
+
*/
|
|
421
|
+
export declare function formatSubject(subject: Subject): string;
|
|
422
|
+
/**
|
|
423
|
+
* Parse resource string to ResourceRef
|
|
424
|
+
*
|
|
425
|
+
* @example
|
|
426
|
+
* ```ts
|
|
427
|
+
* parseResource('workspace:456') // { type: 'workspace', id: '456' }
|
|
428
|
+
* ```
|
|
429
|
+
*/
|
|
430
|
+
export declare function parseResource(str: string): ResourceRef;
|
|
431
|
+
/**
|
|
432
|
+
* Format ResourceRef as string
|
|
433
|
+
*/
|
|
434
|
+
export declare function formatResource(resource: ResourceRef): string;
|
|
435
|
+
/**
|
|
436
|
+
* Check if a subject matches another (for assignment matching)
|
|
437
|
+
*/
|
|
438
|
+
export declare function subjectMatches(a: Subject, b: Subject): boolean;
|
|
439
|
+
/**
|
|
440
|
+
* Check if a resource matches another
|
|
441
|
+
*/
|
|
442
|
+
export declare function resourceMatches(a: ResourceRef, b: ResourceRef): boolean;
|
|
443
|
+
/**
|
|
444
|
+
* In-memory authorization engine
|
|
445
|
+
*
|
|
446
|
+
* Simple implementation for testing and development.
|
|
447
|
+
* For production, use WorkOS or a persistent provider.
|
|
448
|
+
*/
|
|
449
|
+
export declare class InMemoryAuthorizationEngine implements AuthorizationEngine {
|
|
450
|
+
private resources;
|
|
451
|
+
private assignments;
|
|
452
|
+
private roles;
|
|
453
|
+
private hierarchy;
|
|
454
|
+
constructor(config?: {
|
|
455
|
+
hierarchy?: ResourceHierarchy;
|
|
456
|
+
roles?: Role[];
|
|
457
|
+
});
|
|
458
|
+
createResource(resource: Resource): Promise<Resource>;
|
|
459
|
+
getResource(ref: ResourceRef): Promise<Resource | null>;
|
|
460
|
+
deleteResource(ref: ResourceRef): Promise<void>;
|
|
461
|
+
listResources(type: string, parentRef?: ResourceRef): Promise<Resource[]>;
|
|
462
|
+
assign(input: AssignmentInput): Promise<Assignment>;
|
|
463
|
+
unassign(assignmentId: string): Promise<void>;
|
|
464
|
+
getAssignment(id: string): Promise<Assignment | null>;
|
|
465
|
+
listAssignments(filter: {
|
|
466
|
+
subject?: Subject;
|
|
467
|
+
role?: string;
|
|
468
|
+
resource?: ResourceRef;
|
|
469
|
+
}): Promise<Assignment[]>;
|
|
470
|
+
check(request: AuthzCheckRequest): Promise<AuthzCheckResult>;
|
|
471
|
+
batchCheck(request: AuthzBatchCheckRequest): Promise<AuthzBatchCheckResult>;
|
|
472
|
+
listSubjectsWithAccess(resource: ResourceRef, action?: string): Promise<Subject[]>;
|
|
473
|
+
listResourcesForSubject(subject: Subject, resourceType: string, action?: string): Promise<Resource[]>;
|
|
474
|
+
private resourceInScope;
|
|
475
|
+
private roleGrantsAction;
|
|
476
|
+
registerRole(role: Role): void;
|
|
477
|
+
getRole(id: string): Role | undefined;
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Business role - organizational role (CEO, Engineer, Manager)
|
|
481
|
+
*
|
|
482
|
+
* Different from authorization Role - this represents a job function.
|
|
483
|
+
* Can be linked to authorization Roles for permissions.
|
|
484
|
+
*/
|
|
485
|
+
export interface BusinessRole {
|
|
486
|
+
/** Role identifier */
|
|
487
|
+
id: string;
|
|
488
|
+
/** Display name (CEO, Software Engineer, Product Manager) */
|
|
489
|
+
name: string;
|
|
490
|
+
/** Description */
|
|
491
|
+
description?: string;
|
|
492
|
+
/** Department */
|
|
493
|
+
department?: string;
|
|
494
|
+
/** Level in organization (1 = IC, 2 = Manager, 3 = Director, 4 = VP, 5 = C-level) */
|
|
495
|
+
level?: number;
|
|
496
|
+
/** Reports to (parent role) */
|
|
497
|
+
reportsTo?: string;
|
|
498
|
+
/** Responsibilities */
|
|
499
|
+
responsibilities?: string[];
|
|
500
|
+
/** Required skills */
|
|
501
|
+
skills?: string[];
|
|
502
|
+
/** Authorization roles this business role grants */
|
|
503
|
+
authorizationRoles?: string[];
|
|
504
|
+
/** Metadata */
|
|
505
|
+
metadata?: Record<string, unknown>;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Link business roles to authorization roles
|
|
509
|
+
*/
|
|
510
|
+
export declare function linkBusinessRole(businessRole: BusinessRole, authRoles: string[]): BusinessRole;
|
|
511
|
+
/**
|
|
512
|
+
* Role as a Noun - can be stored in ai-database
|
|
513
|
+
*/
|
|
514
|
+
export declare const RoleNoun: Noun;
|
|
515
|
+
/**
|
|
516
|
+
* Assignment as a Noun
|
|
517
|
+
*/
|
|
518
|
+
export declare const AssignmentNoun: Noun;
|
|
519
|
+
/**
|
|
520
|
+
* Permission as a Noun
|
|
521
|
+
*/
|
|
522
|
+
export declare const PermissionNoun: Noun;
|
|
523
|
+
/**
|
|
524
|
+
* All authorization-related Nouns
|
|
525
|
+
*/
|
|
526
|
+
export declare const AuthorizationNouns: {
|
|
527
|
+
Role: Noun;
|
|
528
|
+
Assignment: Noun;
|
|
529
|
+
Permission: Noun;
|
|
530
|
+
};
|
|
531
|
+
//# sourceMappingURL=authorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../src/authorization.ts"],"names":[],"mappings":"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"}
|