@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.
- package/LICENSE +1 -1
- package/README.md +417 -58
- package/build/commands/authz_catalog_diff.d.ts +28 -0
- package/build/commands/authz_catalog_diff.d.ts.map +1 -0
- package/build/commands/authz_catalog_diff.js +67 -0
- package/build/commands/authz_catalog_diff.js.map +1 -0
- package/build/commands/authz_catalog_sync.d.ts +20 -0
- package/build/commands/authz_catalog_sync.d.ts.map +1 -0
- package/build/commands/authz_catalog_sync.js +58 -0
- package/build/commands/authz_catalog_sync.js.map +1 -0
- package/build/commands/main.d.ts +2 -0
- package/build/commands/main.d.ts.map +1 -1
- package/build/commands/main.js +2 -0
- package/build/commands/main.js.map +1 -1
- package/build/commands/openfga_import.d.ts +8 -2
- package/build/commands/openfga_import.d.ts.map +1 -1
- package/build/commands/openfga_import.js +29 -6
- package/build/commands/openfga_import.js.map +1 -1
- package/build/commands/openfga_provision.d.ts.map +1 -1
- package/build/commands/openfga_provision.js +2 -1
- package/build/commands/openfga_provision.js.map +1 -1
- package/build/index.d.ts +45 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +37 -4
- package/build/index.js.map +1 -1
- package/build/src/catalog.d.ts +249 -2
- package/build/src/catalog.d.ts.map +1 -1
- package/build/src/catalog.js +709 -59
- package/build/src/catalog.js.map +1 -1
- package/build/src/catalog_cache.d.ts +300 -0
- package/build/src/catalog_cache.d.ts.map +1 -0
- package/build/src/catalog_cache.js +656 -0
- package/build/src/catalog_cache.js.map +1 -0
- package/build/src/clock.d.ts +24 -0
- package/build/src/clock.d.ts.map +1 -0
- package/build/src/clock.js +7 -0
- package/build/src/clock.js.map +1 -0
- package/build/src/define_config.d.ts +102 -6
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js.map +1 -1
- package/build/src/drivers/backend_guard.d.ts +92 -0
- package/build/src/drivers/backend_guard.d.ts.map +1 -0
- package/build/src/drivers/backend_guard.js +221 -0
- package/build/src/drivers/backend_guard.js.map +1 -0
- package/build/src/drivers/database_driver.d.ts +242 -15
- package/build/src/drivers/database_driver.d.ts.map +1 -1
- package/build/src/drivers/database_driver.js +692 -127
- package/build/src/drivers/database_driver.js.map +1 -1
- package/build/src/drivers/openfga_driver.d.ts +341 -27
- package/build/src/drivers/openfga_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_driver.js +1020 -271
- package/build/src/drivers/openfga_driver.js.map +1 -1
- package/build/src/drivers/sql_expiry.d.ts +53 -0
- package/build/src/drivers/sql_expiry.d.ts.map +1 -0
- package/build/src/drivers/sql_expiry.js +66 -0
- package/build/src/drivers/sql_expiry.js.map +1 -0
- package/build/src/errors.d.ts +333 -0
- package/build/src/errors.d.ts.map +1 -1
- package/build/src/errors.js +352 -0
- package/build/src/errors.js.map +1 -1
- package/build/src/expiry.d.ts +27 -0
- package/build/src/expiry.d.ts.map +1 -0
- package/build/src/expiry.js +50 -0
- package/build/src/expiry.js.map +1 -0
- package/build/src/hierarchical_resolver.d.ts +56 -0
- package/build/src/hierarchical_resolver.d.ts.map +1 -0
- package/build/src/hierarchical_resolver.js +87 -0
- package/build/src/hierarchical_resolver.js.map +1 -0
- package/build/src/identity.d.ts +155 -0
- package/build/src/identity.d.ts.map +1 -0
- package/build/src/identity.js +359 -0
- package/build/src/identity.js.map +1 -0
- package/build/src/manager.d.ts +225 -7
- package/build/src/manager.d.ts.map +1 -1
- package/build/src/manager.js +1670 -23
- package/build/src/manager.js.map +1 -1
- package/build/src/memoize_ancestors.d.ts +23 -0
- package/build/src/memoize_ancestors.d.ts.map +1 -0
- package/build/src/memoize_ancestors.js +42 -0
- package/build/src/memoize_ancestors.js.map +1 -0
- package/build/src/middleware/app_access_middleware.d.ts +8 -6
- package/build/src/middleware/app_access_middleware.d.ts.map +1 -1
- package/build/src/middleware/app_access_middleware.js +10 -26
- package/build/src/middleware/app_access_middleware.js.map +1 -1
- package/build/src/models/authz_assignment.d.ts +5 -5
- package/build/src/models/authz_assignment.d.ts.map +1 -1
- package/build/src/models/authz_deny.d.ts +5 -5
- package/build/src/models/authz_deny.d.ts.map +1 -1
- package/build/src/models/authz_permission.d.ts +11 -5
- package/build/src/models/authz_permission.d.ts.map +1 -1
- package/build/src/models/authz_permission.js +4 -0
- package/build/src/models/authz_permission.js.map +1 -1
- package/build/src/models/authz_role.d.ts +13 -6
- package/build/src/models/authz_role.d.ts.map +1 -1
- package/build/src/models/authz_role.js +6 -1
- package/build/src/models/authz_role.js.map +1 -1
- package/build/src/models/authz_role_permission.d.ts +5 -5
- package/build/src/models/authz_role_permission.d.ts.map +1 -1
- package/build/src/openfga.d.ts +13 -0
- package/build/src/openfga.d.ts.map +1 -0
- package/build/src/openfga.js +12 -0
- package/build/src/openfga.js.map +1 -0
- package/build/src/sql_descendants.d.ts +51 -0
- package/build/src/sql_descendants.d.ts.map +1 -0
- package/build/src/sql_descendants.js +129 -0
- package/build/src/sql_descendants.js.map +1 -0
- package/build/src/testing/contract.d.ts +138 -7
- package/build/src/testing/contract.d.ts.map +1 -1
- package/build/src/testing/contract.js +2946 -24
- package/build/src/testing/contract.js.map +1 -1
- package/build/src/testing/main.d.ts +4 -2
- package/build/src/testing/main.d.ts.map +1 -1
- package/build/src/testing/main.js +2 -1
- package/build/src/testing/main.js.map +1 -1
- package/build/src/testing/scope_tree.d.ts +65 -0
- package/build/src/testing/scope_tree.d.ts.map +1 -0
- package/build/src/testing/scope_tree.js +145 -0
- package/build/src/testing/scope_tree.js.map +1 -0
- package/build/src/traits/authz_scopes.d.ts +30 -6
- package/build/src/traits/authz_scopes.d.ts.map +1 -1
- package/build/src/traits/authz_scopes.js +30 -18
- package/build/src/traits/authz_scopes.js.map +1 -1
- package/build/src/traits/has_uuid.d.ts +5 -5
- package/build/src/traits/has_uuid.d.ts.map +1 -1
- package/build/src/types.d.ts +530 -28
- package/build/src/types.d.ts.map +1 -1
- package/build/src/types.js +10 -4
- package/build/src/types.js.map +1 -1
- package/build/stubs/config/app_acl.stub +4 -2
- package/build/stubs/config/authorization.stub +66 -12
- package/build/stubs/migration.stub +57 -13
- package/package.json +11 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database_driver.js","sourceRoot":"","sources":["../../../src/drivers/database_driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAQnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAKvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,sCAAsC,CAAA;AAEvE,SAAS,aAAa,CAAC,KAAe;IACpC,OAAO,KAAK,CAAC,IAAI,IAAI,iBAAiB,CAAA;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,2BAA2B;IACtC;;;;OAIG;IACK,gBAAgB,CAAwB;IAEhD,YAAY,UAAyD,EAAE;QACrE,IAAI,CAAC,gBAAgB;YACnB,OAAO,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC5F,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,KAAe;QACjC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,8EAA8E;IACtE,YAAY,CAAC,KAAmB,EAAE,MAAc,EAAE,MAAkB;QAC1E,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACtB,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjF,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,kEAAkE;IAC1D,WAAW,CAAC,KAAmB,EAAE,SAAiB,YAAY;QACpE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAY;QACvC,OAAO,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IAChF,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,SAAiB;QAC1D,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,IAAI,CAAC,aAAa,CAAC;aACnB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;aACnB,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;aAC9B,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,EAAE,CAAA;QACV,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,CAAC,QAAQ,IAAI,6CAA6C,SAAS,GAAG,EAAE;gBACzF,MAAM,EAAE,GAAG;aACZ,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAmB,EAAE,UAAkB,EAAE,KAAe;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QAEvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CACpC,EAAE;aACC,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,EACtC,OAAO,EACP,KAAK,CACN,CAAC,KAAK,EAAE,CAAA;QACT,IAAI,MAAM;YAAE,OAAO,KAAK,CAAA;QAExB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CACpC,IAAI,CAAC,YAAY,CACf,EAAE;aACC,IAAI,CAAC,wBAAwB,CAAC;aAC9B,IAAI,CAAC,8BAA8B,EAAE,cAAc,EAAE,aAAa,CAAC;aACnE,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC;aACtC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC;aACpC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EACvC,SAAS,EACT,KAAK,CACN,EACD,cAAc,CACf,CAAC,KAAK,EAAE,CAAA;QAET,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAmB,EACnB,IAAY,EACZ,KAAe,EACf,UAAwB,EAAE;QAE1B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACtE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAA;QAE3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CACtC,EAAE;aACC,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,EAC/B,OAAO,EACP,CAAC,KAAK,CAAC,CACR,CAAC,KAAK,EAAE,CAAA;QAET,IAAI,QAAQ,EAAE,CAAC;YACb,uEAAuE;YACvE,mDAAmD;YACnD,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBACrE,UAAU,EAAE,SAAS;aACtB,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC;gBACzC,IAAI,EAAE,MAAM,EAAE;gBACd,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,KAAK,CAAC,IAAI;gBACtB,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC;gBAChC,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,IAAI,IAAI,EAAE;aACvB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uEAAuE;YACvE,0EAA0E;YAC1E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CACnC,EAAE;iBACC,IAAI,CAAC,mBAAmB,CAAC;iBACzB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;iBAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;iBAClC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,EAC/B,OAAO,EACP,CAAC,KAAK,CAAC,CACR,CAAC,KAAK,EAAE,CAAA;YACT,IAAI,CAAC,KAAK;gBAAE,MAAM,KAAK,CAAA;YACvB,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBAClE,UAAU,EAAE,SAAS;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAmB,EAAE,IAAY,EAAE,KAAe;QAC7D,MAAM,OAAO,GAAG,MAAM,EAAE;aACrB,IAAI,CAAC,aAAa,CAAC;aACnB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;aACnB,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC;aAC/B,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,EAAE,CAAA;QACV,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,MAAM,IAAI,CAAC,YAAY,CACrB,EAAE;aACC,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,EACnC,OAAO,EACP,CAAC,KAAK,CAAC,CACR,CAAC,MAAM,EAAE,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAmB,EAAE,IAAY,EAAE,KAAe;QAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAClC,IAAI,CAAC,YAAY,CACf,EAAE;aACC,IAAI,CAAC,wBAAwB,CAAC;aAC9B,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,CAAC;aACjD,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;aACrB,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC;aACpC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EACvC,SAAS,EACT,KAAK,CACN,EACD,cAAc,CACf,CAAC,KAAK,EAAE,CAAA;QACT,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAmB,EAAE,UAAkB,EAAE,KAAe;QACjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,CAAC,YAAY,UAAU,4BAA4B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC1F,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CACtC,EAAE;aACC,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,EACtC,OAAO,EACP,CAAC,KAAK,CAAC,CACR,CAAC,KAAK,EAAE,CAAA;QACT,IAAI,QAAQ;YAAE,OAAM;QAEpB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,MAAM,EAAE;gBACd,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,eAAe,EAAE,IAAI,CAAC,IAAI;gBAC1B,UAAU,EAAE,KAAK,CAAC,IAAI;gBACtB,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC;gBAChC,UAAU,EAAE,IAAI,IAAI,EAAE;aACvB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uEAAuE;YACvE,oCAAoC;YACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CACnC,EAAE;iBACC,IAAI,CAAC,cAAc,CAAC;iBACpB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;iBAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;iBAClC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,EACtC,OAAO,EACP,CAAC,KAAK,CAAC,CACR,CAAC,KAAK,EAAE,CAAA;YACT,IAAI,CAAC,KAAK;gBAAE,MAAM,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAmB,EAAE,UAAkB,EAAE,KAAe;QACvE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,MAAM,IAAI,CAAC,YAAY,CACrB,EAAE;aACC,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,EACtC,OAAO,EACP,CAAC,KAAK,CAAC,CACR,CAAC,MAAM,EAAE,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,KAAe;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,IAAI,CAAC,YAAY,CACf,EAAE;aACC,IAAI,CAAC,wBAAwB,CAAC;aAC9B,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,CAAC;aACjD,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;aACrB,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,EACpC,SAAS,EACT,CAAC,KAAK,CAAC,CACR,EACD,cAAc,CACf,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;QAE5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAmB,EAAE,KAAe;QAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,IAAI,CAAC,YAAY,CACf,EAAE;aACC,IAAI,CAAC,wBAAwB,CAAC;aAC9B,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,CAAC;aACjD,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC;aACpC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EACvC,SAAS,EACT,CAAC,KAAK,CAAC,CACR,EACD,cAAc,CACf,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAmB,EAAE,SAAoB;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,EAAE;aACC,IAAI,CAAC,wBAAwB,CAAC;aAC9B,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC;aACpC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC;aACpC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,EACnC,cAAc,CACf,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;IAClG,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAmB,EAAE,UAAkB;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QAEpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,EAAE;aACC,IAAI,CAAC,wBAAwB,CAAC;aAC9B,IAAI,CAAC,8BAA8B,EAAE,cAAc,EAAE,aAAa,CAAC;aACnE,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC;aACtC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC;aACpC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,EACvC,cAAc,CACf,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;QAE1C,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC;aAClC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC;aACnC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QAErC,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CACjF,CAAA;QAED,MAAM,MAAM,GAAe,EAAE,CAAA;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAa,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAA;YAC3F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YAC9E,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
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 {
|
|
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>|<
|
|
10
|
-
* - `deny_binding:<scopeKey>|<
|
|
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
|
-
* `
|
|
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
|
|
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
|
|
50
|
-
|
|
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
|
-
|
|
59
|
-
|
|
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
|
|
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
|
|
87
|
-
*
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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:
|
|
106
|
-
hasRole(subject: SubjectRef, role:
|
|
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
|
-
|
|
110
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"openfga_driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/openfga_driver.ts"],"names":[],"mappings":"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"}
|