@jantstack/adonis-authz 2.4.0-alpha.1 → 2.4.0-alpha.3
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/README.md +299 -19
- package/build/commands/authz_relations_reconcile.d.ts +25 -1
- package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
- package/build/commands/authz_relations_reconcile.js +94 -6
- package/build/commands/authz_relations_reconcile.js.map +1 -1
- package/build/index.d.ts +13 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +15 -1
- package/build/index.js.map +1 -1
- package/build/providers/authz_provider.d.ts +6 -1
- package/build/providers/authz_provider.d.ts.map +1 -1
- package/build/providers/authz_provider.js +18 -2
- package/build/providers/authz_provider.js.map +1 -1
- package/build/src/define_config.d.ts +73 -1
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js.map +1 -1
- package/build/src/drivers/database_driver.d.ts +53 -14
- package/build/src/drivers/database_driver.d.ts.map +1 -1
- package/build/src/drivers/database_driver.js +104 -32
- package/build/src/drivers/database_driver.js.map +1 -1
- package/build/src/drivers/database_relations_driver.d.ts +57 -9
- package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/database_relations_driver.js +344 -89
- package/build/src/drivers/database_relations_driver.js.map +1 -1
- package/build/src/drivers/openfga_driver.d.ts +17 -4
- package/build/src/drivers/openfga_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_driver.js +38 -3
- package/build/src/drivers/openfga_driver.js.map +1 -1
- package/build/src/drivers/openfga_facts.d.ts +15 -0
- package/build/src/drivers/openfga_facts.d.ts.map +1 -1
- package/build/src/drivers/openfga_facts.js +25 -2
- package/build/src/drivers/openfga_facts.js.map +1 -1
- package/build/src/drivers/openfga_relations_driver.d.ts +40 -6
- package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_relations_driver.js +244 -44
- package/build/src/drivers/openfga_relations_driver.js.map +1 -1
- package/build/src/errors.d.ts +83 -4
- package/build/src/errors.d.ts.map +1 -1
- package/build/src/errors.js +139 -3
- package/build/src/errors.js.map +1 -1
- package/build/src/freeze.d.ts +37 -16
- package/build/src/freeze.d.ts.map +1 -1
- package/build/src/freeze.js +53 -8
- package/build/src/freeze.js.map +1 -1
- package/build/src/manager.d.ts +16 -1
- package/build/src/manager.d.ts.map +1 -1
- package/build/src/manager.js +116 -25
- package/build/src/manager.js.map +1 -1
- package/build/src/models/authz_assignment.d.ts +2 -2
- package/build/src/models/authz_assignment.d.ts.map +1 -1
- package/build/src/models/authz_deny.d.ts +2 -2
- package/build/src/models/authz_deny.d.ts.map +1 -1
- package/build/src/models/authz_permission.d.ts +2 -2
- package/build/src/models/authz_permission.d.ts.map +1 -1
- package/build/src/models/authz_role.d.ts +2 -2
- package/build/src/models/authz_role.d.ts.map +1 -1
- package/build/src/models/authz_role_permission.d.ts +2 -2
- package/build/src/models/authz_role_permission.d.ts.map +1 -1
- package/build/src/relation_partition_trigger.d.ts.map +1 -1
- package/build/src/relation_partition_trigger.js +11 -3
- package/build/src/relation_partition_trigger.js.map +1 -1
- package/build/src/relations/define_relations_config.d.ts +51 -0
- package/build/src/relations/define_relations_config.d.ts.map +1 -1
- package/build/src/relations/define_relations_config.js +68 -1
- package/build/src/relations/define_relations_config.js.map +1 -1
- package/build/src/relations/manager.d.ts +71 -6
- package/build/src/relations/manager.d.ts.map +1 -1
- package/build/src/relations/manager.js +301 -29
- package/build/src/relations/manager.js.map +1 -1
- package/build/src/relations/reconcile.d.ts +53 -4
- package/build/src/relations/reconcile.d.ts.map +1 -1
- package/build/src/relations/reconcile.js +92 -30
- package/build/src/relations/reconcile.js.map +1 -1
- package/build/src/scope_outbox.d.ts.map +1 -1
- package/build/src/scope_outbox.js +17 -10
- package/build/src/scope_outbox.js.map +1 -1
- package/build/src/shared/backend_guard.d.ts +28 -0
- package/build/src/shared/backend_guard.d.ts.map +1 -1
- package/build/src/shared/backend_guard.js +52 -0
- package/build/src/shared/backend_guard.js.map +1 -1
- package/build/src/shared/transaction_guard.d.ts +50 -0
- package/build/src/shared/transaction_guard.d.ts.map +1 -0
- package/build/src/shared/transaction_guard.js +60 -0
- package/build/src/shared/transaction_guard.js.map +1 -0
- package/build/src/testing/contract.d.ts +55 -4
- package/build/src/testing/contract.d.ts.map +1 -1
- package/build/src/testing/contract.js +240 -8
- package/build/src/testing/contract.js.map +1 -1
- package/build/src/testing/main.d.ts +4 -4
- package/build/src/testing/main.d.ts.map +1 -1
- package/build/src/testing/main.js +2 -2
- package/build/src/testing/main.js.map +1 -1
- package/build/src/testing/relations_contract.d.ts +23 -1
- package/build/src/testing/relations_contract.d.ts.map +1 -1
- package/build/src/testing/relations_contract.js +603 -19
- package/build/src/testing/relations_contract.js.map +1 -1
- package/build/src/testing/relations_reconcile_contract.d.ts.map +1 -1
- package/build/src/testing/relations_reconcile_contract.js +49 -1
- package/build/src/testing/relations_reconcile_contract.js.map +1 -1
- package/build/src/traits/has_uuid.d.ts +2 -2
- package/build/src/traits/has_uuid.d.ts.map +1 -1
- package/build/src/types.d.ts +284 -16
- package/build/src/types.d.ts.map +1 -1
- package/build/src/types.js +4 -0
- package/build/src/types.js.map +1 -1
- package/build/stubs/config/authorization.stub +45 -1
- package/build/stubs/migration.stub +20 -10
- package/package.json +1 -1
package/build/src/types.d.ts
CHANGED
|
@@ -76,6 +76,41 @@ export interface WriteOptions {
|
|
|
76
76
|
* quién puede conceder qué es policy del consumidor (invariante 8).
|
|
77
77
|
*/
|
|
78
78
|
actor?: SubjectRef;
|
|
79
|
+
/**
|
|
80
|
+
* **La transacción ABIERTA del consumidor** (`TransactionClientContract` de
|
|
81
|
+
* Lucid: el `trx` de `db.transaction()`), para que la escritura del paquete
|
|
82
|
+
* confirme o revierta CON la tuya — L-2, panel `{trx}` (C).
|
|
83
|
+
*
|
|
84
|
+
* **Encolar ≠ escribir.** Son dos promesas distintas y este campo hace UNA
|
|
85
|
+
* u OTRA según la operación:
|
|
86
|
+
*
|
|
87
|
+
* - En `grant`/`revoke`/`deny`/`removeDeny` (los HECHOS) significa
|
|
88
|
+
* **ESCRIBIR en tu transacción**: «los dos o ninguno» entre el hecho y
|
|
89
|
+
* tus filas, en el mismo motor transaccional. Solo lo cumple un driver
|
|
90
|
+
* que declare `capabilities.transactionalWrites: true` (`database`, con el
|
|
91
|
+
* `trx` de SU conexión: otra conexión, un `QueryClient` o el `db` entero
|
|
92
|
+
* son 500 `E_AUTHZ_CONFIG`, `assertCallerTransaction`). Con un driver
|
|
93
|
+
* que declare `false` —`openfga`: una tupla no entra en una transacción
|
|
94
|
+
* SQL, no hay 2PC— la llamada es **500 `E_AUTHZ_UNSUPPORTED`** nombrando
|
|
95
|
+
* driver y operación, **antes de tocar el driver** (cero llamadas):
|
|
96
|
+
* nunca se ignora, nunca un aviso. Quien quiera fallar al ARRANCAR en
|
|
97
|
+
* vez de en una ruta poco transitada declara `requireTransactionalWrites:
|
|
98
|
+
* true` en el config (500 `E_AUTHZ_CONFIG` al resolver el driver).
|
|
99
|
+
* - En `scopes.attached/moved/detached` significa **ENCOLAR en tu
|
|
100
|
+
* transacción** (3b-2d, `ScopeTreeWriteOptions.transaction`): el INSERT
|
|
101
|
+
* de la outbox cae dentro de ella; el backend NO se toca dentro de tu
|
|
102
|
+
* transacción y no pasa por la puerta de la capacidad.
|
|
103
|
+
* - En la API de delegación (`defineScopedRole`/`updateScopedRole`/
|
|
104
|
+
* `deleteScopedRole`) **no se admite** (500 `E_AUTHZ_UNSUPPORTED`): esas
|
|
105
|
+
* escriben el catálogo por `withAuthzCatalogWrite`, que ES el
|
|
106
|
+
* serializador entre procesos (cerrojo + bump como última sentencia,
|
|
107
|
+
* invariante 14); moverlas al commit del consumidor lo anularía.
|
|
108
|
+
*
|
|
109
|
+
* Lo que NUNCA viaja por ella, en ninguna de las tres: **la autoridad**
|
|
110
|
+
* (L-1 · 🟠 8) — la barrera del freeze, el catálogo y `resolveChain` se leen
|
|
111
|
+
* por la conexión del motor, así que `{ transaction }` exige **pool ≥ 2**.
|
|
112
|
+
*/
|
|
113
|
+
transaction?: unknown;
|
|
79
114
|
}
|
|
80
115
|
/**
|
|
81
116
|
* Opciones de las NUEVE escrituras del manager (`grant`, `revoke`, `deny`,
|
|
@@ -116,9 +151,24 @@ export interface ScopeTreeWriteOptions extends ScopedWriteOptions {
|
|
|
116
151
|
* La transacción ABIERTA del consumidor (`TransactionClientContract` de
|
|
117
152
|
* Lucid, o lo que use su outbox). El paquete no la interpreta: se la pasa
|
|
118
153
|
* tal cual a `scopes.outbox.enqueue` para que el INSERT del encolado caiga
|
|
119
|
-
* dentro de ella
|
|
154
|
+
* dentro de ella — **ENCOLAR, no escribir**: el backend no se toca dentro
|
|
155
|
+
* de tu transacción. Sin outbox declarada no hace nada; con outbox declarada
|
|
120
156
|
* y sin transacción, el encolado se confirma solo y vuelve a haber dos
|
|
121
157
|
* confirmaciones distintas (la outbox lo avisa si puede).
|
|
158
|
+
*
|
|
159
|
+
* **Lo que NUNCA viaja por ella: la autoridad** (L-1 · 🟠 8). La barrera
|
|
160
|
+
* del freeze se lee por la conexión del motor, jamás por esta transacción
|
|
161
|
+
* (su snapshot puede ser anterior al freeze). Por eso exige **pool ≥ 2**:
|
|
162
|
+
* con pool 1 (SQLite `:memory:`) la barrera no consigue conexión mientras
|
|
163
|
+
* tú sostienes la única y la notificación sale 503 `E_AUTHZ_BACKEND_TIMEOUT`
|
|
164
|
+
* (`freezeTimeoutMs`) — fail-closed, nunca un bypass. Y `sqlScopeOutbox`
|
|
165
|
+
* exige que sea una transacción ABIERTA de SU conexión: otra conexión, un
|
|
166
|
+
* `QueryClient` o el `db` entero son 500 `E_AUTHZ_CONFIG` (🟠 9).
|
|
167
|
+
*
|
|
168
|
+
* **Encolar ≠ escribir** (L-2): aquí la transacción ENCOLA; en
|
|
169
|
+
* `grant`/`revoke`/`deny`/`removeDeny` (`WriteOptions.transaction`) ESCRIBE
|
|
170
|
+
* el hecho dentro de ella y pasa por la puerta de `transactionalWrites`.
|
|
171
|
+
* Esta notificación no pasa por esa puerta: un driver `openfga` la acepta.
|
|
122
172
|
*/
|
|
123
173
|
transaction?: unknown;
|
|
124
174
|
}
|
|
@@ -258,6 +308,32 @@ export interface AuthorizationDriverCapabilities {
|
|
|
258
308
|
* el destino los lee de ahí directamente (`openfga.reconcile`).
|
|
259
309
|
*/
|
|
260
310
|
enumerateFacts: boolean;
|
|
311
|
+
/**
|
|
312
|
+
* El driver puede inscribir sus escrituras en la transacción del consumidor
|
|
313
|
+
* (`{ transaction }` en `grant`/`revoke`/`deny`/`removeDeny`). `true`
|
|
314
|
+
* significa EXACTAMENTE «los dos o ninguno con TU transacción», nunca «no
|
|
315
|
+
* se pierde». `database` = true (con el `trx` de SU conexión; L-3).
|
|
316
|
+
* `openfga` = false, y no puede ser otra cosa: una tupla no entra en una
|
|
317
|
+
* transacción SQL — el store es otro servicio y no hay 2PC. No hay valor
|
|
318
|
+
* intermedio y no se publica ninguno (panel `{trx}`, veredicto (C)).
|
|
319
|
+
*
|
|
320
|
+
* Dos puertas la hacen verdad: con `false`, `{ transaction }` es 500
|
|
321
|
+
* `E_AUTHZ_UNSUPPORTED` por llamada, con cero llamadas al driver; y con
|
|
322
|
+
* `requireTransactionalWrites: true` en el config un driver `false` es 500
|
|
323
|
+
* `E_AUTHZ_CONFIG` al RESOLVER (el despliegue no arranca). **Mismo nombre
|
|
324
|
+
* en `RelationsDriverCapabilities`**: un driver de terceros no aprende dos.
|
|
325
|
+
*
|
|
326
|
+
* `database` la cumple desde L-3: la ESCRITURA (y la lectura «¿ya existe?»
|
|
327
|
+
* que forma parte de ella) va por la transacción ABIERTA del llamante
|
|
328
|
+
* (`assertCallerTransaction` contra la conexión primaria de Lucid); la
|
|
329
|
+
* AUTORIDAD (barrera del freeze, catálogo, `resolveChain`) nunca — por eso
|
|
330
|
+
* exige pool ≥ 2, y un despliegue con pool 1 declara `false` en las opciones
|
|
331
|
+
* del driver. Un choque del UNIQUE dentro de la transacción del llamante es
|
|
332
|
+
* 409 `E_AUTHZ_WRITE_CONFLICT` («envenena tu transacción»); un deadline
|
|
333
|
+
* vencido ahí sigue siendo `indeterminate: true` y el evento lleva
|
|
334
|
+
* `transactional: true`.
|
|
335
|
+
*/
|
|
336
|
+
transactionalWrites: boolean;
|
|
261
337
|
}
|
|
262
338
|
export interface AuthorizationDriver {
|
|
263
339
|
/** Lo que este driver declara poder hacer (3b-2e · E2). Ver `AuthorizationDriverCapabilities`. */
|
|
@@ -280,7 +356,7 @@ export interface AuthorizationDriver {
|
|
|
280
356
|
* el catálogo para `scope.type` (422 si no, como `grant`); la asignación
|
|
281
357
|
* puede no existir (no-op).
|
|
282
358
|
*/
|
|
283
|
-
revoke(subject: SubjectRef, role: RoleQuery, scope: ScopeRef): Promise<void>;
|
|
359
|
+
revoke(subject: SubjectRef, role: RoleQuery, scope: ScopeRef, options?: WriteOptions): Promise<void>;
|
|
284
360
|
/**
|
|
285
361
|
* ¿El holder tiene el rol (vigente) en el scope o en un ancestro?
|
|
286
362
|
* Misma regla de herencia hacia abajo que `authorize`. Es MEMBRESÍA: el
|
|
@@ -291,12 +367,12 @@ export interface AuthorizationDriver {
|
|
|
291
367
|
* Deny explícito de UN permiso al holder en un scope (y sus descendientes).
|
|
292
368
|
* El permiso debe existir en el catálogo (throw si no). Idempotente.
|
|
293
369
|
*/
|
|
294
|
-
deny(subject: SubjectRef, permission: string, scope: ScopeRef): Promise<void>;
|
|
370
|
+
deny(subject: SubjectRef, permission: string, scope: ScopeRef, options?: WriteOptions): Promise<void>;
|
|
295
371
|
/**
|
|
296
372
|
* Levanta el deny en ese scope exacto. El permiso debe existir en el
|
|
297
373
|
* catálogo (422 si no, como `deny`); el deny puede no existir (no-op).
|
|
298
374
|
*/
|
|
299
|
-
removeDeny(subject: SubjectRef, permission: string, scope: ScopeRef): Promise<void>;
|
|
375
|
+
removeDeny(subject: SubjectRef, permission: string, scope: ScopeRef, options?: WriteOptions): Promise<void>;
|
|
300
376
|
/** Holders con asignación VIGENTE del rol en ese scope exacto (sin herencia). */
|
|
301
377
|
listSubjects(role: RoleQuery, scope: ScopeRef): Promise<SubjectRef[]>;
|
|
302
378
|
/**
|
|
@@ -958,7 +1034,10 @@ export interface ScopeOutboxContext {
|
|
|
958
1034
|
/**
|
|
959
1035
|
* Lo que el llamante pasó en `ScopeTreeWriteOptions.transaction`: para
|
|
960
1036
|
* Lucid, el `TransactionClientContract` de la transacción en curso. El
|
|
961
|
-
*
|
|
1037
|
+
* manager no lo interpreta —no conoce la BD del consumidor—: lo pasea.
|
|
1038
|
+
* `sqlScopeOutbox` SÍ lo juzga (L-1 · 🟠 9, `assertCallerTransaction`):
|
|
1039
|
+
* tiene que ser una transacción ABIERTA de la conexión de la cola, o 500
|
|
1040
|
+
* `E_AUTHZ_CONFIG` antes del INSERT. Una outbox propia hereda el deber.
|
|
962
1041
|
*/
|
|
963
1042
|
transaction?: unknown;
|
|
964
1043
|
actor?: SubjectRef;
|
|
@@ -1110,8 +1189,24 @@ export interface AuthzWriteEvent {
|
|
|
1110
1189
|
* propagar el 503 para que la auditoría registre un resultado desconocido
|
|
1111
1190
|
* en vez de un silencio (que se lee como "no pasó nada"). Un 503 que no es
|
|
1112
1191
|
* timeout (conexión rechazada) no lo lleva: esa escritura no ocurrió.
|
|
1192
|
+
*
|
|
1193
|
+
* **Con `{ transaction }` (L-3) sigue siendo `true` en el deadline**, junto
|
|
1194
|
+
* a `transactional: true`: la sentencia puede haber aterrizado DENTRO de la
|
|
1195
|
+
* transacción del llamante (SQLite no cancela; MySQL la mata y la
|
|
1196
|
+
* transacción sigue; PostgreSQL deja la transacción abortada) y confirmar
|
|
1197
|
+
* o no es del llamante, que el paquete no ve. Invariante 13 intacto.
|
|
1113
1198
|
*/
|
|
1114
1199
|
indeterminate?: boolean;
|
|
1200
|
+
/**
|
|
1201
|
+
* `true` cuando la escritura se inscribió en la transacción del llamante
|
|
1202
|
+
* (`{ transaction }`, L-3): en el momento del evento la fila existe SOLO
|
|
1203
|
+
* dentro de esa transacción, y es un hecho si y solo si el llamante
|
|
1204
|
+
* confirma — cosa que el paquete no ve. Un sink que registre esto como
|
|
1205
|
+
* firme registra algo que un rollback deshace; si necesita la última
|
|
1206
|
+
* palabra, que se cuelgue del commit (`trx.after('commit', …)` en Lucid).
|
|
1207
|
+
* Ausente en el resto (encolar en `scopes.*` no es escribir y no lo lleva).
|
|
1208
|
+
*/
|
|
1209
|
+
transactional?: boolean;
|
|
1115
1210
|
}
|
|
1116
1211
|
/** Un rol del catálogo tal como lo ve el motor (3A · A2/A3, 3B · B2). */
|
|
1117
1212
|
export interface CatalogRole {
|
|
@@ -1317,16 +1412,116 @@ export interface RelationRef {
|
|
|
1317
1412
|
relation: string;
|
|
1318
1413
|
object: RelObject;
|
|
1319
1414
|
partition: ScopeRef;
|
|
1415
|
+
/**
|
|
1416
|
+
* La caducidad pedida en `relate` (R-15), en sus tres estados: omitida
|
|
1417
|
+
* (preserva la vigente), `null` (la quita) o `Date` (la fija). Solo viaja en
|
|
1418
|
+
* `relate`; `assertWrite` puede rechazar una compartición sin plazo.
|
|
1419
|
+
*/
|
|
1420
|
+
expiresAt?: Date | null;
|
|
1421
|
+
}
|
|
1422
|
+
/**
|
|
1423
|
+
* El evento de escritura de relaciones (auditoría del consumidor, sin
|
|
1424
|
+
* `AsyncLocalStorage`), notificado a `onRelationWrite` DESPUÉS de que el
|
|
1425
|
+
* driver vuelva. **Espeja la forma de `AuthzWriteEvent`** (2.4.0-alpha.3,
|
|
1426
|
+
* paridad con roles): un solo tipo con campos opcionales, no una unión.
|
|
1427
|
+
*
|
|
1428
|
+
* - `relate`/`unrelate`: `subject`, `relation`, `object` y `partition` (y
|
|
1429
|
+
* `expiresAt` en `relate` si se pasó) — la `RelationRef` que vio
|
|
1430
|
+
* `assertWrite`, más `actor`.
|
|
1431
|
+
* - `purgeObject`: `object` y `partition`; **sin `subject` ni `relation`**.
|
|
1432
|
+
* - `purgeSubject`: `subject` y `partition`; **sin `object` ni `relation`**.
|
|
1433
|
+
* Una purga notifica **UN evento por llamada**, aunque el driver barra las
|
|
1434
|
+
* dos ortografías del uuid de partición, y **sin conteo**: el puerto
|
|
1435
|
+
* devuelve `void` (un conteo obligaría a romperlo para los drivers de
|
|
1436
|
+
* terceros y dentro de una `{ transaction }` sería un número que un
|
|
1437
|
+
* rollback desmiente). Quien necesite el «cuántas» tiene
|
|
1438
|
+
* `enumerateRelations`/`listSubjects` ANTES de purgar. Las purgas NO pasan
|
|
1439
|
+
* por `assertWrite` (su `RelationRef.operation` es `'relate' | 'unrelate'`,
|
|
1440
|
+
* tipo publicado del hook R-13).
|
|
1441
|
+
*/
|
|
1442
|
+
export interface RelationWriteEvent {
|
|
1443
|
+
operation: 'relate' | 'unrelate' | 'purgeObject' | 'purgeSubject';
|
|
1444
|
+
/** Ausente solo en `purgeObject` (afecta a todos los sujetos del objeto). */
|
|
1445
|
+
subject?: RelSubject;
|
|
1446
|
+
/** Ausente en `purgeObject`/`purgeSubject` (afectan a todas las relaciones). */
|
|
1447
|
+
relation?: string;
|
|
1448
|
+
/** Ausente solo en `purgeSubject` (afecta a todos los objetos del sujeto). */
|
|
1449
|
+
object?: RelObject;
|
|
1450
|
+
partition: ScopeRef;
|
|
1451
|
+
/** La caducidad pedida en `relate` (R-15), si se pasó. Solo en `relate`. */
|
|
1452
|
+
expiresAt?: Date | null;
|
|
1453
|
+
/** Quién ordenó la escritura (`actor` de las opciones), ya validado (422 si mal formado). Ausente si no lo pasó. */
|
|
1454
|
+
actor?: SubjectRef;
|
|
1455
|
+
/**
|
|
1456
|
+
* `true` cuando la escritura se inscribió en la transacción del llamante
|
|
1457
|
+
* (`{ transaction }`, L-4): en el momento del evento la tupla existe SOLO
|
|
1458
|
+
* dentro de esa transacción y es un hecho si y solo si el llamante
|
|
1459
|
+
* confirma — cosa que el paquete no ve. Un sink que quiera la última
|
|
1460
|
+
* palabra se cuelga de `trx.after('commit', …)`. **Ausente** sin
|
|
1461
|
+
* `{ transaction }` (nunca `false`).
|
|
1462
|
+
*/
|
|
1463
|
+
transactional?: true;
|
|
1464
|
+
/**
|
|
1465
|
+
* `true` cuando el paquete NO sabe si el backend aplicó la escritura
|
|
1466
|
+
* (invariante 13, el MISMO de roles): venció el deadline (503
|
|
1467
|
+
* `E_AUTHZ_BACKEND_TIMEOUT`) **o la escritura era multi-request y falló
|
|
1468
|
+
* DESPUÉS de haber aplicado parte** (la purga de `openfga`: ortografías ×
|
|
1469
|
+
* tipos, cada una `Read`+`deleteTuples`+`Read`; el driver marca el error
|
|
1470
|
+
* con `markPartialWrite`, cierre de alpha.3). Se notifica ANTES de
|
|
1471
|
+
* propagar el error. Un 422, el freeze o un `assertWrite` que lanza no lo
|
|
1472
|
+
* llevan: esa escritura no ocurrió y no hay evento. Un 503 que no es
|
|
1473
|
+
* timeout tampoco **cuando llega antes de la primera sentencia/`Write`**
|
|
1474
|
+
* — en `database` una purga es UN `DELETE`, así que siempre; en `openfga`
|
|
1475
|
+
* solo si aún no se había borrado nada. Con `{ transaction }` sigue siendo
|
|
1476
|
+
* `true` junto a `transactional: true`. **Ausente** en el resto.
|
|
1477
|
+
*/
|
|
1478
|
+
indeterminate?: true;
|
|
1320
1479
|
}
|
|
1321
|
-
/**
|
|
1322
|
-
|
|
1323
|
-
|
|
1480
|
+
/**
|
|
1481
|
+
* Opciones de `purgeObject`/`purgeSubject` (L-2): solo la transacción del
|
|
1482
|
+
* consumidor. Ver `RelationTransactionOptions.transaction`.
|
|
1483
|
+
*/
|
|
1484
|
+
export interface RelationTransactionOptions {
|
|
1485
|
+
/**
|
|
1486
|
+
* **La transacción ABIERTA del consumidor** (`TransactionClientContract` de
|
|
1487
|
+
* Lucid), para que la escritura de la tupla confirme o revierta CON la tuya
|
|
1488
|
+
* — L-2, panel `{trx}` (C). Aquí significa **ESCRIBIR en tu transacción**
|
|
1489
|
+
* («los dos o ninguno» en el mismo motor transaccional) — **encolar ≠
|
|
1490
|
+
* escribir**: no es la outbox de `scopes.*`, que solo ENCOLA. Solo lo
|
|
1491
|
+
* cumple un driver con `capabilities.transactionalWrites: true` (`database`,
|
|
1492
|
+
* con el `trx` de SU conexión, L-4); con `false` (`openfga`: una tupla no
|
|
1493
|
+
* entra en una transacción SQL) la llamada es **500 `E_AUTHZ_UNSUPPORTED`**
|
|
1494
|
+
* nombrando driver y operación, antes de tocar el driver. Con
|
|
1495
|
+
* `requireTransactionalWrites: true` (`config.relations`, o heredado del
|
|
1496
|
+
* raíz) un driver `false` es 500 `E_AUTHZ_CONFIG` al resolver. La
|
|
1497
|
+
* AUTORIDAD (barrera del freeze) nunca viaja por ella: pool ≥ 2.
|
|
1498
|
+
*/
|
|
1499
|
+
transaction?: unknown;
|
|
1500
|
+
}
|
|
1501
|
+
/**
|
|
1502
|
+
* Opciones de `purgeObject`/`purgeSubject` del `RelationsManager`
|
|
1503
|
+
* (2.4.0-alpha.3): la transacción del consumidor Y el `actor`. Una purga es
|
|
1504
|
+
* la escritura que MÁS actor necesita (un borrado masivo de llaves), así que
|
|
1505
|
+
* está sujeta a `requireActor` como el `scopes.detached` de roles.
|
|
1506
|
+
*/
|
|
1507
|
+
export interface RelationPurgeOptions extends RelationTransactionOptions {
|
|
1508
|
+
/** Quién ordena la purga; validado (422) y viaja en `RelationWriteEvent.actor`. */
|
|
1324
1509
|
actor?: SubjectRef;
|
|
1325
1510
|
}
|
|
1326
1511
|
/** Opciones comunes a `relate`/`unrelate`. */
|
|
1327
|
-
export interface RelationWriteOptions {
|
|
1328
|
-
/** Quién ordena la escritura; viaja en `RelationWriteEvent.actor`. */
|
|
1512
|
+
export interface RelationWriteOptions extends RelationTransactionOptions {
|
|
1513
|
+
/** Quién ordena la escritura; validado (422 `E_AUTHZ_INVALID_IDENTITY` si mal formado) y viaja en `RelationWriteEvent.actor`. */
|
|
1329
1514
|
actor?: SubjectRef;
|
|
1515
|
+
/**
|
|
1516
|
+
* **Caducidad de la tupla de relación** (R-15, 2.4.0-alpha.2) — los MISMOS
|
|
1517
|
+
* tres estados que `grant` (invariante 10): omitida ⇒ preserva una caducidad
|
|
1518
|
+
* VIGENTE (una ya caducada revive sin caducidad: es una relación nueva);
|
|
1519
|
+
* `null` ⇒ la quita; `Date` ⇒ la fija (también a un instante pasado: caduca).
|
|
1520
|
+
* Caducidad ESTRICTA: lo que vence AHORA ya no cuenta (`expires_at > now`;
|
|
1521
|
+
* `current_time < valid_until`). Solo la lee `relate`; `unrelate` la ignora.
|
|
1522
|
+
* Cualquier otro valor ⇒ 422 `E_AUTHZ_INVALID_IDENTITY` antes del driver.
|
|
1523
|
+
*/
|
|
1524
|
+
expiresAt?: Date | null;
|
|
1330
1525
|
}
|
|
1331
1526
|
/** Una página de una enumeración de relaciones (cursor opaco que AVANZA, no filtra herencia). */
|
|
1332
1527
|
export interface RelationPage {
|
|
@@ -1366,6 +1561,35 @@ export interface RelationsDriverCapabilities {
|
|
|
1366
1561
|
* `truncationSignal` de los `list*` de roles.
|
|
1367
1562
|
*/
|
|
1368
1563
|
listObjectsTruncation: boolean;
|
|
1564
|
+
/**
|
|
1565
|
+
* El driver acepta un reloj inyectado (R-15, paridad con el par
|
|
1566
|
+
* `injectableClock` de roles, 2.5 · J1): `withClock(now)` devuelve una
|
|
1567
|
+
* vista del driver cuyo `now()` decide la caducidad de las tuplas. Con
|
|
1568
|
+
* `true` el juez observa la caducidad EXACTA (T−1 ms concede, T no) y los
|
|
1569
|
+
* tres estados de `expiresAt` sin dormir; con `false` solo puede observarlos
|
|
1570
|
+
* en tiempo real (y el driver NO debe traer `withClock`: declara lo que se
|
|
1571
|
+
* observa).
|
|
1572
|
+
*/
|
|
1573
|
+
injectableClock: boolean;
|
|
1574
|
+
/**
|
|
1575
|
+
* El driver puede inscribir sus escrituras en la transacción del consumidor
|
|
1576
|
+
* (`{ transaction }` en `relate`/`unrelate`/`purgeObject`/`purgeSubject`).
|
|
1577
|
+
* `true` significa EXACTAMENTE «los dos o ninguno con TU transacción»,
|
|
1578
|
+
* nunca «no se pierde». `database` = **`true`** desde L-4 (la escritura va
|
|
1579
|
+
* por el `trx` ABIERTO de SU conexión, `assertCallerTransaction`; la
|
|
1580
|
+
* AUTORIDAD —barrera del freeze, F-05— nunca; exige pool ≥ 2, y un
|
|
1581
|
+
* despliegue con pool 1 declara `false` con la opción
|
|
1582
|
+
* `DatabaseRelationsDriverOptions.transactionalWrites`). `openfga` = false,
|
|
1583
|
+
* y no puede ser otra cosa: una tupla no entra en una transacción SQL — el
|
|
1584
|
+
* store es otro servicio y no hay 2PC. **Mismo nombre que en
|
|
1585
|
+
* `AuthorizationDriverCapabilities`**. Con `false`, `{ transaction }` es 500
|
|
1586
|
+
* `E_AUTHZ_UNSUPPORTED` por llamada (cero llamadas al driver); con
|
|
1587
|
+
* `requireTransactionalWrites: true` un driver `false` es 500
|
|
1588
|
+
* `E_AUTHZ_CONFIG` al resolver. La cara `true` del runner juzga el rollback
|
|
1589
|
+
* POR CENSO (cero tuplas nuevas para las cuatro escrituras; `purge*`
|
|
1590
|
+
* revierten juntos) y que una transacción ajena no recibe ni una sentencia.
|
|
1591
|
+
*/
|
|
1592
|
+
transactionalWrites: boolean;
|
|
1369
1593
|
}
|
|
1370
1594
|
/**
|
|
1371
1595
|
* Una página de `listObjects`/`listSubjects`/`enumerateRelations`. `truncated`
|
|
@@ -1388,6 +1612,13 @@ export interface RelationTuple {
|
|
|
1388
1612
|
relation: string;
|
|
1389
1613
|
object: RelObject;
|
|
1390
1614
|
partition: ScopeRef;
|
|
1615
|
+
/**
|
|
1616
|
+
* La caducidad de la tupla tal como está ESCRITA (R-15): `null`/ausente = no
|
|
1617
|
+
* caduca. `enumerateRelations` NO filtra la caducada: tiene que LLEGAR al
|
|
1618
|
+
* destino de `reconcile` con su `expiresAt` para contarse en `skipped`
|
|
1619
|
+
* (la lección de la 3b); filtrarla en el origen la haría desaparecer sin rastro.
|
|
1620
|
+
*/
|
|
1621
|
+
expiresAt?: Date | null;
|
|
1391
1622
|
}
|
|
1392
1623
|
export interface RelationTuplePage {
|
|
1393
1624
|
tuples: RelationTuple[];
|
|
@@ -1398,7 +1629,34 @@ export interface RelationTuplePage {
|
|
|
1398
1629
|
* (`APP_SCOPE` es válida para mono-tenant): el aislamiento de tenant se corta
|
|
1399
1630
|
* por la partición, y el driver la serializa en el id del objeto y del
|
|
1400
1631
|
* userset. La whitelist de tipo/relación (F-05) la aplica el manager ANTES de
|
|
1401
|
-
* llamar al driver, pero el driver la re-valida por defensa en profundidad
|
|
1632
|
+
* llamar al driver, pero el driver la re-valida por defensa en profundidad:
|
|
1633
|
+
* `relate`/`unrelate` de `database` y de `openfga` rechazan 422
|
|
1634
|
+
* (`E_AUTHZ_RELATION_TYPE_UNKNOWN` / `E_AUTHZ_RELATION_UNKNOWN`, la MISMA
|
|
1635
|
+
* función y el mismo `code` que el manager, `assertRelationDeclared`) un
|
|
1636
|
+
* `object.type` no declarado o una `relation` no declarada para ese tipo,
|
|
1637
|
+
* ANTES de tocar el backend (cero `Write`, cero INSERT). Es la red para quien
|
|
1638
|
+
* entra por `manager.driver()` o por `reconcileRelations` (L-0): hasta
|
|
1639
|
+
* entonces esta frase era falsa en los dos drivers y, en el store compartido,
|
|
1640
|
+
* `driver.relate(evil, 'assignee', {type:'role_binding', id:<roleUuid>}, S)`
|
|
1641
|
+
* escalaba a `roles.authorize` (medido). **Y desde `2.4.0-alpha.3` en las
|
|
1642
|
+
* OCHO operaciones** (cierre del 🔴 1 / 🟠 2 del auditor; cierre-2 · 🟡 3):
|
|
1643
|
+
* `purgeObject` (el tipo, `assertObjectTypeDeclared`), `purgeSubject` (el
|
|
1644
|
+
* userset del sujeto), `check`/`listSubjects`/`membersOf` (el par) y
|
|
1645
|
+
* `listObjects` (tipo y relación) también la aplican, en el manager y en los
|
|
1646
|
+
* dos drivers, con cero llamadas al backend — sin ella
|
|
1647
|
+
* `purgeObject({type:'role_binding', id:R}, S)` BORRABA el binding real del
|
|
1648
|
+
* store compartido y `listSubjects('assignee', role_binding)` enumeraba sus
|
|
1649
|
+
* asignados (medido contra el `:8101`). **La relación es OBLIGATORIA** donde
|
|
1650
|
+
* se nombra (cierre-2 · 🟠 1: `undefined` ⇒ 422 `E_AUTHZ_RELATION_UNKNOWN`,
|
|
1651
|
+
* nunca una tupla escrita, un 503 del servidor ni la unión de `listSubjects`).
|
|
1652
|
+
* El runner publicado lo exige a un driver de terceros en las seis.
|
|
1653
|
+
*
|
|
1654
|
+
* **Invariante 13 y las purgas multi-request**: un driver cuya purga NO sea
|
|
1655
|
+
* una sola sentencia/`Write` y falle DESPUÉS de haber borrado parte debe
|
|
1656
|
+
* propagar el error marcado con `markPartialWrite` (exportado): el
|
|
1657
|
+
* `RelationsManager` notifica entonces `onRelationWrite` con
|
|
1658
|
+
* `indeterminate: true` antes de propagar. `openfga` lo hace; `database`
|
|
1659
|
+
* (un `DELETE`) no lo necesita.
|
|
1402
1660
|
*/
|
|
1403
1661
|
export interface RelationsDriver {
|
|
1404
1662
|
readonly capabilities?: RelationsDriverCapabilities;
|
|
@@ -1412,10 +1670,10 @@ export interface RelationsDriver {
|
|
|
1412
1670
|
listObjects(subject: RelSubject, relation: string, objectType: string, partition: ScopeRef, page?: RelationPage): Promise<RelationObjectsPage>;
|
|
1413
1671
|
/** Los sujetos DIRECTOS de `relation` sobre `object` (holders y usersets). Nunca la membresía transitiva (eso es `membersOf`). */
|
|
1414
1672
|
listSubjects(relation: string, object: RelObject, partition: ScopeRef, page?: RelationPage): Promise<RelationSubjectsPage>;
|
|
1415
|
-
/** Borra todas las tuplas cuyo OBJETO es `object` y demuestra cero, o lanza 500 `E_AUTHZ_PURGE_INCOMPLETE` (invariante 11). */
|
|
1416
|
-
purgeObject(object: RelObject, partition: ScopeRef): Promise<void>;
|
|
1417
|
-
/** Borra todas las tuplas cuyo SUJETO es `subject` y demuestra cero, o lanza 500. */
|
|
1418
|
-
purgeSubject(subject: RelSubject, partition: ScopeRef): Promise<void>;
|
|
1673
|
+
/** Borra todas las tuplas cuyo OBJETO es `object` (F-05 sobre el TIPO, alpha.3) y demuestra cero, o lanza 500 `E_AUTHZ_PURGE_INCOMPLETE` (invariante 11). Si falla tras borrar parte, marcado con `markPartialWrite`. */
|
|
1674
|
+
purgeObject(object: RelObject, partition: ScopeRef, options?: RelationTransactionOptions): Promise<void>;
|
|
1675
|
+
/** Borra todas las tuplas cuyo SUJETO es `subject` (F-05 sobre el userset, alpha.3) y demuestra cero, o lanza 500. Si falla tras borrar parte, marcado con `markPartialWrite`. */
|
|
1676
|
+
purgeSubject(subject: RelSubject, partition: ScopeRef, options?: RelationTransactionOptions): Promise<void>;
|
|
1419
1677
|
/**
|
|
1420
1678
|
* La membresía TRANSITIVA de un objeto-grupo: todos los holders que son
|
|
1421
1679
|
* `member` directa o a través de grupos anidados. DISTINTO de
|
|
@@ -1423,8 +1681,18 @@ export interface RelationsDriver {
|
|
|
1423
1681
|
* lo trae el driver con `membersOfNative: true`.
|
|
1424
1682
|
*/
|
|
1425
1683
|
membersOf?(object: RelObject, relation: string, partition: ScopeRef, page?: RelationPage): Promise<RelationSubjectsPage>;
|
|
1426
|
-
/** ORIGEN de `authz:reconcile` de relaciones: las tuplas paginadas, sin filtrar. Solo con `enumerateRelations: true`. */
|
|
1684
|
+
/** ORIGEN de `authz:reconcile` de relaciones: las tuplas paginadas, sin filtrar (la caducada LLEGA con su `expiresAt`). Solo con `enumerateRelations: true`. */
|
|
1427
1685
|
enumerateRelations?(partition: ScopeRef, page?: RelationPage): Promise<RelationTuplePage>;
|
|
1686
|
+
/**
|
|
1687
|
+
* Vista de este driver con OTRO reloj de pared (R-15, paridad con
|
|
1688
|
+
* `AuthorizationDriver.withClock`, 2.5 · J1): mismo backend, solo cambia el
|
|
1689
|
+
* `now()` que decide la caducidad (`expires_at > now` en SQL; el
|
|
1690
|
+
* `current_time` del `Check` en FGA; el filtro en cliente de `listSubjects`).
|
|
1691
|
+
* Opcional: el `RelationsManager` lo aplica si recibe `clock` (500
|
|
1692
|
+
* `E_AUTHZ_CONFIG` si el driver no lo trae) y el juez lo usa con
|
|
1693
|
+
* `injectableClock: true`.
|
|
1694
|
+
*/
|
|
1695
|
+
withClock?(now: () => Date): RelationsDriver;
|
|
1428
1696
|
}
|
|
1429
1697
|
/**
|
|
1430
1698
|
* Factory de un `RelationsDriver` (Fase 4, lote 4-6) — el análogo de
|
package/build/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/build/src/types.js
CHANGED
|
@@ -49,6 +49,10 @@ export const APP_SCOPE = Object.freeze({ type: 'app', uuid: null });
|
|
|
49
49
|
export const DEFAULT_RECONCILE_MAX_TUPLES = 1_000_000;
|
|
50
50
|
/** Discriminador: ¿este sujeto es un userset (`group:g#member`) y no un holder? */
|
|
51
51
|
export function isRelUserset(subject) {
|
|
52
|
+
// Tolerante a `null`/no-objeto (cierre alpha.3, ⚪ 7): un sujeto que no es
|
|
53
|
+
// ni holder ni userset cae en `assertSubject` y sale como 422, no como TypeError.
|
|
54
|
+
if (subject === null || typeof subject !== 'object')
|
|
55
|
+
return false;
|
|
52
56
|
return typeof subject.object === 'object' && subject.object !== null;
|
|
53
57
|
}
|
|
54
58
|
//# sourceMappingURL=types.js.map
|
package/build/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAoBH,uCAAuC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAA;AAQnC,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAa,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAoBH,uCAAuC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAA;AAQnC,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAa,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAqrB7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAA;AAqsBrD,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,OAAmB;IAC9C,0EAA0E;IAC1E,kFAAkF;IAClF,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACjE,OAAO,OAAQ,OAAsB,CAAC,MAAM,KAAK,QAAQ,IAAK,OAAsB,CAAC,MAAM,KAAK,IAAI,CAAA;AACtG,CAAC"}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
defineRelationsConfig,
|
|
10
10
|
APP_SCOPE,
|
|
11
11
|
} from '@jantstack/adonis-authz'
|
|
12
|
-
import type { AuthzWriteEvent, ScopeRef } from '@jantstack/adonis-authz'
|
|
12
|
+
import type { AuthzWriteEvent, RelationWriteEvent, ScopeRef } from '@jantstack/adonis-authz'
|
|
13
13
|
import { appAclCatalog } from '#config/app_acl'
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -93,6 +93,33 @@ async function resolveScopeChain(scope: ScopeRef): Promise<ScopeRef[] | null> {
|
|
|
93
93
|
*/
|
|
94
94
|
async function onAuthzWrite(_event: AuthzWriteEvent) {}
|
|
95
95
|
|
|
96
|
+
/**
|
|
97
|
+
* Side-effects de cada escritura de RELACIONES (`relate`/`unrelate`/
|
|
98
|
+
* `purgeObject`/`purgeSubject`) por el servicio `authz.relations`. Mismas
|
|
99
|
+
* garantías que `onAuthzWrite`: corre DESPUÉS de que el driver vuelva; si lanza
|
|
100
|
+
* se registra y NO tumba la escritura; `transactional: true` cuando la tupla
|
|
101
|
+
* fue por tu `{ transaction }` (es un hecho si y solo si confirmas: cuélgate de
|
|
102
|
+
* `trx.after('commit')` para la última palabra); `indeterminate: true` cuando
|
|
103
|
+
* el deadline venció y el paquete no sabe si aterrizó (invariante 13).
|
|
104
|
+
* Una purga notifica UN evento por llamada, sin conteo y sin `relation`:
|
|
105
|
+
* `purgeObject` lleva `object` (sin `subject`), `purgeSubject` lleva `subject`
|
|
106
|
+
* (sin `object`). Si necesitas el «cuántas», enumera ANTES de purgar.
|
|
107
|
+
*/
|
|
108
|
+
async function onAuthzRelationWrite(event: RelationWriteEvent) {
|
|
109
|
+
switch (event.operation) {
|
|
110
|
+
case 'relate':
|
|
111
|
+
case 'unrelate':
|
|
112
|
+
// event.subject, event.relation y event.object vienen los tres.
|
|
113
|
+
break
|
|
114
|
+
case 'purgeObject':
|
|
115
|
+
// event.object viene; event.subject y event.relation NO.
|
|
116
|
+
break
|
|
117
|
+
case 'purgeSubject':
|
|
118
|
+
// event.subject viene; event.object y event.relation NO.
|
|
119
|
+
break
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
96
123
|
export default defineConfig({
|
|
97
124
|
default: env.get('AUTHZ_DRIVER', 'database'),
|
|
98
125
|
|
|
@@ -201,10 +228,27 @@ export default defineConfig({
|
|
|
201
228
|
* El driver `openfga` de relaciones entra por el subpath `/openfga` DENTRO de
|
|
202
229
|
* la factory (peer opcional). Si no usas ReBAC, borra esta sección y el
|
|
203
230
|
* `relationsConfig` de arriba.
|
|
231
|
+
*
|
|
232
|
+
* Los hooks del puerto de relaciones viven AQUÍ (un solo home), no en
|
|
233
|
+
* `hooks`: `assertWrite` (R-13) es el gate de policy del consumidor —SÍNCRONO,
|
|
234
|
+
* PURO y sin `actor` a propósito: recibe la referencia de la tupla y lanza
|
|
235
|
+
* para rechazarla; corre después de F-05 y ANTES del driver; si devuelve una
|
|
236
|
+
* promesa el manager la rechaza con 500 E_AUTHZ_CONFIG en vez de ignorarla
|
|
237
|
+
* (la policy con actor/BD va en tu servicio, ANTES de llamar)—;
|
|
238
|
+
* `onRelationWrite` es la auditoría; `requireActor` anula el del raíz solo
|
|
239
|
+
* para este puerto (`relations.requireActor ?? requireActor`), y desde
|
|
240
|
+
* 2.4.0-alpha.3 alcanza también a `purgeObject`/`purgeSubject`.
|
|
204
241
|
*/
|
|
205
242
|
relations: {
|
|
206
243
|
config: relationsConfig,
|
|
207
244
|
default: env.get('AUTHZ_DRIVER', 'database'),
|
|
245
|
+
onRelationWrite: onAuthzRelationWrite,
|
|
246
|
+
// assertWrite: (ref) => {
|
|
247
|
+
// if (ref.operation === 'relate' && ref.relation === 'owner' && ref.expiresAt === undefined) {
|
|
248
|
+
// throw new Error('un owner se concede siempre con plazo')
|
|
249
|
+
// }
|
|
250
|
+
// },
|
|
251
|
+
// requireActor: true, // exige `actor` en las cuatro escrituras de relaciones (anula el raíz)
|
|
208
252
|
drivers: {
|
|
209
253
|
database: () => new DatabaseRelationsDriver(relationsConfig),
|
|
210
254
|
openfga: async () => {
|