@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
|
@@ -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,5 +1,5 @@
|
|
|
1
1
|
import type { ClientBatchCheckItem, ClientBatchCheckSingleResponse } from '@openfga/sdk';
|
|
2
|
-
import type { AuthorizationDriver, CatalogProjection, DenyRef, GrantOptions, GrantOutcome, HolderTypeMap, ReconcileFactPage, ReconcileOptions, ReconcileReport, ReconcileSource, RoleQuery, ScopeChainResolver, ScopeOutbox, ScopeRef, ScopeType, SubjectRef } from '../types.js';
|
|
2
|
+
import type { AuthorizationDriver, CatalogProjection, DenyRef, GrantOptions, GrantOutcome, HolderTypeMap, ReconcileFactPage, ReconcileOptions, ReconcileReport, ReconcileSource, RoleQuery, ScopeChainResolver, ScopeOutbox, ScopeRef, ScopeType, SubjectRef, WriteOptions } from '../types.js';
|
|
3
3
|
import { CatalogCache } from '../catalog/catalog_cache.js';
|
|
4
4
|
import type { CatalogRevalidate, CatalogRoleRef } from '../catalog/catalog_cache.js';
|
|
5
5
|
import { assertHolderTypes } from './openfga_facts.js';
|
|
@@ -89,8 +89,10 @@ export declare function correlateBatchResults(checks: ClientBatchCheckItem[], re
|
|
|
89
89
|
*
|
|
90
90
|
* Los permisos entran aquí porque el modelo (c2r) declara CUATRO relaciones
|
|
91
91
|
* por permiso: un store provisionado sin ellos no puede responder a ninguna
|
|
92
|
-
* pregunta. `assertFactsModelPublishable` comprueba
|
|
93
|
-
*
|
|
92
|
+
* pregunta. `assertFactsModelPublishable` comprueba las cotas (nombre de
|
|
93
|
+
* relación y techo de 262.144 bytes ⇒ 500 `E_AUTHZ_MODEL_TOO_LARGE`) **antes
|
|
94
|
+
* de crear el store** (2.4.0-alpha.4): un catálogo impublicable no deja un
|
|
95
|
+
* store huérfano ni sale como error crudo del SDK.
|
|
94
96
|
* Añadir un permiso al catálogo obliga a republicar el modelo: es lo que
|
|
95
97
|
* hace `syncAuthzCatalog` con la proyección inyectada, y por eso el modelo
|
|
96
98
|
* versionado del store se escribe con `--store-id`.
|
|
@@ -269,6 +271,7 @@ export declare class OpenFgaAuthorizationDriver implements AuthorizationDriver {
|
|
|
269
271
|
countRoleAssignments: true;
|
|
270
272
|
canonicalScopeReads: false;
|
|
271
273
|
enumerateFacts: true;
|
|
274
|
+
transactionalWrites: false;
|
|
272
275
|
}>;
|
|
273
276
|
private client;
|
|
274
277
|
private chainResolver;
|
|
@@ -403,6 +406,18 @@ export declare class OpenFgaAuthorizationDriver implements AuthorizationDriver {
|
|
|
403
406
|
* lo lanza `batchCheckAll` antes de mirar un solo `allowed`.
|
|
404
407
|
*/
|
|
405
408
|
private factsAuthorizeMany;
|
|
409
|
+
/**
|
|
410
|
+
* **`{ transaction }` se rechaza también AQUÍ** (L-5, defensa en
|
|
411
|
+
* profundidad como F-05 en L-0): la puerta 1 vive en el manager, pero
|
|
412
|
+
* `manager.driver()` es la salida documentada de las barreras y por ahí un
|
|
413
|
+
* `{ transaction }` llegaría al driver; sin esta guarda el driver
|
|
414
|
+
* escribiría la tupla en el store IGNORANDO la transacción — una escritura
|
|
415
|
+
* que finge ir en tu transacción y no se deshace con tu rollback, que es
|
|
416
|
+
* exactamente el fail-open que `transactionalWrites: false` declara no
|
|
417
|
+
* poder evitar. Primera línea de las cuatro escrituras, antes de la
|
|
418
|
+
* identidad, del catálogo y del store: CERO llamadas al cliente.
|
|
419
|
+
*/
|
|
420
|
+
private rejectTransaction;
|
|
406
421
|
grant(subject: SubjectRef, role: RoleQuery, scope: ScopeRef, options?: GrantOptions): Promise<GrantOutcome>;
|
|
407
422
|
/**
|
|
408
423
|
* Write directo de la asignación CON su estructura (3b-2f · R3); si algo ya
|
|
@@ -430,10 +445,10 @@ export declare class OpenFgaAuthorizationDriver implements AuthorizationDriver {
|
|
|
430
445
|
* que quien no pueda seguir sin él lo propague.
|
|
431
446
|
*/
|
|
432
447
|
private readAssignment;
|
|
433
|
-
revoke(subject: SubjectRef, role: RoleQuery, scope: ScopeRef): Promise<void>;
|
|
448
|
+
revoke(subject: SubjectRef, role: RoleQuery, scope: ScopeRef, options?: WriteOptions): Promise<void>;
|
|
434
449
|
hasRole(subject: SubjectRef, role: RoleQuery, scope: ScopeRef): Promise<boolean>;
|
|
435
|
-
deny(subject: SubjectRef, permission: string, scope: ScopeRef): Promise<void>;
|
|
436
|
-
removeDeny(subject: SubjectRef, permission: string, scope: ScopeRef): Promise<void>;
|
|
450
|
+
deny(subject: SubjectRef, permission: string, scope: ScopeRef, options?: WriteOptions): Promise<void>;
|
|
451
|
+
removeDeny(subject: SubjectRef, permission: string, scope: ScopeRef, options?: WriteOptions): Promise<void>;
|
|
437
452
|
/**
|
|
438
453
|
* El hecho de un deny (3b-2c): una relación DEL SCOPE,
|
|
439
454
|
* `scope:<key>#denied_<P>@<holder>`. Así el modelo lo hereda hacia abajo
|
|
@@ -931,7 +946,10 @@ export declare class OpenFgaAuthorizationDriver implements AuthorizationDriver {
|
|
|
931
946
|
* es justo la decisión que no se estaba tomando.
|
|
932
947
|
*
|
|
933
948
|
* Consecuencia buscada: con el store como origen, `wanted` describe lo que
|
|
934
|
-
* el store YA tiene, así que la pasada no escribe
|
|
949
|
+
* el store YA tiene, así que la pasada no escribe hechos —con `--prune` sí
|
|
950
|
+
* BORRA los que `wanted` ya no respalda: los de scopes que ya no resuelven,
|
|
951
|
+
* los caducados, los de roles/permisos retirados y los que sobran; alpha.10—
|
|
952
|
+
* y
|
|
935
953
|
* sí rehace lo DERIVADO (marcador, catálogo, árbol) y aplica el barrido de
|
|
936
954
|
* visibilidad del invariante 18 con el árbol y el catálogo de HOY, que es
|
|
937
955
|
* la reparación que el invariante promete y no existía.
|
|
@@ -992,9 +1010,19 @@ export declare class OpenFgaAuthorizationDriver implements AuthorizationDriver {
|
|
|
992
1010
|
/**
|
|
993
1011
|
* El store ENTERO, con la caducidad de cada tupla. Un `Read` sin filtro es
|
|
994
1012
|
* la única forma de ver lo que SOBRA —incluida la basura de una versión
|
|
995
|
-
* anterior, cuyos tipos el modelo de hoy ni declara
|
|
996
|
-
*
|
|
997
|
-
* se
|
|
1013
|
+
* anterior de ESTE subsistema, cuyos tipos el modelo de hoy ni declara
|
|
1014
|
+
* (`deny_binding`: se lee y se borra, comprobado contra el servidor)—:
|
|
1015
|
+
* filtrando por objeto solo se ve lo que ya se sabe que existe, y filtrar
|
|
1016
|
+
* por TIPO es un 400 del servidor si no se nombra también el `user`
|
|
1017
|
+
* (medido, v1.19.0), que es justo lo que esta pasada busca.
|
|
1018
|
+
*
|
|
1019
|
+
* Leerlo entero **no** significa que sea suyo (2.4.0-alpha.9 · B): con
|
|
1020
|
+
* `openfga` el store es COMPARTIDO con `relations/`, así que lo que sale de
|
|
1021
|
+
* aquí se clasifica por TIPO de objeto (`familyOfTuple` /
|
|
1022
|
+
* `OWN_FACTS_OBJECT_TYPES`) y lo ajeno se cuenta en `report.foreign` sin
|
|
1023
|
+
* tocarlo, ni siquiera con `--prune`. Sí ocupa la cota `maxTuples`: la foto
|
|
1024
|
+
* es del store, no de esta pasada. Paginado y acotado como todas las
|
|
1025
|
+
* enumeraciones.
|
|
998
1026
|
*/
|
|
999
1027
|
private readEveryTuple;
|
|
1000
1028
|
/**
|
|
@@ -1021,4 +1049,37 @@ export declare class OpenFgaAuthorizationDriver implements AuthorizationDriver {
|
|
|
1021
1049
|
*/
|
|
1022
1050
|
private readAllTuples;
|
|
1023
1051
|
}
|
|
1052
|
+
/**
|
|
1053
|
+
* **Los CUATRO tipos de objeto que el reconcile de HECHOS gobierna**
|
|
1054
|
+
* (2.4.0-alpha.9 · B; 🔴 3 del quinto informe de COGNITIV, panel del store
|
|
1055
|
+
* compartido, decisión del dueño del 2026-09-11 (2)).
|
|
1056
|
+
*
|
|
1057
|
+
* Con `openfga` los dos subsistemas del paquete —hechos y `relations/`—
|
|
1058
|
+
* comparten store, y esta pasada tiene que leerlo ENTERO (`Read({})` es la
|
|
1059
|
+
* única forma de ver lo que sobra). Mientras `familyOfTuple` tuvo un
|
|
1060
|
+
* catch-all (`return 'facts'`), toda tupla de relaciones caía en `extra` y
|
|
1061
|
+
* `--prune` la BORRABA: 60 de 60 medidas por el consumidor —`group`
|
|
1062
|
+
* incluido, que es el tipo de usersets que el generador emite SIEMPRE— y la
|
|
1063
|
+
* pasada destructiva reportaba `clean = true` con exit 0, porque borraba
|
|
1064
|
+
* justo lo que causaba el `extra-fact`.
|
|
1065
|
+
*
|
|
1066
|
+
* Por eso la lista es EXPLÍCITA y congelada, y no un «lo demás es mío»:
|
|
1067
|
+
* - `scope`, `role` y `role_binding` son los tipos vivos del modelo (c2r);
|
|
1068
|
+
* - `deny_binding` es el deny del modo `resolver` de 2.2: el modelo de hoy
|
|
1069
|
+
* ni lo declara, pero `enumerateFacts` lo LEE y lo emite como deny
|
|
1070
|
+
* (3b-8 · A2), así que es PROPIO aunque ya no se pueda escribir — y su
|
|
1071
|
+
* barrido es la promesa publicada de que un store de la versión anterior
|
|
1072
|
+
* se limpia en una pasada (medido: escribirla es 400, borrarla es 200).
|
|
1073
|
+
*
|
|
1074
|
+
* **NO es `RESERVED_FACTS_TYPES`** (`src/identity.ts`), que incluye `group`:
|
|
1075
|
+
* son dos conjuntos con nombres parecidos y propósitos distintos —«nadie
|
|
1076
|
+
* puede declarar esto como tipo de relaciones» vs. «esto lo gobierna esta
|
|
1077
|
+
* pasada»— y reutilizar el primero reproduce el defecto para los usersets.
|
|
1078
|
+
*
|
|
1079
|
+
* **Regla**: un tipo NUEVO del modelo `facts` entra aquí en el MISMO commit
|
|
1080
|
+
* en que se declara (y en `RESERVED_FACTS_TYPES`, para que
|
|
1081
|
+
* `defineRelationsConfig` grite al arrancar en vez de que esta pasada borre
|
|
1082
|
+
* en silencio los datos de quien ya usaba ese nombre).
|
|
1083
|
+
*/
|
|
1084
|
+
export declare const OWN_FACTS_OBJECT_TYPES: ReadonlySet<string>;
|
|
1024
1085
|
//# 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":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAA;AAkBxF,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EAGjB,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,EAGb,iBAAiB,EAEjB,gBAAgB,EAChB,eAAe,EAEf,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,
|
|
1
|
+
{"version":3,"file":"openfga_driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/openfga_driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { assertCatalogUuid, assertIdentity, assertScope, chainKeysFrom, isCatalo
|
|
|
8
8
|
import { resolveGrantExpiry, sameInstant, toExpiryDate } from '../expiry.js';
|
|
9
9
|
import { assertKnownScope, canonicalScope, canonicalScopeTargets, guardSql, isAuthzError, isTimeoutLike, resolveChain, rootOnlyResolver, withDeadline, } from '../shared/backend_guard.js';
|
|
10
10
|
import { CatalogCache, GLOBAL_OWNER_KEY, assertCatalogOptions, isRoleVisibleWith, withAuthzCatalogWrite } from '../catalog/catalog_cache.js';
|
|
11
|
-
import { FACTS_ASSIGNEE_RELATION, FACTS_BINDING_RELATION, FACTS_BINDING_TYPE, FACTS_DENIED_PREFIX, FACTS_PARENT_RELATION, FACTS_PERMITS_PREFIX, FACTS_ROLE_RELATION, FACTS_ROLE_TYPE, FACTS_ROOTED_RELATION, FACTS_SCOPE_TYPE, assertFactsModelPublishable, assertHolderTypes, factsBindingObject, factsBindingTuples, factsCatalogTuples, factsDenyTuple, factsParentTuple, factsRelationsOf, factsRootTuples, factsScopeBindingTuple, factsScopeObject, factsTupleId, openFgaFactsModel, } from './openfga_facts.js';
|
|
11
|
+
import { FACTS_ASSIGNEE_RELATION, FACTS_BINDING_RELATION, FACTS_BINDING_TYPE, FACTS_DENIED_PREFIX, FACTS_GROUP_TYPE, FACTS_MAX_RESOLVE_DEPTH, FACTS_PARENT_RELATION, FACTS_PERMITS_PREFIX, FACTS_ROLE_RELATION, FACTS_ROLE_TYPE, FACTS_ROOTED_RELATION, FACTS_SCOPE_TYPE, assertFactsModelPublishable, assertHolderTypes, factsBindingObject, factsBindingTuples, factsCatalogTuples, factsDenyTuple, factsParentTuple, factsRelationsOf, factsRootTuples, factsScopeBindingTuple, factsScopeObject, factsTupleId, openFgaFactsModel, } from './openfga_facts.js';
|
|
12
12
|
import { readCatalogProjectionSnapshot } from '../catalog/catalog.js';
|
|
13
13
|
import { isSqliteDialect, sqlExpiryCodec } from '../shared/sql_expiry.js';
|
|
14
14
|
import { isClock, systemClock } from '../clock.js';
|
|
@@ -126,8 +126,10 @@ export function correlateBatchResults(checks, results) {
|
|
|
126
126
|
*
|
|
127
127
|
* Los permisos entran aquí porque el modelo (c2r) declara CUATRO relaciones
|
|
128
128
|
* por permiso: un store provisionado sin ellos no puede responder a ninguna
|
|
129
|
-
* pregunta. `assertFactsModelPublishable` comprueba
|
|
130
|
-
*
|
|
129
|
+
* pregunta. `assertFactsModelPublishable` comprueba las cotas (nombre de
|
|
130
|
+
* relación y techo de 262.144 bytes ⇒ 500 `E_AUTHZ_MODEL_TOO_LARGE`) **antes
|
|
131
|
+
* de crear el store** (2.4.0-alpha.4): un catálogo impublicable no deja un
|
|
132
|
+
* store huérfano ni sale como error crudo del SDK.
|
|
131
133
|
* Añadir un permiso al catálogo obliga a republicar el modelo: es lo que
|
|
132
134
|
* hace `syncAuthzCatalog` con la proyección inyectada, y por eso el modelo
|
|
133
135
|
* versionado del store se escribe con `--store-id`.
|
|
@@ -141,11 +143,19 @@ export function correlateBatchResults(checks, results) {
|
|
|
141
143
|
* found»). El gate de bytes mide el modelo FUSIONADO.
|
|
142
144
|
*/
|
|
143
145
|
export async function provisionOpenFgaStore(apiUrl, name, holderTypeMap, permissions, relations) {
|
|
146
|
+
// El modelo se construye y se VALIDA antes de crear el store (2.4.0-alpha.4,
|
|
147
|
+
// ⚪ 7 del auditor): hasta alpha.3 el `createStore` iba primero, así que un
|
|
148
|
+
// catálogo inválido (slugs que colisionan, `holderTypes` no inyectivo) o
|
|
149
|
+
// que desborda el techo de bytes dejaba un store HUÉRFANO sin modelo en el
|
|
150
|
+
// servidor por cada intento, y el techo llegaba como error crudo del SDK
|
|
151
|
+
// en vez de 500 `E_AUTHZ_MODEL_TOO_LARGE`. Cero requests si no es publicable.
|
|
152
|
+
assertFactsModelPublishable(holderTypeMap, permissions, undefined, relations);
|
|
153
|
+
const model = openFgaFactsModel(holderTypeMap, permissions, relations);
|
|
144
154
|
const client = new OpenFgaClient({ apiUrl });
|
|
145
155
|
const store = await client.createStore({ name });
|
|
146
156
|
const scoped = new OpenFgaClient({ apiUrl, storeId: store.id });
|
|
147
|
-
const
|
|
148
|
-
return { storeId: store.id, modelId:
|
|
157
|
+
const written = await scoped.writeAuthorizationModel(model);
|
|
158
|
+
return { storeId: store.id, modelId: written.authorization_model_id };
|
|
149
159
|
}
|
|
150
160
|
/**
|
|
151
161
|
* ¿El error (o su cadena de causas) es el rechazo de FGA a escribir una tuple
|
|
@@ -359,6 +369,21 @@ export class OpenFgaAuthorizationDriver {
|
|
|
359
369
|
// 3b-3b: sabe ser el ORIGEN de una migración — sus hechos son tuplas
|
|
360
370
|
// del store, y solo él sabe volverlas a `(holder, rol, scope)`.
|
|
361
371
|
enumerateFacts: true,
|
|
372
|
+
// L-2/L-5 (panel `{trx}`, (C)): `false` EXPLÍCITO, y no puede ser otra
|
|
373
|
+
// cosa — una tupla no entra en una transacción SQL: el store es otro
|
|
374
|
+
// servicio y no hay 2PC, así que «los dos o ninguno» con la transacción
|
|
375
|
+
// del consumidor es una promesa que este driver no puede hacer, y no la
|
|
376
|
+
// hace. `{ transaction }` es 500 `E_AUTHZ_UNSUPPORTED` por llamada, en
|
|
377
|
+
// el manager (puerta 1) Y en el driver (`rejectTransaction`, para quien
|
|
378
|
+
// entre por `manager.driver()`), con CERO llamadas al store (L-5 lo
|
|
379
|
+
// fija contra el `:8101` con espía sobre el cliente). La alternativa
|
|
380
|
+
// que SÍ existe es para el ÁRBOL: `scopes.outbox` encola el cambio en
|
|
381
|
+
// tu transacción y `authz:scopes:relay` lo aplica al store. Para HECHOS
|
|
382
|
+
// (grant/deny) no hay outbox: el panel la descartó (fail-open medido
|
|
383
|
+
// durante el lag); el consumidor lee esta capacidad y ajusta (usa
|
|
384
|
+
// `database` para lo que tenga que ir en su transacción, o
|
|
385
|
+
// `requireTransactionalWrites` para fallar al arrancar).
|
|
386
|
+
transactionalWrites: false,
|
|
362
387
|
});
|
|
363
388
|
}
|
|
364
389
|
client;
|
|
@@ -628,7 +653,24 @@ export class OpenFgaAuthorizationDriver {
|
|
|
628
653
|
const results = await this.batchCheckAll(batch);
|
|
629
654
|
return slots.map((item) => results[item].allowed === true);
|
|
630
655
|
}
|
|
656
|
+
/**
|
|
657
|
+
* **`{ transaction }` se rechaza también AQUÍ** (L-5, defensa en
|
|
658
|
+
* profundidad como F-05 en L-0): la puerta 1 vive en el manager, pero
|
|
659
|
+
* `manager.driver()` es la salida documentada de las barreras y por ahí un
|
|
660
|
+
* `{ transaction }` llegaría al driver; sin esta guarda el driver
|
|
661
|
+
* escribiría la tupla en el store IGNORANDO la transacción — una escritura
|
|
662
|
+
* que finge ir en tu transacción y no se deshace con tu rollback, que es
|
|
663
|
+
* exactamente el fail-open que `transactionalWrites: false` declara no
|
|
664
|
+
* poder evitar. Primera línea de las cuatro escrituras, antes de la
|
|
665
|
+
* identidad, del catálogo y del store: CERO llamadas al cliente.
|
|
666
|
+
*/
|
|
667
|
+
rejectTransaction(operation, options) {
|
|
668
|
+
if (options?.transaction === undefined || options.transaction === null)
|
|
669
|
+
return;
|
|
670
|
+
throw UnsupportedOperationError.transactionalDriver(operation, 'openfga', 'roles');
|
|
671
|
+
}
|
|
631
672
|
async grant(subject, role, scope, options = {}) {
|
|
673
|
+
this.rejectTransaction('grant', options);
|
|
632
674
|
assertIdentity({ subject, role, scope, expiresAt: options.expiresAt });
|
|
633
675
|
// El binding lleva la identidad canónica del árbol (K1), nunca la forma
|
|
634
676
|
// del llamante, y el uuid del rol, nunca su slug (3A · A1). El rol tiene
|
|
@@ -817,7 +859,8 @@ export class OpenFgaAuthorizationDriver {
|
|
|
817
859
|
return { kind: 'unknown', error };
|
|
818
860
|
}
|
|
819
861
|
}
|
|
820
|
-
async revoke(subject, role, scope) {
|
|
862
|
+
async revoke(subject, role, scope, options) {
|
|
863
|
+
this.rejectTransaction('revoke', options);
|
|
821
864
|
assertIdentity({ subject, role, scope });
|
|
822
865
|
// Rol fuera del catálogo para ese nivel ⇒ 422, como en `grant` (D10). Se
|
|
823
866
|
// quitan los bindings de TODOS los roles con ese nombre en el scope
|
|
@@ -855,7 +898,8 @@ export class OpenFgaAuthorizationDriver {
|
|
|
855
898
|
})));
|
|
856
899
|
return results.some((r) => r.allowed);
|
|
857
900
|
}
|
|
858
|
-
async deny(subject, permission, scope) {
|
|
901
|
+
async deny(subject, permission, scope, options) {
|
|
902
|
+
this.rejectTransaction('deny', options);
|
|
859
903
|
assertIdentity({ subject, permission, scope });
|
|
860
904
|
const perm = await this.findPermission(permission);
|
|
861
905
|
if (!perm)
|
|
@@ -865,7 +909,8 @@ export class OpenFgaAuthorizationDriver {
|
|
|
865
909
|
conflict: { onDuplicateWrites: ClientWriteRequestOnDuplicateWrites.Ignore },
|
|
866
910
|
});
|
|
867
911
|
}
|
|
868
|
-
async removeDeny(subject, permission, scope) {
|
|
912
|
+
async removeDeny(subject, permission, scope, options) {
|
|
913
|
+
this.rejectTransaction('removeDeny', options);
|
|
869
914
|
assertIdentity({ subject, permission, scope });
|
|
870
915
|
const perm = await this.findPermission(permission);
|
|
871
916
|
if (!perm)
|
|
@@ -2016,6 +2061,18 @@ export class OpenFgaAuthorizationDriver {
|
|
|
2016
2061
|
chains.set(key, null);
|
|
2017
2062
|
return null;
|
|
2018
2063
|
};
|
|
2064
|
+
// **Las cadenas que superan el techo** (alpha.5 · R0, tester 4-6): el
|
|
2065
|
+
// verificador ya camina el árbol, así que lo dice aquí y no en el primer
|
|
2066
|
+
// tenant que lo alcance. Un solo mando: `scopes.maxDepth` del config si
|
|
2067
|
+
// llega, y si no la cota MEDIDA del modelo (22 saltos).
|
|
2068
|
+
const maxDepth = reconcileMaxDepth(source.maxDepth);
|
|
2069
|
+
const tooDeep = [];
|
|
2070
|
+
for (const key of parentOf.keys()) {
|
|
2071
|
+
const chain = chainOf(key);
|
|
2072
|
+
if (chain !== null && chain.length - 1 > maxDepth)
|
|
2073
|
+
tooDeep.push(key);
|
|
2074
|
+
}
|
|
2075
|
+
tooDeep.sort();
|
|
2019
2076
|
// 4. Los HECHOS, **de quien sea su fuente de verdad** (3b-5). `authz_*`
|
|
2020
2077
|
// lo es en la MIGRACIÓN `database` → `openfga`, y por eso esa
|
|
2021
2078
|
// dirección es la vía de salida de un store escrito por otra versión.
|
|
@@ -2044,6 +2101,8 @@ export class OpenFgaAuthorizationDriver {
|
|
|
2044
2101
|
roleVisibility: 0,
|
|
2045
2102
|
pendingRelay: 0,
|
|
2046
2103
|
deadRelay: 0,
|
|
2104
|
+
tooDeep,
|
|
2105
|
+
tooDeepLimit: maxDepth,
|
|
2047
2106
|
};
|
|
2048
2107
|
const deletes = [];
|
|
2049
2108
|
const writes = [];
|
|
@@ -2051,11 +2110,25 @@ export class OpenFgaAuthorizationDriver {
|
|
|
2051
2110
|
const parents = new Map();
|
|
2052
2111
|
/** Bindings que el store YA conoce (tienen `assignee`): ver `drift.roleVisibility`. */
|
|
2053
2112
|
const storeBindings = new Set();
|
|
2113
|
+
/**
|
|
2114
|
+
* **Lo AJENO del store COMPARTIDO** (alpha.9 · B): tuplas cuyo tipo de
|
|
2115
|
+
* objeto no gobierna esta pasada. Se cuentan aparte —fuera de `skipped`,
|
|
2116
|
+
* fuera de `details` y fuera de `phases`— y salen del bucle ANTES de
|
|
2117
|
+
* cualquier `deletes.push` o `phases[...]`.
|
|
2118
|
+
*/
|
|
2119
|
+
const foreignTypes = new Map();
|
|
2120
|
+
let foreignTuples = 0;
|
|
2054
2121
|
for (const tuple of current) {
|
|
2055
2122
|
const id = factsTupleId(tuple);
|
|
2123
|
+
const family = familyOfTuple(tuple);
|
|
2124
|
+
if (family === 'foreign') {
|
|
2125
|
+
foreignTuples += 1;
|
|
2126
|
+
const type = objectTypeOf(tuple.object);
|
|
2127
|
+
foreignTypes.set(type, (foreignTypes.get(type) ?? 0) + 1);
|
|
2128
|
+
continue;
|
|
2129
|
+
}
|
|
2056
2130
|
if (tuple.relation === FACTS_ASSIGNEE_RELATION)
|
|
2057
2131
|
storeBindings.add(tuple.object);
|
|
2058
|
-
const family = familyOfTuple(tuple);
|
|
2059
2132
|
if (tuple.relation === FACTS_PARENT_RELATION && tuple.object.startsWith(`${FACTS_SCOPE_TYPE}:`)) {
|
|
2060
2133
|
parents.set(tuple.object, (parents.get(tuple.object) ?? 0) + 1);
|
|
2061
2134
|
}
|
|
@@ -2140,6 +2213,7 @@ export class OpenFgaAuthorizationDriver {
|
|
|
2140
2213
|
cycles,
|
|
2141
2214
|
drift,
|
|
2142
2215
|
massDelete,
|
|
2216
|
+
foreign: foreignReport(foreignTuples, foreignTypes, source.relationTypes),
|
|
2143
2217
|
};
|
|
2144
2218
|
}
|
|
2145
2219
|
/**
|
|
@@ -2388,7 +2462,10 @@ export class OpenFgaAuthorizationDriver {
|
|
|
2388
2462
|
* es justo la decisión que no se estaba tomando.
|
|
2389
2463
|
*
|
|
2390
2464
|
* Consecuencia buscada: con el store como origen, `wanted` describe lo que
|
|
2391
|
-
* el store YA tiene, así que la pasada no escribe
|
|
2465
|
+
* el store YA tiene, así que la pasada no escribe hechos —con `--prune` sí
|
|
2466
|
+
* BORRA los que `wanted` ya no respalda: los de scopes que ya no resuelven,
|
|
2467
|
+
* los caducados, los de roles/permisos retirados y los que sobran; alpha.10—
|
|
2468
|
+
* y
|
|
2392
2469
|
* sí rehace lo DERIVADO (marcador, catálogo, árbol) y aplica el barrido de
|
|
2393
2470
|
* visibilidad del invariante 18 con el árbol y el catálogo de HOY, que es
|
|
2394
2471
|
* la reparación que el invariante promete y no existía.
|
|
@@ -2691,9 +2768,19 @@ export class OpenFgaAuthorizationDriver {
|
|
|
2691
2768
|
/**
|
|
2692
2769
|
* El store ENTERO, con la caducidad de cada tupla. Un `Read` sin filtro es
|
|
2693
2770
|
* la única forma de ver lo que SOBRA —incluida la basura de una versión
|
|
2694
|
-
* anterior, cuyos tipos el modelo de hoy ni declara
|
|
2695
|
-
*
|
|
2696
|
-
* se
|
|
2771
|
+
* anterior de ESTE subsistema, cuyos tipos el modelo de hoy ni declara
|
|
2772
|
+
* (`deny_binding`: se lee y se borra, comprobado contra el servidor)—:
|
|
2773
|
+
* filtrando por objeto solo se ve lo que ya se sabe que existe, y filtrar
|
|
2774
|
+
* por TIPO es un 400 del servidor si no se nombra también el `user`
|
|
2775
|
+
* (medido, v1.19.0), que es justo lo que esta pasada busca.
|
|
2776
|
+
*
|
|
2777
|
+
* Leerlo entero **no** significa que sea suyo (2.4.0-alpha.9 · B): con
|
|
2778
|
+
* `openfga` el store es COMPARTIDO con `relations/`, así que lo que sale de
|
|
2779
|
+
* aquí se clasifica por TIPO de objeto (`familyOfTuple` /
|
|
2780
|
+
* `OWN_FACTS_OBJECT_TYPES`) y lo ajeno se cuenta en `report.foreign` sin
|
|
2781
|
+
* tocarlo, ni siquiera con `--prune`. Sí ocupa la cota `maxTuples`: la foto
|
|
2782
|
+
* es del store, no de esta pasada. Paginado y acotado como todas las
|
|
2783
|
+
* enumeraciones.
|
|
2697
2784
|
*/
|
|
2698
2785
|
async readEveryTuple(maxTuples) {
|
|
2699
2786
|
const out = [];
|
|
@@ -2816,17 +2903,72 @@ export class OpenFgaAuthorizationDriver {
|
|
|
2816
2903
|
/* ── `authz:reconcile` (3b-3a): piezas puras ────────────────────────────── */
|
|
2817
2904
|
/** Tope de páginas de `scopes.enumerateEdges` (10 000 000 de nodos a 100). */
|
|
2818
2905
|
const RECONCILE_MAX_PAGES = 100_000;
|
|
2906
|
+
/**
|
|
2907
|
+
* **Los CUATRO tipos de objeto que el reconcile de HECHOS gobierna**
|
|
2908
|
+
* (2.4.0-alpha.9 · B; 🔴 3 del quinto informe de COGNITIV, panel del store
|
|
2909
|
+
* compartido, decisión del dueño del 2026-09-11 (2)).
|
|
2910
|
+
*
|
|
2911
|
+
* Con `openfga` los dos subsistemas del paquete —hechos y `relations/`—
|
|
2912
|
+
* comparten store, y esta pasada tiene que leerlo ENTERO (`Read({})` es la
|
|
2913
|
+
* única forma de ver lo que sobra). Mientras `familyOfTuple` tuvo un
|
|
2914
|
+
* catch-all (`return 'facts'`), toda tupla de relaciones caía en `extra` y
|
|
2915
|
+
* `--prune` la BORRABA: 60 de 60 medidas por el consumidor —`group`
|
|
2916
|
+
* incluido, que es el tipo de usersets que el generador emite SIEMPRE— y la
|
|
2917
|
+
* pasada destructiva reportaba `clean = true` con exit 0, porque borraba
|
|
2918
|
+
* justo lo que causaba el `extra-fact`.
|
|
2919
|
+
*
|
|
2920
|
+
* Por eso la lista es EXPLÍCITA y congelada, y no un «lo demás es mío»:
|
|
2921
|
+
* - `scope`, `role` y `role_binding` son los tipos vivos del modelo (c2r);
|
|
2922
|
+
* - `deny_binding` es el deny del modo `resolver` de 2.2: el modelo de hoy
|
|
2923
|
+
* ni lo declara, pero `enumerateFacts` lo LEE y lo emite como deny
|
|
2924
|
+
* (3b-8 · A2), así que es PROPIO aunque ya no se pueda escribir — y su
|
|
2925
|
+
* barrido es la promesa publicada de que un store de la versión anterior
|
|
2926
|
+
* se limpia en una pasada (medido: escribirla es 400, borrarla es 200).
|
|
2927
|
+
*
|
|
2928
|
+
* **NO es `RESERVED_FACTS_TYPES`** (`src/identity.ts`), que incluye `group`:
|
|
2929
|
+
* son dos conjuntos con nombres parecidos y propósitos distintos —«nadie
|
|
2930
|
+
* puede declarar esto como tipo de relaciones» vs. «esto lo gobierna esta
|
|
2931
|
+
* pasada»— y reutilizar el primero reproduce el defecto para los usersets.
|
|
2932
|
+
*
|
|
2933
|
+
* **Regla**: un tipo NUEVO del modelo `facts` entra aquí en el MISMO commit
|
|
2934
|
+
* en que se declara (y en `RESERVED_FACTS_TYPES`, para que
|
|
2935
|
+
* `defineRelationsConfig` grite al arrancar en vez de que esta pasada borre
|
|
2936
|
+
* en silencio los datos de quien ya usaba ese nombre).
|
|
2937
|
+
*/
|
|
2938
|
+
export const OWN_FACTS_OBJECT_TYPES = Object.freeze(new Set([FACTS_SCOPE_TYPE, FACTS_ROLE_TYPE, FACTS_BINDING_TYPE, LEGACY_DENY_BINDING_TYPE]));
|
|
2939
|
+
/**
|
|
2940
|
+
* El TIPO de objeto de una tupla (`scope:app` ⇒ `scope`). Con `indexOf`, no
|
|
2941
|
+
* `split`: el id lleva `|` y lo elige el consumidor en las tuplas de
|
|
2942
|
+
* relaciones, y esto decide un `delete`. Un objeto sin `:` no es de nadie.
|
|
2943
|
+
*/
|
|
2944
|
+
function objectTypeOf(object) {
|
|
2945
|
+
const cut = object.indexOf(':');
|
|
2946
|
+
return cut < 0 ? '' : object.slice(0, cut);
|
|
2947
|
+
}
|
|
2819
2948
|
/**
|
|
2820
2949
|
* A qué FAMILIA pertenece una tupla del store, que es lo que decide si esta
|
|
2821
2950
|
* pasada puede borrarla por su cuenta:
|
|
2951
|
+
* - `foreign` = **de otro subsistema** (store COMPARTIDO): su tipo de objeto
|
|
2952
|
+
* no está en `OWN_FACTS_OBJECT_TYPES`. Ni se borra, ni es `extra`, ni
|
|
2953
|
+
* entra en `skipped`; se cuenta aparte y se reporta. **Se decide SOLO con
|
|
2954
|
+
* la lista congelada**: nada de `relations.config`, del modelo publicado
|
|
2955
|
+
* ni de una tabla — una lectura que falle no puede volver a convertir una
|
|
2956
|
+
* tupla ajena en borrable (y el proceso que corre el reconcile es justo
|
|
2957
|
+
* el que puede no tener esa config);
|
|
2822
2958
|
* - `root`, `catalog` y `tree` son ESPEJOS de datos locales (el `holderTypes`
|
|
2823
2959
|
* del config, `authz_roles`/`authz_permissions`, `scopes.enumerateEdges`)
|
|
2824
2960
|
* que nadie más escribe: lo que sobra se borra siempre;
|
|
2825
|
-
* -
|
|
2826
|
-
* `denied_<P>` y
|
|
2827
|
-
* `--prune`.
|
|
2961
|
+
* - el resto son HECHOS —`assignee`, las dos aristas de (c2), los
|
|
2962
|
+
* `denied_<P>` y la basura de un modelo anterior del PROPIO paquete— y
|
|
2963
|
+
* solo los borra `--prune`.
|
|
2964
|
+
*
|
|
2965
|
+
* El tipo de objeto se mira el PRIMERO, antes que la relación: una tupla
|
|
2966
|
+
* ajena que se llamara `rooted` no puede caer en una familia derivada, que
|
|
2967
|
+
* son las que se borran sin `--prune`.
|
|
2828
2968
|
*/
|
|
2829
2969
|
function familyOfTuple(tuple) {
|
|
2970
|
+
if (!OWN_FACTS_OBJECT_TYPES.has(objectTypeOf(tuple.object)))
|
|
2971
|
+
return 'foreign';
|
|
2830
2972
|
if (tuple.relation === FACTS_ROOTED_RELATION)
|
|
2831
2973
|
return 'root';
|
|
2832
2974
|
if (tuple.object.startsWith(`${FACTS_ROLE_TYPE}:`) && tuple.relation.startsWith(FACTS_PERMITS_PREFIX))
|
|
@@ -2835,6 +2977,34 @@ function familyOfTuple(tuple) {
|
|
|
2835
2977
|
return 'tree';
|
|
2836
2978
|
return 'facts';
|
|
2837
2979
|
}
|
|
2980
|
+
/**
|
|
2981
|
+
* **El censo de lo AJENO** (alpha.9 · B · S3/S4), campo PROPIO del reporte:
|
|
2982
|
+
* fuera de `skipped` —ahí dentro `clean` era `false` para siempre en
|
|
2983
|
+
* cualquier despliegue con relaciones, que es el corolario del 🔴 3— y fuera
|
|
2984
|
+
* de `details` (tope 200: miles de ajenas expulsarían los `extra-fact`
|
|
2985
|
+
* reales, que son los que conceden). `phases` NO crece: es tipo publicado.
|
|
2986
|
+
*
|
|
2987
|
+
* `relationTypes` —los tipos declarados en `relations.config`, que pone el
|
|
2988
|
+
* MANAGER— solo parte el reporte en «ajena DECLARADA» y «no la reclama
|
|
2989
|
+
* nadie»: **la decisión de borrar ya está tomada** por la lista blanca
|
|
2990
|
+
* congelada y no mira esto. Sin esa lista todo va a `unknown`, que es la
|
|
2991
|
+
* verdad (este proceso no sabe de quién son) y nunca un permiso para borrar.
|
|
2992
|
+
* `group` cuenta como declarado: lo emite SIEMPRE el generador de relaciones,
|
|
2993
|
+
* el consumidor no lo declara.
|
|
2994
|
+
*/
|
|
2995
|
+
function foreignReport(tuples, types, relationTypes) {
|
|
2996
|
+
const byType = {};
|
|
2997
|
+
for (const type of [...types.keys()].sort())
|
|
2998
|
+
byType[type] = types.get(type);
|
|
2999
|
+
if (relationTypes === undefined)
|
|
3000
|
+
return { tuples, types: byType, unknown: tuples };
|
|
3001
|
+
const declared = new Set([FACTS_GROUP_TYPE, ...relationTypes]);
|
|
3002
|
+
let relations = 0;
|
|
3003
|
+
for (const [type, count] of types)
|
|
3004
|
+
if (declared.has(type))
|
|
3005
|
+
relations += count;
|
|
3006
|
+
return { tuples, types: byType, relations, unknown: tuples - relations };
|
|
3007
|
+
}
|
|
2838
3008
|
/** La clave sola: un `delete` de FGA no lleva condición. */
|
|
2839
3009
|
function bareTuple(tuple) {
|
|
2840
3010
|
return { user: tuple.user, relation: tuple.relation, object: tuple.object };
|
|
@@ -2854,6 +3024,15 @@ function reconcileWriteForm(target) {
|
|
|
2854
3024
|
* arista que cierra el ciclo es la que se está clasificando, así que el mapa
|
|
2855
3025
|
* por el que se sube NUNCA tiene uno (el cinturón de `seen` es por si acaso).
|
|
2856
3026
|
*/
|
|
3027
|
+
/** El techo de profundidad del verificador: el del config, o la cota medida del modelo (500 si no es un entero ≥ 1). */
|
|
3028
|
+
function reconcileMaxDepth(declared) {
|
|
3029
|
+
if (declared === undefined)
|
|
3030
|
+
return FACTS_MAX_RESOLVE_DEPTH;
|
|
3031
|
+
if (!Number.isInteger(declared) || declared < 1) {
|
|
3032
|
+
throw new AuthorizationConfigError(`authz:reconcile: scopes.maxDepth debe ser un entero >= 1 (llegó ${String(declared)})`);
|
|
3033
|
+
}
|
|
3034
|
+
return declared;
|
|
3035
|
+
}
|
|
2857
3036
|
function walkUpTo(parentOf, from, target) {
|
|
2858
3037
|
const path = [];
|
|
2859
3038
|
const seen = new Set();
|