@jantstack/adonis-authz 2.4.0-alpha.1 → 2.4.0-alpha.10
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 +496 -29
- package/build/commands/authz_catalog_diff.d.ts.map +1 -1
- package/build/commands/authz_catalog_diff.js +0 -1
- package/build/commands/authz_catalog_diff.js.map +1 -1
- package/build/commands/authz_catalog_prune_orphans.d.ts.map +1 -1
- package/build/commands/authz_catalog_prune_orphans.js +0 -1
- package/build/commands/authz_catalog_prune_orphans.js.map +1 -1
- package/build/commands/authz_freeze.d.ts.map +1 -1
- package/build/commands/authz_freeze.js +1 -2
- package/build/commands/authz_freeze.js.map +1 -1
- package/build/commands/authz_reconcile.d.ts +15 -6
- package/build/commands/authz_reconcile.d.ts.map +1 -1
- package/build/commands/authz_reconcile.js +143 -20
- package/build/commands/authz_reconcile.js.map +1 -1
- package/build/commands/authz_relations_reconcile.d.ts +72 -1
- package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
- package/build/commands/authz_relations_reconcile.js +234 -21
- package/build/commands/authz_relations_reconcile.js.map +1 -1
- package/build/commands/authz_scopes_relay.d.ts +50 -0
- package/build/commands/authz_scopes_relay.d.ts.map +1 -1
- package/build/commands/authz_scopes_relay.js +213 -10
- package/build/commands/authz_scopes_relay.js.map +1 -1
- package/build/commands/authz_scopes_requeue.d.ts +80 -0
- package/build/commands/authz_scopes_requeue.d.ts.map +1 -0
- package/build/commands/authz_scopes_requeue.js +230 -0
- package/build/commands/authz_scopes_requeue.js.map +1 -0
- package/build/commands/authz_unfreeze.d.ts +12 -4
- package/build/commands/authz_unfreeze.d.ts.map +1 -1
- package/build/commands/authz_unfreeze.js +74 -9
- package/build/commands/authz_unfreeze.js.map +1 -1
- package/build/commands/main.d.ts +16 -13
- package/build/commands/main.d.ts.map +1 -1
- package/build/commands/main.js +59 -11
- package/build/commands/main.js.map +1 -1
- package/build/commands/openfga_provision.d.ts +49 -3
- package/build/commands/openfga_provision.d.ts.map +1 -1
- package/build/commands/openfga_provision.js +72 -7
- package/build/commands/openfga_provision.js.map +1 -1
- package/build/index.d.ts +15 -5
- package/build/index.d.ts.map +1 -1
- package/build/index.js +16 -3
- package/build/index.js.map +1 -1
- package/build/providers/authz_provider.d.ts +7 -2
- package/build/providers/authz_provider.d.ts.map +1 -1
- package/build/providers/authz_provider.js +20 -3
- package/build/providers/authz_provider.js.map +1 -1
- package/build/src/define_config.d.ts +106 -1
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js +11 -0
- 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 +74 -9
- package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/database_relations_driver.js +391 -93
- package/build/src/drivers/database_relations_driver.js.map +1 -1
- package/build/src/drivers/openfga_driver.d.ts +71 -10
- package/build/src/drivers/openfga_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_driver.js +195 -16
- 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 +72 -6
- package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_relations_driver.js +308 -50
- package/build/src/drivers/openfga_relations_driver.js.map +1 -1
- package/build/src/errors.d.ts +175 -4
- package/build/src/errors.d.ts.map +1 -1
- package/build/src/errors.js +219 -3
- package/build/src/errors.js.map +1 -1
- package/build/src/freeze.d.ts +100 -20
- package/build/src/freeze.d.ts.map +1 -1
- package/build/src/freeze.js +159 -25
- package/build/src/freeze.js.map +1 -1
- package/build/src/manager.d.ts +239 -7
- package/build/src/manager.d.ts.map +1 -1
- package/build/src/manager.js +1192 -148
- 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 +106 -6
- package/build/src/relations/manager.d.ts.map +1 -1
- package/build/src/relations/manager.js +368 -30
- package/build/src/relations/manager.js.map +1 -1
- package/build/src/relations/reconcile.d.ts +81 -6
- package/build/src/relations/reconcile.d.ts.map +1 -1
- package/build/src/relations/reconcile.js +233 -77
- package/build/src/relations/reconcile.js.map +1 -1
- package/build/src/scope_outbox.d.ts +54 -0
- package/build/src/scope_outbox.d.ts.map +1 -1
- package/build/src/scope_outbox.js +274 -33
- 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/sql_expiry.d.ts +2 -0
- package/build/src/shared/sql_expiry.d.ts.map +1 -1
- package/build/src/shared/sql_expiry.js +4 -0
- package/build/src/shared/sql_expiry.js.map +1 -1
- package/build/src/shared/transaction_guard.d.ts +53 -0
- package/build/src/shared/transaction_guard.d.ts.map +1 -0
- package/build/src/shared/transaction_guard.js +74 -0
- package/build/src/shared/transaction_guard.js.map +1 -0
- package/build/src/sql_descendants.d.ts +8 -0
- package/build/src/sql_descendants.d.ts.map +1 -1
- package/build/src/sql_descendants.js.map +1 -1
- 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 +244 -9
- package/build/src/testing/contract.js.map +1 -1
- package/build/src/testing/main.d.ts +6 -4
- package/build/src/testing/main.d.ts.map +1 -1
- package/build/src/testing/main.js +3 -2
- package/build/src/testing/main.js.map +1 -1
- package/build/src/testing/migration_contract.d.ts +9 -0
- package/build/src/testing/migration_contract.d.ts.map +1 -1
- package/build/src/testing/migration_contract.js +5 -2
- package/build/src/testing/migration_contract.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/testing/scope_outbox_contract.d.ts +98 -0
- package/build/src/testing/scope_outbox_contract.d.ts.map +1 -0
- package/build/src/testing/scope_outbox_contract.js +677 -0
- package/build/src/testing/scope_outbox_contract.js.map +1 -0
- 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 +708 -38
- package/build/src/types.d.ts.map +1 -1
- package/build/src/types.js +55 -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/errors.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Exception } from '@adonisjs/core/exceptions';
|
|
2
|
+
import type { ScopeRequeueConflict } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* El backend de autorización no respondió.
|
|
4
5
|
*
|
|
@@ -77,7 +78,54 @@ export declare class InvalidSlugError extends Exception {
|
|
|
77
78
|
export declare class AuthorizationConfigError extends Exception {
|
|
78
79
|
static status: number;
|
|
79
80
|
static code: string;
|
|
80
|
-
|
|
81
|
+
/**
|
|
82
|
+
* **`assertWrite` devolvió una promesa** (2.4.0-alpha.3 · D3, hallazgo H2).
|
|
83
|
+
* `assertWrite(ref): void` es SÍNCRONO y puro a propósito (R-13), pero
|
|
84
|
+
* TypeScript no lo defiende: `assertWrite: async (ref) => { throw … }`
|
|
85
|
+
* compila —una función que devuelve `Promise<void>` es asignable a `void`—,
|
|
86
|
+
* y hasta alpha.3 la promesa se descartaba y la ESCRITURA ENTRABA (un gate
|
|
87
|
+
* de policy que no rechaza nada, en silencio). Se cierra fail-closed: 500
|
|
88
|
+
* ANTES de tocar el driver, nombrando la causa y la receta. La letra la
|
|
89
|
+
* fija `tests/relations_events_docs.spec.ts` byte a byte.
|
|
90
|
+
*/
|
|
91
|
+
static asyncAssertWrite(operation: string): AuthorizationConfigError;
|
|
92
|
+
/**
|
|
93
|
+
* **`assertWrite` devolvió un VEREDICTO** (2.4.0-alpha.3, cierre del 🟠 3 /
|
|
94
|
+
* 🟡 4 del auditor): `assertWrite: (ref) => allowed.has(ref.object.type)`
|
|
95
|
+
* compila bajo `--strict` (cualquier retorno es asignable a `void`) y hasta
|
|
96
|
+
* el cierre el `false` se IGNORABA y la escritura entraba — el mismo
|
|
97
|
+
* fail-open que H2, y más frecuente que el `async`. `assertWrite` no
|
|
98
|
+
* devuelve veredictos: LANZA o no lanza. Todo retorno distinto de
|
|
99
|
+
* `undefined` es 500 ANTES del driver — también un `true` (un veredicto
|
|
100
|
+
* positivo es el mismo error de modelo: quien lo escribió cree que el
|
|
101
|
+
* `false` deniega) y también una FUNCIÓN con `.then` (el thenable que no
|
|
102
|
+
* es `typeof 'object'` y esquivaba la guarda de H2).
|
|
103
|
+
*/
|
|
104
|
+
static assertWriteReturned(operation: string, result: unknown): AuthorizationConfigError;
|
|
105
|
+
}
|
|
106
|
+
/** Un thenable, sea objeto o FUNCIÓN con `.then` (la forma que esquivaba `typeof result === 'object'`). */
|
|
107
|
+
export declare function isThenable(value: unknown): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* **Marca de ESCRITURA PARCIAL** (invariante 13, `2.4.0-alpha.3`, cierre del
|
|
110
|
+
* 🟡 6 del auditor). Una escritura del puerto que NO es una sola sentencia ni
|
|
111
|
+
* un solo `Write` —la purga de `openfga`, que recorre ortografías × tipos con
|
|
112
|
+
* varios `Read`+`deleteTuples`— puede fallar DESPUÉS de haber borrado parte:
|
|
113
|
+
* ese fallo no es «esa escritura no ocurrió» (que es lo que un 503 no-timeout
|
|
114
|
+
* significa para una escritura atómica) sino «puede haber ocurrido», lo mismo
|
|
115
|
+
* que un deadline vencido. El driver marca el error con `markPartialWrite`
|
|
116
|
+
* antes de propagarlo, y el manager (`#write`) notifica `onRelationWrite` con
|
|
117
|
+
* `indeterminate: true` ANTES de propagar, exactamente como con
|
|
118
|
+
* `AuthorizationBackendTimeoutError`. La marca es una propiedad
|
|
119
|
+
* (`partialWrite: true`) y no una clase: el error que se propaga conserva su
|
|
120
|
+
* clase y su `code` (503 `E_AUTHZ_BACKEND_UNAVAILABLE`, 500
|
|
121
|
+
* `E_AUTHZ_PURGE_INCOMPLETE`…) — lo que cambia es solo la auditoría. Un driver
|
|
122
|
+
* de terceros cuya purga sea multi-request tiene el mismo deber.
|
|
123
|
+
*/
|
|
124
|
+
export declare function markPartialWrite<E extends object>(error: E): E & {
|
|
125
|
+
partialWrite: true;
|
|
126
|
+
};
|
|
127
|
+
/** ¿El error viene marcado como escritura parcial (`markPartialWrite`)? */
|
|
128
|
+
export declare function isPartialWrite(error: unknown): boolean;
|
|
81
129
|
/**
|
|
82
130
|
* Invariante interno del motor violado (una escritura sin scopes, un batchCheck
|
|
83
131
|
* incompleto). 500: es un bug del paquete o de quien lo extiende, no del
|
|
@@ -232,6 +280,23 @@ export declare class RoleIsNotAccessError extends Exception {
|
|
|
232
280
|
static code: string;
|
|
233
281
|
constructor(role: unknown);
|
|
234
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* `requeueScopeChanges` se NIEGA (2.4.0-alpha.5 · R2b): devolver la entrada
|
|
285
|
+
* aparcada a la cola reaplicaría un cambio ANTERIOR a otro ya APLICADO sobre
|
|
286
|
+
* la misma clave de scope — el árbol del store quedaría en un orden que
|
|
287
|
+
* nunca existió (auditor 🔴 2, medido: el `moved` viejo tras el nuevo deja
|
|
288
|
+
* el padre VIEJO con un solo padre, y nada lo delata). 500 y no 422: la
|
|
289
|
+
* pregunta está bien formada, es el estado de la cola el que la prohíbe; y
|
|
290
|
+
* nunca se reencola «lo que se pueda»: es todo o nada. `conflicts` es el
|
|
291
|
+
* diff —cada aparcada y las aplicadas posteriores que revertiría—; el
|
|
292
|
+
* comando lo imprime y solo `--force` (en el comando ace) lo salta.
|
|
293
|
+
*/
|
|
294
|
+
export declare class ScopeRequeueRefusedError extends Exception {
|
|
295
|
+
static status: number;
|
|
296
|
+
static code: string;
|
|
297
|
+
readonly conflicts: ScopeRequeueConflict[];
|
|
298
|
+
constructor(message: string, conflicts: ScopeRequeueConflict[]);
|
|
299
|
+
}
|
|
235
300
|
/**
|
|
236
301
|
* Colgar `child` de `parent` cerraría un ciclo (el padre desciende del hijo,
|
|
237
302
|
* o son el mismo). FGA no detecta ciclos de `parent`: los evalúa, y un grant
|
|
@@ -337,6 +402,39 @@ export declare class ScopeTooDeepError extends Exception {
|
|
|
337
402
|
static status: number;
|
|
338
403
|
static code: string;
|
|
339
404
|
}
|
|
405
|
+
/**
|
|
406
|
+
* `scopes.attached`/`scopes.moved` dejarían al hijo a más de `scopes.maxDepth`
|
|
407
|
+
* saltos de `app` (2.4.0-alpha.5 · R0; opt-in por config). 422 y no 500: la
|
|
408
|
+
* pregunta está bien formada, es el árbol el que no cabe en el techo que el
|
|
409
|
+
* dueño declaró — y se dice ANTES de escribir o encolar. Distinto de
|
|
410
|
+
* `E_AUTHZ_SCOPE_TOO_DEEP` (500): aquel es `hierarchicalScopeResolver` que no
|
|
411
|
+
* puede TERMINAR una cadena ya existente; este es una escritura que se niega.
|
|
412
|
+
*/
|
|
413
|
+
export declare class ScopeDepthLimitError extends Exception {
|
|
414
|
+
static status: number;
|
|
415
|
+
static code: string;
|
|
416
|
+
/**
|
|
417
|
+
* Para el OPERADOR, no para el tenant (2.4.0-alpha.8; panel relay 2,
|
|
418
|
+
* cuestión 7.2): el `message` de un 422 llega a quien hizo la petición, así
|
|
419
|
+
* que dice solo lo accionable para él (profundidad, `scopes.maxDepth`, «no
|
|
420
|
+
* se ha escrito ni encolado nada»). Por qué existe el techo —el modelo
|
|
421
|
+
* `facts` del driver `openfga` no resuelve de forma fiable más allá de
|
|
422
|
+
* `FACTS_MAX_RESOLVE_DEPTH`, y el mando del servidor es
|
|
423
|
+
* `OPENFGA_RESOLVE_NODE_LIMIT`— nombra el backend y va aquí, para el log.
|
|
424
|
+
*/
|
|
425
|
+
readonly details: {
|
|
426
|
+
depth: number;
|
|
427
|
+
maxDepth: number;
|
|
428
|
+
why: string;
|
|
429
|
+
server: string;
|
|
430
|
+
};
|
|
431
|
+
constructor(message: string, details: {
|
|
432
|
+
depth: number;
|
|
433
|
+
maxDepth: number;
|
|
434
|
+
why: string;
|
|
435
|
+
server: string;
|
|
436
|
+
});
|
|
437
|
+
}
|
|
340
438
|
/**
|
|
341
439
|
* Una primitiva de 2.1 necesita un método OPCIONAL del puerto que el driver
|
|
342
440
|
* activo no implementa (2.1, B5): se nombra el método y se lanza. 500 porque
|
|
@@ -347,6 +445,32 @@ export declare class UnsupportedOperationError extends Exception {
|
|
|
347
445
|
static status: number;
|
|
348
446
|
static code: string;
|
|
349
447
|
constructor(method: string, primitive: string, driver: string, hint?: string);
|
|
448
|
+
/**
|
|
449
|
+
* **Puerta 1 de `{ transaction }`** (L-2, panel `{trx}` (C)): la operación
|
|
450
|
+
* pidió escribir en la transacción del consumidor y el driver activo no
|
|
451
|
+
* declara `transactionalWrites: true`. 500 y no 422 por precedente
|
|
452
|
+
* (`membersOf`, `purgeRole`): no es una pregunta mal formada, es un
|
|
453
|
+
* despliegue que no casa con lo que se le pidió. La letra lleva la salida.
|
|
454
|
+
*/
|
|
455
|
+
static transactional(operation: string, driver: string, port: 'roles' | 'relations'): UnsupportedOperationError;
|
|
456
|
+
/**
|
|
457
|
+
* **El mismo rechazo, dicho por el DRIVER `openfga`** (L-5, defensa en
|
|
458
|
+
* profundidad como F-05 en L-0): `manager.driver()` es la salida documentada
|
|
459
|
+
* de las barreras y con `{ transaction }` entraría por aquí saltándose la
|
|
460
|
+
* puerta 1; el driver no puede intentar un `Write` que finja ir en la
|
|
461
|
+
* transacción del consumidor. Misma clase, mismo `code`, misma letra; la
|
|
462
|
+
* frase final dice que no hay salida por el driver — la alternativa que SÍ
|
|
463
|
+
* existe para el ÁRBOL es la outbox de scopes (encola en tu transacción);
|
|
464
|
+
* para HECHOS y relaciones no hay outbox (descartada por el panel `{trx}`:
|
|
465
|
+
* fail-open medido).
|
|
466
|
+
*/
|
|
467
|
+
static transactionalDriver(operation: string, driver: string, port: 'roles' | 'relations'): UnsupportedOperationError;
|
|
468
|
+
/**
|
|
469
|
+
* La API de delegación no admite `{ transaction }` (L-2, §1.4 del veredicto):
|
|
470
|
+
* escribe el catálogo por `withAuthzCatalogWrite`, que ES el serializador
|
|
471
|
+
* entre procesos (invariante 14); moverla al commit del consumidor lo anula.
|
|
472
|
+
*/
|
|
473
|
+
static transactionalCatalog(operation: string): UnsupportedOperationError;
|
|
350
474
|
}
|
|
351
475
|
/**
|
|
352
476
|
* Una vista de `forRequest()` se usó para LEER después de `maxAgeMs` (2D ·
|
|
@@ -552,6 +676,47 @@ export declare class MassReconcileRefusedError extends Exception {
|
|
|
552
676
|
static status: number;
|
|
553
677
|
static code: string;
|
|
554
678
|
}
|
|
679
|
+
/**
|
|
680
|
+
* Una operación iba a tomar el freeze y encontró la ventana del OPERADOR
|
|
681
|
+
* CADUCADA (2.4.0-alpha.10, S2 de la auditoría de sistema): motivo puesto,
|
|
682
|
+
* holder `operator:` y `untilMs` en el pasado. Hasta alpha.9 `acquireFreeze`
|
|
683
|
+
* pisaba esa fila en silencio —un lease vencido no bloquea la toma—, la pasada
|
|
684
|
+
* se certificaba con SU ventana de 15 s y al soltarla dejaba la fila a `NULL`:
|
|
685
|
+
* el último rastro de que la flota volvió a escribir a mitad del cutover lo
|
|
686
|
+
* borraba una pasada ajena, y `authz:unfreeze` decía «nada que levantar». 503
|
|
687
|
+
* antes de tomar nada; la salida es reconocerla con `authz:unfreeze` (que dice
|
|
688
|
+
* cuándo venció y limpia la fila) y reabrir la ventana con `authz:freeze`. La
|
|
689
|
+
* exclusión va DENTRO del `UPDATE` de `acquireFreezeOutcome` (cierre del
|
|
690
|
+
* auditor · R2): comprobar fuera y tomar después era un TOCTOU.
|
|
691
|
+
*/
|
|
692
|
+
export declare class OperatorWindowExpiredError extends Exception {
|
|
693
|
+
static status: number;
|
|
694
|
+
static code: string;
|
|
695
|
+
}
|
|
696
|
+
/**
|
|
697
|
+
* `authz:reconcile --to=<driver ACTIVO> --from=<otro>`: la DIRECCIÓN RANCIA
|
|
698
|
+
* (2.4.0-alpha.10, 🔴 4 del sexto informe de COGNITIV; decisión del dueño del
|
|
699
|
+
* 2026-09-13 (4)).
|
|
700
|
+
*
|
|
701
|
+
* La regla 3b-5 dice que con `--from` manda el operador — **salvo hacia el
|
|
702
|
+
* driver activo**. Si el motor ya sirve desde `to`, sus hechos se escriben
|
|
703
|
+
* ahí desde el cutover y el origen dejó de verlos: con `openfga` activo,
|
|
704
|
+
* `--from=database` lee `authz_*` congeladas y re-escribe en el store vivo los
|
|
705
|
+
* roles revocados después, con o sin `--prune` (y el seguro de borrado masivo
|
|
706
|
+
* no salta: el origen no está vacío). 500 en el MANAGER —la API es la puerta,
|
|
707
|
+
* no el comando— antes de construir el origen, leer nada o congelar;
|
|
708
|
+
* `allowStaleSource: true` (`--allow-stale-source`) es la decisión humana y
|
|
709
|
+
* `dryRun` no lanza: lo marca en `report.staleSource`. Simétrico al seguro de
|
|
710
|
+
* `E_AUTHZ_MASS_PURGE_REFUSED`. El gemelo de relaciones lo lanza
|
|
711
|
+
* `runRelationsReconcile` (la única vía pública desde el cierre del auditor),
|
|
712
|
+
* juzgando el driver RESUELTO por su factory: un alias del activo también se
|
|
713
|
+
* niega. Límite declarado: «activo» es el `config.default` del PROCESO que corre
|
|
714
|
+
* la pasada (sello durable del driver activo: roadmap 2.5).
|
|
715
|
+
*/
|
|
716
|
+
export declare class StaleSourceRefusedError extends Exception {
|
|
717
|
+
static status: number;
|
|
718
|
+
static code: string;
|
|
719
|
+
}
|
|
555
720
|
/**
|
|
556
721
|
* **El volcado del destino no cabe en la cota declarada** (3b-3b · B5).
|
|
557
722
|
*
|
|
@@ -600,7 +765,11 @@ export declare class ScopeDriftUnguardedError extends Exception {
|
|
|
600
765
|
* {type:'role_binding', id:<roleUuid>}, S)` escribía la tupla del binding y
|
|
601
766
|
* `check(evil, can_<P>, S)` devolvía `true` (escalada a `roles.authorize`,
|
|
602
767
|
* medida por el auditor). Junto con ⚪4 (un tipo reservado no se puede
|
|
603
|
-
* declarar) la colisión deja de existir en vez de vigilarse.
|
|
768
|
+
* declarar) la colisión deja de existir en vez de vigilarse. **Desde L-0 el
|
|
769
|
+
* mismo 422 lo lanzan también los dos drivers** en `relate`/`unrelate`, antes
|
|
770
|
+
* de tocar el backend (`assertRelationDeclared`, una sola función): el
|
|
771
|
+
* manager cortaba, pero `manager.driver()` y `reconcileRelations` entran por
|
|
772
|
+
* el driver y la escalada seguía abierta por ahí (panel `{trx}`, 🔴 2).
|
|
604
773
|
*/
|
|
605
774
|
export declare class RelationTypeUnknownError extends Exception {
|
|
606
775
|
static status: number;
|
|
@@ -609,8 +778,10 @@ export declare class RelationTypeUnknownError extends Exception {
|
|
|
609
778
|
/**
|
|
610
779
|
* **F-05, cara de la RELACIÓN.** El `object.type` está declarado, pero la
|
|
611
780
|
* `relation` no es una de las suyas en `defineRelationsConfig`. Mismo 422
|
|
612
|
-
* antes de tocar el driver
|
|
613
|
-
*
|
|
781
|
+
* antes de tocar el driver —y, desde L-0, también en el driver antes de tocar
|
|
782
|
+
* el backend—: una relación no declarada podría, en un futuro modelo, mapear a
|
|
783
|
+
* una relación propia de `facts` (hoy `document#assignee` en `openfga` salía
|
|
784
|
+
* como un 503 mal clasificado del servidor).
|
|
614
785
|
*/
|
|
615
786
|
export declare class RelationUnknownError extends Exception {
|
|
616
787
|
static status: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/build/src/errors.js
CHANGED
|
@@ -84,6 +84,84 @@ export class InvalidSlugError extends Exception {
|
|
|
84
84
|
export class AuthorizationConfigError extends Exception {
|
|
85
85
|
static status = 500;
|
|
86
86
|
static code = 'E_AUTHZ_CONFIG';
|
|
87
|
+
/**
|
|
88
|
+
* **`assertWrite` devolvió una promesa** (2.4.0-alpha.3 · D3, hallazgo H2).
|
|
89
|
+
* `assertWrite(ref): void` es SÍNCRONO y puro a propósito (R-13), pero
|
|
90
|
+
* TypeScript no lo defiende: `assertWrite: async (ref) => { throw … }`
|
|
91
|
+
* compila —una función que devuelve `Promise<void>` es asignable a `void`—,
|
|
92
|
+
* y hasta alpha.3 la promesa se descartaba y la ESCRITURA ENTRABA (un gate
|
|
93
|
+
* de policy que no rechaza nada, en silencio). Se cierra fail-closed: 500
|
|
94
|
+
* ANTES de tocar el driver, nombrando la causa y la receta. La letra la
|
|
95
|
+
* fija `tests/relations_events_docs.spec.ts` byte a byte.
|
|
96
|
+
*/
|
|
97
|
+
static asyncAssertWrite(operation) {
|
|
98
|
+
return new AuthorizationConfigError(`${operation}: assertWrite devolvió una promesa (thenable) y tiene que ser SÍNCRONO y puro (R-13): ` +
|
|
99
|
+
`el manager no la espera, así que un rechazo asíncrono no habría rechazado nada y la escritura ` +
|
|
100
|
+
`habría entrado (fail-open). No se ha tocado el driver. La policy que necesita actor, base de datos ` +
|
|
101
|
+
`o await va en el servicio del consumidor, ANTES de llamar a relate/unrelate; assertWrite solo ` +
|
|
102
|
+
`recibe la referencia de la tupla y lanza o vuelve.`);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* **`assertWrite` devolvió un VEREDICTO** (2.4.0-alpha.3, cierre del 🟠 3 /
|
|
106
|
+
* 🟡 4 del auditor): `assertWrite: (ref) => allowed.has(ref.object.type)`
|
|
107
|
+
* compila bajo `--strict` (cualquier retorno es asignable a `void`) y hasta
|
|
108
|
+
* el cierre el `false` se IGNORABA y la escritura entraba — el mismo
|
|
109
|
+
* fail-open que H2, y más frecuente que el `async`. `assertWrite` no
|
|
110
|
+
* devuelve veredictos: LANZA o no lanza. Todo retorno distinto de
|
|
111
|
+
* `undefined` es 500 ANTES del driver — también un `true` (un veredicto
|
|
112
|
+
* positivo es el mismo error de modelo: quien lo escribió cree que el
|
|
113
|
+
* `false` deniega) y también una FUNCIÓN con `.then` (el thenable que no
|
|
114
|
+
* es `typeof 'object'` y esquivaba la guarda de H2).
|
|
115
|
+
*/
|
|
116
|
+
static assertWriteReturned(operation, result) {
|
|
117
|
+
if (isThenable(result))
|
|
118
|
+
return AuthorizationConfigError.asyncAssertWrite(operation);
|
|
119
|
+
const shape = result === null ? 'null' : Array.isArray(result) ? 'array' : typeof result;
|
|
120
|
+
return new AuthorizationConfigError(`${operation}: assertWrite devolvió un valor (${shape}) y assertWrite no devuelve veredictos: LANZA ` +
|
|
121
|
+
`para rechazar o vuelve sin valor para permitir (R-13). Un 'false' devuelto no denegaba nada y la ` +
|
|
122
|
+
`escritura entraba (fail-open); un 'true' es el mismo error de modelo. No se ha tocado el driver. ` +
|
|
123
|
+
`La policy que necesita actor, base de datos o await va en el servicio del consumidor, ANTES de ` +
|
|
124
|
+
`llamar a relate/unrelate.`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** Un thenable, sea objeto o FUNCIÓN con `.then` (la forma que esquivaba `typeof result === 'object'`). */
|
|
128
|
+
export function isThenable(value) {
|
|
129
|
+
return (value !== null &&
|
|
130
|
+
(typeof value === 'object' || typeof value === 'function') &&
|
|
131
|
+
typeof value.then === 'function');
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* **Marca de ESCRITURA PARCIAL** (invariante 13, `2.4.0-alpha.3`, cierre del
|
|
135
|
+
* 🟡 6 del auditor). Una escritura del puerto que NO es una sola sentencia ni
|
|
136
|
+
* un solo `Write` —la purga de `openfga`, que recorre ortografías × tipos con
|
|
137
|
+
* varios `Read`+`deleteTuples`— puede fallar DESPUÉS de haber borrado parte:
|
|
138
|
+
* ese fallo no es «esa escritura no ocurrió» (que es lo que un 503 no-timeout
|
|
139
|
+
* significa para una escritura atómica) sino «puede haber ocurrido», lo mismo
|
|
140
|
+
* que un deadline vencido. El driver marca el error con `markPartialWrite`
|
|
141
|
+
* antes de propagarlo, y el manager (`#write`) notifica `onRelationWrite` con
|
|
142
|
+
* `indeterminate: true` ANTES de propagar, exactamente como con
|
|
143
|
+
* `AuthorizationBackendTimeoutError`. La marca es una propiedad
|
|
144
|
+
* (`partialWrite: true`) y no una clase: el error que se propaga conserva su
|
|
145
|
+
* clase y su `code` (503 `E_AUTHZ_BACKEND_UNAVAILABLE`, 500
|
|
146
|
+
* `E_AUTHZ_PURGE_INCOMPLETE`…) — lo que cambia es solo la auditoría. Un driver
|
|
147
|
+
* de terceros cuya purga sea multi-request tiene el mismo deber.
|
|
148
|
+
*/
|
|
149
|
+
export function markPartialWrite(error) {
|
|
150
|
+
try {
|
|
151
|
+
Object.defineProperty(error, 'partialWrite', { value: true, enumerable: false, configurable: true });
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Cierre-2 (⚪ 4 del re-ataque): un error CONGELADO (`Object.freeze`, un SDK
|
|
155
|
+
// o una capa intermedia) no admite la propiedad. Lanzar aquí sustituiría el
|
|
156
|
+
// 503/500 real por un `TypeError` sin `code` ni `status`, justo en el camino
|
|
157
|
+
// de una purga que ya borró: se propaga el ORIGINAL sin marca (se pierde el
|
|
158
|
+
// `indeterminate` de esa purga, no la clasificación del error).
|
|
159
|
+
}
|
|
160
|
+
return error;
|
|
161
|
+
}
|
|
162
|
+
/** ¿El error viene marcado como escritura parcial (`markPartialWrite`)? */
|
|
163
|
+
export function isPartialWrite(error) {
|
|
164
|
+
return error !== null && typeof error === 'object' && error.partialWrite === true;
|
|
87
165
|
}
|
|
88
166
|
/**
|
|
89
167
|
* Invariante interno del motor violado (una escritura sin scopes, un batchCheck
|
|
@@ -250,6 +328,26 @@ export class RoleIsNotAccessError extends Exception {
|
|
|
250
328
|
`appAccess({ permission: 'admin:access' }).`);
|
|
251
329
|
}
|
|
252
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* `requeueScopeChanges` se NIEGA (2.4.0-alpha.5 · R2b): devolver la entrada
|
|
333
|
+
* aparcada a la cola reaplicaría un cambio ANTERIOR a otro ya APLICADO sobre
|
|
334
|
+
* la misma clave de scope — el árbol del store quedaría en un orden que
|
|
335
|
+
* nunca existió (auditor 🔴 2, medido: el `moved` viejo tras el nuevo deja
|
|
336
|
+
* el padre VIEJO con un solo padre, y nada lo delata). 500 y no 422: la
|
|
337
|
+
* pregunta está bien formada, es el estado de la cola el que la prohíbe; y
|
|
338
|
+
* nunca se reencola «lo que se pueda»: es todo o nada. `conflicts` es el
|
|
339
|
+
* diff —cada aparcada y las aplicadas posteriores que revertiría—; el
|
|
340
|
+
* comando lo imprime y solo `--force` (en el comando ace) lo salta.
|
|
341
|
+
*/
|
|
342
|
+
export class ScopeRequeueRefusedError extends Exception {
|
|
343
|
+
static status = 500;
|
|
344
|
+
static code = 'E_AUTHZ_REQUEUE_REFUSED';
|
|
345
|
+
conflicts;
|
|
346
|
+
constructor(message, conflicts) {
|
|
347
|
+
super(message);
|
|
348
|
+
this.conflicts = conflicts;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
253
351
|
/**
|
|
254
352
|
* Colgar `child` de `parent` cerraría un ciclo (el padre desciende del hijo,
|
|
255
353
|
* o son el mismo). FGA no detecta ciclos de `parent`: los evalúa, y un grant
|
|
@@ -355,6 +453,25 @@ export class ScopeTooDeepError extends Exception {
|
|
|
355
453
|
static status = 500;
|
|
356
454
|
static code = 'E_AUTHZ_SCOPE_TOO_DEEP';
|
|
357
455
|
}
|
|
456
|
+
/**
|
|
457
|
+
* `scopes.attached`/`scopes.moved` dejarían al hijo a más de `scopes.maxDepth`
|
|
458
|
+
* saltos de `app` (2.4.0-alpha.5 · R0; opt-in por config). 422 y no 500: la
|
|
459
|
+
* pregunta está bien formada, es el árbol el que no cabe en el techo que el
|
|
460
|
+
* dueño declaró — y se dice ANTES de escribir o encolar. Distinto de
|
|
461
|
+
* `E_AUTHZ_SCOPE_TOO_DEEP` (500): aquel es `hierarchicalScopeResolver` que no
|
|
462
|
+
* puede TERMINAR una cadena ya existente; este es una escritura que se niega.
|
|
463
|
+
*/
|
|
464
|
+
export class ScopeDepthLimitError extends Exception {
|
|
465
|
+
static status = 422;
|
|
466
|
+
static code = 'E_AUTHZ_SCOPE_DEPTH_LIMIT';
|
|
467
|
+
constructor(message, details) {
|
|
468
|
+
super(message);
|
|
469
|
+
// NO enumerable (cierre alpha.8, 🟡 3 del auditor): `JSON.stringify(error)` —lo
|
|
470
|
+
// que un handler de errores genérico manda al tenant— no puede enseñar el
|
|
471
|
+
// backend ni el mando del servidor. Legible por `error.details` para el log.
|
|
472
|
+
Object.defineProperty(this, 'details', { value: details, enumerable: false, configurable: true, writable: false });
|
|
473
|
+
}
|
|
474
|
+
}
|
|
358
475
|
/**
|
|
359
476
|
* Una primitiva de 2.1 necesita un método OPCIONAL del puerto que el driver
|
|
360
477
|
* activo no implementa (2.1, B5): se nombra el método y se lanza. 500 porque
|
|
@@ -368,6 +485,58 @@ export class UnsupportedOperationError extends Exception {
|
|
|
368
485
|
super(`${primitive} necesita '${method}' y el driver '${driver}' no lo implementa: es un método opcional del ` +
|
|
369
486
|
`puerto (2.1) que este driver tiene que añadir para usar esta primitiva.` + (hint ? ` ${hint}` : ''));
|
|
370
487
|
}
|
|
488
|
+
/**
|
|
489
|
+
* **Puerta 1 de `{ transaction }`** (L-2, panel `{trx}` (C)): la operación
|
|
490
|
+
* pidió escribir en la transacción del consumidor y el driver activo no
|
|
491
|
+
* declara `transactionalWrites: true`. 500 y no 422 por precedente
|
|
492
|
+
* (`membersOf`, `purgeRole`): no es una pregunta mal formada, es un
|
|
493
|
+
* despliegue que no casa con lo que se le pidió. La letra lleva la salida.
|
|
494
|
+
*/
|
|
495
|
+
static transactional(operation, driver, port) {
|
|
496
|
+
const error = new UnsupportedOperationError('transactionalWrites', operation, driver);
|
|
497
|
+
error.message =
|
|
498
|
+
`${operation}: se pidió escribir en la transacción del consumidor ({ transaction }) y el driver '${driver}' ` +
|
|
499
|
+
`declara transactionalWrites: false (o no la declara): no puede inscribir la escritura en tu transacción ` +
|
|
500
|
+
`(«los dos o ninguno» sería falso; en openfga una tupla no entra en una transacción SQL). No se ha tocado el ` +
|
|
501
|
+
`driver. Salidas: usa el driver 'database' para ${port === 'roles' ? 'los hechos' : 'las relaciones'}, o ` +
|
|
502
|
+
`declara requireTransactionalWrites: true en config/authorization.ts` +
|
|
503
|
+
`${port === 'relations' ? ' (o en relations.requireTransactionalWrites)' : ''} para que esto falle al ARRANCAR ` +
|
|
504
|
+
`en vez de en esta ruta. Sin { transaction } la misma llamada entra.`;
|
|
505
|
+
return error;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* **El mismo rechazo, dicho por el DRIVER `openfga`** (L-5, defensa en
|
|
509
|
+
* profundidad como F-05 en L-0): `manager.driver()` es la salida documentada
|
|
510
|
+
* de las barreras y con `{ transaction }` entraría por aquí saltándose la
|
|
511
|
+
* puerta 1; el driver no puede intentar un `Write` que finja ir en la
|
|
512
|
+
* transacción del consumidor. Misma clase, mismo `code`, misma letra; la
|
|
513
|
+
* frase final dice que no hay salida por el driver — la alternativa que SÍ
|
|
514
|
+
* existe para el ÁRBOL es la outbox de scopes (encola en tu transacción);
|
|
515
|
+
* para HECHOS y relaciones no hay outbox (descartada por el panel `{trx}`:
|
|
516
|
+
* fail-open medido).
|
|
517
|
+
*/
|
|
518
|
+
static transactionalDriver(operation, driver, port) {
|
|
519
|
+
const error = UnsupportedOperationError.transactional(operation, driver, port);
|
|
520
|
+
error.message +=
|
|
521
|
+
` Rechazado por el DRIVER '${driver}' (no por el manager): entrar por manager.driver() no es una salida — ` +
|
|
522
|
+
`una tupla del store no puede inscribirse en tu transacción ni fingirlo. Para el ÁRBOL de scopes la salida ` +
|
|
523
|
+
`que existe es scopes.outbox (encola en tu transacción y authz:scopes:relay aplica); para hechos y relaciones no hay outbox.`;
|
|
524
|
+
return error;
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* La API de delegación no admite `{ transaction }` (L-2, §1.4 del veredicto):
|
|
528
|
+
* escribe el catálogo por `withAuthzCatalogWrite`, que ES el serializador
|
|
529
|
+
* entre procesos (invariante 14); moverla al commit del consumidor lo anula.
|
|
530
|
+
*/
|
|
531
|
+
static transactionalCatalog(operation) {
|
|
532
|
+
const error = new UnsupportedOperationError('transactionalWrites', operation, 'catalog');
|
|
533
|
+
error.message =
|
|
534
|
+
`${operation}: { transaction } no se admite en la API de delegación: el catálogo se escribe por ` +
|
|
535
|
+
`withAuthzCatalogWrite (cerrojo de la fila de versión + bump como última sentencia, invariante 14), que es el ` +
|
|
536
|
+
`serializador del catálogo entre procesos; inscribirlo en tu transacción lo anularía. Solo grant/revoke/deny/` +
|
|
537
|
+
`removeDeny (hechos) y relate/unrelate/purge* (relaciones) admiten { transaction }.`;
|
|
538
|
+
return error;
|
|
539
|
+
}
|
|
371
540
|
}
|
|
372
541
|
/**
|
|
373
542
|
* Una vista de `forRequest()` se usó para LEER después de `maxAgeMs` (2D ·
|
|
@@ -551,6 +720,47 @@ export class MassReconcileRefusedError extends Exception {
|
|
|
551
720
|
static status = 500;
|
|
552
721
|
static code = 'E_AUTHZ_MASS_RECONCILE_REFUSED';
|
|
553
722
|
}
|
|
723
|
+
/**
|
|
724
|
+
* Una operación iba a tomar el freeze y encontró la ventana del OPERADOR
|
|
725
|
+
* CADUCADA (2.4.0-alpha.10, S2 de la auditoría de sistema): motivo puesto,
|
|
726
|
+
* holder `operator:` y `untilMs` en el pasado. Hasta alpha.9 `acquireFreeze`
|
|
727
|
+
* pisaba esa fila en silencio —un lease vencido no bloquea la toma—, la pasada
|
|
728
|
+
* se certificaba con SU ventana de 15 s y al soltarla dejaba la fila a `NULL`:
|
|
729
|
+
* el último rastro de que la flota volvió a escribir a mitad del cutover lo
|
|
730
|
+
* borraba una pasada ajena, y `authz:unfreeze` decía «nada que levantar». 503
|
|
731
|
+
* antes de tomar nada; la salida es reconocerla con `authz:unfreeze` (que dice
|
|
732
|
+
* cuándo venció y limpia la fila) y reabrir la ventana con `authz:freeze`. La
|
|
733
|
+
* exclusión va DENTRO del `UPDATE` de `acquireFreezeOutcome` (cierre del
|
|
734
|
+
* auditor · R2): comprobar fuera y tomar después era un TOCTOU.
|
|
735
|
+
*/
|
|
736
|
+
export class OperatorWindowExpiredError extends Exception {
|
|
737
|
+
static status = 503;
|
|
738
|
+
static code = 'E_AUTHZ_OPERATOR_WINDOW_EXPIRED';
|
|
739
|
+
}
|
|
740
|
+
/**
|
|
741
|
+
* `authz:reconcile --to=<driver ACTIVO> --from=<otro>`: la DIRECCIÓN RANCIA
|
|
742
|
+
* (2.4.0-alpha.10, 🔴 4 del sexto informe de COGNITIV; decisión del dueño del
|
|
743
|
+
* 2026-09-13 (4)).
|
|
744
|
+
*
|
|
745
|
+
* La regla 3b-5 dice que con `--from` manda el operador — **salvo hacia el
|
|
746
|
+
* driver activo**. Si el motor ya sirve desde `to`, sus hechos se escriben
|
|
747
|
+
* ahí desde el cutover y el origen dejó de verlos: con `openfga` activo,
|
|
748
|
+
* `--from=database` lee `authz_*` congeladas y re-escribe en el store vivo los
|
|
749
|
+
* roles revocados después, con o sin `--prune` (y el seguro de borrado masivo
|
|
750
|
+
* no salta: el origen no está vacío). 500 en el MANAGER —la API es la puerta,
|
|
751
|
+
* no el comando— antes de construir el origen, leer nada o congelar;
|
|
752
|
+
* `allowStaleSource: true` (`--allow-stale-source`) es la decisión humana y
|
|
753
|
+
* `dryRun` no lanza: lo marca en `report.staleSource`. Simétrico al seguro de
|
|
754
|
+
* `E_AUTHZ_MASS_PURGE_REFUSED`. El gemelo de relaciones lo lanza
|
|
755
|
+
* `runRelationsReconcile` (la única vía pública desde el cierre del auditor),
|
|
756
|
+
* juzgando el driver RESUELTO por su factory: un alias del activo también se
|
|
757
|
+
* niega. Límite declarado: «activo» es el `config.default` del PROCESO que corre
|
|
758
|
+
* la pasada (sello durable del driver activo: roadmap 2.5).
|
|
759
|
+
*/
|
|
760
|
+
export class StaleSourceRefusedError extends Exception {
|
|
761
|
+
static status = 500;
|
|
762
|
+
static code = 'E_AUTHZ_STALE_SOURCE_REFUSED';
|
|
763
|
+
}
|
|
554
764
|
/**
|
|
555
765
|
* **El volcado del destino no cabe en la cota declarada** (3b-3b · B5).
|
|
556
766
|
*
|
|
@@ -599,7 +809,11 @@ export class ScopeDriftUnguardedError extends Exception {
|
|
|
599
809
|
* {type:'role_binding', id:<roleUuid>}, S)` escribía la tupla del binding y
|
|
600
810
|
* `check(evil, can_<P>, S)` devolvía `true` (escalada a `roles.authorize`,
|
|
601
811
|
* medida por el auditor). Junto con ⚪4 (un tipo reservado no se puede
|
|
602
|
-
* declarar) la colisión deja de existir en vez de vigilarse.
|
|
812
|
+
* declarar) la colisión deja de existir en vez de vigilarse. **Desde L-0 el
|
|
813
|
+
* mismo 422 lo lanzan también los dos drivers** en `relate`/`unrelate`, antes
|
|
814
|
+
* de tocar el backend (`assertRelationDeclared`, una sola función): el
|
|
815
|
+
* manager cortaba, pero `manager.driver()` y `reconcileRelations` entran por
|
|
816
|
+
* el driver y la escalada seguía abierta por ahí (panel `{trx}`, 🔴 2).
|
|
603
817
|
*/
|
|
604
818
|
export class RelationTypeUnknownError extends Exception {
|
|
605
819
|
static status = 422;
|
|
@@ -608,8 +822,10 @@ export class RelationTypeUnknownError extends Exception {
|
|
|
608
822
|
/**
|
|
609
823
|
* **F-05, cara de la RELACIÓN.** El `object.type` está declarado, pero la
|
|
610
824
|
* `relation` no es una de las suyas en `defineRelationsConfig`. Mismo 422
|
|
611
|
-
* antes de tocar el driver
|
|
612
|
-
*
|
|
825
|
+
* antes de tocar el driver —y, desde L-0, también en el driver antes de tocar
|
|
826
|
+
* el backend—: una relación no declarada podría, en un futuro modelo, mapear a
|
|
827
|
+
* una relación propia de `facts` (hoy `document#assignee` en `openfga` salía
|
|
828
|
+
* como un 503 mal clasificado del servidor).
|
|
613
829
|
*/
|
|
614
830
|
export class RelationUnknownError extends Exception {
|
|
615
831
|
static status = 422;
|
package/build/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|