@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":"catalog.js","sourceRoot":"","sources":["../../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,300 @@
1
+ import type { TransactionClientContract } from '@adonisjs/lucid/types/database';
2
+ import type { CatalogRole, CatalogRoleRef, ScopeType } from './types.js';
3
+ export type { CatalogRole, CatalogRoleRef };
4
+ /**
5
+ * Memo del CATÁLOGO (roles, permisos y vínculos rol→permiso), y de nada más.
6
+ *
7
+ * El camino caliente de `authorize` consultaba `authz_*` en cada pregunta
8
+ * (`findPermission` en ambos drivers; `rolesGranting` además en openfga)
9
+ * para leer algo que solo cambia cuando el consumidor sincroniza su config.
10
+ * Este memo carga las tres tablas una vez, perezosamente, y las sirve desde
11
+ * memoria mientras la BASE diga que siguen vigentes. Lo que NUNCA cachea:
12
+ * hechos (asignaciones, denies) ni decisiones — un `authorize` siempre
13
+ * pregunta al backend de hechos; lo que se ahorra es el "¿qué uuid tiene
14
+ * `docs:read`?".
15
+ *
16
+ * Invariante (2D · F1): **el catálogo que decide es el de la BD.** La tabla
17
+ * `authz_catalog_version` (una fila, `id = 1`) lleva un entero que
18
+ * `syncAuthzCatalog` incrementa DENTRO de su transacción. Cada foto recuerda
19
+ * con qué versión se cargó y, antes de servirse, la contrasta con la fila
20
+ * (un SELECT por clave primaria, con deadline y clasificado 503): si difiere,
21
+ * recarga. Así un sync en OTRO proceso (otro worker, `node ace
22
+ * authz:catalog:sync` en un despliegue) se ve en la siguiente pregunta de
23
+ * todos los procesos, sin pub/sub y sin reiniciar. El memo nunca sirve una
24
+ * decisión con una versión distinta de la de la base.
25
+ *
26
+ * Contrato de invalidación (README, "Performance"):
27
+ * 1. `syncAuthzCatalog` (y por tanto `authz:catalog:sync`) sube la fila en
28
+ * su transacción (lo ven todos los procesos) y además el contador de
29
+ * este módulo (lo ve este proceso al instante, también con `everyMs`).
30
+ * 2. `invalidateAuthzCatalog()` invalida los memos de ESTE proceso; la fila
31
+ * la sube `bumpAuthzCatalogVersion(trx)` para TODOS, y SOLO como última
32
+ * sentencia de la transacción que escribe `authz_*` (2E · H2): un bump
33
+ * que se confirma antes que su escritura hace que otro proceso recargue
34
+ * los datos viejos etiquetados con la versión nueva y no vuelva a
35
+ * revalidar jamás. Quien escribe `authz_*` por fuera del sync (un seeder,
36
+ * una migración de datos) lo hace con `withAuthzCatalogWrite(async (trx)
37
+ * => …)`, que abre la transacción y sube la versión al final, dentro; sin
38
+ * eso los demás procesos no se enteran (caso negativo fijado por test).
39
+ * 3. `revalidate: 'always'` (default) contrasta la fila en cada `view()`.
40
+ * `{ everyMs }` (opt-in) la contrasta como mucho una vez por ventana: es
41
+ * una ventana ACOTADA de catálogo viejo —de revocación fail-open— que el
42
+ * consumidor acepta a sabiendas a cambio de ahorrarse ese SELECT.
43
+ *
44
+ * Es composición: cada driver del paquete construye el suyo (o recibe uno
45
+ * compartido en `catalog`); un driver de terceros no necesita saber que existe.
46
+ */
47
+ /** Tabla de la versión compartida del catálogo (una fila, `id = 1`). */
48
+ export declare const CATALOG_VERSION_TABLE = "authz_catalog_version";
49
+ /** Un permiso del catálogo: su uuid y los niveles cuyos roles pueden llevarlo (`null` = cualquiera, 3B · B5). */
50
+ export interface CatalogPermission {
51
+ uuid: string;
52
+ assignableAt: readonly ScopeType[] | null;
53
+ }
54
+ /**
55
+ * Clave de owner de los roles GLOBALES (`authz_roles.owner_scope_key`, 3B ·
56
+ * B1): los del catálogo del config (`syncAuthzCatalog`). Reservada: ningún
57
+ * `scopeKey()` la produce (la raíz da `app`; el resto lleva `|`).
58
+ */
59
+ export declare const GLOBAL_OWNER_KEY = "global";
60
+ /** ¿El rol cuenta en un scope cuya cadena tiene esas claves (owner global o en la cadena)? */
61
+ export declare function isRoleVisibleWith(role: {
62
+ owner: string;
63
+ }, chainKeys: ReadonlySet<string> | readonly string[]): boolean;
64
+ /** Foto inmutable del catálogo. Se reemplaza entera, nunca se muta. */
65
+ export interface CatalogView {
66
+ /** `{ uuid, assignableAt }` del permiso, o `null` si el catálogo no lo declara. */
67
+ permission(slug: string): CatalogPermission | null;
68
+ /**
69
+ * El rol GLOBAL `(slug, scopeType)`, o `null`. Los locales no se buscan por
70
+ * aquí: con owners, `(slug, scopeType)` ya no identifica un rol (3B); usa
71
+ * `roleVisible` con la cadena del scope que pregunta, o `rolesNamed`.
72
+ */
73
+ role(slug: string, scopeType: ScopeType): CatalogRole | null;
74
+ /**
75
+ * EL rol `(slug, scopeType)` visible desde un scope cuya cadena tiene esas
76
+ * claves (3B · B2): el global, o el local cuyo owner está en la cadena.
77
+ * `null` si ninguno.
78
+ *
79
+ * Si hay MÁS DE UNO visible LANZA 422 `E_AUTHZ_AMBIGUOUS_ROLE` (3D · M1).
80
+ * Hasta 3C ganaba «el owner más cercano», y eso convertía un homónimo en
81
+ * una escalada: el admin de A concedía el rol de B por el mismo slug
82
+ * (auditor V3) y un local tapaba al global cambiándole el significado
83
+ * (V2-B). La ambigüedad no se resuelve, se denuncia: fail-closed. La
84
+ * unicidad se defiende al escribir (colisiones + serialización del
85
+ * catálogo, M2), pero un árbol que se mueve puede juntar dos owners
86
+ * legítimos y esa lectura tiene que fallar, no elegir.
87
+ */
88
+ roleVisible(slug: string, scopeType: ScopeType, chainKeys: readonly string[]): CatalogRole | null;
89
+ /** TODOS los roles `(slug, scopeType)`, sea cual sea su owner (para revoke, colisiones). Copia por llamada. */
90
+ rolesNamed(slug: string, scopeType: ScopeType): CatalogRole[];
91
+ /** El rol por uuid, o `null` si el catálogo no lo declara (un rol retirado, un id ajeno) (3A · A3). */
92
+ roleByUuid(uuid: string): CatalogRole | null;
93
+ /**
94
+ * Roles declarados para un nivel cuyo owner es global o está en
95
+ * `ownerKeys` (las claves de la cadena del scope que pregunta) (3B · B2).
96
+ * Copia por llamada.
97
+ */
98
+ rolesFor(scopeType: ScopeType, ownerKeys: Iterable<string>): CatalogRole[];
99
+ /**
100
+ * Roles LOCALES cuyo owner es exactamente esa clave (3D · M4): lo que
101
+ * `scopes.detached` tiene que purgar para que el scope no deje roles
102
+ * huérfanos que bloqueen su `(slug, nivel)` para siempre. Copia por llamada.
103
+ */
104
+ rolesOwnedBy(ownerKey: string): CatalogRole[];
105
+ /** Roles que conceden el permiso (con su owner), agrupados por nivel (`scope_type`). Copia por llamada. */
106
+ rolesGranting(permissionUuid: string): Map<ScopeType, CatalogRoleRef[]>;
107
+ /** Slugs de permiso que concede el rol (por uuid); vacío si el rol no existe. Copia por llamada. */
108
+ rolePermissionsOf(roleUuid: string): Set<string>;
109
+ /** Slug del permiso por uuid, o `null` si el catálogo ya no lo declara (2.1, B5). */
110
+ permissionSlug(uuid: string): string | null;
111
+ /** Todos los slugs de permiso. */
112
+ readonly permissionSlugs: readonly string[];
113
+ /** El `rank` más alto entre los roles GLOBALES (0 sin roles): el techo de la delegación (3B · B3). */
114
+ readonly topGlobalRank: number;
115
+ /** Instante de carga (ms de pared, `systemClock`; informativo). */
116
+ readonly loadedAt: number;
117
+ /** Versión de `authz_catalog_version` con la que se cargó la foto. */
118
+ readonly version: number;
119
+ }
120
+ /**
121
+ * Invalida todos los memos del catálogo de este proceso. En otro proceso no
122
+ * hace nada: para eso está la fila compartida (`bumpAuthzCatalogVersion`).
123
+ */
124
+ export declare function invalidateAuthzCatalog(): void;
125
+ /** Deadline de cada consulta de carga (el mismo default que el catálogo). */
126
+ export declare const DEFAULT_CATALOG_CACHE_TIMEOUT_MS = 5000;
127
+ /** Lo mínimo que se necesita de un cliente de Lucid para leer la fila. */
128
+ export interface CatalogVersionClient {
129
+ from(table: string): any;
130
+ table(table: string): any;
131
+ }
132
+ /**
133
+ * El cliente de una TRANSACCIÓN de Lucid (o de knex): lo que `db.transaction`
134
+ * entrega a su callback. Se reconoce en tiempo de ejecución por
135
+ * `isTransaction === true`, que ambos ponen; el `db` global y un
136
+ * `QueryClient` suelto lo llevan a `false` (o no lo tienen) y se rechazan.
137
+ */
138
+ export interface CatalogVersionTransaction extends CatalogVersionClient {
139
+ isTransaction: boolean;
140
+ }
141
+ /**
142
+ * `catalog` (memo compartido) y `catalogRevalidate` juntos se contradicen
143
+ * (2E · I3, auditor 11): la política de revalidación es la del memo y se fija
144
+ * al construir el `CatalogCache`; el `catalogRevalidate` del driver se
145
+ * ignoraba en silencio. 500 al construir: config rota, no una pregunta. Lo
146
+ * llaman los dos drivers del paquete desde su constructor.
147
+ */
148
+ export declare function assertCatalogOptions(driver: string, options: {
149
+ catalog?: unknown;
150
+ catalogRevalidate?: unknown;
151
+ }): void;
152
+ /**
153
+ * Versión compartida del catálogo: la fila `authz_catalog_version`. Sin fila
154
+ * legible (semilla ausente, fila borrada, valor no numérico) es 503
155
+ * `E_AUTHZ_BACKEND_UNAVAILABLE` con «migración 2.0 no aplicada» (I1); sin
156
+ * TABLA se clasifica como el resto de fallos SQL (503).
157
+ */
158
+ export declare function readAuthzCatalogVersion(options?: {
159
+ client?: CatalogVersionClient;
160
+ driver?: string;
161
+ timeoutMs?: number;
162
+ }): Promise<number>;
163
+ /**
164
+ * Sube la versión compartida del catálogo: TODOS los memos de TODOS los
165
+ * procesos recargan en su siguiente pregunta (o al cerrar su ventana
166
+ * `everyMs`). Exige el cliente de la transacción que escribe `authz_*` (500
167
+ * `E_AUTHZ_CONFIG` sin él, 2E · H2) y tiene que ser su ÚLTIMA sentencia: lo
168
+ * garantiza `withAuthzCatalogWrite`, que es por donde escriben
169
+ * `syncAuthzCatalog` y cualquier seeder o migración de datos. Sin fila
170
+ * (semilla ausente) la crea; la carrera de dos procesos que la crean a la vez
171
+ * la resuelve la clave primaria: el perdedor vuelve a hacer UPDATE. Es SOLO el
172
+ * canal entre procesos: no toca el contador de este (con `everyMs`, hasta este
173
+ * proceso tarda una ventana en verlo; con `'always'`, la siguiente pregunta lo
174
+ * ve).
175
+ */
176
+ export declare function bumpAuthzCatalogVersion(trx: CatalogVersionTransaction, options?: {
177
+ driver?: string;
178
+ timeoutMs?: number;
179
+ }): Promise<void>;
180
+ /**
181
+ * Los roles LOCALES de esos owners leídos de la BASE, en fresco, con sus
182
+ * permisos (3E · P2, auditor A2 bis).
183
+ *
184
+ * `scopes.detached` decidía qué purgar con la foto del MEMO: con
185
+ * `catalogRevalidate: { everyMs }` —config legal y documentada— un rol que
186
+ * otro proceso acababa de confirmar no estaba en la foto y SOBREVIVÍA a la
187
+ * desaparición de su owner, bloqueando ese `(slug, nivel)` para el catálogo
188
+ * global para siempre. M2 ya había aprendido a releer la base dentro de la
189
+ * transacción; M4 no.
190
+ *
191
+ * Queda una ventana (un `defineScopedRole` confirmado entre este SELECT y la
192
+ * purga) que no cierra ningún cerrojo razonable: `purgeRole` abre su propia
193
+ * transacción con el cerrojo del catálogo y leer aquí dentro de otra sería
194
+ * un abrazo mortal con un pool de 1. Es una carrera que el tenant pierde de
195
+ * todas formas —define un rol en un scope que se está borrando— y la
196
+ * siguiente notificación (o `authz:reconcile`, 3b) lo recoge.
197
+ *
198
+ * El orden es ESTABLE por `uuid` (3F · U5, tester 3E · §4.3): sin `ORDER BY`
199
+ * lo ponía el motor, así que la secuencia de `role_purged` que ve el hook de
200
+ * auditoría —y el rol por el que empezaría una purga interrumpida a medias—
201
+ * cambiaba entre PostgreSQL, MySQL y SQLite. La policy de rango se comprueba
202
+ * sobre TODOS antes de tocar ninguno (3E · P3), así que el orden no decide
203
+ * QUÉ se purga; decide lo que se REPRODUCE. Con uuid v7 es además el orden
204
+ * de creación.
205
+ */
206
+ export declare function readRolesOwnedBy(ownerKeys: readonly string[], options?: {
207
+ timeoutMs?: number;
208
+ driver?: string;
209
+ }): Promise<Array<{
210
+ role: CatalogRole;
211
+ permissions: string[];
212
+ }>>;
213
+ export interface AuthzCatalogWriteOptions {
214
+ /** Etiqueta del driver en los errores 503 (default `catalog`). */
215
+ driver?: string;
216
+ /** Deadline de la subida de versión (default 5000): vencido ⇒ 503. */
217
+ timeoutMs?: number;
218
+ /** Conexión de Lucid sobre la que abrir la transacción (default: la del `db` global). */
219
+ connection?: string;
220
+ }
221
+ /**
222
+ * LA forma de escribir `authz_*` por fuera de `syncAuthzCatalog` (2E · H2):
223
+ * abre una transacción, ejecuta `fn(trx)` —tu escritura, con ESE cliente— y
224
+ * sube `authz_catalog_version` como última sentencia, dentro. O se confirma
225
+ * todo (datos nuevos + versión nueva) o nada: un memo de otro proceso nunca
226
+ * puede leer la versión nueva con los datos viejos. Devuelve lo que devuelva
227
+ * `fn`. Si `fn` lanza, la transacción se revierte, la versión no sube y su
228
+ * error sale tal cual (es tuyo) — salvo que sea un error del cliente SQL
229
+ * (2.5-B · K12), que se clasifica como 503 igual que un fallo al abrir o
230
+ * confirmar la transacción. NO te tragues errores de SQL dentro de `fn`: en
231
+ * PostgreSQL la transacción queda abortada y todo lo que sigue falla; en
232
+ * MySQL y SQLite el motor no la aborta y lo que sigue SE CONFIRMA.
233
+ *
234
+ * Es solo el canal entre procesos (la fila): en este proceso la siguiente
235
+ * pregunta lo ve con `'always'` y, con `{ everyMs }`, al cerrar la ventana —
236
+ * `syncAuthzCatalog` además invalida en memoria; hazlo tú con
237
+ * `invalidateAuthzCatalog()` si usas `everyMs` y lo necesitas al instante.
238
+ *
239
+ * await withAuthzCatalogWrite(async (trx) => {
240
+ * await trx.from('authz_role_permissions').where('role_uuid', role).delete()
241
+ * })
242
+ */
243
+ export declare function withAuthzCatalogWrite<T>(fn: (trx: TransactionClientContract) => Promise<T>, options?: AuthzCatalogWriteOptions): Promise<T>;
244
+ /** Política de revalidación contra la fila compartida (2D · F1). */
245
+ export type CatalogRevalidate = 'always' | {
246
+ everyMs: number;
247
+ };
248
+ export interface CatalogCacheOptions {
249
+ /**
250
+ * Cuándo contrastar la foto con `authz_catalog_version`: `'always'`
251
+ * (default) en cada `view()` —un SELECT por clave primaria—; `{ everyMs }`
252
+ * como mucho una vez por ventana. Con ventana, un sync de OTRO proceso
253
+ * tarda hasta `everyMs` en verse: es una ventana acotada de revocación
254
+ * fail-open que se acepta a sabiendas (el sync de ESTE proceso se ve al
255
+ * instante igualmente).
256
+ */
257
+ revalidate?: CatalogRevalidate;
258
+ /** Deadline de cada consulta de carga y revalidación (default 5000): vencido ⇒ 503. */
259
+ timeoutMs?: number;
260
+ /** Etiqueta del driver en los errores 503 (default `catalog`). */
261
+ driver?: string;
262
+ /**
263
+ * SOLO TESTS: fuente del reloj MONÓTONO (ms) con el que se mide la ventana
264
+ * `everyMs` (default `performance.now`, 2E · H3): un reloj de pared que
265
+ * retrocede —NTP, snapshot— no alarga la ventana. En producción no se toca.
266
+ */
267
+ now?: () => number;
268
+ }
269
+ export declare class CatalogCache {
270
+ #private;
271
+ constructor(options?: CatalogCacheOptions);
272
+ /**
273
+ * La foto vigente. Sin foto, o invalidada en este proceso ⇒ carga (las
274
+ * llamadas concurrentes comparten la misma promesa: un arranque con cien
275
+ * requests no dispara cien cargas). Con foto ⇒ se contrasta su versión
276
+ * con la fila compartida (según `revalidate`; las comprobaciones
277
+ * concurrentes también comparten promesa) y, si la base va por delante,
278
+ * recarga. Una carga o comprobación que falla (503, clasificado por
279
+ * `guardSql`) no deja nada cacheado ni servido: la siguiente pregunta
280
+ * vuelve a intentarlo.
281
+ */
282
+ view(): Promise<CatalogView>;
283
+ /**
284
+ * Olvida la foto de ESTE memo. La siguiente pregunta recarga. Es un bump
285
+ * de generación, no un `#view = null`: una carga en vuelo capturó la
286
+ * generación anterior y su foto aterriza ya vieja (F4, CR2).
287
+ */
288
+ invalidate(): void;
289
+ /** ¿Hay una foto cargada y vigente para este proceso? (Observabilidad para tests y diagnóstico; no consulta la base.) */
290
+ get loaded(): boolean;
291
+ }
292
+ /**
293
+ * `assignable_at` tal como viene de la base: `NULL` = cualquier nivel; si
294
+ * no, un JSON con una lista no vacía de tipos de scope válidos. Otra cosa
295
+ * (una edición a mano) es catálogo corrupto: 500 `E_AUTHZ_INTERNAL`, nunca
296
+ * «cualquiera» (sería relajar una restricción en silencio) ni «ninguno»
297
+ * disfrazado de dato.
298
+ */
299
+ export declare function parseAssignableAt(slug: string, raw: unknown): readonly ScopeType[] | null;
300
+ //# sourceMappingURL=catalog_cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog_cache.d.ts","sourceRoot":"","sources":["../../src/catalog_cache.ts"],"names":[],"mappings":"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"}