I am working on a project that requires building a smart chatbot that enables commerce list/cart building. I have all the components of the architecture working however I need to enable end to end tracing that contains things like user_id, session Id and request Id.
The incoming call to Rasa core API have session and request Id in the header and I need to pass it through to custom actions so logs can have the end-to-end view.
I have noticed that in the actions.py class action_endpoint doesn’t pass any incoming request header through:
response = self.action_endpoint.request( json=json, method=“post”, timeout=DEFAULT_REQUEST_TIMEOUT)
My custom channel is a using flask so arguably I should be able to pass along my custom headers doing something like
response = self.action_endpoint.request( json=json, headers= request.headers, method=“post”, timeout=DEFAULT_REQUEST_TIMEOUT)
Since I am new to Python (not new to programming) I have two concerns:
- Not fully knowing the internals of Flask is this thread safe?
- Is there another extension point that I can use to enable passing custom headers to my custom action endpoints?
I will be more than happy to create a PR if this is valid approach.