@venizia/ignis 0.2.0-9 → 0.2.1-0
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.md +0 -1
- package/README.md +118 -158
- package/dist/base/applications/base.d.ts +19 -13
- package/dist/base/applications/base.d.ts.map +1 -1
- package/dist/base/applications/base.js +95 -74
- package/dist/base/applications/base.js.map +1 -1
- package/dist/base/applications/boot-steps.d.ts +13 -0
- package/dist/base/applications/boot-steps.d.ts.map +1 -0
- package/dist/base/applications/boot-steps.js +23 -0
- package/dist/base/applications/boot-steps.js.map +1 -0
- package/dist/base/applications/common/index.d.ts +2 -0
- package/dist/base/applications/common/index.d.ts.map +1 -0
- package/dist/base/applications/common/index.js +18 -0
- package/dist/base/applications/common/index.js.map +1 -0
- package/dist/base/applications/{types.d.ts → common/types.d.ts} +11 -0
- package/dist/base/applications/common/types.d.ts.map +1 -0
- package/dist/base/applications/common/types.js.map +1 -0
- package/dist/base/applications/index.d.ts +2 -1
- package/dist/base/applications/index.d.ts.map +1 -1
- package/dist/base/applications/index.js +2 -1
- package/dist/base/applications/index.js.map +1 -1
- package/dist/base/applications/server.d.ts +6 -2
- package/dist/base/applications/server.d.ts.map +1 -1
- package/dist/base/applications/server.js +34 -2
- package/dist/base/applications/server.js.map +1 -1
- package/dist/base/controllers/grpc/adapter.js +2 -2
- package/dist/base/controllers/grpc/adapter.js.map +1 -1
- package/dist/base/middlewares/app-error/app-error.middleware.d.ts +3 -2
- package/dist/base/middlewares/app-error/app-error.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/app-error/app-error.middleware.js +4 -3
- package/dist/base/middlewares/app-error/app-error.middleware.js.map +1 -1
- package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts +2 -2
- package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/request-spy/request-spy.middleware.js +20 -6
- package/dist/base/middlewares/request-spy/request-spy.middleware.js.map +1 -1
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/common/constants.js +2 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/environments.d.ts +31 -10
- package/dist/common/environments.d.ts.map +1 -1
- package/dist/common/environments.js +33 -10
- package/dist/common/environments.js.map +1 -1
- package/dist/components/api-reference/component.d.ts.map +1 -1
- package/dist/components/api-reference/component.js +4 -3
- package/dist/components/api-reference/component.js.map +1 -1
- package/dist/components/api-reference/index.d.ts +1 -1
- package/dist/components/api-reference/index.d.ts.map +1 -1
- package/dist/components/api-reference/index.js +1 -1
- package/dist/components/api-reference/index.js.map +1 -1
- package/dist/components/api-reference/ui/factory.d.ts +14 -0
- package/dist/components/api-reference/ui/factory.d.ts.map +1 -0
- package/dist/components/api-reference/ui/factory.js +54 -0
- package/dist/components/api-reference/ui/factory.js.map +1 -0
- package/dist/components/api-reference/ui/index.d.ts +4 -0
- package/dist/components/api-reference/ui/index.d.ts.map +1 -0
- package/dist/components/api-reference/ui/index.js +20 -0
- package/dist/components/api-reference/ui/index.js.map +1 -0
- package/dist/components/api-reference/ui/scalar.d.ts +8 -0
- package/dist/components/api-reference/ui/scalar.d.ts.map +1 -0
- package/dist/components/api-reference/ui/scalar.js +28 -0
- package/dist/components/api-reference/ui/scalar.js.map +1 -0
- package/dist/components/api-reference/ui/swagger.d.ts +8 -0
- package/dist/components/api-reference/ui/swagger.d.ts.map +1 -0
- package/dist/components/api-reference/ui/swagger.js +28 -0
- package/dist/components/api-reference/ui/swagger.js.map +1 -0
- package/dist/components/auth/authenticate/component.d.ts +5 -0
- package/dist/components/auth/authenticate/component.d.ts.map +1 -1
- package/dist/components/auth/authenticate/component.js +23 -0
- package/dist/components/auth/authenticate/component.js.map +1 -1
- package/dist/components/auth/authenticate/controllers/factory.d.ts +35 -3
- package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts +40 -20
- package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts +40 -20
- package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts +2 -2
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js +12 -8
- package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js +5 -3
- package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts +1 -2
- package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/bearer/jws.service.js +5 -3
- package/dist/components/auth/authenticate/services/bearer/jws.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/jose-loader.d.ts +16 -0
- package/dist/components/auth/authenticate/services/jose-loader.d.ts.map +1 -0
- package/dist/components/auth/authenticate/services/jose-loader.js +25 -0
- package/dist/components/auth/authenticate/services/jose-loader.js.map +1 -0
- package/dist/components/auth/authenticate/services/service/signer.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/service/signer.service.js +8 -5
- package/dist/components/auth/authenticate/services/service/signer.service.js.map +1 -1
- package/dist/components/auth/authenticate/services/service/verifier.service.d.ts.map +1 -1
- package/dist/components/auth/authenticate/services/service/verifier.service.js +10 -9
- package/dist/components/auth/authenticate/services/service/verifier.service.js.map +1 -1
- package/dist/components/auth/authenticate/strategies/index.d.ts +1 -1
- package/dist/components/auth/authenticate/strategies/index.d.ts.map +1 -1
- package/dist/components/auth/authenticate/strategies/index.js +1 -1
- package/dist/components/auth/authenticate/strategies/index.js.map +1 -1
- package/dist/components/auth/authenticate/strategies/jwks/index.d.ts +3 -0
- package/dist/components/auth/authenticate/strategies/jwks/index.d.ts.map +1 -0
- package/dist/components/auth/authenticate/strategies/jwks/index.js +19 -0
- package/dist/components/auth/authenticate/strategies/jwks/index.js.map +1 -0
- package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts +13 -0
- package/dist/components/auth/authenticate/strategies/jwks/issuer.d.ts.map +1 -0
- package/dist/components/auth/authenticate/strategies/{jwks.strategy.js → jwks/issuer.js} +4 -27
- package/dist/components/auth/authenticate/strategies/jwks/issuer.js.map +1 -0
- package/dist/components/auth/authenticate/strategies/{jwks.strategy.d.ts → jwks/verifier.d.ts} +2 -10
- package/dist/components/auth/authenticate/strategies/jwks/verifier.d.ts.map +1 -0
- package/dist/components/auth/authenticate/strategies/jwks/verifier.js +45 -0
- package/dist/components/auth/authenticate/strategies/jwks/verifier.js.map +1 -0
- package/dist/components/auth/authorize/adapters/base-filtered.d.ts +1 -1
- package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/common/index.d.ts +2 -0
- package/dist/components/auth/authorize/adapters/common/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/common/index.js +18 -0
- package/dist/components/auth/authorize/adapters/common/index.js.map +1 -0
- package/dist/components/auth/authorize/adapters/{types.d.ts → common/types.d.ts} +1 -1
- package/dist/components/auth/authorize/adapters/common/types.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/common/types.js.map +1 -0
- package/dist/components/auth/authorize/adapters/connector.d.ts +1 -1
- package/dist/components/auth/authorize/adapters/connector.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts +1 -1
- package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/index.d.ts +2 -2
- package/dist/components/auth/authorize/adapters/index.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/index.js +2 -2
- package/dist/components/auth/authorize/adapters/index.js.map +1 -1
- package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.d.ts → scoped-casbin/adapter.d.ts} +11 -55
- package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/{scoped-casbin.adapter.js → scoped-casbin/adapter.js} +27 -22
- package/dist/components/auth/authorize/adapters/scoped-casbin/adapter.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts +2 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js +5 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/constants.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts +3 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js +19 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/index.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts +50 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js +3 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/common/types.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts +4 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.js +19 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/index.js.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts +17 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js +11 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin/policy-edges.js.map +1 -0
- package/dist/components/auth/authorize/enforcers/policy-line-codec.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/policy-line-codec.js +4 -2
- package/dist/components/auth/authorize/enforcers/policy-line-codec.js.map +1 -1
- package/dist/components/auth/authorize/role-managers/base.d.ts.map +1 -1
- package/dist/components/auth/authorize/role-managers/base.js +2 -1
- package/dist/components/auth/authorize/role-managers/base.js.map +1 -1
- package/dist/components/auth/models/entities/policy-definition.model.d.ts +30 -9
- package/dist/components/auth/models/entities/policy-definition.model.d.ts.map +1 -1
- package/dist/components/auth/models/entities/policy-definition.model.js +36 -10
- package/dist/components/auth/models/entities/policy-definition.model.js.map +1 -1
- package/dist/components/auth/models/entities/user.model.d.ts +2 -2
- package/dist/components/controller/grpc/grpc.component.d.ts.map +1 -1
- package/dist/components/controller/grpc/grpc.component.js +1 -5
- package/dist/components/controller/grpc/grpc.component.js.map +1 -1
- package/dist/components/health-check/common/constants.d.ts +5 -0
- package/dist/components/health-check/common/constants.d.ts.map +1 -0
- package/dist/components/health-check/common/constants.js +9 -0
- package/dist/components/health-check/common/constants.js.map +1 -0
- package/dist/components/health-check/common/index.d.ts +1 -0
- package/dist/components/health-check/common/index.d.ts.map +1 -1
- package/dist/components/health-check/common/index.js +1 -0
- package/dist/components/health-check/common/index.js.map +1 -1
- package/dist/components/health-check/common/keys.d.ts +2 -0
- package/dist/components/health-check/common/keys.d.ts.map +1 -1
- package/dist/components/health-check/common/keys.js +2 -0
- package/dist/components/health-check/common/keys.js.map +1 -1
- package/dist/components/health-check/common/rest-paths.d.ts +1 -0
- package/dist/components/health-check/common/rest-paths.d.ts.map +1 -1
- package/dist/components/health-check/common/rest-paths.js +1 -0
- package/dist/components/health-check/common/rest-paths.js.map +1 -1
- package/dist/components/health-check/common/types.d.ts +22 -0
- package/dist/components/health-check/common/types.d.ts.map +1 -1
- package/dist/components/health-check/component.d.ts +9 -3
- package/dist/components/health-check/component.d.ts.map +1 -1
- package/dist/components/health-check/component.js +38 -1
- package/dist/components/health-check/component.js.map +1 -1
- package/dist/components/health-check/controller.d.ts +10 -2
- package/dist/components/health-check/controller.d.ts.map +1 -1
- package/dist/components/health-check/controller.js +79 -13
- package/dist/components/health-check/controller.js.map +1 -1
- package/dist/components/health-check/index.d.ts +1 -0
- package/dist/components/health-check/index.d.ts.map +1 -1
- package/dist/components/health-check/index.js +1 -0
- package/dist/components/health-check/index.js.map +1 -1
- package/dist/components/health-check/reporter.d.ts +98 -0
- package/dist/components/health-check/reporter.d.ts.map +1 -0
- package/dist/components/health-check/reporter.js +138 -0
- package/dist/components/health-check/reporter.js.map +1 -0
- package/dist/components/mail/common/constants.d.ts +13 -0
- package/dist/components/mail/common/constants.d.ts.map +1 -1
- package/dist/components/mail/common/constants.js +20 -1
- package/dist/components/mail/common/constants.js.map +1 -1
- package/dist/components/mail/common/errors.d.ts +25 -0
- package/dist/components/mail/common/errors.d.ts.map +1 -1
- package/dist/components/mail/common/errors.js +22 -0
- package/dist/components/mail/common/errors.js.map +1 -1
- package/dist/components/mail/common/types/index.d.ts +6 -0
- package/dist/components/mail/common/types/index.d.ts.map +1 -0
- package/dist/components/mail/common/types/index.js +22 -0
- package/dist/components/mail/common/types/index.js.map +1 -0
- package/dist/components/mail/common/types/message.d.ts +50 -0
- package/dist/components/mail/common/types/message.d.ts.map +1 -0
- package/dist/components/mail/common/types/message.js +3 -0
- package/dist/components/mail/common/types/message.js.map +1 -0
- package/dist/components/mail/common/types/options.d.ts +72 -0
- package/dist/components/mail/common/types/options.d.ts.map +1 -0
- package/dist/components/mail/common/types/options.js +3 -0
- package/dist/components/mail/common/types/options.js.map +1 -0
- package/dist/components/mail/common/types/queue.d.ts +56 -0
- package/dist/components/mail/common/types/queue.d.ts.map +1 -0
- package/dist/components/mail/common/types/queue.js +3 -0
- package/dist/components/mail/common/types/queue.js.map +1 -0
- package/dist/components/mail/common/types/template.d.ts +33 -0
- package/dist/components/mail/common/types/template.d.ts.map +1 -0
- package/dist/components/mail/common/types/template.js +3 -0
- package/dist/components/mail/common/types/template.js.map +1 -0
- package/dist/components/mail/common/types/verification.d.ts +26 -0
- package/dist/components/mail/common/types/verification.d.ts.map +1 -0
- package/dist/components/mail/common/types/verification.js +3 -0
- package/dist/components/mail/common/types/verification.js.map +1 -0
- package/dist/components/mail/component.d.ts +6 -1
- package/dist/components/mail/component.d.ts.map +1 -1
- package/dist/components/mail/component.js +68 -16
- package/dist/components/mail/component.js.map +1 -1
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts +1 -0
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js +3 -0
- package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js.map +1 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js +2 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js.map +1 -1
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts +19 -0
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts.map +1 -0
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.js +114 -0
- package/dist/components/mail/helpers/transporters/amazon-ses-transporter.helper.js.map +1 -0
- package/dist/components/mail/helpers/transporters/index.d.ts +2 -1
- package/dist/components/mail/helpers/transporters/index.d.ts.map +1 -1
- package/dist/components/mail/helpers/transporters/index.js +2 -1
- package/dist/components/mail/helpers/transporters/index.js.map +1 -1
- package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js +10 -9
- package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js.map +1 -1
- package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.js +12 -1
- package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.js.map +1 -1
- package/dist/components/mail/providers/mail-transporter.provider.d.ts +2 -0
- package/dist/components/mail/providers/mail-transporter.provider.d.ts.map +1 -1
- package/dist/components/mail/providers/mail-transporter.provider.js +35 -17
- package/dist/components/mail/providers/mail-transporter.provider.js.map +1 -1
- package/dist/components/mail/services/generators/index.d.ts +4 -0
- package/dist/components/mail/services/generators/index.d.ts.map +1 -0
- package/dist/components/mail/services/generators/index.js +20 -0
- package/dist/components/mail/services/generators/index.js.map +1 -0
- package/dist/components/mail/services/generators/numeric-code.d.ts +7 -0
- package/dist/components/mail/services/generators/numeric-code.d.ts.map +1 -0
- package/dist/components/mail/services/generators/numeric-code.js +20 -0
- package/dist/components/mail/services/generators/numeric-code.js.map +1 -0
- package/dist/components/mail/services/generators/random-token.d.ts +7 -0
- package/dist/components/mail/services/generators/random-token.d.ts.map +1 -0
- package/dist/components/mail/services/generators/random-token.js +18 -0
- package/dist/components/mail/services/generators/random-token.js.map +1 -0
- package/dist/components/mail/services/{generator.service.d.ts → generators/verification-data.d.ts} +2 -10
- package/dist/components/mail/services/generators/verification-data.d.ts.map +1 -0
- package/dist/components/mail/services/{generator.service.js → generators/verification-data.js} +5 -29
- package/dist/components/mail/services/generators/verification-data.js.map +1 -0
- package/dist/components/mail/services/index.d.ts +1 -1
- package/dist/components/mail/services/index.d.ts.map +1 -1
- package/dist/components/mail/services/index.js +1 -1
- package/dist/components/mail/services/index.js.map +1 -1
- package/dist/components/mail/services/mail.service.d.ts.map +1 -1
- package/dist/components/mail/services/mail.service.js +37 -20
- package/dist/components/mail/services/mail.service.js.map +1 -1
- package/dist/components/mail/utilities/address.utility.d.ts +9 -0
- package/dist/components/mail/utilities/address.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/address.utility.js +36 -0
- package/dist/components/mail/utilities/address.utility.js.map +1 -0
- package/dist/components/mail/utilities/attachment.utility.d.ts +31 -0
- package/dist/components/mail/utilities/attachment.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/attachment.utility.js +214 -0
- package/dist/components/mail/utilities/attachment.utility.js.map +1 -0
- package/dist/components/mail/utilities/body.utility.d.ts +6 -0
- package/dist/components/mail/utilities/body.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/body.utility.js +20 -0
- package/dist/components/mail/utilities/body.utility.js.map +1 -0
- package/dist/components/mail/utilities/index.d.ts +2 -0
- package/dist/components/mail/utilities/index.d.ts.map +1 -1
- package/dist/components/mail/utilities/index.js +2 -0
- package/dist/components/mail/utilities/index.js.map +1 -1
- package/dist/components/mail/utilities/mime.utility.d.ts +19 -0
- package/dist/components/mail/utilities/mime.utility.d.ts.map +1 -0
- package/dist/components/mail/utilities/mime.utility.js +390 -0
- package/dist/components/mail/utilities/mime.utility.js.map +1 -0
- package/dist/components/static-asset/common/commit-token.d.ts +23 -0
- package/dist/components/static-asset/common/commit-token.d.ts.map +1 -0
- package/dist/components/static-asset/common/commit-token.js +40 -0
- package/dist/components/static-asset/common/commit-token.js.map +1 -0
- package/dist/components/static-asset/common/constants.d.ts +21 -1
- package/dist/components/static-asset/common/constants.d.ts.map +1 -1
- package/dist/components/static-asset/common/constants.js +39 -2
- package/dist/components/static-asset/common/constants.js.map +1 -1
- package/dist/components/static-asset/common/errors.d.ts +52 -0
- package/dist/components/static-asset/common/errors.d.ts.map +1 -1
- package/dist/components/static-asset/common/errors.js +46 -0
- package/dist/components/static-asset/common/errors.js.map +1 -1
- package/dist/components/static-asset/common/index.d.ts +1 -0
- package/dist/components/static-asset/common/index.d.ts.map +1 -1
- package/dist/components/static-asset/common/index.js +1 -0
- package/dist/components/static-asset/common/index.js.map +1 -1
- package/dist/components/static-asset/common/keys.d.ts +1 -0
- package/dist/components/static-asset/common/keys.d.ts.map +1 -1
- package/dist/components/static-asset/common/keys.js +1 -0
- package/dist/components/static-asset/common/keys.js.map +1 -1
- package/dist/components/static-asset/common/types.d.ts +100 -30
- package/dist/components/static-asset/common/types.d.ts.map +1 -1
- package/dist/components/static-asset/component.d.ts +4 -1
- package/dist/components/static-asset/component.d.ts.map +1 -1
- package/dist/components/static-asset/component.js +21 -10
- package/dist/components/static-asset/component.js.map +1 -1
- package/dist/components/static-asset/controller/base.definition.d.ts +27 -554
- package/dist/components/static-asset/controller/base.definition.d.ts.map +1 -1
- package/dist/components/static-asset/controller/base.definition.js +259 -286
- package/dist/components/static-asset/controller/base.definition.js.map +1 -1
- package/dist/components/static-asset/controller/factory.d.ts +76 -7
- package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
- package/dist/components/static-asset/controller/factory.js +810 -328
- package/dist/components/static-asset/controller/factory.js.map +1 -1
- package/dist/components/static-asset/controller/key-scope.d.ts +28 -0
- package/dist/components/static-asset/controller/key-scope.d.ts.map +1 -0
- package/dist/components/static-asset/controller/key-scope.js +44 -0
- package/dist/components/static-asset/controller/key-scope.js.map +1 -0
- package/dist/components/static-asset/controller/meta-link.d.ts +37 -0
- package/dist/components/static-asset/controller/meta-link.d.ts.map +1 -0
- package/dist/components/static-asset/controller/meta-link.js +95 -0
- package/dist/components/static-asset/controller/meta-link.js.map +1 -0
- package/dist/components/static-asset/controller/route-options.d.ts +18 -0
- package/dist/components/static-asset/controller/route-options.d.ts.map +1 -0
- package/dist/components/static-asset/controller/route-options.js +37 -0
- package/dist/components/static-asset/controller/route-options.js.map +1 -0
- package/dist/components/static-asset/index.d.ts +1 -0
- package/dist/components/static-asset/index.d.ts.map +1 -1
- package/dist/components/static-asset/index.js +1 -0
- package/dist/components/static-asset/index.js.map +1 -1
- package/dist/components/static-asset/ingest.d.ts +58 -0
- package/dist/components/static-asset/ingest.d.ts.map +1 -0
- package/dist/components/static-asset/ingest.js +82 -0
- package/dist/components/static-asset/ingest.js.map +1 -0
- package/dist/components/static-asset/models/base.model.d.ts +44 -6
- package/dist/components/static-asset/models/base.model.d.ts.map +1 -1
- package/dist/components/static-asset/models/base.model.js +7 -1
- package/dist/components/static-asset/models/base.model.js.map +1 -1
- package/dist/components/websocket/handlers/bun.handler.d.ts.map +1 -1
- package/dist/components/websocket/handlers/bun.handler.js +2 -1
- package/dist/components/websocket/handlers/bun.handler.js.map +1 -1
- package/dist/connectors/postgres/drivers/postgres-js.d.mts +3 -0
- package/dist/connectors/postgres/drivers/postgres-js.d.mts.map +1 -0
- package/dist/connectors/postgres/drivers/postgres-js.mjs +3 -0
- package/dist/connectors/postgres/drivers/postgres-js.mjs.map +1 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +19 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +33 -26
- package/dist/base/applications/types.d.ts.map +0 -1
- package/dist/base/applications/types.js.map +0 -1
- package/dist/components/api-reference/ui-factory.d.ts +0 -24
- package/dist/components/api-reference/ui-factory.d.ts.map +0 -1
- package/dist/components/api-reference/ui-factory.js +0 -97
- package/dist/components/api-reference/ui-factory.js.map +0 -1
- package/dist/components/auth/authenticate/strategies/jwks.strategy.d.ts.map +0 -1
- package/dist/components/auth/authenticate/strategies/jwks.strategy.js.map +0 -1
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts.map +0 -1
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js.map +0 -1
- package/dist/components/auth/authorize/adapters/types.d.ts.map +0 -1
- package/dist/components/auth/authorize/adapters/types.js.map +0 -1
- package/dist/components/mail/common/types.d.ts +0 -201
- package/dist/components/mail/common/types.d.ts.map +0 -1
- package/dist/components/mail/common/types.js +0 -10
- package/dist/components/mail/common/types.js.map +0 -1
- package/dist/components/mail/services/generator.service.d.ts.map +0 -1
- package/dist/components/mail/services/generator.service.js.map +0 -1
- /package/dist/base/applications/{types.js → common/types.js} +0 -0
- /package/dist/components/auth/authorize/adapters/{types.js → common/types.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TAuthorizationDecision } from '@venizia/ignis-kernel';
|
|
1
|
+
import type { TAuthorizationDecision, TSubsetGrantMetadata } from '@venizia/ignis-kernel';
|
|
2
2
|
import { integer, text } from 'drizzle-orm/pg-core';
|
|
3
3
|
export type TPolicyDefinitionOptions<ExtraVariant extends string = never> = {
|
|
4
4
|
idType?: 'string' | 'number';
|
|
@@ -15,25 +15,46 @@ type TExtraPolicyVariantOf<Opts> = Opts extends {
|
|
|
15
15
|
extraVariants?: ReadonlyArray<infer ExtraVariant extends string>;
|
|
16
16
|
} ? ExtraVariant : never;
|
|
17
17
|
/** Column shape is inferred, never hand-declared, so it can never drift from the `$type<>()` narrowing below. */
|
|
18
|
-
declare const buildCommonPolicyDefinitionColumns: <ExtraVariant extends string = never>() => {
|
|
18
|
+
declare const buildCommonPolicyDefinitionColumns: <ExtraVariant extends string = never, Metadata extends object = TSubsetGrantMetadata>() => {
|
|
19
|
+
metadata: import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgJsonbBuilderInitial<"metadata">, Metadata>;
|
|
19
20
|
variant: import("drizzle-orm").NotNull<import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgTextBuilderInitial<"variant", [string, ...string[]]>, "join_domain" | "assign_role" | "grant" | "role_inherits" | "domain_inherits" | "resource_inherits" | "action_inherits" | ExtraVariant>>;
|
|
20
21
|
subjectType: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"subject_type", [string, ...string[]]>>;
|
|
21
22
|
targetType: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"target_type", [string, ...string[]]>>;
|
|
23
|
+
domainType: import("drizzle-orm/pg-core").PgTextBuilderInitial<"domain_type", [string, ...string[]]>;
|
|
22
24
|
action: import("drizzle-orm/pg-core").PgTextBuilderInitial<"action", [string, ...string[]]>;
|
|
23
25
|
effect: import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgTextBuilderInitial<"effect", [string, ...string[]]>, TAuthorizationDecision>;
|
|
24
|
-
domain: import("drizzle-orm/pg-core").PgTextBuilderInitial<"domain", [string, ...string[]]>;
|
|
25
|
-
metadata: import("drizzle-orm/pg-core").PgJsonbBuilderInitial<"metadata">;
|
|
26
26
|
};
|
|
27
|
-
export type TPolicyDefinitionCommonColumns<ExtraVariant extends string = never> = ReturnType<typeof buildCommonPolicyDefinitionColumns<ExtraVariant>>;
|
|
28
|
-
type TPolicyDefinitionColumnDef<Opts extends TPolicyDefinitionOptions<string> | undefined = undefined> = Opts extends {
|
|
27
|
+
export type TPolicyDefinitionCommonColumns<ExtraVariant extends string = never, Metadata extends object = TSubsetGrantMetadata> = ReturnType<typeof buildCommonPolicyDefinitionColumns<ExtraVariant, Metadata>>;
|
|
28
|
+
type TPolicyDefinitionColumnDef<Opts extends TPolicyDefinitionOptions<string> | undefined = undefined, Metadata extends object = TSubsetGrantMetadata> = Opts extends {
|
|
29
29
|
idType: 'string';
|
|
30
|
-
} ? TPolicyDefinitionCommonColumns<TExtraPolicyVariantOf<Opts
|
|
30
|
+
} ? TPolicyDefinitionCommonColumns<TExtraPolicyVariantOf<Opts>, Metadata> & {
|
|
31
31
|
subjectId: ReturnType<typeof text>;
|
|
32
32
|
targetId: ReturnType<typeof text>;
|
|
33
|
-
|
|
33
|
+
domainId: ReturnType<typeof text>;
|
|
34
|
+
} : TPolicyDefinitionCommonColumns<TExtraPolicyVariantOf<Opts>, Metadata> & {
|
|
34
35
|
subjectId: ReturnType<typeof integer>;
|
|
35
36
|
targetId: ReturnType<typeof integer>;
|
|
37
|
+
domainId: ReturnType<typeof integer>;
|
|
36
38
|
};
|
|
37
|
-
|
|
39
|
+
/**
|
|
40
|
+
* `Metadata` is a type parameter, not an `opts` field: unlike `extraVariants` there is no runtime
|
|
41
|
+
* value to infer from, so supplying it means spelling `Opts` too (no partial inference):
|
|
42
|
+
* `extraPolicyDefinitionColumns<{ idType: 'string' }, IMyMetadata>({ idType: 'string' })`.
|
|
43
|
+
* Keep `ops` in a custom shape if the app also issues subset grants - `customGrant` writes it.
|
|
44
|
+
*/
|
|
45
|
+
export declare const extraPolicyDefinitionColumns: <const Opts extends TPolicyDefinitionOptions<string> | undefined = undefined, Metadata extends object = TSubsetGrantMetadata>(opts?: Opts) => TPolicyDefinitionColumnDef<Opts, Metadata>;
|
|
46
|
+
/**
|
|
47
|
+
* The three legal `(domain_type, domain_id)` pairs, as CHECK predicate TEXT for a migration - text,
|
|
48
|
+
* not a Drizzle `SQL`, because a column ref in a `sql` template renders schema-qualified, which a
|
|
49
|
+
* table-level CHECK rejects.
|
|
50
|
+
*
|
|
51
|
+
* The `IS NOT NULL` guard on the last branch looks redundant next to `NOT IN` and is not: a NULL
|
|
52
|
+
* `domain_type` makes `NOT IN` evaluate to NULL, and a CHECK rejects only on FALSE - without it an id
|
|
53
|
+
* with no type passes.
|
|
54
|
+
*/
|
|
55
|
+
export declare const policyDefinitionDomainShapeCheck: (opts?: {
|
|
56
|
+
domainTypeColumn?: string;
|
|
57
|
+
domainIdColumn?: string;
|
|
58
|
+
}) => string;
|
|
38
59
|
export {};
|
|
39
60
|
//# sourceMappingURL=policy-definition.model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-definition.model.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"policy-definition.model.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EAEtB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAS,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,wBAAwB,CAAC,YAAY,SAAS,MAAM,GAAG,KAAK,IAAI;IAC1E,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CAC7C,CAAC;AAEF,gGAAgG;AAChG,KAAK,qBAAqB,CAAC,IAAI,IAAI,IAAI,SAAS;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,YAAY,SAAS,MAAM,CAAC,CAAC;CAClE,GACG,YAAY,GACZ,KAAK,CAAC;AAEV,iHAAiH;AACjH,QAAA,MAAM,kCAAkC,GACtC,YAAY,SAAS,MAAM,GAAG,KAAK,EACnC,QAAQ,SAAS,MAAM,GAAG,oBAAoB;;;;;;;;CAa9C,CAAC;AAEH,MAAM,MAAM,8BAA8B,CACxC,YAAY,SAAS,MAAM,GAAG,KAAK,EACnC,QAAQ,SAAS,MAAM,GAAG,oBAAoB,IAC5C,UAAU,CAAC,OAAO,kCAAkC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAElF,KAAK,0BAA0B,CAC7B,IAAI,SAAS,wBAAwB,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,EACrE,QAAQ,SAAS,MAAM,GAAG,oBAAoB,IAC5C,IAAI,SAAS;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACjC,8BAA8B,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG;IACtE,SAAS,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACnC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IAClC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;CACnC,GACD,8BAA8B,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG;IACtE,SAAS,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IACtC,QAAQ,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IACrC,QAAQ,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;CACtC,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,KAAK,CAAC,IAAI,SAAS,wBAAwB,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3E,QAAQ,SAAS,MAAM,GAAG,oBAAoB,EAE9C,OAAO,IAAI,KACV,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CA4B3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,GAAI,OAAO;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KAAG,MAaH,CAAC"}
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extraPolicyDefinitionColumns = void 0;
|
|
3
|
+
exports.policyDefinitionDomainShapeCheck = exports.extraPolicyDefinitionColumns = void 0;
|
|
4
4
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
5
|
+
const ignis_kernel_1 = require("@venizia/ignis-kernel");
|
|
5
6
|
const pg_core_1 = require("drizzle-orm/pg-core");
|
|
6
7
|
/** Column shape is inferred, never hand-declared, so it can never drift from the `$type<>()` narrowing below. */
|
|
7
8
|
const buildCommonPolicyDefinitionColumns = () => ({
|
|
8
|
-
|
|
9
|
-
// a typo here is a silent 403, not a compile error.
|
|
9
|
+
metadata: (0, pg_core_1.jsonb)('metadata').$type(),
|
|
10
10
|
variant: (0, pg_core_1.text)('variant').$type().notNull(),
|
|
11
11
|
subjectType: (0, pg_core_1.text)('subject_type').notNull(),
|
|
12
12
|
targetType: (0, pg_core_1.text)('target_type').notNull(),
|
|
13
|
-
//
|
|
13
|
+
// `null` IS `ANY_MEMBER`, not "unknown"; the literal is refused by `policyDefinitionDomainShapeCheck`.
|
|
14
|
+
domainType: (0, pg_core_1.text)('domain_type'),
|
|
14
15
|
action: (0, pg_core_1.text)('action'),
|
|
15
|
-
// Narrowed to AuthorizationDecisions (allow/deny/abstain) and NOT extensible like `variant`:
|
|
16
|
-
// the casbin effect evaluator itself reads this value, so an unknown effect is a correctness
|
|
17
|
-
// bug in enforcement, not a harmless unselected row.
|
|
18
16
|
effect: (0, pg_core_1.text)('effect').$type(),
|
|
19
|
-
domain: (0, pg_core_1.text)('domain'),
|
|
20
|
-
// Nullable: only subset grants populate it, and a consumer may map its own column instead.
|
|
21
|
-
metadata: (0, pg_core_1.jsonb)('metadata'),
|
|
22
17
|
});
|
|
18
|
+
/**
|
|
19
|
+
* `Metadata` is a type parameter, not an `opts` field: unlike `extraVariants` there is no runtime
|
|
20
|
+
* value to infer from, so supplying it means spelling `Opts` too (no partial inference):
|
|
21
|
+
* `extraPolicyDefinitionColumns<{ idType: 'string' }, IMyMetadata>({ idType: 'string' })`.
|
|
22
|
+
* Keep `ops` in a custom shape if the app also issues subset grants - `customGrant` writes it.
|
|
23
|
+
*/
|
|
23
24
|
const extraPolicyDefinitionColumns = (opts) => {
|
|
24
25
|
const { idType = 'number' } = opts ?? {};
|
|
25
26
|
const common = buildCommonPolicyDefinitionColumns();
|
|
@@ -29,6 +30,7 @@ const extraPolicyDefinitionColumns = (opts) => {
|
|
|
29
30
|
...common,
|
|
30
31
|
subjectId: (0, pg_core_1.integer)('subject_id').notNull(),
|
|
31
32
|
targetId: (0, pg_core_1.integer)('target_id').notNull(),
|
|
33
|
+
domainId: (0, pg_core_1.integer)('domain_id'),
|
|
32
34
|
};
|
|
33
35
|
}
|
|
34
36
|
case 'string': {
|
|
@@ -36,6 +38,7 @@ const extraPolicyDefinitionColumns = (opts) => {
|
|
|
36
38
|
...common,
|
|
37
39
|
subjectId: (0, pg_core_1.text)('subject_id').notNull(),
|
|
38
40
|
targetId: (0, pg_core_1.text)('target_id').notNull(),
|
|
41
|
+
domainId: (0, pg_core_1.text)('domain_id'),
|
|
39
42
|
};
|
|
40
43
|
}
|
|
41
44
|
default: {
|
|
@@ -46,4 +49,27 @@ const extraPolicyDefinitionColumns = (opts) => {
|
|
|
46
49
|
}
|
|
47
50
|
};
|
|
48
51
|
exports.extraPolicyDefinitionColumns = extraPolicyDefinitionColumns;
|
|
52
|
+
/**
|
|
53
|
+
* The three legal `(domain_type, domain_id)` pairs, as CHECK predicate TEXT for a migration - text,
|
|
54
|
+
* not a Drizzle `SQL`, because a column ref in a `sql` template renders schema-qualified, which a
|
|
55
|
+
* table-level CHECK rejects.
|
|
56
|
+
*
|
|
57
|
+
* The `IS NOT NULL` guard on the last branch looks redundant next to `NOT IN` and is not: a NULL
|
|
58
|
+
* `domain_type` makes `NOT IN` evaluate to NULL, and a CHECK rejects only on FALSE - without it an id
|
|
59
|
+
* with no type passes.
|
|
60
|
+
*/
|
|
61
|
+
const policyDefinitionDomainShapeCheck = (opts) => {
|
|
62
|
+
const { domainTypeColumn = 'domain_type', domainIdColumn = 'domain_id' } = opts ?? {};
|
|
63
|
+
const { ANY_MEMBER, SYSTEM_WIDE } = ignis_kernel_1.AuthorizationDomainScopes;
|
|
64
|
+
return [
|
|
65
|
+
`(${domainTypeColumn} IS NULL AND ${domainIdColumn} IS NULL)`,
|
|
66
|
+
`OR (${domainTypeColumn} = '${SYSTEM_WIDE}' AND ${domainIdColumn} IS NULL)`,
|
|
67
|
+
`OR (
|
|
68
|
+
${domainTypeColumn} IS NOT NULL
|
|
69
|
+
AND ${domainTypeColumn} NOT IN ('${ANY_MEMBER}', '${SYSTEM_WIDE}')
|
|
70
|
+
AND ${domainIdColumn} IS NOT NULL
|
|
71
|
+
)`,
|
|
72
|
+
].join('\n');
|
|
73
|
+
};
|
|
74
|
+
exports.policyDefinitionDomainShapeCheck = policyDefinitionDomainShapeCheck;
|
|
49
75
|
//# sourceMappingURL=policy-definition.model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-definition.model.js","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;
|
|
1
|
+
{"version":3,"file":"policy-definition.model.js","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAMvD,wDAAkE;AAClE,iDAA2D;AAoB3D,iHAAiH;AACjH,MAAM,kCAAkC,GAAG,GAGvC,EAAE,CAAC,CAAC;IACN,QAAQ,EAAE,IAAA,eAAK,EAAC,UAAU,CAAC,CAAC,KAAK,EAAY;IAC7C,OAAO,EAAE,IAAA,cAAI,EAAC,SAAS,CAAC,CAAC,KAAK,EAA8C,CAAC,OAAO,EAAE;IAEtF,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC3C,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,CAAC,OAAO,EAAE;IAEzC,uGAAuG;IACvG,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC;IAE/B,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC;IACtB,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC,CAAC,KAAK,EAA0B;CACvD,CAAC,CAAC;AAsBH;;;;;GAKG;AACI,MAAM,4BAA4B,GAAG,CAI1C,IAAW,EACiC,EAAE;IAC9C,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,kCAAkC,EAAyC,CAAC;IAE3F,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,GAAG,MAAM;gBACT,SAAS,EAAE,IAAA,iBAAO,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;gBAC1C,QAAQ,EAAE,IAAA,iBAAO,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE;gBACxC,QAAQ,EAAE,IAAA,iBAAO,EAAC,WAAW,CAAC;aACe,CAAC;QAClD,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,GAAG,MAAM;gBACT,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;gBACvC,QAAQ,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE;gBACrC,QAAQ,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC;aACkB,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAA,eAAQ,EAAC;gBACb,OAAO,EAAE,2DAA2D,MAAM,EAAE;aAC7E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAjCW,QAAA,4BAA4B,gCAiCvC;AAEF;;;;;;;;GAQG;AACI,MAAM,gCAAgC,GAAG,CAAC,IAGhD,EAAU,EAAE;IACX,MAAM,EAAE,gBAAgB,GAAG,aAAa,EAAE,cAAc,GAAG,WAAW,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACtF,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,wCAAyB,CAAC;IAE9D,OAAO;QACL,IAAI,gBAAgB,gBAAgB,cAAc,WAAW;QAC7D,OAAO,gBAAgB,OAAO,WAAW,SAAS,cAAc,WAAW;QAC3E;QACI,gBAAgB;YACZ,gBAAgB,aAAa,UAAU,OAAO,WAAW;YACzD,cAAc;MACpB;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAhBW,QAAA,gCAAgC,oCAgB3C"}
|
|
@@ -10,7 +10,7 @@ export declare const extraUserColumns: (opts?: {
|
|
|
10
10
|
name: string;
|
|
11
11
|
dataType: "custom";
|
|
12
12
|
columnType: "PgCustomColumn";
|
|
13
|
-
data: string;
|
|
13
|
+
data: string | import("@venizia/ignis-kernel").TIsoTimestamp;
|
|
14
14
|
driverParam: string;
|
|
15
15
|
enumValues: undefined;
|
|
16
16
|
}>;
|
|
@@ -18,7 +18,7 @@ export declare const extraUserColumns: (opts?: {
|
|
|
18
18
|
name: string;
|
|
19
19
|
dataType: "custom";
|
|
20
20
|
columnType: "PgCustomColumn";
|
|
21
|
-
data: string;
|
|
21
|
+
data: string | import("@venizia/ignis-kernel").TIsoTimestamp;
|
|
22
22
|
driverParam: string;
|
|
23
23
|
enumValues: undefined;
|
|
24
24
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.component.d.ts","sourceRoot":"","sources":["../../../../src/components/controller/grpc/grpc.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"grpc.component.d.ts","sourceRoot":"","sources":["../../../../src/components/controller/grpc/grpc.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAYtD,qBAAa,aAAc,SAAQ,aAAa;IAClC,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAYjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA+ExC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.GrpcComponent = void 0;
|
|
7
4
|
const ignis_kernel_1 = require("@venizia/ignis-kernel");
|
|
@@ -10,7 +7,6 @@ const ignis_kernel_3 = require("@venizia/ignis-kernel");
|
|
|
10
7
|
const ignis_kernel_4 = require("@venizia/ignis-kernel");
|
|
11
8
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
12
9
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
13
|
-
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
14
10
|
const types_1 = require("./common/types");
|
|
15
11
|
const DEFAULT_OPTIONS = {};
|
|
16
12
|
class GrpcComponent extends ignis_kernel_1.BaseComponent {
|
|
@@ -55,7 +51,7 @@ class GrpcComponent extends ignis_kernel_1.BaseComponent {
|
|
|
55
51
|
configured.add(binding.key);
|
|
56
52
|
continue;
|
|
57
53
|
}
|
|
58
|
-
if (!metadata?.path || (0,
|
|
54
|
+
if (!metadata?.path || (0, common_1.isEmpty)({ value: metadata.path })) {
|
|
59
55
|
throw (0, core_1.getError)({
|
|
60
56
|
statusCode: common_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
61
57
|
message: `[registerControllers] key: '${binding.key}' | Invalid controller metadata, 'path' is required for gRPC controller metadata`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.component.js","sourceRoot":"","sources":["../../../../src/components/controller/grpc/grpc.component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grpc.component.js","sourceRoot":"","sources":["../../../../src/components/controller/grpc/grpc.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/constants.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAkB;IAC7B,mGAAmG;IACnG,MAAM,CAAC,QAAQ,CAAC,UAAU,kBAAkB;CAC7C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HealthCheckHeaders = void 0;
|
|
4
|
+
class HealthCheckHeaders {
|
|
5
|
+
/** Where a gated stats request carries its key; lowercase because Hono normalises header names. */
|
|
6
|
+
static { this.SECRET_KEY = 'x-health-key'; }
|
|
7
|
+
}
|
|
8
|
+
exports.HealthCheckHeaders = HealthCheckHeaders;
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/components/health-check/common/constants.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAkB;IAC7B,mGAAmG;aACnF,eAAU,GAAG,cAAc,CAAC;;AAF9C,gDAGC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./constants"), exports);
|
|
17
18
|
__exportStar(require("./keys"), exports);
|
|
18
19
|
__exportStar(require("./rest-paths"), exports);
|
|
19
20
|
__exportStar(require("./types"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/health-check/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/health-check/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare class HealthCheckBindingKeys {
|
|
2
2
|
static readonly HEALTH_CHECK_OPTIONS = "@app/health-check/options";
|
|
3
|
+
/** The component resolves `getAppInfo()` once (it is async) and binds the result for the controller. */
|
|
4
|
+
static readonly APPLICATION_INFO = "@app/health-check/application-info";
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/keys.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB;IACjC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,+BAA+B;
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/keys.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB;IACjC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,+BAA+B;IACnE,wGAAwG;IACxG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wCAAwC;CACzE"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HealthCheckBindingKeys = void 0;
|
|
4
4
|
class HealthCheckBindingKeys {
|
|
5
5
|
static { this.HEALTH_CHECK_OPTIONS = '@app/health-check/options'; }
|
|
6
|
+
/** The component resolves `getAppInfo()` once (it is async) and binds the result for the controller. */
|
|
7
|
+
static { this.APPLICATION_INFO = '@app/health-check/application-info'; }
|
|
6
8
|
}
|
|
7
9
|
exports.HealthCheckBindingKeys = HealthCheckBindingKeys;
|
|
8
10
|
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/components/health-check/common/keys.ts"],"names":[],"mappings":";;;AAAA,MAAa,sBAAsB;aACjB,yBAAoB,GAAG,2BAA2B,CAAC;;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/components/health-check/common/keys.ts"],"names":[],"mappings":";;;AAAA,MAAa,sBAAsB;aACjB,yBAAoB,GAAG,2BAA2B,CAAC;IACnE,wGAAwG;aACxF,qBAAgB,GAAG,oCAAoC,CAAC;;AAH1E,wDAIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-paths.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/rest-paths.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO;IAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW;
|
|
1
|
+
{"version":3,"file":"rest-paths.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/rest-paths.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO;IAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW;IAC/B,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAY;CAClC"}
|
|
@@ -4,6 +4,7 @@ exports.HealthCheckRestPaths = void 0;
|
|
|
4
4
|
class HealthCheckRestPaths {
|
|
5
5
|
static { this.ROOT = '/'; }
|
|
6
6
|
static { this.PING = '/ping'; }
|
|
7
|
+
static { this.STATS = '/stats'; }
|
|
7
8
|
}
|
|
8
9
|
exports.HealthCheckRestPaths = HealthCheckRestPaths;
|
|
9
10
|
//# sourceMappingURL=rest-paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-paths.js","sourceRoot":"","sources":["../../../../src/components/health-check/common/rest-paths.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;aACf,SAAI,GAAG,GAAG,CAAC;aACX,SAAI,GAAG,OAAO,CAAC;;
|
|
1
|
+
{"version":3,"file":"rest-paths.js","sourceRoot":"","sources":["../../../../src/components/health-check/common/rest-paths.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;aACf,SAAI,GAAG,GAAG,CAAC;aACX,SAAI,GAAG,OAAO,CAAC;aACf,UAAK,GAAG,QAAQ,CAAC;;AAHnC,oDAIC"}
|
|
@@ -1,7 +1,29 @@
|
|
|
1
|
+
import type { IBuildInfo } from '@venizia/ignis-helpers/core';
|
|
1
2
|
export interface IHealthCheckOptions {
|
|
2
3
|
/** Partially-filled bindings are accepted; every missing field falls back to its default. */
|
|
3
4
|
restOptions?: {
|
|
4
5
|
path?: string;
|
|
5
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* `GET <path>/stats`: build stamp, process and memory. The runtime and version it reports are
|
|
9
|
+
* exactly what an attacker needs to pick an exploit, so the default is CLOSED on every host that
|
|
10
|
+
* is not provably a development one.
|
|
11
|
+
*/
|
|
12
|
+
stats?: {
|
|
13
|
+
/**
|
|
14
|
+
* Default: open only when `NODE_ENV` names a development environment
|
|
15
|
+
* (`Environment.DEVELOPMENT_ENVS`). `staging`, `uat`, `production`, an unrecognised name and an
|
|
16
|
+
* unset `NODE_ENV` all keep the route closed.
|
|
17
|
+
*/
|
|
18
|
+
enable?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* When set, the route answers only for a request carrying this value in `X-Health-Key`, and a
|
|
21
|
+
* refusal is indistinguishable from an unmounted route. A blank value fails closed.
|
|
22
|
+
* Without the field the route is open to anything that can reach the port.
|
|
23
|
+
*/
|
|
24
|
+
secretKey?: string;
|
|
25
|
+
/** Wins over {@link BuildInfoRegistry}; a host that stamps its own build passes it here. */
|
|
26
|
+
buildInfo?: IBuildInfo;
|
|
27
|
+
};
|
|
6
28
|
}
|
|
7
29
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,6FAA6F;IAC7F,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/health-check/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,6FAA6F;IAC7F,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN;;;;WAIG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,4FAA4F;QAC5F,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB,CAAC;CACH"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { BaseApplication } from '../../base/applications';
|
|
2
2
|
import { BaseComponent } from '@venizia/ignis-kernel';
|
|
3
|
-
import {
|
|
4
|
-
export declare class HealthCheckComponent extends BaseComponent {
|
|
3
|
+
import { type IHealthCheckOptions } from './common';
|
|
4
|
+
export declare class HealthCheckComponent extends BaseComponent<IHealthCheckOptions> {
|
|
5
5
|
private application;
|
|
6
6
|
constructor(application: BaseApplication);
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* `application.component(HealthCheckComponent, { options })` lands here. Options given at the
|
|
9
|
+
* call site are the most explicit statement of intent, so they take the binding over anything
|
|
10
|
+
* bound earlier; `initDefaultBindings` then finds the key taken and leaves the default aside.
|
|
11
|
+
*/
|
|
12
|
+
configure(opts?: IHealthCheckOptions): Promise<void>;
|
|
13
|
+
binding(): Promise<void>;
|
|
8
14
|
}
|
|
9
15
|
//# sourceMappingURL=component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/health-check/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/health-check/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAY5E,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,mBAAmB,CAAC;IAEpB,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAa1F;;;;OAIG;IACY,SAAS,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmCxC"}
|
|
@@ -20,6 +20,8 @@ const metadata_1 = require("../../base/metadata");
|
|
|
20
20
|
const ignis_kernel_2 = require("@venizia/ignis-kernel");
|
|
21
21
|
const common_1 = require("./common");
|
|
22
22
|
const controller_1 = require("./controller");
|
|
23
|
+
const reporter_1 = require("./reporter");
|
|
24
|
+
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
23
25
|
const ignis_kernel_3 = require("@venizia/ignis-kernel");
|
|
24
26
|
const DEFAULT_REST_PATH = '/health';
|
|
25
27
|
const DEFAULT_OPTIONS = {
|
|
@@ -38,13 +40,48 @@ let HealthCheckComponent = HealthCheckComponent_1 = class HealthCheckComponent e
|
|
|
38
40
|
});
|
|
39
41
|
this.application = application;
|
|
40
42
|
}
|
|
41
|
-
|
|
43
|
+
/**
|
|
44
|
+
* `application.component(HealthCheckComponent, { options })` lands here. Options given at the
|
|
45
|
+
* call site are the most explicit statement of intent, so they take the binding over anything
|
|
46
|
+
* bound earlier; `initDefaultBindings` then finds the key taken and leaves the default aside.
|
|
47
|
+
*/
|
|
48
|
+
async configure(opts) {
|
|
49
|
+
// The base short-circuits a second call; binding before that check would swap the options
|
|
50
|
+
// under routes that were already mounted from the first ones.
|
|
51
|
+
if (this.isConfigured) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (opts !== undefined) {
|
|
55
|
+
this.application
|
|
56
|
+
.bind({ key: common_1.HealthCheckBindingKeys.HEALTH_CHECK_OPTIONS })
|
|
57
|
+
.toValue(opts);
|
|
58
|
+
}
|
|
59
|
+
await super.configure(opts);
|
|
60
|
+
}
|
|
61
|
+
async binding() {
|
|
42
62
|
const healthOptions = this.application.get({
|
|
43
63
|
key: common_1.HealthCheckBindingKeys.HEALTH_CHECK_OPTIONS,
|
|
44
64
|
isOptional: true,
|
|
45
65
|
});
|
|
46
66
|
// A partially filled options binding (env/config driven) must not take the app down at boot.
|
|
47
67
|
const path = healthOptions?.restOptions?.path ?? DEFAULT_REST_PATH;
|
|
68
|
+
// Legal, occasionally correct, and silent until now: `stats.enable: true` bypasses the
|
|
69
|
+
// environment gate, so the same code that opened the route for a local run opens it in
|
|
70
|
+
// production. Warn rather than refuse - only the operator knows whether the port is reachable.
|
|
71
|
+
if (healthOptions && reporter_1.HealthCheckReporter.isStatsUnguarded({ options: healthOptions })) {
|
|
72
|
+
this.logger
|
|
73
|
+
.for(this.binding.name)
|
|
74
|
+
.warn('GET %s/stats is ENABLED with no secretKey on env "%s" - build stamp, runtime version and memory are readable by anything that reaches this port. Set stats.secretKey, or drop stats.enable and let the environment decide.', path, ignis_helpers_1.Environment.ambient ?? 'unset');
|
|
75
|
+
}
|
|
76
|
+
// `getAppInfo()` is async while the container builds the controller synchronously, so the
|
|
77
|
+
// resolved value is bound here rather than resolved inside the controller.
|
|
78
|
+
this.application
|
|
79
|
+
.bind({ key: common_1.HealthCheckBindingKeys.APPLICATION_INFO })
|
|
80
|
+
.toValue(await this.application.getAppInfo());
|
|
81
|
+
// The gate and the app identity are per container, but `@controller` writes the PATH onto this
|
|
82
|
+
// one shared class in the process-wide MetadataRegistry, and `RestComponent` reads it back at
|
|
83
|
+
// step 8. Two applications booted one after another are safe; two booted CONCURRENTLY with
|
|
84
|
+
// different `restOptions.path` would race here, and nothing in this component prevents that.
|
|
48
85
|
Reflect.decorate([(0, metadata_1.controller)({ path })], controller_1.HealthCheckController);
|
|
49
86
|
this.application.controller(controller_1.HealthCheckController);
|
|
50
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/health-check/component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,wDAAsD;AACtD,8CAAqD;AACrD,wDAAqD;
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/health-check/component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,wDAAsD;AACtD,8CAAqD;AACrD,wDAAqD;AACrD,qCAA4E;AAC5E,6CAAqD;AACrD,yCAAiD;AACjD,0DAAqD;AACrD,wDAAgD;AAGhD,MAAM,iBAAiB,GAAG,SAAS,CAAC;AACpC,MAAM,eAAe,GAAwB;IAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;CACzC,CAAC;AAEF,IAAa,oBAAoB,4BAAjC,MAAa,oBAAqB,SAAQ,4BAAkC;IAC1E,YAC8D,WAA4B;QAExF,KAAK,CAAC;YACJ,KAAK,EAAE,sBAAoB,CAAC,IAAI;YAChC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE;YACrD,QAAQ,EAAE;gBACR,CAAC,+BAAsB,CAAC,oBAAoB,CAAC,EAAE,sBAAO,CAAC,IAAI,CAAsB;oBAC/E,GAAG,EAAE,+BAAsB,CAAC,oBAAoB;iBACjD,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;aAC5B;SACF,CAAC,CAAC;QAVyD,gBAAW,GAAX,WAAW,CAAiB;IAW1F,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,SAAS,CAAC,IAA0B;QACjD,0FAA0F;QAC1F,8DAA8D;QAC9D,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW;iBACb,IAAI,CAAsB,EAAE,GAAG,EAAE,+BAAsB,CAAC,oBAAoB,EAAE,CAAC;iBAC/E,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAsB;YAC9D,GAAG,EAAE,+BAAsB,CAAC,oBAAoB;YAChD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,6FAA6F;QAC7F,MAAM,IAAI,GAAG,aAAa,EAAE,WAAW,EAAE,IAAI,IAAI,iBAAiB,CAAC;QAEnE,uFAAuF;QACvF,uFAAuF;QACvF,+FAA+F;QAC/F,IAAI,aAAa,IAAI,8BAAmB,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACtF,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;iBACtB,IAAI,CACH,4NAA4N,EAC5N,IAAI,EACJ,2BAAW,CAAC,OAAO,IAAI,OAAO,CAC/B,CAAC;QACN,CAAC;QAED,0FAA0F;QAC1F,2EAA2E;QAC3E,IAAI,CAAC,WAAW;aACb,IAAI,CAAmB,EAAE,GAAG,EAAE,+BAAsB,CAAC,gBAAgB,EAAE,CAAC;aACxE,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QAEhD,+FAA+F;QAC/F,8FAA8F;QAC9F,2FAA2F;QAC3F,6FAA6F;QAC7F,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAA,qBAAU,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,kCAAqB,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,kCAAqB,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAvEY,oDAAoB;+BAApB,oBAAoB;IAE5B,WAAA,IAAA,iBAAM,EAAC,EAAE,GAAG,EAAE,2BAAY,CAAC,oBAAoB,EAAE,CAAC,CAAA;qCAAsB,8BAAe;GAF/E,oBAAoB,CAuEhC"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import { BaseRestController,
|
|
1
|
+
import { BaseRestController, TRouteContext } from '../../base/controllers';
|
|
2
|
+
import type { IApplicationInfo } from '@venizia/ignis-kernel';
|
|
2
3
|
import { ValueOrPromise } from '@venizia/ignis-helpers/common';
|
|
4
|
+
import { type IHealthCheckOptions } from './common';
|
|
3
5
|
export declare class HealthCheckController extends BaseRestController {
|
|
4
|
-
|
|
6
|
+
private readonly healthOptions;
|
|
7
|
+
private readonly appInfo?;
|
|
8
|
+
/**
|
|
9
|
+
* Both dependencies arrive through the container, so two applications in one process each get
|
|
10
|
+
* their own gate - a static field would let the last one to boot decide for every other.
|
|
11
|
+
*/
|
|
12
|
+
constructor(healthOptions?: IHealthCheckOptions, appInfo?: IApplicationInfo | undefined);
|
|
5
13
|
binding(): ValueOrPromise<void>;
|
|
6
14
|
pingPong(context: TRouteContext): import("@venizia/ignis-kernel").TJsonResponse<unknown, 200>;
|
|
7
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/components/health-check/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/components/health-check/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAQ,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAC;AA+ElB,qBAAa,qBAAsB,SAAQ,kBAAkB;IAOzD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAR3B;;;OAGG;gBAGgB,aAAa,GAAE,mBAAwB,EAEvC,OAAO,CAAC,EAAE,gBAAgB,YAAA;IAQpC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC;IAuCxC,QAAQ,CAAC,OAAO,EAAE,aAAa;CAShC"}
|