So I am trying to update the url of a remote site specified in my managed package. Salesforce allows me to edit the url of the remote site and everything packages fine in my packaging org. I am making this change within a patch package. However when I push the patch to one of the orgs with my package installed it doesn't update. The remote site url remains unchanged in the client's org. It is still set to the old value. Any idea how to update it? Maybe post install script if possible? Do I just need to add a redirect on my endpoint so that existing orgs will be redirected to the new remote site automatically. Not sure what the best thing to do is. Anyone else ran into this issue?
2 Answers
Remote site settings are not upgradeable in a managed package. Here is a link to the matrix describing this:
Since post install scripts cannot do callouts it would be difficult to update the endpoint as the Metadata API is the best way to do it. IIRC there was an apex hack to do it but not advisable and may cause security review issues.
With that said, I would put a redirect in place and then provide a warning to your users to update the setting by a specified time.
-
Thanks for the link, I should have checked there myself. Bad news on the redirect. This is going to a force.com site rest service and is passing query parameters. The force.com site redirect rules have to match the source url exactly and the query parameters are different for each call to the service. I have over a thousand orgs that need the updated remote site. Telling them to manually do it is not going to be a very successful endeavor... Seems like there has to be a better way to do this... Commented Aug 11, 2014 at 20:32
-
1
-
That is what I am going to have to do. That requires a full package version. I was hoping I could update within a patch package version. Commented Aug 13, 2014 at 11:28
Looks like the only way to do this is by adding a new remote site and doing a full package version. The nice thing is that we can push these packages out now so it can be seamless for the end client.