1

I'm doing some XM Cloud experiments. Based on the starter kit I've got it running locally with Docker: https://github.com/sitecorelabs/xmcloud-foundation-head

There is also a Nextjs project which uses GraphQL. When running jss bootstrap I get this error: 'jss bootstrap' causes JavaScript heap out of memory error on graphql-let step

The fix is a patch config with some changes: https://sitecore.stackexchange.com/a/31669/3309

Does anyone know how I can do this locally for XM Cloud?

Since it's running in Docker I can't just change any config files or add a patch file. There is a readme file in the starter kit, but a publish doesn't seem to be working: https://github.com/sitecorelabs/xmcloud-foundation-head/blob/main/src/platform/README.md

2 Answers 2

2

To patch you config file you can prepare folder structure as \App_Config\Include\z.Services.GraphQL\z.Sitecore.Services.GraphQL.EdgeContent.config.

As mentioned in read me it is XP0 container topology and thus only has a Standalone cm so you need to place it under ClonedfolderPath\docker\deploy\platform\ directory. platform folder is a cm container.

Try this patch file z.Sitecore.Services.GraphQL.EdgeContent.config


<?xml version="1.0" encoding="utf-8" ?>

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/">
    <sitecore>
        <api>
            <GraphQL>
                <!-- the defaults section contains config templates that can be reused elsewhere using 'ref' -->
                <defaults>
                    <content>
                        <schemaProviders>
                            <edgeContent type="Sitecore.Services.GraphQL.EdgeSchema.EdgeSchemaProvider, Sitecore.Services.GraphQL.EdgeSchema">
                            <templates type="Sitecore.Services.GraphQL.Content.TemplateGeneration.Filters.StandardTemplatePredicate, Sitecore.Services.GraphQL.Content">
                            <database>$(1)</database>
                            <!-- Only include our JSS application -->
                            <paths hint="list:AddIncludedPath">
                            <foundation>
                                <patch:delete />
                            </foundation>
                            <feature>
                                <patch:delete />
                            </feature>
                            <project>
                                <patch:delete />
                            </project>
                            <userdefined>
                                <patch:delete />
                            </userdefined>
                            <jssSite>/sitecore/templates/Project/OurJssSite</jssSite>
                            </paths>                 
                            </templates>

                             </edgeContent>
                        </schemaProviders>
                    </content>
                </defaults>
            </GraphQL>
        </api>
         </sitecore>
</configuration>

then run .\up.ps1

Hope it helps!

1
  • That worked! Thank you for this example. I tried something similar myself, but somehow my Docker container got unhealthy after that. The above example does work! Commented Mar 31, 2023 at 16:27
1

In your repo, you will see that there is a VS Solution file and a VS project file.

The project is under /src/platform/Platform.vsproj

This platform project is built and layered into your XM Cloud CM image in docker, it is also built and layered into your XM Cloud CM image in the cloud when you deploy.

To patch Sitecore config, you can simply create your patch file and add it to that project under the normal location /App_Config/Include/<your folder>

Once you have added, you will either need to rebuild your containers, or just publish the VS Project to the deploy location, by default this is <repo root>/docker/build/platform

1
  • Thanks I tried to publish from VS, but somehow the file didn't end up in the \docker\deploy\platform\ folder. Commented Mar 31, 2023 at 16:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.