@jantstack/adonis-authz 1.1.0 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +417 -58
  3. package/build/commands/authz_catalog_diff.d.ts +28 -0
  4. package/build/commands/authz_catalog_diff.d.ts.map +1 -0
  5. package/build/commands/authz_catalog_diff.js +67 -0
  6. package/build/commands/authz_catalog_diff.js.map +1 -0
  7. package/build/commands/authz_catalog_sync.d.ts +20 -0
  8. package/build/commands/authz_catalog_sync.d.ts.map +1 -0
  9. package/build/commands/authz_catalog_sync.js +58 -0
  10. package/build/commands/authz_catalog_sync.js.map +1 -0
  11. package/build/commands/main.d.ts +2 -0
  12. package/build/commands/main.d.ts.map +1 -1
  13. package/build/commands/main.js +2 -0
  14. package/build/commands/main.js.map +1 -1
  15. package/build/commands/openfga_import.d.ts +8 -2
  16. package/build/commands/openfga_import.d.ts.map +1 -1
  17. package/build/commands/openfga_import.js +29 -6
  18. package/build/commands/openfga_import.js.map +1 -1
  19. package/build/commands/openfga_provision.d.ts.map +1 -1
  20. package/build/commands/openfga_provision.js +2 -1
  21. package/build/commands/openfga_provision.js.map +1 -1
  22. package/build/index.d.ts +45 -6
  23. package/build/index.d.ts.map +1 -1
  24. package/build/index.js +37 -4
  25. package/build/index.js.map +1 -1
  26. package/build/src/catalog.d.ts +249 -2
  27. package/build/src/catalog.d.ts.map +1 -1
  28. package/build/src/catalog.js +709 -59
  29. package/build/src/catalog.js.map +1 -1
  30. package/build/src/catalog_cache.d.ts +300 -0
  31. package/build/src/catalog_cache.d.ts.map +1 -0
  32. package/build/src/catalog_cache.js +656 -0
  33. package/build/src/catalog_cache.js.map +1 -0
  34. package/build/src/clock.d.ts +24 -0
  35. package/build/src/clock.d.ts.map +1 -0
  36. package/build/src/clock.js +7 -0
  37. package/build/src/clock.js.map +1 -0
  38. package/build/src/define_config.d.ts +102 -6
  39. package/build/src/define_config.d.ts.map +1 -1
  40. package/build/src/define_config.js.map +1 -1
  41. package/build/src/drivers/backend_guard.d.ts +92 -0
  42. package/build/src/drivers/backend_guard.d.ts.map +1 -0
  43. package/build/src/drivers/backend_guard.js +221 -0
  44. package/build/src/drivers/backend_guard.js.map +1 -0
  45. package/build/src/drivers/database_driver.d.ts +242 -15
  46. package/build/src/drivers/database_driver.d.ts.map +1 -1
  47. package/build/src/drivers/database_driver.js +692 -127
  48. package/build/src/drivers/database_driver.js.map +1 -1
  49. package/build/src/drivers/openfga_driver.d.ts +341 -27
  50. package/build/src/drivers/openfga_driver.d.ts.map +1 -1
  51. package/build/src/drivers/openfga_driver.js +1020 -271
  52. package/build/src/drivers/openfga_driver.js.map +1 -1
  53. package/build/src/drivers/sql_expiry.d.ts +53 -0
  54. package/build/src/drivers/sql_expiry.d.ts.map +1 -0
  55. package/build/src/drivers/sql_expiry.js +66 -0
  56. package/build/src/drivers/sql_expiry.js.map +1 -0
  57. package/build/src/errors.d.ts +333 -0
  58. package/build/src/errors.d.ts.map +1 -1
  59. package/build/src/errors.js +352 -0
  60. package/build/src/errors.js.map +1 -1
  61. package/build/src/expiry.d.ts +27 -0
  62. package/build/src/expiry.d.ts.map +1 -0
  63. package/build/src/expiry.js +50 -0
  64. package/build/src/expiry.js.map +1 -0
  65. package/build/src/hierarchical_resolver.d.ts +56 -0
  66. package/build/src/hierarchical_resolver.d.ts.map +1 -0
  67. package/build/src/hierarchical_resolver.js +87 -0
  68. package/build/src/hierarchical_resolver.js.map +1 -0
  69. package/build/src/identity.d.ts +155 -0
  70. package/build/src/identity.d.ts.map +1 -0
  71. package/build/src/identity.js +359 -0
  72. package/build/src/identity.js.map +1 -0
  73. package/build/src/manager.d.ts +225 -7
  74. package/build/src/manager.d.ts.map +1 -1
  75. package/build/src/manager.js +1670 -23
  76. package/build/src/manager.js.map +1 -1
  77. package/build/src/memoize_ancestors.d.ts +23 -0
  78. package/build/src/memoize_ancestors.d.ts.map +1 -0
  79. package/build/src/memoize_ancestors.js +42 -0
  80. package/build/src/memoize_ancestors.js.map +1 -0
  81. package/build/src/middleware/app_access_middleware.d.ts +8 -6
  82. package/build/src/middleware/app_access_middleware.d.ts.map +1 -1
  83. package/build/src/middleware/app_access_middleware.js +10 -26
  84. package/build/src/middleware/app_access_middleware.js.map +1 -1
  85. package/build/src/models/authz_assignment.d.ts +5 -5
  86. package/build/src/models/authz_assignment.d.ts.map +1 -1
  87. package/build/src/models/authz_deny.d.ts +5 -5
  88. package/build/src/models/authz_deny.d.ts.map +1 -1
  89. package/build/src/models/authz_permission.d.ts +11 -5
  90. package/build/src/models/authz_permission.d.ts.map +1 -1
  91. package/build/src/models/authz_permission.js +4 -0
  92. package/build/src/models/authz_permission.js.map +1 -1
  93. package/build/src/models/authz_role.d.ts +13 -6
  94. package/build/src/models/authz_role.d.ts.map +1 -1
  95. package/build/src/models/authz_role.js +6 -1
  96. package/build/src/models/authz_role.js.map +1 -1
  97. package/build/src/models/authz_role_permission.d.ts +5 -5
  98. package/build/src/models/authz_role_permission.d.ts.map +1 -1
  99. package/build/src/openfga.d.ts +13 -0
  100. package/build/src/openfga.d.ts.map +1 -0
  101. package/build/src/openfga.js +12 -0
  102. package/build/src/openfga.js.map +1 -0
  103. package/build/src/sql_descendants.d.ts +51 -0
  104. package/build/src/sql_descendants.d.ts.map +1 -0
  105. package/build/src/sql_descendants.js +129 -0
  106. package/build/src/sql_descendants.js.map +1 -0
  107. package/build/src/testing/contract.d.ts +138 -7
  108. package/build/src/testing/contract.d.ts.map +1 -1
  109. package/build/src/testing/contract.js +2946 -24
  110. package/build/src/testing/contract.js.map +1 -1
  111. package/build/src/testing/main.d.ts +4 -2
  112. package/build/src/testing/main.d.ts.map +1 -1
  113. package/build/src/testing/main.js +2 -1
  114. package/build/src/testing/main.js.map +1 -1
  115. package/build/src/testing/scope_tree.d.ts +65 -0
  116. package/build/src/testing/scope_tree.d.ts.map +1 -0
  117. package/build/src/testing/scope_tree.js +145 -0
  118. package/build/src/testing/scope_tree.js.map +1 -0
  119. package/build/src/traits/authz_scopes.d.ts +30 -6
  120. package/build/src/traits/authz_scopes.d.ts.map +1 -1
  121. package/build/src/traits/authz_scopes.js +30 -18
  122. package/build/src/traits/authz_scopes.js.map +1 -1
  123. package/build/src/traits/has_uuid.d.ts +5 -5
  124. package/build/src/traits/has_uuid.d.ts.map +1 -1
  125. package/build/src/types.d.ts +530 -28
  126. package/build/src/types.d.ts.map +1 -1
  127. package/build/src/types.js +10 -4
  128. package/build/src/types.js.map +1 -1
  129. package/build/stubs/config/app_acl.stub +4 -2
  130. package/build/stubs/config/authorization.stub +66 -12
  131. package/build/stubs/migration.stub +57 -13
  132. package/package.json +11 -6
@@ -1 +1 @@
1
- {"version":3,"file":"database_driver.js","sourceRoot":"","sources":["../../../src/drivers/database_driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database_driver.js","sourceRoot":"","sources":["../../../src/drivers/database_driver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- import type { AuthorizationDriver, GrantOptions, ScopeAncestorsResolver, ScopeRef, ScopeType, SubjectRef } from '../types.js';
1
+ import type { ClientBatchCheckItem, ClientBatchCheckSingleResponse } from '@openfga/sdk';
2
+ import type { AuthorizationDriver, DenyRef, GrantOptions, GrantOutcome, HolderTypeMap, RoleQuery, ScopeChainResolver, ScopeRef, ScopeType, SubjectRef } from '../types.js';
3
+ import { CatalogCache } from '../catalog_cache.js';
4
+ import type { CatalogRevalidate, CatalogRoleRef } from '../catalog_cache.js';
5
+ import type { Clock } from '../clock.js';
2
6
  /**
3
7
  * Driver `openfga` — los HECHOS (asignaciones y denies) viven en un servidor
4
8
  * OpenFGA; el CATÁLOGO (roles/permisos/vínculos) y la JERARQUÍA (orgs/units)
@@ -6,14 +10,18 @@ import type { AuthorizationDriver, GrantOptions, ScopeAncestorsResolver, ScopeRe
6
10
  * de datos del análisis: cambiar de driver = migrar una tabla de hechos).
7
11
  *
8
12
  * Modelo FGA genérico (ver `openFgaAuthorizationModel()`):
9
- * - `role_binding:<scopeKey>|<rol>` #assignee → asignación de rol
10
- * - `deny_binding:<scopeKey>|<perm>` #denied → deny explícito
13
+ * - `role_binding:<scopeKey>|<roleUuid>` #assignee → asignación de rol
14
+ * - `deny_binding:<scopeKey>|<permissionUuid>` #denied → deny explícito
15
+ * (3A · A1: el id lleva el UUID del catálogo, nunca el slug. Un store
16
+ * escrito por 1.x/2.0–2.1 —ids con slug— NO lo lee 2.2: `openfga:import
17
+ * --reconcile` lo cuenta como `extra` y `--prune` lo borra. No hay comando
18
+ * de migración por decisión del dueño: no había stores en producción.)
11
19
  * - Expiración vía condition `not_expired` (valid_until en la tupla,
12
20
  * current_time en cada check) — ni scheduler necesita.
13
21
  *
14
22
  * La herencia se resuelve igual que en el driver database: la cadena de
15
23
  * scopes se calcula localmente (el árbol lo declara el consumidor vía
16
- * `resolveAncestors`) y se consulta FGA por batchCheck sobre la cadena.
24
+ * `resolveChain`) y se consulta FGA por batchCheck sobre la cadena.
17
25
  *
18
26
  * NADA del dominio está cableado: los holders llegan como `holderTypes`
19
27
  * (morph name → tipo FGA) y los niveles de scope se derivan del propio
@@ -22,9 +30,49 @@ import type { AuthorizationDriver, GrantOptions, ScopeAncestorsResolver, ScopeRe
22
30
  */
23
31
  /**
24
32
  * Mapa morph name → tipo del modelo FGA (`users` → `user`). Debe ser el
25
- * MISMO con el que se generó el authorization model del store.
33
+ * MISMO con el que se generó el authorization model del store. Definido en
34
+ * el puerto (`types.ts`) y re-exportado aquí.
26
35
  */
27
- export type HolderTypeMap = Record<string, string>;
36
+ export type { HolderTypeMap };
37
+ /**
38
+ * `holderTypes` tiene que ser INYECTIVO. Si dos morph names caen en el mismo
39
+ * tipo FGA, para el store son un solo holder: un grant a `users:U` autoriza a
40
+ * `integrations:U`, `listSubjects` devuelve el morph equivocado y un revoke
41
+ * borra al otro (invariante 4, L0.2). El generador del modelo lo "sabía"
42
+ * (deduplicaba con un Set) y publicaba sin quejarse: ahora lanza aquí, al
43
+ * construir el driver y al generar el modelo, antes de tocar nada.
44
+ */
45
+ export declare function assertHolderTypes(holderTypes: HolderTypeMap): void;
46
+ /**
47
+ * Id de binding (`<scopeKey>|<uuid>`: `app|<uuid>` o `<tipo>|<uuidScope>|<uuid>`)
48
+ * → scope + uuid del catálogo (del rol en `role_binding`, del permiso en
49
+ * `deny_binding`). Se parsea DESDE LA DERECHA (3A · A1): el último componente
50
+ * es el uuid y el resto la clave del scope, que tiene 1 parte (`app`) o 2
51
+ * (`<tipo>|<uuid>`). Antes el último componente era el slug codificado
52
+ * (`docs~read`) y el parseo contaba partes: ambiguo en cuanto la clave del
53
+ * scope variara de longitud (panel 2026-08-28, §2-C), y con un escape no
54
+ * inyectivo desde el llamante (L0.8a).
55
+ *
56
+ * `null` si no tiene la forma del motor O si alguna parte no pasa su
57
+ * gramática —el scope, la de identidad; el uuid, la de UUID canónico del
58
+ * catálogo—: un id que el driver no escribiría no es un hecho del motor
59
+ * aunque esté en el store. Los ids de 1.x/2.0–2.1 (con slug) caen aquí:
60
+ * 2.2 no los lee, y `openfga:import --reconcile` los cuenta como `extra`.
61
+ * Exportada para probarla sin servidor.
62
+ */
63
+ export declare function parseBindingId(id: string): {
64
+ scope: ScopeRef;
65
+ uuid: string;
66
+ } | null;
67
+ /**
68
+ * Alinea los resultados de un batchCheck con los checks pedidos por
69
+ * `correlationId`, no por posición (L0.14). El SDK reparte el lote en
70
+ * sub-lotes paralelos y concatena las respuestas según llegan: el orden no es
71
+ * el de los checks. Cardinalidad igual no basta —un id duplicado y otro
72
+ * ausente pasan el conteo—: cada check debe tener EXACTAMENTE un resultado y
73
+ * ningún resultado puede ser de un check que no se pidió.
74
+ */
75
+ export declare function correlateBatchResults(checks: ClientBatchCheckItem[], results: ClientBatchCheckSingleResponse[]): ClientBatchCheckSingleResponse[];
28
76
  /**
29
77
  * El authorization model en formato JSON del API de FGA, generado a partir
30
78
  * de los holders del consumidor. El mismo mapa debe usarse al construir el
@@ -41,25 +89,135 @@ export declare function provisionOpenFgaStore(apiUrl: string, name: string, hold
41
89
  storeId: string;
42
90
  modelId: string;
43
91
  }>;
92
+ /**
93
+ * ¿El error (o su cadena de causas) es el rechazo de FGA a escribir una tuple
94
+ * key que ya existe? Es la ÚNICA señal de carrera check-then-write que
95
+ * `grant` acepta: un 400 de validación (`validation_error`) o un 5xx no son
96
+ * "alguien escribió antes" y se propagan clasificados, con el error del SDK
97
+ * como causa (D6). Verificado contra OpenFGA v1.19: el duplicado llega como
98
+ * HTTP 400 con `apiErrorCode: 'write_failed_due_to_invalid_input'` y el
99
+ * mensaje "cannot write a tuple which already exists"; un 409 se acepta por
100
+ * si una versión del servidor lo devuelve así.
101
+ */
102
+ export declare function isDuplicateWrite(error: unknown): boolean;
44
103
  export interface OpenFgaDriverOptions {
45
104
  apiUrl: string;
46
105
  storeId: string;
47
106
  /** Pin del model; si se omite, FGA usa el último. */
48
107
  modelId?: string;
49
- /** Jerarquía del consumidor (ver ScopeAncestorsResolver). */
50
- resolveAncestors?: ScopeAncestorsResolver;
108
+ /** Jerarquía del consumidor (ver ScopeChainResolver). */
109
+ resolveChain?: ScopeChainResolver;
51
110
  /**
52
111
  * Holders del consumidor: morph name → tipo FGA. Debe coincidir con el
53
112
  * mapa usado al escribir el authorization model del store.
54
113
  */
55
114
  holderTypes: HolderTypeMap;
115
+ /**
116
+ * Dónde avisar de lo que el driver ve y no puede representar (bindings que
117
+ * no entiende). Inyectado y síncrono a propósito: el logger de la app en
118
+ * producción, la consola por defecto, un array en los tests.
119
+ */
120
+ logger?: {
121
+ warn(message: string): void;
122
+ };
123
+ /**
124
+ * Deadline de cada llamada (catálogo SQL y FGA) en ms, default 5000.
125
+ * Vencido ⇒ 503 `E_AUTHZ_BACKEND_TIMEOUT` (L0.13).
126
+ */
127
+ timeoutMs?: number;
128
+ /**
129
+ * Consistencia pedida al servidor en cada lectura. Default
130
+ * `higher_consistency`: con la caché de Check activada en el servidor
131
+ * (`--check-query-cache-enabled`, TTL 10 s) un revoke o un deny recién
132
+ * escritos seguirían concediendo hasta que expire; el paquete promete que
133
+ * "quitar el deny restaura" y lo garantiza él (S11). `minimize_latency` es
134
+ * el opt-out explícito: "acepto hasta N segundos de fail-open a cambio de
135
+ * latencia".
136
+ */
137
+ consistency?: 'higher_consistency' | 'minimize_latency';
138
+ /**
139
+ * Reintentos del SDK ante errores de red. Default `{ maxRetry: 0 }`: el
140
+ * paquete libera al llamante con 503 al vencer `timeoutMs`, y un SDK que
141
+ * siguiera reintentando en segundo plano haría aterrizar la escritura
142
+ * DESPUÉS del error, sin evento `onWrite` — una escritura fantasma (D2).
143
+ * Con reintentos, el llamante recibe además `indeterminate: true` en el
144
+ * hook cuando la escritura vence el deadline; activarlos es aceptar que un
145
+ * 503 por timeout puede haber escrito.
146
+ */
147
+ retryParams?: {
148
+ maxRetry?: number;
149
+ minWaitInMs?: number;
150
+ };
151
+ /**
152
+ * Memo del catálogo compartido con otro driver del mismo proceso (2A). Si
153
+ * se omite, el driver construye el suyo. Se revalida contra la versión
154
+ * compartida de la base (`authz_catalog_version`) según `catalogRevalidate`.
155
+ */
156
+ catalog?: CatalogCache;
157
+ /**
158
+ * Cuándo contrastar el memo con la versión compartida (2D · F1): `'always'`
159
+ * (default; un SELECT por clave primaria por pregunta) o `{ everyMs }`
160
+ * (opt-in: ventana acotada en la que un sync de OTRO proceso aún no se ve).
161
+ * Solo aplica al memo que construye este driver.
162
+ */
163
+ catalogRevalidate?: CatalogRevalidate;
164
+ /**
165
+ * Reloj de pared del driver (2.5 · J1): el `current_time` de cada check
166
+ * (la condición `not_expired` se evalúa contra él), el filtro de caducidad
167
+ * en cliente de las enumeraciones y los tres estados del re-grant. Default
168
+ * `() => new Date()`. Inyectable para fijar el instante en tests; en
169
+ * producción lo normal es `clock` en el config del manager (`withClock`).
170
+ */
171
+ now?: Clock;
56
172
  }
173
+ export declare const DEFAULT_TIMEOUT_MS = 5000;
174
+ /**
175
+ * Cota de páginas de una enumeración (1.000.000 de tuplas a 100 por página).
176
+ * Un `continuation_token` que no avanza —un servidor roto, un proxy o una
177
+ * caché delante— era un bucle infinito que ningún deadline cortaba, porque
178
+ * el deadline es por llamada (D12, auditor H7).
179
+ */
180
+ export declare const MAX_READ_PAGES = 10000;
57
181
  export interface ImportFactsResult {
58
- assignments: number;
59
- denies: number;
182
+ /** Tuplas nuevas escritas. */
183
+ written: number;
184
+ /** Tuplas que existían con OTRA condición y se reescribieron (delete+write). */
185
+ updated: number;
186
+ /** Tuplas que ya estaban exactamente igual. */
187
+ unchanged: number;
188
+ /**
189
+ * Tuplas `role_binding`/`deny_binding` del store SIN correspondencia en SQL
190
+ * (un grant revocado en SQL, un holder que nunca estuvo, una asignación ya
191
+ * expirada). Solo se cuentan con `reconcile` (D14); sin `prune` siguen
192
+ * concediendo y el reporte lo dice.
193
+ */
194
+ extra: number;
195
+ /** De las `extra`, las borradas (`prune`). En `dryRun`, las que se borrarían. */
196
+ deleted: number;
197
+ /** Asignaciones ya expiradas en SQL, no se copian. */
60
198
  skippedExpired: number;
61
199
  dryRun: boolean;
62
200
  }
201
+ export interface ImportFactsOptions {
202
+ dryRun?: boolean;
203
+ /**
204
+ * Permite importar sobre un store CON tuplas: por cada hecho se lee la
205
+ * tupla exacta; ausente ⇒ write, presente con otra condición ⇒ delete+write
206
+ * (`updated`), igual ⇒ `unchanged`. Además se lee el store ENTERO
207
+ * (`Read({})` paginado) y lo que SQL no tiene se cuenta como `extra` (D14).
208
+ * Sin esto, un store no vacío es 409 `E_AUTHZ_STORE_NOT_EMPTY`.
209
+ */
210
+ reconcile?: boolean;
211
+ /**
212
+ * Con `reconcile`: borra las tuplas `extra` (`deleted`). Es lo que hace que
213
+ * el reconcile CONVERJA: sin prune, un reporte de ceros no distingue "en
214
+ * sync" de "sobra algo que sigue concediendo". Sin `reconcile` es 500
215
+ * `E_AUTHZ_CONFIG`.
216
+ */
217
+ prune?: boolean;
218
+ /** Reloj con el que se decide qué asignación de SQL ya expiró (`skippedExpired`). Default: la hora del proceso. */
219
+ now?: Clock;
220
+ }
63
221
  /**
64
222
  * Migración de hechos database → openfga: copia las asignaciones vigentes y
65
223
  * los denies de las tablas `authz_*` como tuples del store FGA.
@@ -68,49 +226,205 @@ export interface ImportFactsResult {
68
226
  * volver a AUTHZ_DRIVER=database (solo se pierde lo escrito mientras se
69
227
  * operó con openfga). El catálogo y la jerarquía nunca migran: son
70
228
  * metadata local para ambos drivers.
71
- * - Idempotente: re-ejecutar no duplica (onDuplicateWrites: Ignore).
72
229
  * - Las asignaciones ya expiradas se saltan (no tiene sentido copiarlas);
73
230
  * las de expiración futura viajan con la condition `not_expired`.
231
+ * - NUNCA `onDuplicateWrites: Ignore` (S7): en FGA la condición no es parte
232
+ * de la clave, así que "ignorar el duplicado" dejaba la caducidad vieja y
233
+ * reportaba éxito. Un store con tuplas exige `reconcile`, que compara
234
+ * tupla a tupla, reescribe las que difieren y cuenta las que SQL no tiene
235
+ * (`extra`); con `prune` las borra (`deleted`) y el reconcile converge
236
+ * (D14). Nunca silencioso: el reporte distingue written / updated /
237
+ * unchanged / extra / deleted / skippedExpired.
238
+ *
239
+ * Herramienta explícitamente de OpenFGA: los errores del SDK salen crudos.
74
240
  */
75
- export declare function importAuthzFactsToOpenFga(options: OpenFgaDriverOptions & {
76
- dryRun?: boolean;
77
- }): Promise<ImportFactsResult>;
241
+ export declare function importAuthzFactsToOpenFga(options: OpenFgaDriverOptions & ImportFactsOptions): Promise<ImportFactsResult>;
78
242
  export declare class OpenFgaAuthorizationDriver implements AuthorizationDriver {
79
243
  private client;
80
- private resolveAncestors;
244
+ private chainResolver;
81
245
  private holderTypes;
246
+ /**
247
+ * Contadores observables del driver. `unparseableBindings`: ids del store
248
+ * que el motor no entiende (L0.16). Cada uno es un hecho que las
249
+ * enumeraciones NO muestran; se registra y se cuenta, jamás un `continue`
250
+ * mudo — quien opera el store tiene que poder verlo.
251
+ */
252
+ readonly diagnostics: {
253
+ unparseableBindings: number;
254
+ };
255
+ private logger;
256
+ private timeoutMs;
257
+ private consistency;
258
+ /** Reloj de pared del driver (J1): el ÚNICO `now` de checks, filtros y re-grant. */
259
+ private now;
260
+ /**
261
+ * Memo del catálogo (2A): permisos, roles por nivel y roles que conceden
262
+ * cada permiso se leen de aquí en el camino caliente; antes eran dos
263
+ * consultas SQL por `authorize`. Los hechos siguen en FGA en cada pregunta.
264
+ * Se revalida contra `authz_catalog_version` (2D · F1): cada operación
265
+ * toma la foto UNA vez (`view()`) y lee de ella todo lo que necesita.
266
+ * `catalog.invalidate()` fuerza la recarga de ESTE memo.
267
+ */
268
+ readonly catalog: CatalogCache;
82
269
  constructor(options: OpenFgaDriverOptions);
270
+ /**
271
+ * `[scope canónico, ...ancestros]`, o `null` si el scope no existe
272
+ * (lecturas: denegar). `chain[0]` —la fila del consumidor, no lo que
273
+ * escribió el llamante— es el scope que va en la clave de cada binding
274
+ * (2.5-B · K1): un alias del uuid que el árbol funde con la fila real
275
+ * llega aquí ya canónico y el `deny_binding` escrito canónico casa.
276
+ */
83
277
  private chain;
278
+ /** La cadena o 422: una escritura no puede ir a un scope que nadie reconoce. */
279
+ private knownScope;
280
+ /** El scope canónico para `revoke`/`removeDeny`/`purgeScope` (ver `canonicalScope`). */
281
+ private canonicalOrSelf;
282
+ /**
283
+ * Vista de este driver con OTRO resolutor de ancestros y el mismo estado
284
+ * (cliente, memo del catálogo, deadline, diagnósticos). Es lo que usa
285
+ * `AuthorizationManager.forRequest()` para leer con un resolutor memoizado
286
+ * sin tocar el driver compartido: hereda por prototipo y solo sobrescribe
287
+ * el resolutor.
288
+ */
289
+ withChainResolver(resolveChain: ScopeChainResolver): AuthorizationDriver;
290
+ /**
291
+ * Vista de este driver con OTRO reloj de pared (2.5 · J1): mismo cliente,
292
+ * store, memo y resolutor; solo cambia el `now` que viaja como
293
+ * `current_time` y filtra las enumeraciones. Lo aplica el manager con
294
+ * `config.clock` y el juez para fijar el instante.
295
+ */
296
+ withClock(now: Clock): AuthorizationDriver;
297
+ /**
298
+ * El `context` de los checks de UNA operación, con el reloj de ESTE driver
299
+ * (o vista): se construye una vez por operación y viaja en todos sus
300
+ * checks (2.5-B · K9). Antes se leía el reloj por check y un mismo
301
+ * `authorize` evaluaba el deny en un instante y el rol en otro.
302
+ */
303
+ private checkContext;
304
+ /**
305
+ * Consulta al catálogo local clasificando su fallo. Con este driver el
306
+ * catálogo SQL sigue siendo una dependencia dura de cada pregunta: su caída
307
+ * era un error crudo de Lucid que se presentaba como bug de aplicación (N3).
308
+ */
309
+ private sql;
84
310
  private fgaSubject;
85
311
  /**
86
- * batchCheck troceado al límite del servidor FGA (50 checks/request) y con
87
- * verificación de completitud: TODOS los checks deben volver respondidos.
312
+ * Un batchCheck con TODOS los checks (el SDK trocea a 50 por request y
313
+ * paraleliza), cada uno con un `correlationId` propio, y la respuesta
314
+ * alineada por ese id: un resultado por check, ni uno más ni uno menos.
88
315
  */
89
316
  private batchCheckAll;
90
317
  private findPermission;
91
- private findRoleOrFail;
92
- /** Roles del catálogo que conceden el permiso, agrupados por scope_type. */
93
- private rolesGranting;
318
+ /**
319
+ * Filtro por catálogo de las lecturas de membresía (`listRoles`,
320
+ * `listRoleScopes`, `rolesInChain`, `listScopes`): un binding cuyo uuid ya
321
+ * no está en `authz_roles` —o está, pero declarado para OTRO nivel, o es
322
+ * local a un scope que no está en la cadena del binding (3B · B2)— es una
323
+ * tupla huérfana, no una membresía; igual que en `database`, donde el
324
+ * catálogo lo excluye (D5). La tupla la recoge `authz:reconcile`. Desde 3A
325
+ * la resolución es por uuid (`roleByUuid`), nunca por slug. `chainKeys` es
326
+ * la cadena del scope del BINDING (desde él hacia la raíz).
327
+ */
328
+ private declaredRole;
329
+ /**
330
+ * Los checks de UNA pregunta (subject, permiso, cadena): los denies de cada
331
+ * nivel y los roles del catálogo que conceden el permiso en cada nivel.
332
+ * Sin rol que conceda ⇒ `null`: la respuesta es `false` digan lo que digan
333
+ * los denies y no se pregunta al backend (2A).
334
+ */
335
+ private checksFor;
94
336
  authorize(subject: SubjectRef, permission: string, scope: ScopeRef): Promise<boolean>;
95
- grant(subject: SubjectRef, role: string, scope: ScopeRef, options?: GrantOptions): Promise<void>;
337
+ /**
338
+ * `authorize` sobre N scopes con UN batchCheck (2.1, B6): los checks de
339
+ * todas las cadenas viajan juntos (el SDK trocea a 50 y paraleliza) y se
340
+ * atribuyen a su scope por posición dentro del lote correlacionado
341
+ * (L0.14). Misma regla que `authorize`, por scope: `error` en cualquier
342
+ * check ⇒ 503 entero (D1); deny `allowed` ⇒ false; rol `allowed` ⇒ true.
343
+ * Scope desconocido o sin rol que conceda ⇒ false sin checks.
344
+ */
345
+ authorizeMany(subject: SubjectRef, permission: string, scopes: ScopeRef[]): Promise<boolean[]>;
346
+ grant(subject: SubjectRef, role: RoleQuery, scope: ScopeRef, options?: GrantOptions): Promise<GrantOutcome>;
347
+ /**
348
+ * Write directo; si la key ya existía (409), camino largo. Devuelve si
349
+ * existía. Cualquier otro fallo se propaga tal cual (ya clasificado).
350
+ */
351
+ private writeAssignment;
352
+ /** delete + write (dos llamadas: FGA no admite ambas sobre la misma key en una). */
353
+ private replaceAssignment;
96
354
  /**
97
355
  * Estado actual de una asignación, con TRES resultados posibles y no dos.
98
356
  *
99
357
  * Distinguir `unknown` de `present` sin condición es lo que impide un bug
100
358
  * feo: si un fallo de lectura se pareciera a "existe y sin expiración", un
101
- * grant sin expiración saldría por el atajo del no-op y se perdería
102
- * mientras el hook onWrite ya habría auditado que se concedió.
359
+ * grant sin expiración saldría por el atajo del no-op y se perdería. El
360
+ * error de lectura (ya clasificado como 503) viaja con el resultado para
361
+ * que quien no pueda seguir sin él lo propague.
103
362
  */
104
363
  private readAssignment;
105
- revoke(subject: SubjectRef, role: string, scope: ScopeRef): Promise<void>;
106
- hasRole(subject: SubjectRef, role: string, scope: ScopeRef): Promise<boolean>;
364
+ revoke(subject: SubjectRef, role: RoleQuery, scope: ScopeRef): Promise<void>;
365
+ hasRole(subject: SubjectRef, role: RoleQuery, scope: ScopeRef): Promise<boolean>;
107
366
  deny(subject: SubjectRef, permission: string, scope: ScopeRef): Promise<void>;
108
367
  removeDeny(subject: SubjectRef, permission: string, scope: ScopeRef): Promise<void>;
109
- listSubjects(role: string, scope: ScopeRef): Promise<SubjectRef[]>;
110
- /** role_binding ids del subject (asignaciones directas vigentes). */
368
+ /**
369
+ * Holders con asignación vigente del rol en el scope exacto: `Read` por
370
+ * objeto exacto, paginado, con la caducidad filtrada en cliente. Antes era
371
+ * `ListUsers`, que trunca al tope del servidor sin señal (L0.7).
372
+ */
373
+ listSubjects(role: RoleQuery, scope: ScopeRef): Promise<SubjectRef[]>;
374
+ /**
375
+ * Bindings del subject ya parseados (asignaciones directas vigentes). Los
376
+ * ids que no se entienden se registran y se cuentan, no se descartan.
377
+ */
111
378
  private listBindings;
379
+ /** Scopes (por clave) donde el subject tiene un deny directo del permiso (por su uuid). */
380
+ private deniedScopeKeys;
381
+ private parseBindings;
382
+ private warn;
112
383
  listRoles(subject: SubjectRef, scope: ScopeRef): Promise<string[]>;
384
+ /**
385
+ * Roles directos vigentes del holder en cada scope de la cadena (2D · G5):
386
+ * UNA lectura (`Read` paginado de sus bindings) agrupada por scope, en vez
387
+ * de un `listRoles` por nivel. Solo roles que el catálogo declara para ese
388
+ * nivel (D5). La cadena viene ya resuelta por el manager.
389
+ */
390
+ rolesInChain(subject: SubjectRef, chain: ScopeRef[]): Promise<Array<{
391
+ scope: ScopeRef;
392
+ role: CatalogRoleRef;
393
+ }>>;
113
394
  listRoleScopes(subject: SubjectRef, scopeType: ScopeType): Promise<ScopeRef[]>;
114
395
  listScopes(subject: SubjectRef, permission: string): Promise<ScopeRef[]>;
396
+ /**
397
+ * Denies directos del holder (2.1, B5): `Read` paginado de sus
398
+ * `deny_binding` (nunca ListObjects, L0.7), filtrados por el catálogo (un
399
+ * permiso retirado no es un deny, D5), por scope exacto si se pide, y por
400
+ * scopes que el árbol conoce (D8).
401
+ */
402
+ listDenies(subject: SubjectRef, scope?: ScopeRef): Promise<DenyRef[]>;
403
+ /**
404
+ * Purga del scope exacto en FGA (N7, S6, B2). No hay "borrar todo lo de
405
+ * este objeto": se leen por objeto EXACTO los bindings posibles — un
406
+ * `role_binding` por cada rol del catálogo de ese `scope_type` y un
407
+ * `deny_binding` por cada permiso — paginando `Read` (nunca ListObjects:
408
+ * trunca sin avisar, L0.7), se borra en lotes ≤ 100 (límite del Write) y
409
+ * se vuelve a leer cada objeto: si queda algo, se lanza. Un rol retirado
410
+ * del catálogo deja bindings inalcanzables por esta vía; es el precio de no
411
+ * tener un índice por objeto, y lo vigilará `authz:reconcile` (3b).
412
+ */
413
+ purgeScope(purged: ScopeRef): Promise<void>;
414
+ /**
415
+ * TODAS las tuplas que casan con el filtro, paginando `Read` hasta agotar
416
+ * el `continuation_token`, sin las caducadas. Es la única primitiva de
417
+ * enumeración del driver (L0.7): `Read` no tiene tope de resultados —a
418
+ * diferencia de `ListObjects`/`ListUsers`, que cortan al máximo del
419
+ * servidor sin ninguna señal— y devuelve la condición de cada tupla, así
420
+ * que la caducidad se filtra aquí con el mismo reloj que `checkContext`.
421
+ *
422
+ * Contrapartida, documentada en el README: `Read` devuelve tuplas
423
+ * ESCRITAS, no relaciones computadas. Con el modelo que genera este paquete
424
+ * (`assignee`/`denied` directas) es exactamente lo mismo; un modelo
425
+ * extendido con relaciones derivadas sobre `role_binding` no se enumeraría
426
+ * por aquí.
427
+ */
428
+ private readAllTuples;
115
429
  }
116
430
  //# sourceMappingURL=openfga_driver.d.ts.map
@@ -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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"}