@jantstack/adonis-authz 2.5.0-alpha.2 → 2.5.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.
Files changed (80) hide show
  1. package/README.md +343 -7
  2. package/build/commands/authz_relations_reconcile.d.ts +6 -0
  3. package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
  4. package/build/commands/authz_relations_reconcile.js +113 -3
  5. package/build/commands/authz_relations_reconcile.js.map +1 -1
  6. package/build/commands/openfga_provision.d.ts +62 -0
  7. package/build/commands/openfga_provision.d.ts.map +1 -1
  8. package/build/commands/openfga_provision.js +193 -1
  9. package/build/commands/openfga_provision.js.map +1 -1
  10. package/build/index.d.ts +6 -6
  11. package/build/index.d.ts.map +1 -1
  12. package/build/index.js +3 -3
  13. package/build/index.js.map +1 -1
  14. package/build/src/drivers/database_relations_driver.d.ts +36 -1
  15. package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
  16. package/build/src/drivers/database_relations_driver.js +211 -45
  17. package/build/src/drivers/database_relations_driver.js.map +1 -1
  18. package/build/src/drivers/openfga_driver.d.ts.map +1 -1
  19. package/build/src/drivers/openfga_driver.js +102 -36
  20. package/build/src/drivers/openfga_driver.js.map +1 -1
  21. package/build/src/drivers/openfga_facts.d.ts +21 -0
  22. package/build/src/drivers/openfga_facts.d.ts.map +1 -1
  23. package/build/src/drivers/openfga_facts.js +74 -8
  24. package/build/src/drivers/openfga_facts.js.map +1 -1
  25. package/build/src/drivers/openfga_relations_driver.d.ts +74 -1
  26. package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
  27. package/build/src/drivers/openfga_relations_driver.js +599 -29
  28. package/build/src/drivers/openfga_relations_driver.js.map +1 -1
  29. package/build/src/errors.d.ts +112 -0
  30. package/build/src/errors.d.ts.map +1 -1
  31. package/build/src/errors.js +130 -0
  32. package/build/src/errors.js.map +1 -1
  33. package/build/src/manager.d.ts.map +1 -1
  34. package/build/src/manager.js +9 -4
  35. package/build/src/manager.js.map +1 -1
  36. package/build/src/openfga.d.ts +1 -1
  37. package/build/src/openfga.d.ts.map +1 -1
  38. package/build/src/openfga.js +1 -1
  39. package/build/src/openfga.js.map +1 -1
  40. package/build/src/relations/check_many.d.ts +1 -1
  41. package/build/src/relations/check_many.d.ts.map +1 -1
  42. package/build/src/relations/check_many.js +6 -4
  43. package/build/src/relations/check_many.js.map +1 -1
  44. package/build/src/relations/define_relations_config.d.ts +115 -2
  45. package/build/src/relations/define_relations_config.d.ts.map +1 -1
  46. package/build/src/relations/define_relations_config.js +197 -3
  47. package/build/src/relations/define_relations_config.js.map +1 -1
  48. package/build/src/relations/manager.d.ts +33 -2
  49. package/build/src/relations/manager.d.ts.map +1 -1
  50. package/build/src/relations/manager.js +120 -3
  51. package/build/src/relations/manager.js.map +1 -1
  52. package/build/src/relations/reconcile.d.ts +219 -1
  53. package/build/src/relations/reconcile.d.ts.map +1 -1
  54. package/build/src/relations/reconcile.js +745 -155
  55. package/build/src/relations/reconcile.js.map +1 -1
  56. package/build/src/relations/tuple_order.d.ts +126 -0
  57. package/build/src/relations/tuple_order.d.ts.map +1 -0
  58. package/build/src/relations/tuple_order.js +598 -0
  59. package/build/src/relations/tuple_order.js.map +1 -0
  60. package/build/src/shared/backend_guard.d.ts +8 -0
  61. package/build/src/shared/backend_guard.d.ts.map +1 -1
  62. package/build/src/shared/backend_guard.js +15 -0
  63. package/build/src/shared/backend_guard.js.map +1 -1
  64. package/build/src/testing/main.d.ts +1 -1
  65. package/build/src/testing/main.d.ts.map +1 -1
  66. package/build/src/testing/main.js +1 -1
  67. package/build/src/testing/main.js.map +1 -1
  68. package/build/src/testing/relations_contract.d.ts +18 -0
  69. package/build/src/testing/relations_contract.d.ts.map +1 -1
  70. package/build/src/testing/relations_contract.js +824 -44
  71. package/build/src/testing/relations_contract.js.map +1 -1
  72. package/build/src/testing/relations_reconcile_contract.d.ts +9 -0
  73. package/build/src/testing/relations_reconcile_contract.d.ts.map +1 -1
  74. package/build/src/testing/relations_reconcile_contract.js +207 -0
  75. package/build/src/testing/relations_reconcile_contract.js.map +1 -1
  76. package/build/src/types.d.ts +83 -3
  77. package/build/src/types.d.ts.map +1 -1
  78. package/build/src/types.js +2 -0
  79. package/build/src/types.js.map +1 -1
  80. package/package.json +1 -1
@@ -25,18 +25,24 @@
25
25
  */
26
26
  import db from '@adonisjs/lucid/services/db';
27
27
  import { v7 as uuidv7 } from 'uuid';
28
- import { AuthorizationConfigError, InvalidIdentityError, UnsupportedDialectError, UnsupportedOperationError, WriteConflictError, } from '../errors.js';
28
+ import { AuthorizationBackendTimeoutError, AuthorizationConfigError, InvalidIdentityError, MembersOfDenyLimitError, UnsupportedDialectError, UnsupportedOperationError, WriteConflictError, } from '../errors.js';
29
29
  import { assertPartition, assertSubject, assertExpiresAt, partitionKey } from '../identity.js';
30
30
  import { relationPartitionTrigger, relationPartitionTriggerDrops } from '../relation_partition_trigger.js';
31
31
  import { isClock, systemClock } from '../clock.js';
32
32
  import { resolveGrantExpiry, sameInstant } from '../expiry.js';
33
33
  import { sqlExpiryCodec } from '../shared/sql_expiry.js';
34
- import { guardSql, isDeadlock, isUniqueViolation } from '../shared/backend_guard.js';
34
+ import { guardSql, isDeadlock, isUniqueViolation, withDeadline } from '../shared/backend_guard.js';
35
35
  import { assertCallerTransaction } from '../shared/transaction_guard.js';
36
36
  import { isRelUserset } from '../types.js';
37
- import { assertRelationDeclared, assertObjectTypeDeclared, assertUsersetSubject } from '../relations/define_relations_config.js';
37
+ import { assertRelationDeclared, assertObjectTypeDeclared, assertUsersetSubject, assertRelationDenyable, assertDenySubject, assertDenyNoExpiry, cutPathAllows, decideFrom, deniableAbove, deniedRelationOf, storedRelationKind, denyPhaseOf, relationsDown, RELATION_DENY_PREFIX, } from '../relations/define_relations_config.js';
38
38
  import { assertCheckManyObjects, distinctObjects, expandByPosition } from '../relations/check_many.js';
39
39
  const DEFAULT_TIMEOUT_MS = 5_000;
40
+ /**
41
+ * **Cota de candidatos de `membersOf` cuando el objeto tiene un deny vigente** (lote D · cierre 1 de D1, 🟡 4): con deny
42
+ * cada candidato se juzga con un `check` (una CTE por candidato). Pasada ⇒ 500 `E_AUTHZ_MEMBERS_DENY_LIMIT`, nunca una
43
+ * lista parcial. En «Limits» del README, atada a esta constante (`scope_depth.spec`).
44
+ */
45
+ export const RELATIONS_MEMBERS_DENY_CHECK_MAX = 1_000;
40
46
  const RELATIONS_TABLE = 'authz_relations';
41
47
  /** Longitud máxima del id de un objeto/holder de relación (columna `varchar(64)`). */
42
48
  const RELATION_ID_MAX = 64;
@@ -125,6 +131,12 @@ export class DatabaseRelationsDriver {
125
131
  listObjectsTruncation: false,
126
132
  injectableClock: true,
127
133
  transactionalWrites: this.#transactionalWrites,
134
+ // Lote D · D1: el deny vive en la MISMA tabla (`relation = 'denied_<rel>'`) y TODA lectura lo honra SIEMPRE
135
+ // (D8: también en un tipo sin opt-in —una fila deny es un hecho—).
136
+ relationDenies: true,
137
+ // Cierre 2 de D2 · 🟠 N1: renovar (otra caducidad) es delete + insert en UNA transacción (`#upsert`): ningún
138
+ // instante sin la tupla, así que una membresía que transporta un deny se renueva sin ventana.
139
+ atomicRenewal: true,
128
140
  });
129
141
  }
130
142
  /**
@@ -293,21 +305,30 @@ export class DatabaseRelationsDriver {
293
305
  b.where('subject_relation', relation);
294
306
  }
295
307
  /* ── Expansión de includes (un nivel, hacia ABAJO desde la relación) ──── */
308
+ /** `down*(R)` — desde el lote D, la función ÚNICA de la config (`relationsDown`), la misma que el doble y el oráculo. */
296
309
  #expandDown(objectType, relation) {
297
- const out = new Set([relation]);
298
- const type = this.#config.objectTypes.find((t) => t.type === objectType);
299
- const queue = [relation];
300
- while (queue.length) {
301
- const current = queue.pop();
302
- const def = type?.relations.find((r) => r.name === current);
303
- for (const inc of def?.includes ?? []) {
304
- if (!out.has(inc)) {
305
- out.add(inc);
306
- queue.push(inc);
307
- }
308
- }
310
+ return relationsDown(this.#config, objectType, relation);
311
+ }
312
+ /**
313
+ * **Lo que una lectura con deny tiene que traer para `R`** (lote D · D5/D8): los grants de `down*(R)` y los denies de
314
+ * `up*(down*(R))` (almacenados como `denied_<rel>`). SIEMPRE, también en un tipo sin opt-in (D8: una fila deny es un
315
+ * hecho; si el tipo retiró el opt-in con denies vivos, `database` sigue denegando). Sin filas `denied_*` la respuesta
316
+ * es la de 2.4.0-alpha.10 (el corte no tiene nada que cortar).
317
+ */
318
+ #readRelations(objectType, relation) {
319
+ return [...this.#expandDown(objectType, relation), ...deniableAbove(this.#config, objectType, relation).map(deniedRelationOf)];
320
+ }
321
+ /** Reparte las relaciones leídas de un objeto en grants y denies (nombre PÚBLICO). */
322
+ #split(relations) {
323
+ const allowed = new Set();
324
+ const denied = new Set();
325
+ for (const r of relations) {
326
+ if (r.startsWith(RELATION_DENY_PREFIX))
327
+ denied.add(r.slice(RELATION_DENY_PREFIX.length));
328
+ else
329
+ allowed.add(r);
309
330
  }
310
- return [...out];
331
+ return { allowed, denied };
311
332
  }
312
333
  /* ── Escrituras ───────────────────────────────────────────────────────── */
313
334
  async relate(subject, relation, object, partition, options) {
@@ -321,14 +342,40 @@ export class DatabaseRelationsDriver {
321
342
  this.#assertId(`la relación de '${object.type}'`, relation, RELATION_ID_MAX);
322
343
  // R-15 (defensa en profundidad; el manager ya lo validó): los tres estados.
323
344
  assertExpiresAt(options?.expiresAt);
324
- const requested = options?.expiresAt;
345
+ await this.#upsert('relate', subject, relation, object, partition, options?.expiresAt, options);
346
+ }
347
+ /**
348
+ * **`deny` = la tupla `denied_<rel>`, por el MISMO camino idempotente que `relate`** (lote D · D1): F-05 sobre el
349
+ * nombre PÚBLICO, la puerta de escritura del opt-in (fase `'write'`, D10), ni `group` ni `*`, y SIN caducidad (D3:
350
+ * `expiresAt` ⇒ 422; un deny escrito a mano con caducidad se rehace permanente). Por la transacción del llamante si
351
+ * llega (L-4, como `relate`).
352
+ */
353
+ async deny(subject, relation, object, partition, options) {
354
+ assertRelationDeclared(this.#config, object, relation);
355
+ assertRelationDenyable(this.#config, object, relation);
356
+ assertDenyNoExpiry(options);
357
+ assertPartition(partition);
358
+ this.#assertObject(object);
359
+ assertDenySubject(subject);
360
+ await this.#upsert('deny', subject, deniedRelationOf(relation), object, partition, null, options);
361
+ }
362
+ /** `removeDeny`: borra la tupla `denied_<rel>`. Sobre CUALQUIER tipo declarado (D8/R2-4 b). No-op si no está. */
363
+ async removeDeny(subject, relation, object, partition, options) {
364
+ assertRelationDeclared(this.#config, object, relation);
365
+ assertDenyNoExpiry(options);
366
+ assertPartition(partition);
367
+ this.#assertObject(object);
368
+ await this.#deleteTuple('removeDeny', subject, deniedRelationOf(relation), object, partition, options);
369
+ }
370
+ /** El check-then-delete-insert idempotente de `relate`/`deny` sobre la relación ALMACENADA. */
371
+ async #upsert(operation, subject, relation, object, partition, requested, options) {
325
372
  const partitionKey = this.#keyOf(partition);
326
373
  const s = this.#subjectColumns(subject, partitionKey);
327
374
  const codec = this.#expiry;
328
375
  const now = this.#now();
329
376
  // L-4: por la transacción del llamante si llegó (`#writer`, juzgada AQUÍ,
330
377
  // después de F-05 y la gramática y antes de la primera sentencia).
331
- const { client, external } = this.#writer('relate', options);
378
+ const { client, external } = this.#writer(operation, options);
332
379
  // El check-then-delete-insert idempotente. Con transacción EXTERNA corre
333
380
  // tal cual sobre ella (el trigger de partición dispara en ESE INSERT,
334
381
  // dentro de la trx del consumidor; NUNCA se abre una interna: la fila
@@ -336,7 +383,7 @@ export class DatabaseRelationsDriver {
336
383
  // una transacción INTERNA de la conexión del driver (la atomicidad
337
384
  // trigger+insert de 4-3). Cada sentencia lleva su deadline (`#sql`).
338
385
  const write = async (trx) => {
339
- const existing = await this.#sql('relate.select', () => trx
386
+ const existing = await this.#sql(`${operation}.select`, () => trx
340
387
  .from(RELATIONS_TABLE)
341
388
  .where('partition_key', partitionKey)
342
389
  .where('object_type', object.type)
@@ -360,9 +407,9 @@ export class DatabaseRelationsDriver {
360
407
  // BORRAR la fila e INSERTAR otra —nunca un UPDATE—; la fila nueva
361
408
  // tiene otro `uuid`, que es lo que lo hace observable. Dentro de la
362
409
  // trx del llamante, el rollback devuelve la fila (y la caducidad) VIEJA.
363
- await this.#sql('relate.delete', () => trx.from(RELATIONS_TABLE).where('uuid', current.uuid).delete());
410
+ await this.#sql(`${operation}.delete`, () => trx.from(RELATIONS_TABLE).where('uuid', current.uuid).delete());
364
411
  }
365
- await this.#sql('relate.insert', () => trx.table(RELATIONS_TABLE).insert({
412
+ await this.#sql(`${operation}.insert`, () => trx.table(RELATIONS_TABLE).insert({
366
413
  uuid: uuidv7(),
367
414
  partition_key: partitionKey,
368
415
  object_type: object.type,
@@ -383,11 +430,11 @@ export class DatabaseRelationsDriver {
383
430
  await write(client);
384
431
  }
385
432
  catch (error) {
386
- this.#poisoned('relate', error);
433
+ this.#poisoned(operation, error);
387
434
  }
388
435
  return;
389
436
  }
390
- await this.#sql('relate', () => client.transaction(write));
437
+ await this.#sql(operation, () => client.transaction(write));
391
438
  }
392
439
  async unrelate(subject, relation, object, partition, options) {
393
440
  // L-0 · F-05 también al RETIRAR (paridad con `openfga`).
@@ -395,11 +442,15 @@ export class DatabaseRelationsDriver {
395
442
  assertPartition(partition);
396
443
  this.#assertObject(object);
397
444
  this.#assertId(`la relación de '${object.type}'`, relation, RELATION_ID_MAX);
445
+ await this.#deleteTuple('unrelate', subject, relation, object, partition, options);
446
+ }
447
+ /** El DELETE de UNA tupla (relación ALMACENADA): `unrelate` y `removeDeny`. Un `unrelate` nunca toca `denied_*` (D-04). */
448
+ async #deleteTuple(operation, subject, relation, object, partition, options) {
398
449
  const partitionKey = this.#keyOf(partition);
399
450
  const s = this.#subjectColumns(subject, partitionKey);
400
- const { client, external } = this.#writer('unrelate', options);
451
+ const { client, external } = this.#writer(operation, options);
401
452
  try {
402
- await this.#sql('unrelate', () => client
453
+ await this.#sql(operation, () => client
403
454
  .from(RELATIONS_TABLE)
404
455
  .where('partition_key', partitionKey)
405
456
  .where('object_type', object.type)
@@ -412,7 +463,7 @@ export class DatabaseRelationsDriver {
412
463
  }
413
464
  catch (error) {
414
465
  if (external)
415
- this.#poisoned('unrelate', error);
466
+ this.#poisoned(operation, error);
416
467
  throw error;
417
468
  }
418
469
  }
@@ -433,21 +484,25 @@ export class DatabaseRelationsDriver {
433
484
  this.#assertObject(object);
434
485
  const partitionKey = this.#keyOf(partition);
435
486
  const s = this.#subjectColumns(subject, partitionKey);
436
- const relations = this.#expandDown(object.type, relation);
487
+ // Lote D · D5: los grants de `down*(R)` Y los denies de `up*(down*(R))`, en UNA consulta sobre la misma CTE
488
+ // `principal` (el deny también viaja por `group#member`, anidado, y una membresía caducada no lo transporta);
489
+ // el CORTE se decide en `cutPathAllows`, la función ÚNICA de la config.
490
+ const relations = this.#readRelations(object.type, relation);
437
491
  const meta = this.#dialectMeta();
438
492
  const q = (name) => `${meta.quote}${name}${meta.quote}`;
439
493
  const at = this.#expiry.bind(this.#now());
440
494
  const { cte, bindings: cteBindings } = this.#principalCte(meta, q, s, partitionKey, at);
441
495
  const relPlaceholders = relations.map(() => '?').join(', ');
442
496
  const sql = cte +
443
- ` SELECT ${meta.hint}1 FROM ${q(RELATIONS_TABLE)} r ` +
497
+ ` SELECT ${meta.hint}DISTINCT r.${q('relation')} AS ${q('relation')} FROM ${q(RELATIONS_TABLE)} r ` +
444
498
  `JOIN principal p ON r.${q('subject_type')} = p.p_type AND r.${q('subject_uuid')} = p.p_uuid ` +
445
499
  `AND COALESCE(r.${q('subject_relation')}, '') = p.p_rel ` +
446
500
  `WHERE r.${q('partition_key')} = ? AND r.${q('object_type')} = ? AND r.${q('object_uuid')} = ? ` +
447
- `AND r.${q('relation')} IN (${relPlaceholders}) AND ${this.#activeSql(q, 'r')} LIMIT 1`;
501
+ `AND r.${q('relation')} IN (${relPlaceholders}) AND ${this.#activeSql(q, 'r')}`;
448
502
  const bindings = [...cteBindings, partitionKey, object.type, object.id, ...relations, at];
449
503
  const rows = rowsOf(await this.#raw('check', sql, bindings));
450
- return rows.length > 0;
504
+ const { allowed, denied } = this.#split(rows.map((row) => String(row.relation)));
505
+ return cutPathAllows(this.#config, object.type, relation, allowed, denied);
451
506
  }
452
507
  /**
453
508
  * **`checkMany` = UNA consulta** (plan 2.5 · lote A, P4-8): la MISMA CTE
@@ -460,7 +515,35 @@ export class DatabaseRelationsDriver {
460
515
  * de la consulta (defensa en profundidad: el manager ya lo hizo).
461
516
  */
462
517
  async checkMany(subject, relation, objects, partition) {
463
- assertCheckManyObjects(objects);
518
+ const { distinct, index, facts } = await this.#readMany('checkMany', subject, relation, objects, partition);
519
+ const answers = distinct.map((object) => {
520
+ const { allowed, denied } = this.#split(facts.get(`${object.type}:${object.id}`) ?? []);
521
+ return cutPathAllows(this.#config, object.type, relation, allowed, denied);
522
+ });
523
+ return expandByPosition(index, answers);
524
+ }
525
+ /**
526
+ * **`decideMany` = la consulta de `checkMany`** (lote D · D9): los grants de `down*(R)` y los denies de
527
+ * `up*(down*(R))` de cada objeto distinto, con UN `now` y en UNA consulta, y la regla AMPLIA de `decideFrom` (la
528
+ * misma función que el doble y `openfga` cuando alinea su `batchCheck`). Tope, `[]` y F-05 por ítem como `checkMany`.
529
+ */
530
+ async decideMany(subject, relation, objects, partition) {
531
+ const { distinct, index, facts } = await this.#readMany('decideMany', subject, relation, objects, partition);
532
+ const answers = distinct.map((object) => {
533
+ const { allowed, denied } = this.#split(facts.get(`${object.type}:${object.id}`) ?? []);
534
+ return decideFrom(this.#config, object.type, relation, allowed, denied);
535
+ });
536
+ return index.map((at) => answers[at]);
537
+ }
538
+ /**
539
+ * **`checkMany`/`decideMany` = UNA consulta** (plan 2.5 · lote A, P4-8; lote D): la MISMA CTE `principal` de
540
+ * `check` (el sujeto y sus grupos, transitivo, solo vigentes) y un `SELECT DISTINCT object_type, object_uuid,
541
+ * relation` sobre los hechos de la partición que casan con CUALQUIER objeto distinto del lote —agrupados por TIPO,
542
+ * porque los `includes` se expanden por tipo— con grants Y denies (`#readRelations`), con UN solo `now` para todo
543
+ * el lote. F-05 y la gramática del id, POR ÍTEM, antes de la consulta (defensa en profundidad).
544
+ */
545
+ async #readMany(operation, subject, relation, objects, partition) {
546
+ assertCheckManyObjects(objects, operation);
464
547
  for (const object of objects) {
465
548
  assertRelationDeclared(this.#config, object, relation);
466
549
  this.#assertObject(object);
@@ -473,7 +556,7 @@ export class DatabaseRelationsDriver {
473
556
  const q = (name) => `${meta.quote}${name}${meta.quote}`;
474
557
  const at = this.#expiry.bind(this.#now());
475
558
  const { cte, bindings: cteBindings } = this.#principalCte(meta, q, s, partitionKey, at);
476
- // Un grupo por TIPO de objeto: `(object_type = ? AND object_uuid IN (…) AND relation IN (<expandDown(tipo)>))`.
559
+ // Un grupo por TIPO de objeto: `(object_type = ? AND object_uuid IN (…) AND relation IN (<grants y denies del tipo>))`.
477
560
  const byType = new Map();
478
561
  for (const object of distinct) {
479
562
  const ids = byType.get(object.type) ?? [];
@@ -483,7 +566,7 @@ export class DatabaseRelationsDriver {
483
566
  const groups = [];
484
567
  const groupBindings = [];
485
568
  for (const [type, ids] of byType) {
486
- const relations = this.#expandDown(type, relation);
569
+ const relations = this.#readRelations(type, relation);
487
570
  groups.push(`(r.${q('object_type')} = ? AND r.${q('object_uuid')} IN (${ids.map(() => '?').join(', ')}) ` +
488
571
  `AND r.${q('relation')} IN (${relations.map(() => '?').join(', ')}))`);
489
572
  groupBindings.push(type, ...ids, ...relations);
@@ -492,16 +575,22 @@ export class DatabaseRelationsDriver {
492
575
  // ⚪ A8 (auditor del lote A): el hint de MySQL va ANTES de DISTINCT (como en
493
576
  // `listObjects`); detrás, el optimizador lo ignora y a > 1000 niveles de
494
577
  // anidación `checkMany` era `ERROR 3636` (503) donde `check` respondía.
495
- ` SELECT ${meta.hint}DISTINCT r.${q('object_type')} AS object_type, r.${q('object_uuid')} AS object_uuid ` +
578
+ ` SELECT ${meta.hint}DISTINCT r.${q('object_type')} AS object_type, r.${q('object_uuid')} AS object_uuid, ` +
579
+ `r.${q('relation')} AS relation ` +
496
580
  `FROM ${q(RELATIONS_TABLE)} r ` +
497
581
  `JOIN principal p ON r.${q('subject_type')} = p.p_type AND r.${q('subject_uuid')} = p.p_uuid ` +
498
582
  `AND COALESCE(r.${q('subject_relation')}, '') = p.p_rel ` +
499
583
  `WHERE r.${q('partition_key')} = ? AND (${groups.join(' OR ')}) AND ${this.#activeSql(q, 'r')}`;
500
584
  const bindings = [...cteBindings, partitionKey, ...groupBindings, at];
501
- const rows = rowsOf(await this.#raw('checkMany', sql, bindings));
502
- const granted = new Set(rows.map((row) => `${row.object_type}:${row.object_uuid}`));
503
- const answers = distinct.map((object) => granted.has(`${object.type}:${object.id}`));
504
- return expandByPosition(index, answers);
585
+ const rows = rowsOf(await this.#raw(operation, sql, bindings));
586
+ const facts = new Map();
587
+ for (const row of rows) {
588
+ const key = `${row.object_type}:${row.object_uuid}`;
589
+ const list = facts.get(key) ?? [];
590
+ list.push(String(row.relation));
591
+ facts.set(key, list);
592
+ }
593
+ return { distinct, index, facts };
505
594
  }
506
595
  async listObjects(subject, relation, objectType, partition, _page) {
507
596
  assertRelationDeclared(this.#config, { type: objectType }, relation);
@@ -509,22 +598,35 @@ export class DatabaseRelationsDriver {
509
598
  this.#assertId('el tipo de objeto', objectType, RELATION_ID_MAX);
510
599
  const partitionKey = this.#keyOf(partition);
511
600
  const s = this.#subjectColumns(subject, partitionKey);
512
- const relations = this.#expandDown(objectType, relation);
601
+ // Lote D · D-15: `listObjects` RESTA (la misma regla de corte que `check`, objeto a objeto).
602
+ const relations = this.#readRelations(objectType, relation);
513
603
  const meta = this.#dialectMeta();
514
604
  const q = (name) => `${meta.quote}${name}${meta.quote}`;
515
605
  const at = this.#expiry.bind(this.#now());
516
606
  const { cte, bindings: cteBindings } = this.#principalCte(meta, q, s, partitionKey, at);
517
607
  const relPlaceholders = relations.map(() => '?').join(', ');
518
608
  const sql = cte +
519
- ` SELECT ${meta.hint}DISTINCT r.${q('object_uuid')} AS ${q('object_uuid')} FROM ${q(RELATIONS_TABLE)} r ` +
609
+ ` SELECT ${meta.hint}DISTINCT r.${q('object_uuid')} AS ${q('object_uuid')}, r.${q('relation')} AS ${q('relation')} ` +
610
+ `FROM ${q(RELATIONS_TABLE)} r ` +
520
611
  `JOIN principal p ON r.${q('subject_type')} = p.p_type AND r.${q('subject_uuid')} = p.p_uuid ` +
521
612
  `AND COALESCE(r.${q('subject_relation')}, '') = p.p_rel ` +
522
613
  `WHERE r.${q('partition_key')} = ? AND r.${q('object_type')} = ? ` +
523
614
  `AND r.${q('relation')} IN (${relPlaceholders}) AND ${this.#activeSql(q, 'r')}`;
524
615
  const bindings = [...cteBindings, partitionKey, objectType, ...relations, at];
525
616
  const rows = rowsOf(await this.#raw('listObjects', sql, bindings));
526
- const objects = rows
527
- .map((row) => ({ type: objectType, id: String(row.object_uuid) }))
617
+ const byObject = new Map();
618
+ for (const row of rows) {
619
+ const id = String(row.object_uuid);
620
+ const list = byObject.get(id) ?? [];
621
+ list.push(String(row.relation));
622
+ byObject.set(id, list);
623
+ }
624
+ const objects = [...byObject]
625
+ .filter(([, rels]) => {
626
+ const { allowed, denied } = this.#split(rels);
627
+ return cutPathAllows(this.#config, objectType, relation, allowed, denied);
628
+ })
629
+ .map(([id]) => ({ type: objectType, id }))
528
630
  .sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
529
631
  return { objects };
530
632
  }
@@ -532,12 +634,16 @@ export class DatabaseRelationsDriver {
532
634
  assertRelationDeclared(this.#config, object, relation);
533
635
  assertPartition(partition);
534
636
  this.#assertObject(object);
637
+ return this.#directSubjects('listSubjects', relation, object, partition, _page);
638
+ }
639
+ /** Los sujetos DIRECTOS vigentes de UNA relación almacenada (`listSubjects`; `listDenies` con `denied_<rel>`). */
640
+ async #directSubjects(operation, relation, object, partition, _page) {
535
641
  const partitionKey = this.#keyOf(partition);
536
642
  // DIRECTOS del relation EXACTO (invariante 7): ni transitivo (eso es
537
643
  // `membersOf`) ni derivado por includes. `usersetSubjects: true` ⇒ los
538
644
  // usersets (`group#member`) salen junto con los holders. Solo VIGENTES (R-15).
539
645
  const now = this.#now();
540
- const rows = await this.#sql('listSubjects', () => this.#whereActive(this.#connection()
646
+ const rows = await this.#sql(operation, () => this.#whereActive(this.#connection()
541
647
  .from(RELATIONS_TABLE)
542
648
  .where('partition_key', partitionKey)
543
649
  .where('object_type', object.type)
@@ -546,6 +652,26 @@ export class DatabaseRelationsDriver {
546
652
  const subjects = rows.map((row) => this.#rowToSubject(row));
547
653
  return { subjects };
548
654
  }
655
+ /**
656
+ * **`listDenies`** (lote D · D1): los sujetos con deny DIRECTO de `relation` sobre `object` —hechos, como
657
+ * `listSubjects` sobre la relación almacenada `denied_<rel>`; no resta ni deriva—. Sobre CUALQUIER tipo declarado
658
+ * (D8/R2-4 b: con el opt-in retirado, los denies vivos se siguen pudiendo listar y borrar).
659
+ */
660
+ async listDenies(relation, object, partition, page) {
661
+ assertRelationDeclared(this.#config, object, relation);
662
+ assertPartition(partition);
663
+ this.#assertObject(object);
664
+ return this.#directSubjects('listDenies', deniedRelationOf(relation), object, partition, page);
665
+ }
666
+ /**
667
+ * **`denyPhase` — ¿admite este driver escrituras de deny en el tipo?** (lote D · D2, R2-5): la fase del opt-in EN
668
+ * LA CONFIG DE ESTE DRIVER (`'write'`, `'read'` o `null`). F-05 estricto del par (422), cero sentencias: es
669
+ * configuración. La llama `reconcileRelations` en la fase de plan cuando el origen trae denies.
670
+ */
671
+ async denyPhase(object, relation) {
672
+ assertRelationDeclared(this.#config, object, relation);
673
+ return denyPhaseOf(this.#config, object.type) ?? null;
674
+ }
549
675
  /**
550
676
  * Membresía TRANSITIVA de un objeto-grupo: todos los HOLDERS que son `member`
551
677
  * directa o a través de grupos anidados (usersets `group#member`). CTE
@@ -604,7 +730,45 @@ export class DatabaseRelationsDriver {
604
730
  partitionKey, at,
605
731
  ];
606
732
  const rows = rowsOf(await this.#raw('membersOf', sql, bindings));
607
- const subjects = rows.map((row) => ({ type: String(row.subject_type), uuid: String(row.subject_uuid) }));
733
+ const candidates = rows.map((row) => ({ type: String(row.subject_type), uuid: String(row.subject_uuid) }));
734
+ // **Lote D · `membersOf` RESTA** (juez ronda 2: «listObjects y membersOf restan»; D8: siempre, con o sin opt-in).
735
+ // Si el objeto tiene alguna fila `denied_*` vigente, cada candidato se juzga con `check` —el MISMO corte de camino
736
+ // que el resto de lecturas, un `check` por candidato—; sin filas deny, cero consultas de más (la respuesta y el coste
737
+ // de 2.4.0-alpha.10). Coste declarado: O(miembros) consultas cuando el objeto tiene denies.
738
+ const denied = await this.#sql('membersOf.denies', () => this.#whereActive(this.#connection()
739
+ .from(RELATIONS_TABLE)
740
+ .where('partition_key', partitionKey)
741
+ .where('object_type', object.type)
742
+ .where('object_uuid', object.id)
743
+ .whereIn('relation', deniableAbove(this.#config, object.type, relation).map(deniedRelationOf)), this.#now())
744
+ .select('uuid')
745
+ .limit(1));
746
+ if (denied.length === 0)
747
+ return { subjects: candidates };
748
+ // **Cierre 1 de D1 · 🟡 4 del auditor**: con deny, N `check` en serie sin cota ni deadline total era una
749
+ // amplificación barata para quien puede escribir un deny (disponibilidad, no concesión). Cota DECLARADA
750
+ // (`RELATIONS_MEMBERS_DENY_CHECK_MAX`, «Limits» del README) ⇒ 500 ANTES del primer `check`, nunca una lista parcial;
751
+ // y deadline TOTAL sobre el bucle (`timeoutMs` del driver) ⇒ 503 `E_AUTHZ_BACKEND_TIMEOUT`, el bucle se para.
752
+ if (candidates.length > RELATIONS_MEMBERS_DENY_CHECK_MAX) {
753
+ throw new MembersOfDenyLimitError(`membersOf(${object.type}, '${relation}'): el objeto tiene un deny vigente y ${candidates.length} candidatos; con deny ` +
754
+ `cada candidato se juzga con un check y la cota es ${RELATIONS_MEMBERS_DENY_CHECK_MAX} ` +
755
+ `(RELATIONS_MEMBERS_DENY_CHECK_MAX). No se devuelve una lista parcial: pregunta check por sujeto, o retira el deny.`);
756
+ }
757
+ let expired = false;
758
+ const loop = (async () => {
759
+ const subjects = [];
760
+ for (const candidate of candidates) {
761
+ if (expired)
762
+ break;
763
+ if (await this.check(candidate, relation, object, partition))
764
+ subjects.push(candidate);
765
+ }
766
+ return subjects;
767
+ })();
768
+ const subjects = await withDeadline(loop, this.#timeoutMs, () => {
769
+ expired = true;
770
+ return new AuthorizationBackendTimeoutError('database-relations', 'membersOf', this.#timeoutMs);
771
+ });
608
772
  return { subjects };
609
773
  }
610
774
  /* ── Purga (invariante 11): el DELETE demuestra el cero ───────────────── */
@@ -740,7 +904,9 @@ export class DatabaseRelationsDriver {
740
904
  const pageRows = hasMore ? rows.slice(0, limit) : rows;
741
905
  const tuples = pageRows.map((row) => ({
742
906
  subject: this.#rowToSubject(row),
743
- relation: String(row.relation),
907
+ // Lote D · D2: `denied_<rel>` sale como `{ relation: <rel>, kind: 'deny' }` (punto de paso único,
908
+ // `storedRelationKind`); hasta D2 salía la relación almacenada y el reconcile la contaba como no declarada.
909
+ ...storedRelationKind(String(row.relation)),
744
910
  object: { type: String(row.object_type), id: String(row.object_uuid) },
745
911
  // La partición canónica PEDIDA: el barrido de ortografías ya la unificó.
746
912
  partition: wanted.get(String(row.partition_key)),
@@ -1 +1 @@
1
- {"version":3,"file":"database_relations_driver.js","sourceRoot":"","sources":["../../../src/drivers/database_relations_driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database_relations_driver.js","sourceRoot":"","sources":["../../../src/drivers/database_relations_driver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openfga_driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/openfga_driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openfga_driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/openfga_driver.ts"],"names":[],"mappings":"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"}