@naylence/advanced-security 0.3.7-test.114 → 0.3.7-test.115
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/dist/browser/index.cjs +9864 -0
- package/dist/browser/index.mjs +9811 -0
- package/dist/cjs/advanced-security-isomorphic.js +82 -0
- package/dist/cjs/advanced-security-isomorphic.js.map +1 -0
- package/dist/cjs/browser.js +25 -0
- package/dist/cjs/browser.js.map +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/install-env.js +2 -0
- package/dist/cjs/install-env.js.map +1 -0
- package/dist/cjs/naylence/fame/factory-manifest.js +39 -0
- package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/browser-csr.js +103 -0
- package/dist/cjs/naylence/fame/security/cert/browser-csr.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server-cli.js +30 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server-cli.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server.js +223 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +585 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js +61 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-types.js +39 -0
- package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/csr-types.js +2 -0
- package/dist/cjs/naylence/fame/security/cert/csr-types.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +66 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +364 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js +73 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +815 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/grants.js +2 -0
- package/dist/cjs/naylence/fame/security/cert/grants.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/index.js +18 -0
- package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +741 -0
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
- package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/oid-constants.js +7 -0
- package/dist/cjs/naylence/fame/security/cert/oid-constants.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js +82 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js +168 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +257 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js +497 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js +61 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js +44 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js +40 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/util.js +515 -0
- package/dist/cjs/naylence/fame/security/cert/util.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +85 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js +743 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/index.js +3 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js +113 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js +321 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +53 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js +278 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js +167 -0
- package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/index.js +7 -0
- package/dist/cjs/naylence/fame/security/encryption/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +3 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +82 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +542 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/index.js +6 -0
- package/dist/cjs/naylence/fame/security/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/keys/index.js +3 -0
- package/dist/cjs/naylence/fame/security/keys/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +36 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js +405 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js +283 -0
- package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js.map +1 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +34 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +33 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js +189 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-helper.js +72 -0
- package/dist/cjs/naylence/fame/stickiness/aft-helper.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +65 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +447 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-model.js +54 -0
- package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +50 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js +203 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js +147 -0
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js +90 -0
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +290 -0
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/index.js +11 -0
- package/dist/cjs/naylence/fame/stickiness/index.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +24 -0
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +1 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +93 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +212 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +1 -0
- package/dist/cjs/naylence/fame/welcome/index.js +3 -0
- package/dist/cjs/naylence/fame/welcome/index.js.map +1 -0
- package/dist/cjs/node.js +11 -0
- package/dist/cjs/node.js.map +1 -0
- package/dist/cjs/plugin.js +39 -0
- package/dist/cjs/plugin.js.map +1 -0
- package/dist/cjs/version.js +8 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/advanced-security-isomorphic.js +82 -0
- package/dist/esm/advanced-security-isomorphic.js.map +1 -0
- package/dist/esm/browser.js +25 -0
- package/dist/esm/browser.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/install-env.js +2 -0
- package/dist/esm/install-env.js.map +1 -0
- package/dist/esm/naylence/fame/factory-manifest.js +39 -0
- package/dist/esm/naylence/fame/factory-manifest.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/browser-csr.js +103 -0
- package/dist/esm/naylence/fame/security/cert/browser-csr.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-server-cli.js +30 -0
- package/dist/esm/naylence/fame/security/cert/ca-server-cli.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-server.js +223 -0
- package/dist/esm/naylence/fame/security/cert/ca-server.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-client.js +585 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-client.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-factory.js +61 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-types.js +39 -0
- package/dist/esm/naylence/fame/security/cert/ca-types.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/csr-types.js +2 -0
- package/dist/esm/naylence/fame/security/cert/csr-types.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js +66 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service.js +364 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js +73 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +815 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/grants.js +2 -0
- package/dist/esm/naylence/fame/security/cert/grants.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/index.js +18 -0
- package/dist/esm/naylence/fame/security/cert/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +741 -0
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
- package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/oid-constants.js +7 -0
- package/dist/esm/naylence/fame/security/cert/oid-constants.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js +82 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js +168 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +257 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js +497 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js +61 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js +44 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js +40 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/util.js +515 -0
- package/dist/esm/naylence/fame/security/cert/util.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +85 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js +743 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/channel/index.js +3 -0
- package/dist/esm/naylence/fame/security/encryption/channel/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js +113 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js +321 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +53 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js +278 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js +167 -0
- package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/index.js +7 -0
- package/dist/esm/naylence/fame/security/encryption/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/index.js +3 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +82 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +542 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/index.js +6 -0
- package/dist/esm/naylence/fame/security/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/keys/index.js +3 -0
- package/dist/esm/naylence/fame/security/keys/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js +36 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js +405 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/register-advanced-security-factories.js +283 -0
- package/dist/esm/naylence/fame/security/register-advanced-security-factories.js.map +1 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +34 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +33 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js +189 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-helper.js +72 -0
- package/dist/esm/naylence/fame/stickiness/aft-helper.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +65 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +447 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-model.js +54 -0
- package/dist/esm/naylence/fame/stickiness/aft-model.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +50 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js +203 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-signer.js +147 -0
- package/dist/esm/naylence/fame/stickiness/aft-signer.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-utils.js +90 -0
- package/dist/esm/naylence/fame/stickiness/aft-utils.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-verifier.js +290 -0
- package/dist/esm/naylence/fame/stickiness/aft-verifier.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/index.js +11 -0
- package/dist/esm/naylence/fame/stickiness/index.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/stickiness-mode.js +24 -0
- package/dist/esm/naylence/fame/stickiness/stickiness-mode.js.map +1 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js +93 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js +212 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js.map +1 -0
- package/dist/esm/naylence/fame/welcome/index.js +3 -0
- package/dist/esm/naylence/fame/welcome/index.js.map +1 -0
- package/dist/esm/node.js +11 -0
- package/dist/esm/node.js.map +1 -0
- package/dist/esm/plugin.js +39 -0
- package/dist/esm/plugin.js.map +1 -0
- package/dist/esm/version.js +8 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/node/index.cjs +9855 -0
- package/dist/node/index.mjs +9800 -0
- package/dist/node/node.cjs +10139 -0
- package/dist/node/node.mjs +10046 -0
- package/dist/types/advanced-security-isomorphic.d.ts +24 -0
- package/dist/types/advanced-security-isomorphic.d.ts.map +1 -0
- package/dist/types/browser.d.ts +19 -0
- package/dist/types/browser.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/install-env.d.ts +3 -0
- package/dist/types/install-env.d.ts.map +1 -0
- package/dist/types/naylence/fame/factory-manifest.d.ts +11 -0
- package/dist/types/naylence/fame/factory-manifest.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/browser-csr.d.ts +9 -0
- package/dist/types/naylence/fame/security/cert/browser-csr.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-server-cli.d.ts +3 -0
- package/dist/types/naylence/fame/security/cert/ca-server-cli.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-server.d.ts +19 -0
- package/dist/types/naylence/fame/security/cert/ca-server.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts +75 -0
- package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts +43 -0
- package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-types.d.ts +129 -0
- package/dist/types/naylence/fame/security/cert/ca-types.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/csr-types.d.ts +5 -0
- package/dist/types/naylence/fame/security/cert/csr-types.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts +55 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts +85 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +25 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +70 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/grants.d.ts +2 -0
- package/dist/types/naylence/fame/security/cert/grants.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/index.d.ts +19 -0
- package/dist/types/naylence/fame/security/cert/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts +129 -0
- package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts +9 -0
- package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/oid-constants.d.ts +7 -0
- package/dist/types/naylence/fame/security/cert/oid-constants.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts +12 -0
- package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.d.ts +29 -0
- package/dist/types/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts +7 -0
- package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts +9 -0
- package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts +35 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts +2 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.d.ts +23 -0
- package/dist/types/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts +15 -0
- package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider-factory.d.ts +28 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts +43 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/util.d.ts +25 -0
- package/dist/types/naylence/fame/security/cert/util.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts +29 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts +51 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/channel/index.d.ts +3 -0
- package/dist/types/naylence/fame/security/encryption/channel/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts +32 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts +52 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts +23 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts +37 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts +34 -0
- package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/index.d.ts +7 -0
- package/dist/types/naylence/fame/security/encryption/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts +3 -0
- package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts +28 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts +43 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/index.d.ts +6 -0
- package/dist/types/naylence/fame/security/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/keys/index.d.ts +3 -0
- package/dist/types/naylence/fame/security/keys/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts +19 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts +39 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts +8 -0
- package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts +20 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts +21 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts +22 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-helper.d.ts +29 -0
- package/dist/types/naylence/fame/stickiness/aft-helper.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts +25 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts +33 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-model.d.ts +33 -0
- package/dist/types/naylence/fame/stickiness/aft-model.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts +23 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts +31 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-signer.d.ts +55 -0
- package/dist/types/naylence/fame/stickiness/aft-signer.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-utils.d.ts +4 -0
- package/dist/types/naylence/fame/stickiness/aft-utils.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts +50 -0
- package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/index.d.ts +15 -0
- package/dist/types/naylence/fame/stickiness/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts +7 -0
- package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts.map +1 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts +21 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts +21 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts.map +1 -0
- package/dist/types/naylence/fame/welcome/index.d.ts +3 -0
- package/dist/types/naylence/fame/welcome/index.d.ts.map +1 -0
- package/dist/types/node.d.ts +11 -0
- package/dist/types/node.d.ts.map +1 -0
- package/dist/types/plugin.d.ts +11 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/version.d.ts +6 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aft-helper.js","sourceRoot":"","sources":["../../../../../src/naylence/fame/stickiness/aft-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { LOAD_BALANCER_STICKINESS_MANAGER_FACTORY_BASE_TYPE, LoadBalancerStickinessManagerFactory, } from "@naylence/runtime";
|
|
2
|
+
import { AFTLoadBalancerStickinessManager } from "./aft-load-balancer-stickiness-manager.js";
|
|
3
|
+
import { createAftVerifier } from "./aft-verifier.js";
|
|
4
|
+
import { StickinessMode, normalizeStickinessMode } from "./stickiness-mode.js";
|
|
5
|
+
export const FACTORY_META = {
|
|
6
|
+
base: LOAD_BALANCER_STICKINESS_MANAGER_FACTORY_BASE_TYPE,
|
|
7
|
+
key: "AFTLoadBalancerStickinessManager",
|
|
8
|
+
};
|
|
9
|
+
const DEFAULT_VALUES = {
|
|
10
|
+
enabled: true,
|
|
11
|
+
clientEcho: false,
|
|
12
|
+
defaultTtlSec: 30,
|
|
13
|
+
cacheMax: 100000,
|
|
14
|
+
securityLevel: StickinessMode.SIGNED_OPTIONAL,
|
|
15
|
+
maxTtlSec: 7200,
|
|
16
|
+
};
|
|
17
|
+
function toBoolean(value, fallback) {
|
|
18
|
+
return typeof value === "boolean" ? value : fallback;
|
|
19
|
+
}
|
|
20
|
+
function toNumber(value, fallback) {
|
|
21
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
return fallback;
|
|
25
|
+
}
|
|
26
|
+
function normalizeConfig(config) {
|
|
27
|
+
const record = (config ?? {});
|
|
28
|
+
const normalizedSecurity = record.securityLevel
|
|
29
|
+
? normalizeStickinessMode(record.securityLevel)
|
|
30
|
+
: DEFAULT_VALUES.securityLevel;
|
|
31
|
+
return {
|
|
32
|
+
...record,
|
|
33
|
+
type: "AFTLoadBalancerStickinessManager",
|
|
34
|
+
enabled: toBoolean(record.enabled, DEFAULT_VALUES.enabled),
|
|
35
|
+
clientEcho: toBoolean(record.clientEcho, DEFAULT_VALUES.clientEcho),
|
|
36
|
+
defaultTtlSec: toNumber(record.defaultTtlSec, DEFAULT_VALUES.defaultTtlSec),
|
|
37
|
+
cacheMax: toNumber(record.cacheMax, DEFAULT_VALUES.cacheMax),
|
|
38
|
+
securityLevel: normalizedSecurity,
|
|
39
|
+
maxTtlSec: toNumber(record.maxTtlSec, DEFAULT_VALUES.maxTtlSec),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export class AFTLoadBalancerStickinessManagerFactory extends LoadBalancerStickinessManagerFactory {
|
|
43
|
+
constructor() {
|
|
44
|
+
super(...arguments);
|
|
45
|
+
this.type = "AFTLoadBalancerStickinessManager";
|
|
46
|
+
this.isDefault = false;
|
|
47
|
+
}
|
|
48
|
+
async create(config, keyProvider, verifier) {
|
|
49
|
+
const resolvedConfig = normalizeConfig(config);
|
|
50
|
+
let effectiveVerifier = verifier ?? null;
|
|
51
|
+
if (!effectiveVerifier && keyProvider) {
|
|
52
|
+
effectiveVerifier = createAftVerifier({
|
|
53
|
+
securityLevel: resolvedConfig.securityLevel ?? DEFAULT_VALUES.securityLevel,
|
|
54
|
+
keyProvider,
|
|
55
|
+
defaultTtlSec: resolvedConfig.defaultTtlSec ?? DEFAULT_VALUES.defaultTtlSec,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (!effectiveVerifier) {
|
|
59
|
+
throw new Error("AFTLoadBalancerStickinessManagerFactory requires an AFT verifier or key provider");
|
|
60
|
+
}
|
|
61
|
+
return new AFTLoadBalancerStickinessManager(resolvedConfig, effectiveVerifier);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export default AFTLoadBalancerStickinessManagerFactory;
|
|
65
|
+
//# sourceMappingURL=aft-load-balancer-stickiness-manager-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aft-load-balancer-stickiness-manager-factory.js","sourceRoot":"","sources":["../../../../../src/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
import { DeliveryOriginType } from "@naylence/core";
|
|
2
|
+
import { BaseNodeEventListener } from "@naylence/runtime";
|
|
3
|
+
import { getLogger } from "@naylence/runtime";
|
|
4
|
+
import { StickinessMode } from "./stickiness-mode.js";
|
|
5
|
+
const logger = getLogger("naylence.fame.stickiness.aft_load_balancer_stickiness_manager");
|
|
6
|
+
class AFTAssociation {
|
|
7
|
+
constructor(params) {
|
|
8
|
+
this.replicaId = params.replicaId;
|
|
9
|
+
this.token = params.token;
|
|
10
|
+
this.sid = params.sid;
|
|
11
|
+
this.exp = params.exp;
|
|
12
|
+
this.trustLevel = params.trustLevel;
|
|
13
|
+
this.scope = params.scope ?? null;
|
|
14
|
+
this.clientSid = params.clientSid ?? null;
|
|
15
|
+
this.createdAt = params.createdAt ?? Math.floor(Date.now() / 1000);
|
|
16
|
+
}
|
|
17
|
+
isExpired(referenceTime = Math.floor(Date.now() / 1000)) {
|
|
18
|
+
return referenceTime >= this.exp;
|
|
19
|
+
}
|
|
20
|
+
isLowTrust() {
|
|
21
|
+
return this.trustLevel === "low-trust";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class AFTLoadBalancerStickinessManager extends BaseNodeEventListener {
|
|
25
|
+
get cacheMax() {
|
|
26
|
+
return this.config.cacheMax ?? 100000;
|
|
27
|
+
}
|
|
28
|
+
get defaultTtlSec() {
|
|
29
|
+
return this.config.defaultTtlSec ?? 30;
|
|
30
|
+
}
|
|
31
|
+
constructor(config, verifier) {
|
|
32
|
+
super();
|
|
33
|
+
this.aftAssociations = new Map();
|
|
34
|
+
this.sidCache = new Map();
|
|
35
|
+
this.metrics = {
|
|
36
|
+
cacheHits: 0,
|
|
37
|
+
cacheMisses: 0,
|
|
38
|
+
verifyFailures: 0,
|
|
39
|
+
associationsCreated: 0,
|
|
40
|
+
associationsExpired: 0,
|
|
41
|
+
};
|
|
42
|
+
this.config = config;
|
|
43
|
+
this.verifier = verifier;
|
|
44
|
+
logger.debug("stickiness_manager_initialized", {
|
|
45
|
+
enabled: this.config.enabled,
|
|
46
|
+
security_level: this.config.securityLevel,
|
|
47
|
+
verifier_type: verifier.constructor.name,
|
|
48
|
+
default_ttl: this.defaultTtlSec,
|
|
49
|
+
cache_max: this.cacheMax,
|
|
50
|
+
client_echo: this.config.clientEcho,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
get hasStickiness() {
|
|
54
|
+
return Boolean(this.config.enabled);
|
|
55
|
+
}
|
|
56
|
+
getSidCache() {
|
|
57
|
+
return this.sidCache;
|
|
58
|
+
}
|
|
59
|
+
negotiate(stickiness) {
|
|
60
|
+
if (!stickiness) {
|
|
61
|
+
if (this.config.enabled) {
|
|
62
|
+
logger.debug("stickiness_negotiated_no_offer_attr_fallback");
|
|
63
|
+
return { enabled: true, mode: "attr", version: 1 };
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const version = stickiness.version ?? 1;
|
|
68
|
+
if (!this.config.enabled) {
|
|
69
|
+
logger.debug("stickiness_negotiation_disabled_by_config");
|
|
70
|
+
return { enabled: false, version };
|
|
71
|
+
}
|
|
72
|
+
const childModes = new Set();
|
|
73
|
+
if (Array.isArray(stickiness.supportedModes) &&
|
|
74
|
+
stickiness.supportedModes.length > 0) {
|
|
75
|
+
for (const mode of stickiness.supportedModes) {
|
|
76
|
+
childModes.add(mode);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else if (stickiness.mode) {
|
|
80
|
+
childModes.add(stickiness.mode);
|
|
81
|
+
}
|
|
82
|
+
if (childModes.has("aft") && this.verifier) {
|
|
83
|
+
const ttl = this.defaultTtlSec;
|
|
84
|
+
const policy = {
|
|
85
|
+
enabled: true,
|
|
86
|
+
mode: "aft",
|
|
87
|
+
ttlSec: ttl,
|
|
88
|
+
version,
|
|
89
|
+
};
|
|
90
|
+
logger.debug("stickiness_negotiated", { mode: policy.mode, ttl });
|
|
91
|
+
return policy;
|
|
92
|
+
}
|
|
93
|
+
if (childModes.has("attr")) {
|
|
94
|
+
const policy = { enabled: true, mode: "attr", version };
|
|
95
|
+
logger.debug("stickiness_negotiated", { mode: policy.mode });
|
|
96
|
+
return policy;
|
|
97
|
+
}
|
|
98
|
+
logger.debug("stickiness_negotiation_no_common_mode");
|
|
99
|
+
return { enabled: false, version };
|
|
100
|
+
}
|
|
101
|
+
async handleOutboundEnvelope(envelope, replicaId) {
|
|
102
|
+
if (!this.config.enabled) {
|
|
103
|
+
logger.debug("stickiness_disabled", { envelope_id: envelope.id });
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
const aftToken = extractAftInstruction(envelope);
|
|
107
|
+
if (!aftToken) {
|
|
108
|
+
logger.debug("no_aft_instruction", {
|
|
109
|
+
envelope_id: envelope.id,
|
|
110
|
+
has_meta: Boolean(envelope.meta),
|
|
111
|
+
});
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
if (typeof aftToken !== "string") {
|
|
115
|
+
logger.warning("invalid_aft_instruction", {
|
|
116
|
+
envelope_id: envelope.id,
|
|
117
|
+
replica_id: replicaId,
|
|
118
|
+
reason: "set.aft value is not a string",
|
|
119
|
+
});
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
const verification = await this.verifier.verify(aftToken, envelope.sid ?? undefined);
|
|
123
|
+
if (!verification.valid) {
|
|
124
|
+
this.metrics.verifyFailures += 1;
|
|
125
|
+
logger.warning("aft_verification_failed", {
|
|
126
|
+
envelope_id: envelope.id,
|
|
127
|
+
replica_id: replicaId,
|
|
128
|
+
error: verification.error,
|
|
129
|
+
});
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
this.storeAssociation(aftToken, {
|
|
133
|
+
replicaId,
|
|
134
|
+
token: aftToken,
|
|
135
|
+
sid: verification.sid ?? "",
|
|
136
|
+
exp: verification.exp ?? Math.floor(Date.now() / 1000) + this.defaultTtlSec,
|
|
137
|
+
trustLevel: verification.trustLevel,
|
|
138
|
+
scope: verification.scope ?? null,
|
|
139
|
+
clientSid: verification.clientSid ?? null,
|
|
140
|
+
});
|
|
141
|
+
if (verification.clientSid) {
|
|
142
|
+
this.sidCache.set(verification.clientSid, replicaId);
|
|
143
|
+
logger.debug("sid_cache_updated", {
|
|
144
|
+
envelope_id: envelope.id,
|
|
145
|
+
client_sid: verification.clientSid,
|
|
146
|
+
replica_id: replicaId,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
this.metrics.associationsCreated += 1;
|
|
150
|
+
logger.debug("aft_association_created", {
|
|
151
|
+
envelope_id: envelope.id,
|
|
152
|
+
replica_id: replicaId,
|
|
153
|
+
sid: verification.sid,
|
|
154
|
+
exp: verification.exp,
|
|
155
|
+
trust_level: verification.trustLevel,
|
|
156
|
+
scope: verification.scope,
|
|
157
|
+
});
|
|
158
|
+
return this.config.clientEcho ? aftToken : null;
|
|
159
|
+
}
|
|
160
|
+
getStickyReplicaSegment(envelope, segments) {
|
|
161
|
+
if (!this.config.enabled) {
|
|
162
|
+
logger.debug("stickiness_disabled", { envelope_id: envelope.id });
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
if (envelope.aft) {
|
|
166
|
+
const replicaId = this.routeByAft(envelope.aft, envelope);
|
|
167
|
+
if (replicaId) {
|
|
168
|
+
this.metrics.cacheHits += 1;
|
|
169
|
+
logger.debug("aft_routed_envelope", {
|
|
170
|
+
envelope_id: envelope.id,
|
|
171
|
+
replica_id: replicaId,
|
|
172
|
+
routing_type: "aft_direct",
|
|
173
|
+
});
|
|
174
|
+
return replicaId;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (envelope.sid) {
|
|
178
|
+
const cachedReplica = this.sidCache.get(envelope.sid);
|
|
179
|
+
if (cachedReplica) {
|
|
180
|
+
if (this.config.securityLevel === StickinessMode.SID_ONLY) {
|
|
181
|
+
this.metrics.cacheHits += 1;
|
|
182
|
+
logger.debug("sid_cache_routed_envelope", {
|
|
183
|
+
envelope_id: envelope.id,
|
|
184
|
+
replica_id: cachedReplica,
|
|
185
|
+
sid: envelope.sid,
|
|
186
|
+
routing_type: "sid_only",
|
|
187
|
+
});
|
|
188
|
+
return cachedReplica;
|
|
189
|
+
}
|
|
190
|
+
for (const [token, association] of this.aftAssociations.entries()) {
|
|
191
|
+
if (association.replicaId === cachedReplica &&
|
|
192
|
+
!association.isExpired()) {
|
|
193
|
+
envelope.aft = token;
|
|
194
|
+
this.metrics.cacheHits += 1;
|
|
195
|
+
logger.debug("sid_cache_routed_envelope", {
|
|
196
|
+
envelope_id: envelope.id,
|
|
197
|
+
replica_id: cachedReplica,
|
|
198
|
+
sid: envelope.sid,
|
|
199
|
+
routing_type: "sid_cache_with_aft",
|
|
200
|
+
});
|
|
201
|
+
return cachedReplica;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
this.metrics.cacheHits += 1;
|
|
205
|
+
logger.debug("sid_cache_routed_envelope", {
|
|
206
|
+
envelope_id: envelope.id,
|
|
207
|
+
replica_id: cachedReplica,
|
|
208
|
+
sid: envelope.sid,
|
|
209
|
+
routing_type: "sid_cache_direct",
|
|
210
|
+
});
|
|
211
|
+
return cachedReplica;
|
|
212
|
+
}
|
|
213
|
+
logger.debug("no_cached_replica_for_sid", {
|
|
214
|
+
envelope_id: envelope.id,
|
|
215
|
+
sid: envelope.sid,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (envelope.sid && Array.isArray(segments) && segments.length > 0) {
|
|
219
|
+
const index = computeDeterministicIndex(envelope.sid, segments.length);
|
|
220
|
+
const chosen = segments[index];
|
|
221
|
+
this.metrics.cacheHits += 1;
|
|
222
|
+
logger.debug("sid_based_deterministic_choice", {
|
|
223
|
+
envelope_id: envelope.id,
|
|
224
|
+
sid: envelope.sid,
|
|
225
|
+
chosen,
|
|
226
|
+
routing_type: "sid_deterministic",
|
|
227
|
+
});
|
|
228
|
+
return chosen;
|
|
229
|
+
}
|
|
230
|
+
this.metrics.cacheMisses += 1;
|
|
231
|
+
logger.debug("no_stickiness_routing", {
|
|
232
|
+
envelope_id: envelope.id,
|
|
233
|
+
has_aft: Boolean(envelope.aft),
|
|
234
|
+
has_sid: Boolean(envelope.sid),
|
|
235
|
+
});
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
cleanupExpiredAssociations() {
|
|
239
|
+
const now = Math.floor(Date.now() / 1000);
|
|
240
|
+
const expiredTokens = [];
|
|
241
|
+
for (const [token, association] of this.aftAssociations.entries()) {
|
|
242
|
+
if (association.isExpired(now)) {
|
|
243
|
+
expiredTokens.push(token);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
for (const token of expiredTokens) {
|
|
247
|
+
this.removeAssociation(token);
|
|
248
|
+
}
|
|
249
|
+
if (expiredTokens.length > 0) {
|
|
250
|
+
this.metrics.associationsExpired += expiredTokens.length;
|
|
251
|
+
logger.debug("cleaned_expired_associations", {
|
|
252
|
+
count: expiredTokens.length,
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
replicaLeft(replicaId) {
|
|
257
|
+
const tokensToRemove = [];
|
|
258
|
+
for (const [token, association] of this.aftAssociations.entries()) {
|
|
259
|
+
if (association.replicaId === replicaId) {
|
|
260
|
+
tokensToRemove.push(token);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
for (const token of tokensToRemove) {
|
|
264
|
+
this.removeAssociation(token);
|
|
265
|
+
}
|
|
266
|
+
if (tokensToRemove.length > 0) {
|
|
267
|
+
logger.debug("removed_associations_for_departed_replica", {
|
|
268
|
+
replica_id: replicaId,
|
|
269
|
+
count: tokensToRemove.length,
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
handleReplicaLeft(replicaId) {
|
|
274
|
+
this.replicaLeft(replicaId);
|
|
275
|
+
logger.debug("stickiness_replica_cleanup", { replica_id: replicaId });
|
|
276
|
+
}
|
|
277
|
+
getMetrics() {
|
|
278
|
+
return {
|
|
279
|
+
...this.metrics,
|
|
280
|
+
cacheSize: this.aftAssociations.size,
|
|
281
|
+
sidCacheSize: this.sidCache.size,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
getAssociations() {
|
|
285
|
+
const result = {};
|
|
286
|
+
for (const [token, association] of this.aftAssociations.entries()) {
|
|
287
|
+
result[token] = {
|
|
288
|
+
replica_id: association.replicaId,
|
|
289
|
+
sid: association.sid,
|
|
290
|
+
client_sid: association.clientSid,
|
|
291
|
+
exp: association.exp,
|
|
292
|
+
trust_level: association.trustLevel,
|
|
293
|
+
scope: association.scope,
|
|
294
|
+
created_at: association.createdAt,
|
|
295
|
+
expired: association.isExpired(),
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
getStickinessMetrics() {
|
|
301
|
+
return this.getMetrics();
|
|
302
|
+
}
|
|
303
|
+
logMetrics() {
|
|
304
|
+
const hits = this.metrics.cacheHits;
|
|
305
|
+
const misses = this.metrics.cacheMisses;
|
|
306
|
+
const total = hits + misses;
|
|
307
|
+
const hitRate = total > 0 ? Math.round((hits / total) * 10000) / 100 : 0;
|
|
308
|
+
logger.info("stickiness_metrics_report", {
|
|
309
|
+
enabled: this.config.enabled,
|
|
310
|
+
security_level: this.config.securityLevel,
|
|
311
|
+
cache_hits: hits,
|
|
312
|
+
cache_misses: misses,
|
|
313
|
+
verify_failures: this.metrics.verifyFailures,
|
|
314
|
+
associations_created: this.metrics.associationsCreated,
|
|
315
|
+
associations_expired: this.metrics.associationsExpired,
|
|
316
|
+
active_associations: this.aftAssociations.size,
|
|
317
|
+
sid_cache_entries: this.sidCache.size,
|
|
318
|
+
hit_rate: hitRate,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
async onDeliver(_node, envelope, context) {
|
|
322
|
+
logger.debug("stickiness_manager_on_deliver", {
|
|
323
|
+
envelope_id: envelope.id,
|
|
324
|
+
origin_type: context?.originType ?? "unknown",
|
|
325
|
+
from_system_id: context?.fromSystemId ?? null,
|
|
326
|
+
});
|
|
327
|
+
if (context?.originType === DeliveryOriginType.DOWNSTREAM) {
|
|
328
|
+
const sourceRoute = context.fromSystemId;
|
|
329
|
+
if (sourceRoute) {
|
|
330
|
+
logger.debug("processing_downstream_envelope", {
|
|
331
|
+
envelope_id: envelope.id,
|
|
332
|
+
source_route: sourceRoute,
|
|
333
|
+
});
|
|
334
|
+
if (this.config.securityLevel === StickinessMode.SID_ONLY &&
|
|
335
|
+
envelope.sid &&
|
|
336
|
+
!this.sidCache.has(envelope.sid)) {
|
|
337
|
+
this.sidCache.set(envelope.sid, sourceRoute);
|
|
338
|
+
logger.debug("sid_only_association_recorded", {
|
|
339
|
+
envelope_id: envelope.id,
|
|
340
|
+
sid: envelope.sid,
|
|
341
|
+
replica_id: sourceRoute,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
const hadInstruction = Boolean(extractAftInstruction(envelope));
|
|
345
|
+
const token = await this.handleOutboundEnvelope(envelope, sourceRoute);
|
|
346
|
+
if (hadInstruction) {
|
|
347
|
+
logger.debug("processed_aft_setter_instruction", {
|
|
348
|
+
envelope_id: envelope.id,
|
|
349
|
+
source_route: sourceRoute,
|
|
350
|
+
client_echo: Boolean(token),
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
logger.debug("no_aft_setter_instruction", {
|
|
355
|
+
envelope_id: envelope.id,
|
|
356
|
+
source_route: sourceRoute,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
logger.debug("downstream_envelope_without_source_route", {
|
|
362
|
+
envelope_id: envelope.id,
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
logger.debug("envelope_not_from_downstream", {
|
|
368
|
+
envelope_id: envelope.id,
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
return envelope;
|
|
372
|
+
}
|
|
373
|
+
storeAssociation(token, data) {
|
|
374
|
+
if (this.aftAssociations.has(token)) {
|
|
375
|
+
this.aftAssociations.delete(token);
|
|
376
|
+
}
|
|
377
|
+
const association = new AFTAssociation(data);
|
|
378
|
+
this.aftAssociations.set(token, association);
|
|
379
|
+
while (this.aftAssociations.size > this.cacheMax) {
|
|
380
|
+
const oldest = this.aftAssociations.keys().next();
|
|
381
|
+
if (oldest.done) {
|
|
382
|
+
break;
|
|
383
|
+
}
|
|
384
|
+
const oldestToken = oldest.value;
|
|
385
|
+
this.removeAssociation(oldestToken);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
removeAssociation(token) {
|
|
389
|
+
this.aftAssociations.delete(token);
|
|
390
|
+
for (const [sid, cachedToken] of this.sidCache.entries()) {
|
|
391
|
+
if (cachedToken === token) {
|
|
392
|
+
this.sidCache.delete(sid);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
routeByAft(token, envelope) {
|
|
397
|
+
const association = this.aftAssociations.get(token);
|
|
398
|
+
if (!association) {
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
if (association.isExpired()) {
|
|
402
|
+
this.metrics.associationsExpired += 1;
|
|
403
|
+
this.removeAssociation(token);
|
|
404
|
+
return null;
|
|
405
|
+
}
|
|
406
|
+
if (this.verifier.securityLevel === StickinessMode.STRICT &&
|
|
407
|
+
association.isLowTrust()) {
|
|
408
|
+
logger.warning("rejecting_low_trust_association", {
|
|
409
|
+
envelope_id: envelope.id,
|
|
410
|
+
replica_id: association.replicaId,
|
|
411
|
+
reason: "strict mode rejects low-trust associations",
|
|
412
|
+
});
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
this.aftAssociations.delete(token);
|
|
416
|
+
this.aftAssociations.set(token, association);
|
|
417
|
+
return association.replicaId;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
function extractAftInstruction(envelope) {
|
|
421
|
+
if (!envelope.meta) {
|
|
422
|
+
return null;
|
|
423
|
+
}
|
|
424
|
+
const meta = envelope.meta;
|
|
425
|
+
const nested = meta.set;
|
|
426
|
+
if (nested && typeof nested === "object" && !Array.isArray(nested)) {
|
|
427
|
+
const aftValue = nested.aft;
|
|
428
|
+
if (aftValue !== undefined) {
|
|
429
|
+
return aftValue;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
if (meta["set.aft"] !== undefined) {
|
|
433
|
+
return meta["set.aft"];
|
|
434
|
+
}
|
|
435
|
+
return null;
|
|
436
|
+
}
|
|
437
|
+
function computeDeterministicIndex(key, modulo) {
|
|
438
|
+
if (modulo <= 0) {
|
|
439
|
+
return 0;
|
|
440
|
+
}
|
|
441
|
+
let hash = 0;
|
|
442
|
+
for (let i = 0; i < key.length; i += 1) {
|
|
443
|
+
hash = (hash * 31 + key.charCodeAt(i)) >>> 0;
|
|
444
|
+
}
|
|
445
|
+
return hash % modulo;
|
|
446
|
+
}
|
|
447
|
+
//# sourceMappingURL=aft-load-balancer-stickiness-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aft-load-balancer-stickiness-manager.js","sourceRoot":"","sources":["../../../../../src/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function isSignedAft(payload) {
|
|
2
|
+
return payload.header.alg !== "none";
|
|
3
|
+
}
|
|
4
|
+
export function sanitizeStickinessScope(scope) {
|
|
5
|
+
if (!scope) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const normalized = scope.trim().toLowerCase();
|
|
9
|
+
if (!normalized) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
if (normalized === "node" || normalized === "flow" || normalized === "sess") {
|
|
13
|
+
return normalized;
|
|
14
|
+
}
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
export function serializeAftHeader(header) {
|
|
18
|
+
return JSON.stringify({
|
|
19
|
+
alg: header.alg,
|
|
20
|
+
kid: header.kid,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function serializeAftClaims(claims) {
|
|
24
|
+
const payload = {
|
|
25
|
+
sid: claims.sid,
|
|
26
|
+
exp: claims.exp,
|
|
27
|
+
};
|
|
28
|
+
if (typeof claims.scp === "string" && claims.scp.length > 0) {
|
|
29
|
+
payload.scp = claims.scp;
|
|
30
|
+
}
|
|
31
|
+
if (typeof claims.client_sid === "string" && claims.client_sid.length > 0) {
|
|
32
|
+
payload.client_sid = claims.client_sid;
|
|
33
|
+
}
|
|
34
|
+
return JSON.stringify(payload);
|
|
35
|
+
}
|
|
36
|
+
export function createAftPayload(options) {
|
|
37
|
+
const { sid, ttlSeconds, kid, algorithm, scope = null, clientSid = null, now = () => Math.floor(Date.now() / 1000), } = options;
|
|
38
|
+
const exp = now() + Math.max(0, Math.floor(ttlSeconds));
|
|
39
|
+
const sanitizedScope = sanitizeStickinessScope(scope);
|
|
40
|
+
const header = { alg: algorithm, kid };
|
|
41
|
+
const claims = {
|
|
42
|
+
sid,
|
|
43
|
+
exp,
|
|
44
|
+
...(sanitizedScope ? { scp: sanitizedScope } : {}),
|
|
45
|
+
...(typeof clientSid === "string" && clientSid.length > 0
|
|
46
|
+
? { client_sid: clientSid }
|
|
47
|
+
: {}),
|
|
48
|
+
};
|
|
49
|
+
return { header, claims };
|
|
50
|
+
}
|
|
51
|
+
export function describeSecurityLevel(mode) {
|
|
52
|
+
return mode;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=aft-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aft-model.js","sourceRoot":"","sources":["../../../../../src/naylence/fame/stickiness/aft-model.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,WAAW,CACzB,OAA2C;IAE3C,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAqB;IAErB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC5E,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,GAAG;KAChB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,OAAO,GAA4B;QACvC,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,GAAG;KAChB,CAAC;IAEF,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAYD,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,EACJ,GAAG,EACH,UAAU,EACV,GAAG,EACH,SAAS,EACT,KAAK,GAAG,IAAI,EACZ,SAAS,GAAG,IAAI,EAChB,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAC1C,GAAG,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAExD,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,MAAM,GAAc,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAClD,MAAM,MAAM,GAAc;QACxB,GAAG;QACH,GAAG;QACH,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YACvD,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE;YAC3B,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAoB;IACxD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { REPLICA_STICKINESS_MANAGER_FACTORY_BASE_TYPE, ReplicaStickinessManagerFactory, } from "@naylence/runtime";
|
|
2
|
+
import { AFTReplicaStickinessManager } from "./aft-replica-stickiness-manager.js";
|
|
3
|
+
import { StickinessMode, normalizeStickinessMode } from "./stickiness-mode.js";
|
|
4
|
+
export const FACTORY_META = {
|
|
5
|
+
base: REPLICA_STICKINESS_MANAGER_FACTORY_BASE_TYPE,
|
|
6
|
+
key: "AFTReplicaStickinessManager",
|
|
7
|
+
};
|
|
8
|
+
const DEFAULT_VALUES = {
|
|
9
|
+
securityLevel: StickinessMode.SIGNED_OPTIONAL,
|
|
10
|
+
maxTtlSec: 7200,
|
|
11
|
+
};
|
|
12
|
+
function normalizeConfig(config) {
|
|
13
|
+
const record = (config ?? {});
|
|
14
|
+
const normalizedSecurity = record.securityLevel
|
|
15
|
+
? normalizeStickinessMode(record.securityLevel)
|
|
16
|
+
: DEFAULT_VALUES.securityLevel;
|
|
17
|
+
const securityLevel = normalizedSecurity ?? DEFAULT_VALUES.securityLevel;
|
|
18
|
+
const maxTtlSecValue = typeof record.maxTtlSec === "number" && Number.isFinite(record.maxTtlSec)
|
|
19
|
+
? Math.max(0, Math.floor(record.maxTtlSec))
|
|
20
|
+
: DEFAULT_VALUES.maxTtlSec;
|
|
21
|
+
return {
|
|
22
|
+
...record,
|
|
23
|
+
type: "AFTReplicaStickinessManager",
|
|
24
|
+
securityLevel,
|
|
25
|
+
maxTtlSec: maxTtlSecValue,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export class AFTReplicaStickinessManagerFactory extends ReplicaStickinessManagerFactory {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(...arguments);
|
|
31
|
+
this.type = FACTORY_META.key;
|
|
32
|
+
this.isDefault = true;
|
|
33
|
+
}
|
|
34
|
+
async create(config, dependencies) {
|
|
35
|
+
const resolvedConfig = normalizeConfig(config);
|
|
36
|
+
const helper = dependencies?.aftHelper ?? null;
|
|
37
|
+
const securityLevel = normalizeStickinessMode(resolvedConfig.securityLevel ?? DEFAULT_VALUES.securityLevel) ?? DEFAULT_VALUES.securityLevel;
|
|
38
|
+
const maxTtlSec = typeof resolvedConfig.maxTtlSec === "number" &&
|
|
39
|
+
Number.isFinite(resolvedConfig.maxTtlSec)
|
|
40
|
+
? Math.max(0, Math.floor(resolvedConfig.maxTtlSec))
|
|
41
|
+
: DEFAULT_VALUES.maxTtlSec;
|
|
42
|
+
return new AFTReplicaStickinessManager({
|
|
43
|
+
securityLevel,
|
|
44
|
+
maxTtlSec,
|
|
45
|
+
aftHelper: helper,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export default AFTReplicaStickinessManagerFactory;
|
|
50
|
+
//# sourceMappingURL=aft-replica-stickiness-manager-factory.js.map
|