@venizia/ignis 0.2.0-9 → 0.2.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 +1 -1
- package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/request-spy/request-spy.middleware.js +13 -4
- 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 +8 -0
- package/dist/components/mail/common/constants.d.ts.map +1 -1
- package/dist/components/mail/common/constants.js +9 -1
- package/dist/components/mail/common/constants.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 +49 -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 +65 -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 +4 -1
- package/dist/components/mail/component.d.ts.map +1 -1
- package/dist/components/mail/component.js +12 -0
- 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 +112 -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 +4 -3
- package/dist/components/mail/helpers/transporters/mailgun-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 +18 -17
- 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/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 +414 -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 +13 -1
- package/dist/components/static-asset/common/constants.d.ts.map +1 -1
- package/dist/components/static-asset/common/constants.js +29 -2
- package/dist/components/static-asset/common/constants.js.map +1 -1
- package/dist/components/static-asset/common/errors.d.ts +43 -0
- package/dist/components/static-asset/common/errors.d.ts.map +1 -1
- package/dist/components/static-asset/common/errors.js +37 -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 +87 -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 +250 -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 +565 -138
- package/dist/components/static-asset/controller/factory.js.map +1 -1
- 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/package.json +29 -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,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":";;;AACA,wDAAsD;AACtD,wDAA6D;AAE7D,wDAA0D;AAC1D,wDAAqF;AACrF,sDAAuD;AACvD,0DAA8D;AAE9D,0CAAiD;AAEjD,MAAM,eAAe,GAAyB,EAAE,CAAC;AAEjD,MAAa,aAAc,SAAQ,4BAAa;IAC9C,YAAoB,WAA4B;QAC9C,KAAK,CAAC;YACJ,KAAK,EAAE,aAAa,CAAC,IAAI;YACzB,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE;YACrD,QAAQ,EAAE;gBACR,CAAC,uBAAe,CAAC,sBAAsB,CAAC,EAAE,sBAAO,CAAC,IAAI,CAAuB;oBAC3E,GAAG,EAAE,uBAAe,CAAC,sBAAsB;iBAC5C,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;aAC5B;SACF,CAAC,CAAC;QATe,gBAAW,GAAX,WAAW,CAAiB;IAUhD,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAuB;YACzD,GAAG,EAAE,uBAAe,CAAC,sBAAsB;YAC3C,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,4FAA4F;QAC5F,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;YACxC,GAAG,EAAE,gCAAiB,CAAC,UAAU;YACjC,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,gCAAiB,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,+BAAgB,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAElF,mEAAmE;gBACnE,IAAI,QAAQ,EAAE,SAAS,KAAK,mCAAoB,CAAC,IAAI,EAAE,CAAC;oBACtD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAA,gBAAO,EAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAA,eAAQ,EAAC;wBACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;wBACrD,OAAO,EAAE,+BAA+B,OAAO,CAAC,GAAG,kFAAkF;qBACtI,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAyB;oBAC5D,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC3D,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,+DAA+D,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC1F,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBAED,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnE,QAAQ,CAAC,gBAAgB,GAAG,OAAO,EAAE,MAAM,CAAC;gBAC5C,QAAQ,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;gBAC9C,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAE3B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAE5B,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7F,CAAC;YAED,iFAAiF;YACjF,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBACpC,GAAG,EAAE,gCAAiB,CAAC,UAAU;gBACjC,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AA5FD,sCA4FC"}
|
|
@@ -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"}
|
|
@@ -8,6 +8,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var HealthCheckController_1;
|
|
11
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
16
|
exports.HealthCheckController = void 0;
|
|
13
17
|
const controllers_1 = require("../../base/controllers");
|
|
@@ -16,18 +20,54 @@ const ignis_kernel_1 = require("@venizia/ignis-kernel");
|
|
|
16
20
|
const zod_openapi_1 = require("@hono/zod-openapi");
|
|
17
21
|
const common_1 = require("@venizia/ignis-helpers/common");
|
|
18
22
|
const common_2 = require("./common");
|
|
23
|
+
const reporter_1 = require("./reporter");
|
|
19
24
|
const RouteConfigs = {
|
|
20
25
|
ROOT: {
|
|
21
26
|
method: common_1.HTTP.Methods.GET,
|
|
22
27
|
path: common_2.HealthCheckRestPaths.ROOT,
|
|
23
28
|
responses: (0, ignis_kernel_1.jsonResponse)({
|
|
24
|
-
schema: zod_openapi_1.z.object({ status: zod_openapi_1.z.string() }).openapi({
|
|
29
|
+
schema: zod_openapi_1.z.object({ status: zod_openapi_1.z.string(), timestamp: zod_openapi_1.z.iso.datetime() }).openapi({
|
|
25
30
|
description: 'HealthCheck Schema',
|
|
26
|
-
examples: [{ status: 'ok' }],
|
|
31
|
+
examples: [{ status: 'ok', timestamp: new Date().toISOString() }],
|
|
27
32
|
}),
|
|
28
33
|
description: 'Health check status',
|
|
29
34
|
}),
|
|
30
35
|
},
|
|
36
|
+
STATS: {
|
|
37
|
+
method: common_1.HTTP.Methods.GET,
|
|
38
|
+
path: common_2.HealthCheckRestPaths.STATS,
|
|
39
|
+
request: {
|
|
40
|
+
headers: zod_openapi_1.z.object({
|
|
41
|
+
[common_2.HealthCheckHeaders.SECRET_KEY]: zod_openapi_1.z.string().optional().openapi({
|
|
42
|
+
description: 'The stats key',
|
|
43
|
+
}),
|
|
44
|
+
}),
|
|
45
|
+
},
|
|
46
|
+
responses: (0, ignis_kernel_1.jsonResponse)({
|
|
47
|
+
schema: zod_openapi_1.z
|
|
48
|
+
.object({
|
|
49
|
+
status: zod_openapi_1.z.string(),
|
|
50
|
+
timestamp: zod_openapi_1.z.iso.datetime(),
|
|
51
|
+
build: zod_openapi_1.z.object({
|
|
52
|
+
service: zod_openapi_1.z.string(),
|
|
53
|
+
version: zod_openapi_1.z.string(),
|
|
54
|
+
commit: zod_openapi_1.z.string(),
|
|
55
|
+
branch: zod_openapi_1.z.string(),
|
|
56
|
+
builtAt: zod_openapi_1.z.string(),
|
|
57
|
+
}),
|
|
58
|
+
process: zod_openapi_1.z.object({
|
|
59
|
+
pid: zod_openapi_1.z.number(),
|
|
60
|
+
uptime: zod_openapi_1.z.number(),
|
|
61
|
+
uptimeHuman: zod_openapi_1.z.string(),
|
|
62
|
+
runtime: zod_openapi_1.z.string(),
|
|
63
|
+
environment: zod_openapi_1.z.string(),
|
|
64
|
+
}),
|
|
65
|
+
memory: zod_openapi_1.z.object({ rss: zod_openapi_1.z.string(), heapUsed: zod_openapi_1.z.string(), heapTotal: zod_openapi_1.z.string() }),
|
|
66
|
+
})
|
|
67
|
+
.openapi({ description: 'HealthCheck Stats Schema' }),
|
|
68
|
+
description: 'Build stamp, process and memory - closed outside the development environments unless enabled',
|
|
69
|
+
}),
|
|
70
|
+
},
|
|
31
71
|
PING: {
|
|
32
72
|
method: common_1.HTTP.Methods.POST,
|
|
33
73
|
path: common_2.HealthCheckRestPaths.PING,
|
|
@@ -55,24 +95,45 @@ const RouteConfigs = {
|
|
|
55
95
|
}),
|
|
56
96
|
},
|
|
57
97
|
};
|
|
58
|
-
class HealthCheckController extends controllers_1.BaseRestController {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
98
|
+
let HealthCheckController = HealthCheckController_1 = class HealthCheckController extends controllers_1.BaseRestController {
|
|
99
|
+
/**
|
|
100
|
+
* Both dependencies arrive through the container, so two applications in one process each get
|
|
101
|
+
* their own gate - a static field would let the last one to boot decide for every other.
|
|
102
|
+
*/
|
|
103
|
+
constructor(healthOptions = {}, appInfo) {
|
|
104
|
+
super({ scope: HealthCheckController_1.name });
|
|
105
|
+
this.healthOptions = healthOptions;
|
|
106
|
+
this.appInfo = appInfo;
|
|
64
107
|
// Note: This is optional declare internal controller route definitions
|
|
65
108
|
this.definitions = RouteConfigs;
|
|
66
109
|
}
|
|
67
110
|
binding() {
|
|
68
|
-
//
|
|
111
|
+
// Public liveness probe: status and clock only. Nothing here names a runtime or a version.
|
|
69
112
|
this.bindRoute({ configs: RouteConfigs.ROOT }).to({
|
|
70
113
|
handler: context => {
|
|
71
|
-
return context.json(
|
|
114
|
+
return context.json(reporter_1.HealthCheckReporter.buildSummary(), common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
if (!reporter_1.HealthCheckReporter.isStatsEnabled({ options: this.healthOptions })) {
|
|
118
|
+
this.logger
|
|
119
|
+
.for(this.binding.name)
|
|
120
|
+
.debug('Stats route disabled | path: %s', common_2.HealthCheckRestPaths.STATS);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.bindRoute({ configs: RouteConfigs.STATS }).to({
|
|
124
|
+
handler: context => {
|
|
125
|
+
// `context.notFound()`, not a thrown 404: it runs the application's own notFound handler,
|
|
126
|
+
// so the refusal is byte-identical to the answer for a route that was never mounted. A
|
|
127
|
+
// thrown `ApplicationError` serializes a different body and would confirm the route exists.
|
|
128
|
+
if (!reporter_1.HealthCheckReporter.isStatsAuthorized({
|
|
129
|
+
options: this.healthOptions,
|
|
130
|
+
header: context.req.header(common_2.HealthCheckHeaders.SECRET_KEY),
|
|
131
|
+
})) {
|
|
132
|
+
return context.notFound();
|
|
133
|
+
}
|
|
134
|
+
return context.json(reporter_1.HealthCheckReporter.buildStats({ options: this.healthOptions, appInfo: this.appInfo }), common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
72
135
|
},
|
|
73
136
|
});
|
|
74
|
-
// Method 2: Using 'defineRoute' to create a controller route
|
|
75
|
-
/* this.defineRoute({ configs: RouteConfigs.ROOT, handler: context => context.json({ status: 'ok' }, HTTP.ResultCodes.RS_2.Ok) }); */
|
|
76
137
|
}
|
|
77
138
|
// Method 3: Using 'decorators' to create a controller route, with an explicit type assertion for the validated request data
|
|
78
139
|
pingPong(context) {
|
|
@@ -80,7 +141,7 @@ class HealthCheckController extends controllers_1.BaseRestController {
|
|
|
80
141
|
// Return type is automatically validated against the response schema
|
|
81
142
|
return context.json({ type: 'PONG', date: new Date().toISOString(), message }, common_1.HTTP.ResultCodes.RS_2.Ok);
|
|
82
143
|
}
|
|
83
|
-
}
|
|
144
|
+
};
|
|
84
145
|
exports.HealthCheckController = HealthCheckController;
|
|
85
146
|
__decorate([
|
|
86
147
|
(0, metadata_1.api)({ configs: RouteConfigs.PING }),
|
|
@@ -88,4 +149,9 @@ __decorate([
|
|
|
88
149
|
__metadata("design:paramtypes", [Object]),
|
|
89
150
|
__metadata("design:returntype", void 0)
|
|
90
151
|
], HealthCheckController.prototype, "pingPong", null);
|
|
152
|
+
exports.HealthCheckController = HealthCheckController = HealthCheckController_1 = __decorate([
|
|
153
|
+
__param(0, (0, metadata_1.inject)({ key: common_2.HealthCheckBindingKeys.HEALTH_CHECK_OPTIONS, isOptional: true })),
|
|
154
|
+
__param(1, (0, metadata_1.inject)({ key: common_2.HealthCheckBindingKeys.APPLICATION_INFO, isOptional: true })),
|
|
155
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
156
|
+
], HealthCheckController);
|
|
91
157
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/components/health-check/controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/components/health-check/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/health-check/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/health-check/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./common"), exports);
|
|
18
18
|
__exportStar(require("./component"), exports);
|
|
19
19
|
__exportStar(require("./controller"), exports);
|
|
20
|
+
__exportStar(require("./reporter"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/health-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/health-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B"}
|