camunda / connector-rabbitmq Goto Github PK
View Code? Open in Web Editor NEWRabbitMQ connector for C8
License: Other
RabbitMQ connector for C8
License: Other
What should we do?
RabbitMQ supports multiple SASL authentication mechanisms. There are three such mechanisms built into the server: PLAIN, AMQPLAIN, and RABBIT-CR-DEMO, and one — EXTERNAL — available as a plugin.
More authentication mechanisms can be provided by plugins. See the plugin development guide for more information on general plugin development.
Mechanism | Description |
---|---|
PLAIN | SASL PLAIN authentication. This is enabled by default in the RabbitMQ server and clients, and is the default for most other clients. |
AMQPLAIN | Non-standard version of PLAIN retained for backwards compatibility. This is enabled by default in the RabbitMQ server. |
EXTERNAL | Authentication happens using an out-of-band mechanism such as x509 certificate peer verification, client IP address range, or similar. Such mechanisms are usually provided by RabbitMQ plugins. |
RABBIT-CR-DEMO | Non-standard mechanism which demonstrates challenge-response authentication. This mechanism has security equivalent to PLAIN, and is not enabled by default in the RabbitMQ server. |
RabbitMQ supports multiple SASL authentication mechanisms. There are three such mechanisms built into the server: PLAIN, AMQPLAIN, and RABBIT-CR-DEMO, and one — EXTERNAL — available as a plugin.
More authentication mechanisms can be provided by plugins. See the plugin development guide for more information on general plugin development.
Two primary ways of authenticating a client are username/password pairs and X.509 certificates. Username/password pairs can be used with a variety of authentication backends that verify the credentials.
OAuth 2 Support
The client can authenticate against an OAuth 2 server like UAA. The OAuth 2 plugin must be enabled on the server side and configured to use the same OAuth 2 server as the client.
But usually, people use only username/password pairs and for the first version RabbitMq connector it will be easier
Requered fields, Connection with Java
In this way, (use username/password pairs ) we have two main connecting types to RabbitMQ :
Connecting to RabbitMQ using the given parameters
Property | Default Value |
---|---|
Username | "guest" |
Password | "guest" |
Virtual host | "/" |
Hostname | "localhost" |
port | 5672 for regular connections, 5671 for connections that use TLS |
And Connecting Using a URI
URIs may be used:
Example URI : amqp://userName:password@hostName:portNumber/virtualHost
Consumers consume from queues. In order to consume messages there has to be a queue. When a new consumer is added, assuming there are already messages ready in the queue, deliveries will start immediately.
Java client guide. Receiving Messages by Subscription ("Push API")
Fields for publish message:
exchange (required) – the exchange to publish the message to
routingKey (or can be queue name) (required)– the routing key
properties (optional) – other properties for the message - routing headers etc
body (required) – the message body
What should we do?
Create more comfortable testing for RabbitMQ and prepare conditions for other connectors with the required installed server.
Why should we do it?
For testing RabbitMq Connector (#15) QA needs log in with their own account at https://www.cloudamqp.com/ and create rabbitMQ server instance.
In this case, all testing data is available only for one QA engineer.
What can we do?
We can use one account and one rabbitMQ server for QA teams and for Connector teams,
OR we can create a docker container in camunda remote server with RabbitMq server and with already installed testing data in this server, and start it when needed.
We can use the case with docker and for other connectors, and all QA teams, Connector teams, and others will know all test credentials and will be able to start RabbitMq server in one-two click and to do regression testing and just testing for needed Connector more quickly.
Describe the Bug
If a user introduce a property that is not supported by RabbitMQ, the error message displayed on Operate contains an error format for the apostrophe. The message is display as: Failed to invoke connector, received the following error: Unsupported field 'contentEnconding' for properties
List of properties supported by RabbitMQ: https://www.rabbitmq.com/publishers.html#message-properties
Steps to Reproduce
Expected Behavior
The error message should read as: Failed to invoke connector, received the following error: Unsupported field 'contentEnconding' for properties
Looks like the root cause is on this line
Environment
What should we do?
connector-rabbitmq
from template.Epic: https://github.com/camunda/product-hub/issues/462
Discovering: #6
Docs step by step guide: https://github.com/camunda/team-connectors/blob/main/how-to/CREATE_NEW_CONNECTOR.md
Describe the Bug
Steps to Reproduce
amqps://ctlijyci:[email protected]/ctlijyci
{"routingKey":"routingKey","exchange":"demo-exchange"}
{"key":"value}
{}
result
operate
Failed to invoke connector, received the following error: Content type 'text/html' not supported for bodyType=io.camunda.connectorbridge.invoker.ConnectorInvokerResponse
Expected Behavior
Instance should be executed without error
Environment
What should we do?
Why should we do it?
Align repository setup
What should we do?
Create end-to-end example model (BPMN) and demo system
Why should we do it?
Describe the Bug
If a user use the username/password authentication method, the RabbitMQ connector fails to sent the message to the instance showing an error message on Operate. Even after saving the username/password as secrets on the cluster, it stills fails with the same error.
Steps to Reproduce
An error message says: Failed to invoke connector, received the following error: https://stingray.rmq.cloudamqp.com
but nothing else.
Expected Behavior
Message should be sent out to RabbitMQ.
Environment
What should we do?
Epic : https://github.com/camunda/product-hub/issues/462
Docs : https://github.com/camunda/camunda-platform-docs/blob/add_docs_for_rabbitmq_connector/docs/components/connectors/out-of-the-box-connectors/rabbitmq.md
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.