I need to delete a managed solution from an organisation without losing the data or the fields inside... So obviously there are dependency issues. I added the same solution unmanaged with a different name, hoping that this would solve the dependency issues but when I try to delete the managed solution is still get a whole list.
Does anyone have an idea how I can fix this?
You cannot fix this in a supported way (through GUI and/or organization service).
My first idea would be to try and remove the solution components from the managed solution first and finally remove the solution itself. There actually is a RemoveSolutionComponentRequest, but according to the SDK this request is only valid for unmanaged solutions.
If you need to remove particular dependencies, you could try the DisassociateRequest on the Dependency entity. I don't know if it will work in your scenario, but maybe it is worth to give it a try.
A last resort would be to remove the managed solution, along with its components and dependencies directly from the database. Be very cautious with this approach: it is unsupported and potentially you can end up with a system that does not allow you to import solutions at all.
Related
At work we're using a very old template (generated around April 2021, so node v14.19) which has an out of sync package-lock.json. This means that if you do:
rm package-lock.json && npm install
The install will fail due to conflicting dependencies.
For a couple of weeks me and my teammates tried to fix this, but we haven't succeed yet: when you fix the dependencies you break eslint, when you fix eslint you break deployment, when you fix deployment then the logger will stop working and so on. We have thousands of dependencies that are turning out to be an hell to maintain.
The pov of our CTO is that we simply shouldn't delete the package-lock.json, but this means we can't update node and we are stick with what I think is a huge technical risk.
Do you think it's fixable? Have you ever been in a similar situation?
Is not deleting the package-lock.json enough to avoid the problem?
If not, how could I produce an example where I can break the flow? maybe by installing a modern package that is incompatible with the old resolution?
This is one of the reasons why both modular code and teams are important. Chunking the code up to one big file or just a few files will cause this kind of mess.
Do you think it's fixable? Have you ever been in a similar situation?
Yes
Is not deleting the package-lock.json enough to avoid the problem?
No. As said in the comments, it is a big security risk not to keep your dependencies up to date. That's why you have package managers like npm. Plus, new vulnerabilities are openly discussed in different forums, so not only are scrupulous elements aware of them, good intentioned programmers are aware of them and will definitely judge your software to be of low quality. Also, you put your clients at a big risk of running into trouble with your software and put your company at risk of facing litigations.
If not, how could I produce an example where I can break the flow? maybe by installing a modern package that is incompatible with the old resolution?
My Suggested Solution:
Leave the code as is (Good thing it is still working even with new input data).
Modularize the code. Put chunks of related functionalities into separate files and import them into the main code (make sure everything is still working).
Assign teams to the seperate files (modules) to build new versions of the code (there also have to be modular testing implemented here so you can test each module independent of the main file).
For each test unit, make sure they have their own up-to-date package.json file.
Integrate everything into a new project software.
One advantage of doing things this way is that the main file code rarely changes. Also, each module can be updated independent of the main program and other modules. Only downside to this approach is that you have to manage the package.json file intentionally so that dependecies do not conflict or are not recursive during integration, thereby (sometimes) requiring a seperate team to manage integration.
I upgraded struts2 to 2.3.32 with no problem, but I also depend on struts2-tiles-plugin-2.3.15.3.jar which I can't upgrade as easily. Is this a problem or is upgrading struts2-core enough to fix the issue?
No I think. At S2-046's workaround section I read:
Another option is to remove the File Upload Interceptor from the stack
Which means that vulnerability was inside core. However, struts2-tiles-plugin does not have dependency to core!
According to the documentation, after entering fields the wizard should ask me about relationships. Instead it skips this step entirely and just goes ahead and creates the files. I'm sure this used to work but I don't see what I could have done to break it?
I'd be happy to provide more info but not sure where to look.
Rather embarrassingly I've found the solution. It's been a few weeks since first installing jHipster and beginning to really try creating entities. I created a couple of simple ones to begin with and then played around with it to work out how I was going to use it.
Now I'm ready to start generating entities I looked at the website again and it says about these relationships. I think this is a new feature that has been added since I first installed jHipster though.
In the end I ran this
npm update -g generator-jhipster
And then when I tried to create an entity I got the question about relationships. Not sure if I need to somehow update my project to the new jHipster version now too.
How to update the JHipster project after updating JHipster generator?
I use a copy of customer's UAT environment as my Dev. I worked in a solution on top of all other solutions (add existing), however, I come to import into Live (staging), my solution import errors. In UAT, there was a 3rd party managed solution that did not make it to customer’s Live, I only just found out. So when importing to Live, it first errors about that missing 3rd party managed solution, then when I try to import that 3rd party managed solution, the import errors on some missing components; some of the reported missing components don't even exist in UAT where that solution is meant to have already been installed, and some of the reported missing components exist in both environments, but I customised them in my solution.
What are my options to resolve?
Hypothetically, would importing that 3rd party solution unmanaged instead of managed untangle it?
Why was it managed in UAT in the first place? Does it matter which environment that 3rd party managed solution was created in the first place?
I'm not sure of your solution structure. CMIIW, this is from my understanding of your question. You'd have:
in UAT
Your custom solution - Unmanaged, 3rd Party Solution - Managed
in Live
No solution at all.
I have a question, do you modify anything (form/fields/view) from 3rd party's solution?
And is your client using that 3rd party solution?
This is my opinion to answer your questions:
What are my options to resolve?
If that 3rd party solution is not used:
Re-create your solution on fresh CRM deployment, so it will not affect/be affected by any 3rd party solution
If that 3rd party solution used:
Install 3rd party's managed solution first, then import your custom solution (preferably export as "managed"
Hypothetically, would importing that 3rd party solution unmanaged instead of managed untangle it?
AFAIK, you can't import that 3rd party solution as unmanaged unless they give you the unmanaged solution. IMHO, from my experience with CRM 2011, I always try not to have more than 1 unmanaged solution in 1 deployment. And the point of using managed solution is like "released" version of your solution. unless you need the system to change the solution overtime, I reckon it's better to keep it in managed solution.
Why was it managed in UAT in the first place? Does it matter which environment that 3rd party managed solution was created in the first place?
The reason it is in UAT in the first place, maybe you can clarify with the client, what are they using that solution for. Maybe they need that solution for their CRM.
AFAIK, it doesn't matter from which environment that 3rd party managed solution was created in the first place. That's their "released" product.
Cheers.
I've run the Update-SPSolution command which I am guessing has worked as I have no errors returned. However, my extra feature in the WSP file doesn't show in the site collection features.
I've never really upgraded a solution I've always done the long winded retract it all and then reinstall. This is possibly down to my lack of understanding and I have been told upgrading can be sketchy by several people I have worked with.
How come the extra feature hasn't shown up in my collection features?
Does the upgrade solution only replace the WSP file and then you need to run the install command again?
If anyone could point out some decent articles on this it would be hugely appreciated.
I have managed to get the feature installed by re running the install solution powershell command and it seems to have worked!
However is this best practice? I can't see any detrimental affect of doing it this way currently!
You would need to run the Install-SPFeature command after the Update-Solution to install the newly added feature. http://technet.microsoft.com/en-us/library/ff607825
From my experience I use Update-SPSolution only when I need to deploy an updated dll for the whole existing solution (wsp).
If you updated other files or added a new feature then these changes will not be available, as update doesn’t instantiate manifest file to make your new feature available.
To "really" update solution you need to write an "UpgradeActions" as described here.
http://msdn.microsoft.com/en-us/library/ee535723.aspx