Bugsnag setup using multiple API keys - bugsnag

I have an Android project that needs to have two API keys for bugsnag, so the errors of the new features that are less frequent get redirected to their own project in bugsnag. But the errors don't fire with the second API key as there's only one api key set in the AndroidManifest file.
<meta-data android:name="com.bugsnag.android.API_KEY" android:value="****" />
Is there a way to fix this? I have rerouting logic in the code to fire the errors from the new feature with the proper API key, but it breaks because that key is not in the AndroidManifest file

For future reference:
See https://docs.bugsnag.com/platforms/android/customizing-error-reports/#apikey on how to implement logic like this in Android
As well as this PR outlining the support we have for changing the API key in a callback function to a secondary key, not necessarily listed in Manifest file: https://github.com/bugsnag/bugsnag-android/pull/928
Hope this helps

Related

How to customize URL pattern in WSO2AM

I am designing an API using WSO2AM 2.0
My service is like : http://190.100.10.10:9000/abc/xyz/doPost<br>
I want to replace /abc/xyz/doPost by /<MY_CUSTOM_PATH>/doPost
How can I make a custom URL pattern to hide my original URL path from the service?
Like: http://<WSO2AM_GENERATED_HOST>/WSO2AM_CONTEXT/WSO2AM_VERSION/<MY_CUSTOM_PATH>/doPost
I have searched the docs, but I am not able to find any related tutorial.
If I put /abc/xyz/doPost it will get appended to the WSO2AM generated hostname.
What is "EDIT SOURCE" in the image below? Can it be used to do what I want? If YES, How??
There aren't anything like WSO2AM_CONTEXT or WSO2AM_VERSION. You can provide any value for the context and version. Version can be String, numbers, etc.
In your case, you can use abc as context and xyz as the version.
That is exactly the kind of URL you would get in WSO2 API Cloud: http://your.custom.url/api-name/version/context. See this tutorial for details: https://docs.wso2.com/display/APICloud/Customize+the+API+Store+and+Gateway+URLs
It might not be complicated...
In publisher interface, when you add/edit an API, in "Implementation" screen, just configure WSO2 APIM to point to "http://190.100.10.10:9000/abc/xyz" - this way, "/abc/xyz" will not be visible to your clients.
So in this case,
http://<WSO2AM_GENERATED_HOST>/WSO2AM_CONTEXT/WSO2AM_VERSION/doPost
will point to:
http://190.100.10.10:9000/abc/xyz/doPost
If you wanted to add additional custi=om paths, in the "Design" screen you attached, you can also add your "(MY_CUSTOM_PATH)/doPost" path there.
This way
http://<WSO2AM_GENERATED_HOST>/WSO2AM_CONTEXT/WSO2AM_VERSION/<MY_CUSTOM_PATH>/doPost
will point to:
http://190.100.10.10:9000/abc/xyz//<MY_CUSTOM_PATH>/doPost
(However, your backend services should also have "//doPost" implemented)

How to create a custom asset-attributes.hbs for each new artifact for the STORE?

Im using WSO2 Governance Registry 5.2.0.
When I create a new artifact type, it containt a lot of new fields (You create and define this XML in the CARBON ADMIN CONSOLE). So in the PUBLISHER you can see the new fields, create and consult a new item of the artifact.
But the problem is in the STORE, I cannot see the this new fields. So in order to do this, I made the custom fields available by modifying
GREG_HOME>/repository/deployment/server/jaggeryapps/store/extensions/app/greg-store-defaults/themes/store/partials/asset-attributes.hbs file. Thanks to Malintha's Blog,
This is perhaps an answer, but it will get much worse if for each artifact I have to edit the file to add the fields, editing this file will get a lot worse over the time...
So my question is: Is there a way to create a custom theme (*.hbs, etc) for each new artifact I create?
THANKS!
As far as I understand your in the development phase of the project that you have to create registry extensions(RXTs) and showing up the data in G-Reg Store. As far as I know there is no easy dynamic way that you can do this, either you have to extend the default hbs files. Like you have done using Malintha's blog. This is okay if there is a minor change to be done, However this is not the recommended way because if there is a migration to do such as moving to all new WSO2 G-Reg 5.3.0 you might face lot of trouble if you updated the out of the box files in G-Reg 5.2.0, Therefore I suggest you to write asset extensions(GREG_HOME/repository/deployment/server/jaggeryapps/store/extensions/assets) for each and every rxt that you are going to introduce. There is plenty of blog posts that can help you.
Please find the below list of blog posts(I will update the list if I found any).
Adding a New Asset Type
How to view the json payload sent to the Store UI in GREG 5.1.0
How to extend an asset's store view in WSO2 GREG 5.1.0
WSO2GREG-5.2.0- WRITING EXTENSION TO REPLICATE MORE ARTIFACT
METADATA IN STORE
Overriding default "look and feel" of GREG - 5.3.0
Note:
There is no much difference between 5.1.0 and 5.2.0.(5.2.0 is more stable)
You can start(learn) creating a new extension by simply extending restservice.rxt and the relevant asset extension(GREG_HOME/repository/deployment/server/jaggeryapps/store/extensions/assets/restservice), I prefer you to use this blog post and start from there.
If there is a lot of development to be done I prefer you to seek help from WSO2 experts from they're official portal, if not you can always stick to stackoverflow.

bpmn explorer # wso2

I need to customize the Search module of the BPMN Explorer integrated in wso2.
More exactly I want to be able to search using one of the task variables as search parameters.
I have looked in the git repository and came across https://github.com/wso2/carbon-business-process/blob/c6e60e57ab0de5d8de59041647f5cb9b7834d9c7/components/bpmn/org.wso2.carbon.bpmn.ui/src/main/resources/web/bpmn/instance_list_view.jsp
However this script is not in my BPS release (latest available downloaded already).
Could anyone please provide some pointers at least to how I could go about customizing the search function for bpmn explorer ?
Thanks!
Edit:
I managed to modify the gui (searchView.jag file )of the search function, but cannot add functionality for those new fields
You can do the necessary modifications (customize the seach function) to searchModel.jag file for the fields you added in searchView.jag. Please find it (searchModel.jag) under <BPS_HOME>/repository/deployment/server/jaggeryapps/bpmn-explorer/model directory.
If you look at the bpmn-explorer folder you can see three sub-folders namely controller, model and template. Here controller folder includes set of .jag files which are used to check the request is secure or not, hold the session and build basic structure of the rendering pages. .jag files in model folder are used to implement the business logic say as an example invoke activiti rest api to get the process variables, process information, etc. The .jag files in the template folder are used to render the UI elements with appropriate results. Hope this resolves your issue.

No data in Sitecore Experience profile

I've set up a local Sitecore environment with all sql and mongodb db's working.
Except i do not get any data in the experience profile (contacts)
I see that tracking_contact db is empty in mongo and also the analytics index folder is empty.
Other functionalities like experience analytics work fine.
Are there any extra configurations necessary?
The Experience Profile runs on the Analytics index. If there is no index, there will be no data shown.
Try to rebuild the index if it's not there.
There is an admin tool for rebuilding the reporting db & analytics index: /sitecore/admin/RebuildReportingDB.aspx
When you run the tool you must setup a secondary reporting db first.
Just attach another empty analtyics database to your local SQL and name it something like analytics_secondary and configure its connectionstring.
Then rebuild the reporting db and after that data should appear in your Experience Profile.
The index should be constantly refreshed by the aggregation framework (i.e. you should not need to rebuild) so if that is not happening, something is wrong in your configuration.
When working with xDB you'll need to identify a user to get it to appear in the experience profile section otherwise they will be anonymous.
Try using this code here to create a contact:
https://github.com/ianjohngraham/CoreBlimey.Utils/tree/master/CoreBlimey.Utils/xDB%20Contact%20Creator
And then call the end session by using the button.
If everything is setup correctly then the contact you created will appear in MongoDB and in Experience Profile.
If you are still not getting any data then you could try these things:
Ensure you have the <sc:VisitorIdentification runat="server" /> control for asp web forms layout
the #Html.Sitecore().VisitorIdentification() control for MVC layout
Make sure you disable robot detection by changing this setting <setting name="Analytics.AutoDetectBots" />
Charley,
I also had the similar problem in past, so what I found was, it was not working in my local, but when i put it stage server it shows data to me. So same may apply to you also.
Also without "#Html.Sitecore().VisitorIdentification()" in your Layout tracking is not possible.
Hope this will help you.
cheers!!

Django Tastypie Secret Key

I am currently building a simple django app to serve basic models to an Android client. I'm using Tastypie as webservice, and I would like (well.. I need to) to implement a minimal security process as follow :
Hardcode the secret key in the Android app. Done.
Request via http GET the data I want, with the secret key as parameter. Done
Make the tastypie check this key in the requests made to django by the android app. ?..
I guess it is a fairly easy thing to do but I'm currently learning Django / Python etc and I haven't figured out what to make of the tastypie docs on this particular topic :
http://django-tastypie.readthedocs.org/en/latest/authentication_authorization.html
FYI, I'd rather not have this key user-generated for the simple reason I did not understand how it would work. Tastypie says it can generate an api key upon user creation, but what then ? How does the app get this key ?
Thank you very much for your help !
I suggest you look at django middleware. I'm assuming you're passing the key through in the request (I'd do it in the request header). The middleware should simply check for the existance of this key, and if it exists, let the request through, otherwise return a 403.