generator-codedesignplus 0.0.1-rc.2
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/LICENCE.md +13 -0
- package/README.md +454 -0
- package/generators/app/index.mjs +22 -0
- package/generators/microservice/core/aggregate.mjs +25 -0
- package/generators/microservice/core/appsettings.mjs +73 -0
- package/generators/microservice/core/asyncWorker.mjs +87 -0
- package/generators/microservice/core/command.mjs +54 -0
- package/generators/microservice/core/consumer.mjs +73 -0
- package/generators/microservice/core/controller.mjs +25 -0
- package/generators/microservice/core/core.mjs +98 -0
- package/generators/microservice/core/dataTransferObject.mjs +31 -0
- package/generators/microservice/core/domainEvent.mjs +36 -0
- package/generators/microservice/core/dotnet.mjs +56 -0
- package/generators/microservice/core/entity.mjs +29 -0
- package/generators/microservice/core/errors.mjs +37 -0
- package/generators/microservice/core/grpc.mjs +97 -0
- package/generators/microservice/core/microservice.mjs +212 -0
- package/generators/microservice/core/proto.mjs +61 -0
- package/generators/microservice/core/query.mjs +59 -0
- package/generators/microservice/core/repository.mjs +41 -0
- package/generators/microservice/core/utils.mjs +196 -0
- package/generators/microservice/core/valueObject.mjs +29 -0
- package/generators/microservice/core/xml.mjs +48 -0
- package/generators/microservice/index.mjs +38 -0
- package/generators/microservice/templates/aggregate/ItemAggregate.cs +9 -0
- package/generators/microservice/templates/command/ItemCommand.cs +12 -0
- package/generators/microservice/templates/command/ItemCommandHandler.cs +9 -0
- package/generators/microservice/templates/consumer/ItemHandler.cs +14 -0
- package/generators/microservice/templates/controller/ItemController.cs +8 -0
- package/generators/microservice/templates/data-transfer-object/ItemDto.cs +6 -0
- package/generators/microservice/templates/domain-event/ItemDomainEvent.cs +15 -0
- package/generators/microservice/templates/entity/ItemEntity.cs +6 -0
- package/generators/microservice/templates/errors/Error.cs +6 -0
- package/generators/microservice/templates/grpc/ItemService.cs +6 -0
- package/generators/microservice/templates/grpc/grpc.proto +22 -0
- package/generators/microservice/templates/microservice/.dockerignore +30 -0
- package/generators/microservice/templates/microservice/CodeDesignPlus.Net.Microservice.sln +155 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/CodeDesignPlus.Net.Microservice.Application.csproj +20 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Errors.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommand.cs +17 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandler.cs +27 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommand.cs +13 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommandHandler.cs +24 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommand.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommandHandler.cs +25 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommand.cs +32 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommandHandler.cs +24 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommand.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommandHandler.cs +22 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommand.cs +14 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandler.cs +24 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/AddressDto.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ClientDto.cs +9 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/OrderDto.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ProductDto.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQuery.cs +4 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQueryHandler.cs +23 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQuery.cs +3 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQueryHandler.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Setup/MapsterConfig.cs +26 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Startup.cs +15 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Usings.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/CodeDesignPlus.Net.Microservice.Domain.csproj +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/AddProductToOrderParams.cs +15 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CancelOrderParams.cs +13 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CompleteOrderParams.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/RemoveProductFromOrderParams.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/UpdateQuantityProductParams.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCancelledDomainEvent.cs +21 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCompletedDomainEvent.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCreatedDomainEvent.cs +44 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductAddedToOrderDomainEvent.cs +20 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductQuantityUpdatedDomainEvent.cs +20 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductRemovedFromOrderDomainEvent.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Entities/ProductEntity.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Enums/OrderStatus.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Errors.cs +28 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/OrderAggregate.cs +124 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Repositories/IOrderRepository.cs +14 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Startup.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Usings.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/AddressValueObject.cs +30 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/ClientValueObject.cs +27 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/CodeDesignPlus.Net.Microservice.Infrastructure.csproj +13 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Errors.cs +6 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Repositories/OrderRepository.cs +109 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Startup.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Usings.cs +15 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/CodeDesignPlus.Net.Microservice.AsyncWorker.csproj +31 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Program.cs +41 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Properties/launchSettings.json +15 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Usings.cs +10 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.Development.json +2 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.json +129 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj +36 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj.user +11 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Controllers/OrderController.cs +138 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Core/Mapster/MapsterConfig.cs +12 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Dockerfile +37 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Program.cs +52 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Properties/launchSettings.json +26 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Usings.cs +22 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.Development.json +3 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.json +86 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj +35 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj.user +9 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Core/Mapster/MapsterConfig.cs +13 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Program.cs +61 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Properties/launchSettings.json +23 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Protos/orders.proto +66 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Services/OrderService.cs +29 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Usings.cs +12 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.Development.json +3 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.json +92 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +35 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Properties/launchSettings.json +12 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +8 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +36 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +337 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Properties/launchSettings.json +12 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +8 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +46 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Protos/orders.proto +65 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrdersServiceTest.cs +64 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +7 -0
- package/generators/microservice/templates/microservice/tests/load/load-rest.js +63 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/CodeDesignPlus.Net.Microservice.Application.Test.csproj +34 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandlerTest.cs +98 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandTest.cs +84 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandHandlerTest.cs +74 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandTest.cs +43 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandHandlerTest.cs +74 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandTest.cs +32 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandHandlerTest.cs +100 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandTest.cs +122 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandHandlerTest.cs +71 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandTest.cs +33 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandlerTest.cs +82 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandTest.cs +51 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/FindOrderById/FindOrderByIdQueryHandlerTest.cs +70 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/GetAllOrders/GetAllOrdersQueryHandlerTest.cs +80 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Setup/MapsterConfigTest.cs +20 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Usings.cs +18 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +38 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +9 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/CodeDesignPlus.Net.Microservice.Default.Test.csproj +35 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Usings.cs +6 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/AggregateTest.cs +37 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/CommandsTests.cs +29 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DataTransferObjectTest.cs +47 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DomainEventTest.cs +42 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/EntityTest.cs +25 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/ErrorsTest.cs +55 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/QueryTests.cs +29 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/StartupTest.cs +43 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/CodeDesignPlus.Net.Microservice.Domain.Test.csproj +38 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/DomainEvents/OrderCancelledDomainEventTest.cs +46 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/OrderAggregateTest.cs +518 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/Usings.cs +7 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/CodeDesignPlus.Net.Microservice.Infrastructure.Test.csproj +34 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Repositories/OrderRepositoryTest.cs +259 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Usings.cs +14 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +40 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +189 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +14 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +39 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrderServiceTest.cs +72 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +15 -0
- package/generators/microservice/templates/microservice/tools/convert-crlf-to-lf.sh +6 -0
- package/generators/microservice/templates/microservice/tools/sonarqube/sonar.ps1 +18 -0
- package/generators/microservice/templates/microservice/tools/sonarqube/sonar.sh +18 -0
- package/generators/microservice/templates/microservice/tools/update-packages/update-packages.ps1 +10 -0
- package/generators/microservice/templates/microservice/tools/update-packages/update-packages.sh +11 -0
- package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.ps1 +10 -0
- package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.sh +11 -0
- package/generators/microservice/templates/microservice/tools/vault/config-vault.ps1 +178 -0
- package/generators/microservice/templates/microservice/tools/vault/config-vault.sh +152 -0
- package/generators/microservice/templates/others/MapsterConfig.cs +9 -0
- package/generators/microservice/templates/query/ItemQuery.cs +4 -0
- package/generators/microservice/templates/query/ItemQueryHandler.cs +9 -0
- package/generators/microservice/templates/repository/IItemRepository.cs +6 -0
- package/generators/microservice/templates/repository/ItemRepository.cs +7 -0
- package/generators/microservice/templates/value-object/ItemValueObject.cs +23 -0
- package/generators/microservice/types/aggregate.mjs +19 -0
- package/generators/microservice/types/appsettings.mjs +26 -0
- package/generators/microservice/types/base.mjs +24 -0
- package/generators/microservice/types/command.mjs +38 -0
- package/generators/microservice/types/consumer.mjs +21 -0
- package/generators/microservice/types/controller.mjs +20 -0
- package/generators/microservice/types/dataTransferObject.mjs +19 -0
- package/generators/microservice/types/domainEvents.mjs +22 -0
- package/generators/microservice/types/entity.mjs +21 -0
- package/generators/microservice/types/index.mjs +25 -0
- package/generators/microservice/types/proto.mjs +19 -0
- package/generators/microservice/types/query.mjs +38 -0
- package/generators/microservice/types/repository.mjs +21 -0
- package/generators/microservice/types/valueObject.mjs +23 -0
- package/package.json +70 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
global using Mapster;
|
|
2
|
+
global using MapsterMapper;
|
|
3
|
+
global using MediatR;
|
|
4
|
+
global using Moq;
|
|
5
|
+
global using System;
|
|
6
|
+
global using System.Threading;
|
|
7
|
+
global using System.Threading.Tasks;
|
|
8
|
+
global using Xunit;
|
|
9
|
+
global using Grpc.Core;
|
|
10
|
+
global using CodeDesignPlus.Net.Microservice.gRpc.Services;
|
|
11
|
+
global using Grpc.Core.Testing;
|
|
12
|
+
global using CodeDesignPlus.Net.Serializers;
|
|
13
|
+
|
|
14
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.DataTransferObjects;
|
|
15
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Queries.FindOrderById;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env pwsh
|
|
2
|
+
#echo "Install dotnet-sonarscanner ----------------------------------------------------------------------------------------------------------------------"
|
|
3
|
+
#dotnet tool install --global dotnet-sonarscanner
|
|
4
|
+
|
|
5
|
+
Write-Host "Start Sonarscanner -------------------------------------------------------------------------------------------------------------------------------"
|
|
6
|
+
|
|
7
|
+
$org = "codedesignplus"
|
|
8
|
+
$key = "CodeDesignPlus.Net.Microservice"
|
|
9
|
+
$csproj = "CodeDesignPlus.Net.Microservice.sln"
|
|
10
|
+
$report = "tests/**/coverage.opencover.xml"
|
|
11
|
+
$server = "http://localhost:9000"
|
|
12
|
+
$token = "sqa_12f3d20d51de2b4c9639db0035d1c68dc4f2fff1"
|
|
13
|
+
|
|
14
|
+
cd ..
|
|
15
|
+
dotnet test $csproj /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
|
|
16
|
+
dotnet sonarscanner begin /o:$org /k:$key /d:sonar.host.url=$server /d:sonar.coverage.exclusions="**Tests*.cs,**/tests/load/*.js" /d:sonar.cs.opencover.reportsPaths=$report /d:sonar.login=$token
|
|
17
|
+
dotnet build
|
|
18
|
+
dotnet sonarscanner end /d:sonar.login=$token
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
#echo "Install dotnet-sonarscanner ----------------------------------------------------------------------------------------------------------------------"
|
|
3
|
+
#dotnet tool install --global dotnet-sonarscanner
|
|
4
|
+
|
|
5
|
+
echo "Start Sonarscanner -------------------------------------------------------------------------------------------------------------------------------"
|
|
6
|
+
|
|
7
|
+
org=codedesignplus
|
|
8
|
+
key=CodeDesignPlus.Net.Microservice
|
|
9
|
+
csproj=CodeDesignPlus.Net.Microservice.sln
|
|
10
|
+
report=tests/**/coverage.opencover.xml
|
|
11
|
+
server=http://localhost:9000
|
|
12
|
+
token="sqa_12f3d20d51de2b4c9639db0035d1c68dc4f2fff1"
|
|
13
|
+
|
|
14
|
+
cd ..
|
|
15
|
+
dotnet test $csproj /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
|
|
16
|
+
dotnet sonarscanner begin /o:$org /k:$key /d:sonar.host.url=$server /d:sonar.coverage.exclusions="**Tests*.cs" /d:sonar.cs.opencover.reportsPaths=$report /d:sonar.login=$token
|
|
17
|
+
dotnet build
|
|
18
|
+
dotnet sonarscanner end /d:sonar.login=$token
|
package/generators/microservice/templates/microservice/tools/update-packages/update-packages.ps1
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
dotnet tool install --global dotnet-outdated-tool
|
|
2
|
+
|
|
3
|
+
$proyectos = Get-ChildItem -Path "./../../" -Recurse -Filter "*.csproj"
|
|
4
|
+
|
|
5
|
+
foreach ($proyecto in $proyectos)
|
|
6
|
+
{
|
|
7
|
+
Write-Host "Update Package $($proyecto.Name)" -ForegroundColor Green
|
|
8
|
+
|
|
9
|
+
dotnet outdated -u $proyecto.FullName
|
|
10
|
+
}
|
package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.ps1
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
dotnet tool install -g upgrade-assistant
|
|
2
|
+
|
|
3
|
+
$proyectos = Get-ChildItem -Path "./../../" -Recurse -Filter "*.csproj"
|
|
4
|
+
|
|
5
|
+
foreach ($proyecto in $proyectos)
|
|
6
|
+
{
|
|
7
|
+
Write-Host "Update $($proyecto.FullName)" -ForegroundColor Green
|
|
8
|
+
|
|
9
|
+
upgrade-assistant upgrade --operation Inplace --targetFramework net9.0 --non-interactive $proyecto.FullName
|
|
10
|
+
}
|
package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.sh
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
dotnet tool install -g upgrade-assistant
|
|
4
|
+
|
|
5
|
+
proyectos=$(find ./../../ -name "*.csproj")
|
|
6
|
+
|
|
7
|
+
for proyecto in $proyectos
|
|
8
|
+
do
|
|
9
|
+
echo -e "\e[32mUpdate $proyecto\e[0m"
|
|
10
|
+
upgrade-assistant upgrade --operation Inplace --targetFramework net9.0 --non-interactive $proyecto
|
|
11
|
+
done
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
$newlines = "`n"
|
|
2
|
+
|
|
3
|
+
# --- ASCII Art for CodeDesignPlus ---
|
|
4
|
+
$asciiArt = @"
|
|
5
|
+
___ _ ___ _ ___ _
|
|
6
|
+
/ __\___ __| | ___ / \___ ___(_) __ _ _ __ / _ \ |_ _ ___
|
|
7
|
+
/ / / _ \ / _` |/ _ \ / /\ / _ \/ __| |/ _` | '_ \ / /_)/ | | | / __|
|
|
8
|
+
/ /__| (_) | (_| | __// /_// __/\__ \ | (_| | | | / ___/| | |_| \__ \
|
|
9
|
+
\____/\___/ \__,_|\___/___,' \___||___/_|\__, |_| |_\/ |_|\__,_|___/
|
|
10
|
+
|___/
|
|
11
|
+
"@
|
|
12
|
+
Write-Host $asciiArt
|
|
13
|
+
|
|
14
|
+
# Set Vault Address
|
|
15
|
+
$env:VAULT_ADDR = "http://localhost:8200"
|
|
16
|
+
|
|
17
|
+
# Vault Login
|
|
18
|
+
Write-Host "-Logging in to Vault..." -ForegroundColor Blue
|
|
19
|
+
vault login token=root
|
|
20
|
+
|
|
21
|
+
# --- 1. Enabling Auth Methods ---
|
|
22
|
+
Write-Host $newlines
|
|
23
|
+
Write-Host "1. Enabling auth methods..." -ForegroundColor Blue
|
|
24
|
+
if (vault auth list | Select-String -Pattern 'approle/' -Quiet) {
|
|
25
|
+
Write-Host " - The method of authentication 'approle' already exists."
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
Write-Host " - Enabling the method of authentication 'approle'..."
|
|
29
|
+
vault auth enable approle
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# --- 2. Enabling Secret Engines ---
|
|
33
|
+
Write-Host $newlines
|
|
34
|
+
Write-Host "2. Enabling secrets engines..." -ForegroundColor Blue
|
|
35
|
+
|
|
36
|
+
if (vault secrets list | Select-String -Pattern 'vault-keyvalue/' -Quiet) {
|
|
37
|
+
Write-Host " - The secrets engine 'kv-v2' already exists in 'vault-keyvalue/'."
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
Write-Host " - Enabling the secrets engine 'kv-v2' in 'vault-keyvalue/'..."
|
|
41
|
+
vault secrets enable -path=vault-keyvalue kv-v2
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (vault secrets list | Select-String -Pattern 'vault-database/' -Quiet) {
|
|
45
|
+
Write-Host " - The secrets engine 'database' already exists in 'vault-database/'."
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
Write-Host " - Enabling the secrets engine 'database' in 'vault-database/'..."
|
|
49
|
+
vault secrets enable -path=vault-database database
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (vault secrets list | Select-String -Pattern 'vault-rabbitmq/' -Quiet) {
|
|
53
|
+
Write-Host " - The secrets engine 'rabbitmq' already exists in 'vault-rabbitmq/'."
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
Write-Host " - Enabling the secrets engine 'rabbitmq' in 'vault-rabbitmq/'..."
|
|
57
|
+
vault secrets enable -path=vault-rabbitmq rabbitmq
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (vault secrets list | Select-String -Pattern 'vault-transit/' -Quiet) {
|
|
61
|
+
Write-Host " - The secrets engine 'transit' already exists in 'vault-transit/'."
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
Write-Host " - Enabling the secrets engine 'transit' in 'vault-transit/'..."
|
|
65
|
+
vault secrets enable -path=vault-transit transit
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
# --- 3. Applying Policies ---
|
|
69
|
+
Write-Host $newlines
|
|
70
|
+
Write-Host "3. Applying policies..." -ForegroundColor Blue
|
|
71
|
+
$policyName = "full-access"
|
|
72
|
+
vault policy read $policyName
|
|
73
|
+
if ($?) {
|
|
74
|
+
Write-Host " - The policy '$policyName' already exists."
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
Write-Host " - Creating policy '$policyName'..."
|
|
78
|
+
$policyContent = @"
|
|
79
|
+
path "*" {
|
|
80
|
+
capabilities = ["create", "read", "update", "delete", "list"]
|
|
81
|
+
}
|
|
82
|
+
"@
|
|
83
|
+
$policyContent | vault policy write $policyName -
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
# --- 4. Creating Roles ---
|
|
87
|
+
Write-Host $newlines
|
|
88
|
+
Write-Host "4. Creating roles..." -ForegroundColor Blue
|
|
89
|
+
$roleName = "vault-approle"
|
|
90
|
+
vault read auth/approle/role/$roleName
|
|
91
|
+
if ($?) {
|
|
92
|
+
Write-Host " - The AppRole '$roleName' already exists."
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
Write-Host " - Creating AppRole '$roleName'..."
|
|
96
|
+
vault write auth/approle/role/$roleName policies="full-access"
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
# Get role_id
|
|
100
|
+
$role_id_output = vault read auth/approle/role/vault-approle/role-id
|
|
101
|
+
$role_id_match = $role_id_output | Select-String -Pattern 'role_id\s+([\w-]+)'
|
|
102
|
+
if ($role_id_match) {
|
|
103
|
+
$role_id = $role_id_match.Matches[0].Groups[1].Value
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
Write-Error "Error: Could not find role_id"
|
|
107
|
+
exit 1
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
# Get secret_id
|
|
111
|
+
$secret_id_output = vault write -f auth/approle/role/vault-approle/secret-id
|
|
112
|
+
$secret_id_match = $secret_id_output | Select-String -Pattern 'secret_id\s+([\w-]+)'
|
|
113
|
+
if ($secret_id_match) {
|
|
114
|
+
$secret_id = $secret_id_match.Matches[0].Groups[1].Value
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
Write-Error "Error: Could not find secret_id"
|
|
118
|
+
exit 1
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (-not $role_id -or -not $secret_id) {
|
|
122
|
+
Write-Error "Error: Not found role_id or secret_id"
|
|
123
|
+
exit 1
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
Write-Host " Role ID: $role_id"
|
|
127
|
+
Write-Host " Secret ID: $secret_id"
|
|
128
|
+
|
|
129
|
+
# --- 5. Login with approle ---
|
|
130
|
+
Write-Host $newlines
|
|
131
|
+
Write-Host "5. Login with approle..." -ForegroundColor Blue
|
|
132
|
+
vault write auth/approle/login role_id=$role_id secret_id=$secret_id
|
|
133
|
+
|
|
134
|
+
# --- 6. Writing secrets ---
|
|
135
|
+
Write-Host $newlines
|
|
136
|
+
Write-Host "6. Writing secrets..." -ForegroundColor Blue
|
|
137
|
+
vault kv put -mount=vault-keyvalue ms-archetype `
|
|
138
|
+
Security:ClientId=a74cb192-598c-4757-95ae-b315793bbbca `
|
|
139
|
+
Security:ValidAudiences:0=a74cb192-598c-4757-95ae-b315793bbbca `
|
|
140
|
+
Security:ValidAudiences:1=api://a74cb192-598c-4757-95ae-b315793bbbca `
|
|
141
|
+
Redis:Instances:Core:ConnectionString=localhost:6379
|
|
142
|
+
|
|
143
|
+
vault kv get -mount=vault-keyvalue ms-archetype
|
|
144
|
+
|
|
145
|
+
# --- 7. Writing database configuration ---
|
|
146
|
+
Write-Host $newlines
|
|
147
|
+
Write-Host "7. Writing database configuration..." -ForegroundColor Blue
|
|
148
|
+
vault write vault-database/config/db-ms-archetype `
|
|
149
|
+
plugin_name=mongodb-database-plugin `
|
|
150
|
+
allowed_roles="ms-archetype-mongo-role" `
|
|
151
|
+
connection_url="mongodb://{{username}}:{{password}}@mongo:27017/admin?ssl=false" `
|
|
152
|
+
username="admin" `
|
|
153
|
+
password="password"
|
|
154
|
+
|
|
155
|
+
vault write vault-database/roles/ms-archetype-mongo-role `
|
|
156
|
+
db_name=db-ms-archetype `
|
|
157
|
+
creation_statements="{ \""db\"": \""admin\"", \""roles\"": [{ \""role\"": \""readWrite\"", \""db\"": \""db-ms-archetype\"" }] }" `
|
|
158
|
+
default_ttl="1h" `
|
|
159
|
+
max_ttl="24h"
|
|
160
|
+
|
|
161
|
+
vault read vault-database/creds/ms-archetype-mongo-role
|
|
162
|
+
|
|
163
|
+
# --- 8. Writing rabbitmq configuration ---
|
|
164
|
+
Write-Host $newlines
|
|
165
|
+
Write-Host "8. Writing rabbitmq configuration..." -ForegroundColor Blue
|
|
166
|
+
|
|
167
|
+
Write-Host "Waiting for RabbitMQ to start..."
|
|
168
|
+
Start-Sleep -Seconds 12
|
|
169
|
+
|
|
170
|
+
vault write vault-rabbitmq/config/connection `
|
|
171
|
+
connection_uri="http://rabbitmq:15672" `
|
|
172
|
+
username="admin" `
|
|
173
|
+
password="password"
|
|
174
|
+
|
|
175
|
+
vault write vault-rabbitmq/roles/ms-archetype-rabbitmq-role `
|
|
176
|
+
vhosts="{\""/\"":{\""write\"": \"".*\"", \""read\"": \"".*\"", \""configure\"": \"".*\""}}"
|
|
177
|
+
|
|
178
|
+
vault read vault-rabbitmq/creds/ms-archetype-rabbitmq-role
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Define colors
|
|
4
|
+
BLUE='\033[0;34m'
|
|
5
|
+
NC='\033[0m' # No color
|
|
6
|
+
|
|
7
|
+
# ASCII Art for CodeDesignPlus
|
|
8
|
+
ascii_art=$(cat <<'EOF'
|
|
9
|
+
___ _ ___ _ ___ _
|
|
10
|
+
/ __\___ __| | ___ / \___ ___(_) __ _ _ __ / _ \ |_ _ ___
|
|
11
|
+
/ / / _ \ / _` |/ _ \ / /\ / _ \/ __| |/ _` | '_ \ / /_)/ | | | / __|
|
|
12
|
+
/ /__| (_) | (_| | __// /_// __/\__ \ | (_| | | | / ___/| | |_| \__ \
|
|
13
|
+
\____/\___/ \__,_|\___/___,' \___||___/_|\__, |_| |_\/ |_|\__,_|___/
|
|
14
|
+
|___/
|
|
15
|
+
EOF
|
|
16
|
+
)
|
|
17
|
+
echo "$ascii_art"
|
|
18
|
+
|
|
19
|
+
# Your Vault Address and Login
|
|
20
|
+
export VAULT_ADDR="http://localhost:8200"
|
|
21
|
+
echo "${BLUE}-Logging in to Vault...${NC}"
|
|
22
|
+
vault login token=root
|
|
23
|
+
|
|
24
|
+
newlines=$'\n'
|
|
25
|
+
|
|
26
|
+
# Enable AppRole
|
|
27
|
+
echo "$newlines"
|
|
28
|
+
echo "${BLUE}1. Enabling auth methods...${NC}"
|
|
29
|
+
if vault auth list | grep -q 'approle/'; then
|
|
30
|
+
echo " - The method of authentication 'approle' already exists."
|
|
31
|
+
else
|
|
32
|
+
echo " - Enabling the method of authentication 'approle'..."
|
|
33
|
+
vault auth enable approle
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# Enable Secret, database and rabbtimq
|
|
37
|
+
echo "$newlines"
|
|
38
|
+
echo "${BLUE}2. Enabling secrets engines...${NC}"
|
|
39
|
+
if vault secrets list | grep -q 'vault-keyvalue/'; then
|
|
40
|
+
echo " - The secrets engine 'kv-v2' already exists in 'vault-keyvalue/'."
|
|
41
|
+
else
|
|
42
|
+
echo " - Enabling the secrets engine 'kv-v2' in 'vault-keyvalue/'..."
|
|
43
|
+
vault secrets enable -path=vault-keyvalue kv-v2
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if vault secrets list | grep -q 'vault-database/'; then
|
|
47
|
+
echo " - The secrets engine 'database' already exists in 'vault-database/'."
|
|
48
|
+
else
|
|
49
|
+
echo " - Enabling the secrets engine 'database' in 'vault-database/'..."
|
|
50
|
+
vault secrets enable -path=vault-database database
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
if vault secrets list | grep -q 'vault-rabbitmq/'; then
|
|
54
|
+
echo " - The secrets engine 'rabbitmq' already exists in 'vault-rabbitmq/'."
|
|
55
|
+
else
|
|
56
|
+
echo " - Enabling the secrets engine 'rabbitmq' in 'vault-rabbitmq/'..."
|
|
57
|
+
vault secrets enable -path=vault-rabbitmq rabbitmq
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
if vault secrets list | grep -q 'vault-transit/'; then
|
|
61
|
+
echo " - The secrets engine 'transit' already exists in 'vault-transit/'."
|
|
62
|
+
else
|
|
63
|
+
echo " - Enabling the secrets engine 'transit' in 'vault-transit/'..."
|
|
64
|
+
vault secrets enable -path=vault-transit transit
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# Create policies
|
|
68
|
+
echo "$newlines"
|
|
69
|
+
policy_name="full-access"
|
|
70
|
+
if vault policy read $policy_name > /dev/null 2>&1; then
|
|
71
|
+
echo "${BLUE}3. The policy '$policy_name' already exists.${NC}"
|
|
72
|
+
else
|
|
73
|
+
echo "${BLUE}3. Creating policy '$policy_name'...${NC}"
|
|
74
|
+
vault policy write $policy_name - <<EOF
|
|
75
|
+
path "*" {
|
|
76
|
+
capabilities = ["create", "read", "update", "delete", "list"]
|
|
77
|
+
}
|
|
78
|
+
EOF
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
# Create roles
|
|
82
|
+
echo "$newlines"
|
|
83
|
+
role_name="vault-approle"
|
|
84
|
+
if vault read auth/approle/role/$role_name > /dev/null 2>&1; then
|
|
85
|
+
echo "${BLUE}4. The AppRole '$role_name' already exists.${NC}"
|
|
86
|
+
else
|
|
87
|
+
echo "${BLUE}4. Creating AppRole '$role_name'...${NC}"
|
|
88
|
+
vault write auth/approle/role/$role_name policies="full-access"
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
# Get Role ID and Secret ID, etc...
|
|
92
|
+
role_id=$(vault read auth/approle/role/vault-approle/role-id | grep 'role_id' | awk '{print $2}')
|
|
93
|
+
|
|
94
|
+
secret_id=$(vault write -f auth/approle/role/vault-approle/secret-id | grep 'secret_id ' | awk '{print $2}')
|
|
95
|
+
|
|
96
|
+
if [ -z "$role_id" ] || [ -z "$secret_id" ]; then
|
|
97
|
+
echo "Error: Not found role_id or secret_id"
|
|
98
|
+
exit 1
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
echo " Role ID: $role_id"
|
|
102
|
+
echo " Secret ID: $secret_id"
|
|
103
|
+
|
|
104
|
+
# Login with approle
|
|
105
|
+
echo "$newlines"
|
|
106
|
+
echo "${BLUE}5. Login with approle...${NC}"
|
|
107
|
+
vault write auth/approle/login role_id=$role_id secret_id=$secret_id
|
|
108
|
+
|
|
109
|
+
# Write secrets, db config, rabbitmq config
|
|
110
|
+
echo "$newlines"
|
|
111
|
+
echo "${BLUE}6. Writing secrets...${NC}"
|
|
112
|
+
vault kv put -mount=vault-keyvalue ms-archetype \
|
|
113
|
+
Security:ClientId=a74cb192-598c-4757-95ae-b315793bbbca \
|
|
114
|
+
Security:ValidAudiences:0=a74cb192-598c-4757-95ae-b315793bbbca \
|
|
115
|
+
Security:ValidAudiences:1=api://a74cb192-598c-4757-95ae-b315793bbbca \
|
|
116
|
+
Redis:Instances:Core:ConnectionString=localhost:6379
|
|
117
|
+
|
|
118
|
+
vault kv get -mount=vault-keyvalue ms-archetype
|
|
119
|
+
|
|
120
|
+
# Write database configuration
|
|
121
|
+
echo "$newlines"
|
|
122
|
+
echo "${BLUE}7. Writing database configuration...${NC}"
|
|
123
|
+
vault write vault-database/config/db-ms-archetype \
|
|
124
|
+
plugin_name=mongodb-database-plugin \
|
|
125
|
+
allowed_roles="ms-archetype-mongo-role" \
|
|
126
|
+
connection_url="mongodb://{{username}}:{{password}}@mongo:27017/admin?ssl=false" \
|
|
127
|
+
username="admin" \
|
|
128
|
+
password="password"
|
|
129
|
+
|
|
130
|
+
vault write vault-database/roles/ms-archetype-mongo-role \
|
|
131
|
+
db_name=db-ms-archetype \
|
|
132
|
+
creation_statements='{ "db": "admin", "roles": [{ "role": "readWrite", "db": "db-ms-archetype" }] }' \
|
|
133
|
+
default_ttl="1h" \
|
|
134
|
+
max_ttl="24h"
|
|
135
|
+
|
|
136
|
+
vault read vault-database/creds/ms-archetype-mongo-role
|
|
137
|
+
|
|
138
|
+
# Write rabbitmq configuration
|
|
139
|
+
echo "$newlines"
|
|
140
|
+
echo "${BLUE}8. Writing rabbitmq configuration...${NC}"
|
|
141
|
+
|
|
142
|
+
sleep 12
|
|
143
|
+
|
|
144
|
+
vault write vault-rabbitmq/config/connection \
|
|
145
|
+
connection_uri="http://rabbitmq:15672" \
|
|
146
|
+
username="admin" \
|
|
147
|
+
password="password"
|
|
148
|
+
|
|
149
|
+
vault write vault-rabbitmq/roles/ms-archetype-rabbitmq-role \
|
|
150
|
+
vhosts='{"/":{"write": ".*", "read": ".*", "configure": ".*"}}'
|
|
151
|
+
|
|
152
|
+
vault read vault-rabbitmq/creds/ms-archetype-rabbitmq-role
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
namespace <%= ns %>;
|
|
2
|
+
|
|
3
|
+
public class <%= handler %>(<%= repository %> repository, IMapper mapper) : IRequestHandler<<%= name %>, <%= dto %>>
|
|
4
|
+
{
|
|
5
|
+
public Task<<%= dto %>> Handle(<%= name %> request, CancellationToken cancellationToken)
|
|
6
|
+
{
|
|
7
|
+
return Task.FromResult<<%= dto %>>(default!);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
namespace <%= ns %>;
|
|
2
|
+
|
|
3
|
+
public sealed partial class <%= name %>
|
|
4
|
+
{
|
|
5
|
+
[GeneratedRegex(@"^0x[0-9]{32}$")]
|
|
6
|
+
private static partial Regex Regex();
|
|
7
|
+
|
|
8
|
+
public string Value { get; private set; }
|
|
9
|
+
|
|
10
|
+
private <%= name %>(string value)
|
|
11
|
+
{
|
|
12
|
+
DomainGuard.IsNullOrEmpty(value, Errors.UnknownError);
|
|
13
|
+
|
|
14
|
+
DomainGuard.IsFalse(Regex().IsMatch(value), Errors.UnknownError);
|
|
15
|
+
|
|
16
|
+
this.Value = value;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public static <%= name %> Create(string value)
|
|
20
|
+
{
|
|
21
|
+
return new <%= name %>(value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { toPascalCase, BaseModel } from "./base.mjs";
|
|
2
|
+
|
|
3
|
+
export class AggregateModel extends BaseModel {
|
|
4
|
+
constructor(aggregate) {
|
|
5
|
+
super();
|
|
6
|
+
|
|
7
|
+
this.sufix = 'Aggregate';
|
|
8
|
+
this.name = this._validate(aggregate, this.sufix);
|
|
9
|
+
this.fullname = `${this.name}${this.sufix}`;
|
|
10
|
+
this.file = `${this.fullname}.cs`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
static from(value) {
|
|
14
|
+
if(!value)
|
|
15
|
+
return null;
|
|
16
|
+
|
|
17
|
+
return new AggregateModel(toPascalCase(value));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { toPascalCase, BaseModel } from "./base.mjs";
|
|
2
|
+
|
|
3
|
+
export class AppSettingsModel extends BaseModel {
|
|
4
|
+
constructor(answers) {
|
|
5
|
+
super();
|
|
6
|
+
|
|
7
|
+
this.sufix = '';
|
|
8
|
+
this.appName = `ms-${answers.microservice.toLowerCase()}`;
|
|
9
|
+
this.database = `db-ms-${answers.microservice.toLowerCase()}`;
|
|
10
|
+
this.description = answers.description;
|
|
11
|
+
this.business = answers.organization;
|
|
12
|
+
this.vault = answers.vault;
|
|
13
|
+
|
|
14
|
+
this.contact = {
|
|
15
|
+
name: answers.contactName,
|
|
16
|
+
email: answers.contactEmail.toLowerCase()
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static from(answers) {
|
|
21
|
+
if(!answers || !answers.contactName || !answers.contactEmail)
|
|
22
|
+
return null;
|
|
23
|
+
|
|
24
|
+
return new AppSettingsModel(answers);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class BaseModel {
|
|
2
|
+
_validate(value, sufix) {
|
|
3
|
+
if (!value)
|
|
4
|
+
throw new Error(`${sufix} name is required`);
|
|
5
|
+
|
|
6
|
+
const suffixRegex = new RegExp(`${sufix}$`, 'i');
|
|
7
|
+
|
|
8
|
+
value = value.replace(suffixRegex, '').trim();
|
|
9
|
+
|
|
10
|
+
value = toPascalCase(value);
|
|
11
|
+
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function toPascalCase(value) {
|
|
17
|
+
if (!value)
|
|
18
|
+
return value;
|
|
19
|
+
|
|
20
|
+
return value
|
|
21
|
+
.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
|
|
22
|
+
.map((x) => x.charAt(0).toUpperCase() + x.slice(1).toLowerCase())
|
|
23
|
+
.join("");
|
|
24
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { toPascalCase, BaseModel } from "./base.mjs";
|
|
2
|
+
|
|
3
|
+
export class CommandModel extends BaseModel {
|
|
4
|
+
constructor(command) {
|
|
5
|
+
super();
|
|
6
|
+
|
|
7
|
+
this.sufix = 'Command';
|
|
8
|
+
this.name = this._validate(command, this.sufix);
|
|
9
|
+
this.fullname = `${this.name}${this.sufix}`;
|
|
10
|
+
this.file = `${this.fullname}.cs`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
static from(value) {
|
|
14
|
+
return new CommandModel(toPascalCase(value));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export class CommandHandlerModel extends BaseModel {
|
|
19
|
+
constructor(command) {
|
|
20
|
+
super();
|
|
21
|
+
|
|
22
|
+
this.sufix = 'CommandHandler';
|
|
23
|
+
this.name = this._validate(command, this.sufix);
|
|
24
|
+
this.fullname = `${this.name}${this.sufix}`;
|
|
25
|
+
this.command = CommandModel.from(command);
|
|
26
|
+
this.file = `${this.fullname}.cs`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static from(value) {
|
|
30
|
+
if(!value)
|
|
31
|
+
return [];
|
|
32
|
+
|
|
33
|
+
if (typeof value === 'string' && value.includes(','))
|
|
34
|
+
return value.split(',').map(x => new CommandHandlerModel(toPascalCase(x)));
|
|
35
|
+
|
|
36
|
+
return [new CommandHandlerModel(toPascalCase(value))];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { toPascalCase, BaseModel } from "./base.mjs";
|
|
2
|
+
|
|
3
|
+
export class ConsumerModel extends BaseModel {
|
|
4
|
+
constructor(data) {
|
|
5
|
+
super();
|
|
6
|
+
|
|
7
|
+
this.sufix = 'Handler';
|
|
8
|
+
this.name = this._validate(data.consumer, this.sufix);
|
|
9
|
+
this.fullname = `${this.name}${this.sufix}`;
|
|
10
|
+
this.file = `${this.fullname}.cs`;
|
|
11
|
+
|
|
12
|
+
this.aggregate = `${this._validate(toPascalCase(data.aggregate), 'Aggregate')}`;
|
|
13
|
+
this.action = data.action.toLowerCase();
|
|
14
|
+
this.domainEvent = `${this._validate(toPascalCase(this.name), 'DomainEvent')}`;
|
|
15
|
+
this.command = toPascalCase(data.action);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static from(data) {
|
|
19
|
+
return new ConsumerModel(data);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { toPascalCase, BaseModel } from "./base.mjs";
|
|
2
|
+
|
|
3
|
+
export class ControllerModel extends BaseModel {
|
|
4
|
+
|
|
5
|
+
constructor(controller) {
|
|
6
|
+
super();
|
|
7
|
+
|
|
8
|
+
this.sufix = 'Controller';
|
|
9
|
+
this.name = this._validate(controller, this.sufix);
|
|
10
|
+
this.fullname = `${this.name}${this.sufix}`;
|
|
11
|
+
this.file = `${this.fullname}.cs`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
static from(value) {
|
|
15
|
+
if (!value)
|
|
16
|
+
return null;
|
|
17
|
+
|
|
18
|
+
return new ControllerModel(toPascalCase(value));
|
|
19
|
+
}
|
|
20
|
+
}
|