The template for the file used when adding a message bus to a project using the `add:bus`, `add:bc`, or `new:domain` commands.
| Name | Required | Description | Default | Notes |
|---|---|---|---|---|
| AddBus | Yes | A boolean to indicate that you are adding a bus. | None | Not required for the add:bus command. |
| Environments | No | The environments that get scaffolded out in this project. You only need to use the EnvironmentName and the BrokerSettings with this command. | None |
If you're adding a bus in your new:domain command, then you can add the appropriate broker details to your Environments property (in your bounded context) and add an AddBus property to make sure Craftsman knows to add the bus.
When adding a bus in a bounded context, you should set the
Environmentproperties on the bounded context, not the bus, but you do need to setAddBusto true within theBus.
DomainName: WeSendReportsCompany
BoundedContexts:
- SolutionName: Reporting
Environments:
- EnvironmentName: Development
BrokerSettings:
Host: localhost
VirtualHost: /
Username: guest
Password: guest
- EnvironmentName: Production
BrokerSettings:
Host: rmqlocalprod
VirtualHost: dashprod
Username: testprod
Password: testprod
Bus:
AddBus: true
# additional new:domain properties hereIf you've already created your Wrapt project and want to add a bus after the fact, you can use the add:bus command which will only require the Environments property (AddBus can be automatically set to true with the command given the intent behind the command 🙂).
Notice how you don't need to add any of the other normal Environment properties other than EnvironmentName and BrokerSettings.
This particular example will add bus info for Development and Production (Startup).
Environments:
- EnvironmentName: Development
BrokerSettings:
Host: localhost
VirtualHost: /
Username: guest
Password: guest
- EnvironmentName: Production
BrokerSettings:
Host: rmqlocalprod
VirtualHost: dashprod
Username: testprod
Password: testprodAt the moment, if you are connecting to anything outside of development, you may need to make some tweaks to include SSL and a port. For example, this CloudAMQP connection:
cfg.Host("baboon.rmq.cloudamqp.com", 8983, "kalvak", h =>
{
h.Username("kalvak:kalvak");
h.Password("supersecretpassword");
h.UseSsl(s =>
{
s.Protocol = SslProtocols.Tls12;
});
});