skuid CLI - skuid pull

How to skuid-pull a specific page?

According to the CLI documentation:

Data management:

  • --dir: (string) The input/output directory where files are retrieved and stored to ordeployed from.
    • Abbreviated form: -d
  • --module: (string) Skuid on Salesforce only. One or more Skuid page modules, separated by commas, to deploy or retrieve.
    • Abbreviated form: -m
  • --page: (string) Skuid on Salesforce only. One or more Skuid pages, listed by page name and separated by commas, to retrieve to the local file system.
    • Abbreviated form: -n
Could you provide an example command to pull a specific page? I tried --module Download --page Download-TestContact

This works: TestContact is the only page in this module.

–module Download

Hello,

Try the following to pull a single page:

skuid pull --host https://.my.salesforce.com -n -v

Let me know your results.

Thanks,
Matt

// test is placeholder; TestContact is the page name

// TestContact has module = Download
// this command fails:

skuid_windows_amd64.exe pull -n Download_TestContact -v --host https://test.cs17.my.salesforce.com --password test –-username test@heidrick.com.test --client-id test --client-secret test<br alt="" name="" rel="" target="" title="" type="" value="" /><br alt="" name="" rel="" target="" title="" type="" value="" /><pre alt="" name="" rel="" target="" title="" type="" value="">"{""error"":""You must provide a \""module\"" URL Parameter containing the nam<br alt="" name="" rel="" target="" title="" type="" value="" />e, or comma-separated names, of the Modules of pages you would like to retrieve<br alt="" name="" rel="" target="" title="" type="" value="" />"}"<br alt="" name="" rel="" target="" title="" type="" value="" />json: cannot unmarshal string into Go value of type types&#46;PullResponse


// this command works:
skuid_windows_amd64.exe pull -m Download --host https://test.cs17.my.salesforce.com --password test –-username test@heidrick.com.test --client-id test --client-secret test<br alt="" name="" rel="" target="" title="" type="" value="" />Download_TestContact can be successfully downloaded.<br alt="" name="" rel="" target="" title="" type="" value="" /><br alt="" name="" rel="" target="" title="" type="" value="" /><br alt="" name="" rel="" target="" title="" type="" value="" />// this command also works: I think because there is only 1 page with module = Download. <br alt="" name="" rel="" target="" title="" type="" value="" />skuid_windows_amd64.exe pull -m Download -n Download_TestContact -v --host <a alt="" href="https://test.cs17.my.salesforce.com" name="" rel="nofollow" target="" title="Link httpshsi--devpro01cs17mysalesforcecom" type="" value="">https://test.cs17.my.salesforce.com</a> --password test --<a alt="" href="mailto:usernameejili@heidrick.com.devpro01" name="" rel="nofollow" target="" title="" type="" value="">username test@heidrick.com.t</a>est --client-id test --client-secret test<br alt="" name="" rel="" target="" title="" type="" value="" /><br alt="" name="" rel="" target="" title="" type="" value="" /><br alt="" name="" rel="" target="" title="" type="" value="" />// update module for page TestContact = Available. all of our pages are in this Module Available<br alt="" name="" rel="" target="" title="" type="" value="" /><br alt="" name="" rel="" target="" title="" type="" value="" />// this command fails: there are a lot of pages with module = Available. <br alt="" name="" rel="" target="" title="" type="" value="" /><pre alt="" name="" rel="" target="" title="" type="" value="">skuid_windows_amd64&#46;exe pull -m Available -n Available_TestContact -v --host <a alt="" href="https://test.cs17.my.salesforce.com" name="" rel="nofollow" target="" title="Link httpshsi--devpro01cs17mysalesforcecom" type="" value="">https:&#47;&#47;test&#46;cs17&#46;my&#46;salesforce&#46;com</a> --password test –-username <a alt="" href="mailto:jili@heidrick.com.devpro01" name="" rel="nofollow" target="" title="" type="" value="">test@heidrick&#46;com&#46;t</a>est --client-id test --client-secret test

[{“errorCode”:“APEX_ERROR”,“message”:"System.LimitException: Apex heap size too
large: 8450666

External entry point
(skuid)

"}]
unexpected end of JSON input```

The apex heap size issue makes sense when you try to pull multiple pages because our pages are huge. But -n flag should only pull TestContact page which fits under the heap size since I can pull it by just using another Module = Download when it’s the only page under that module.

As you can see, the module appears a required flag for the pull. Once I supply that module, it appears pull all pages with that module and ignores the -n flag.

Thanks for your help on this!!





// Update another page with module = Download. 

skuid_windows_amd64.exe pull -m Download -n Download_TestContact -v --host&nbsp;<a target="" rel="nofollow" href="https://test.cs17.my.salesforce.com/" alt="" title="Link httpshsi--devpro01cs17mysalesforcecom" name="" value="" type="">https://test.cs17.my.salesforce.com</a>&nbsp;--password test --<a target="" rel="nofollow" href="mailto:usernameejili@heidrick.com.devpro01" alt="" title="" name="" value="" type="">username test@heidrick.com.t</a>est --client-id test --client-secret test


2 pages are downloaded. -n seems to be ignored.

Thanks for your feedback. I’ll spend some more time testing, but downloading a module, or single page, is working on my end. The “Apex Heap Size” is a known issue that will be resolved in a later release.

Hi you were able to download a single page using the -n flag  without the -m flag?

As you can see, -m flag is required for the pull. When both -m and -n are provided, the CLI is ignoring the -n flag.

Can you post the exact command and your set up? Anything different from the instructions in the skuid CLI documentation? Or anything I'm doing incorrectly above?

Can you try downloading a specific page when there are multiple pages with that same module?

Thanks!

I used the following:

skuid pull --host https://.my.salesforce.com -n -v

I set environment variables in my profile (.bash_profile):

export SKUID_UN=
export SKUID_PW=
export SKUID_CLIENT_ID=
export SKUID_CLIENT_SECRET=

FYI: I renamed skuid_windows_amd64.exe to skuid

Let me know how it goes. I’ll test with all options on command line.

Thanks,
Matt

Thanks for the reply!

I switched to my mac machine and tried the following:

export SKUID_UN=
export SKUID_PW=
export SKUID_CLIENT_ID=
export SKUID_CLIENT_SECRET=

I also renamed skuid_windows_amd64.exe to skuid

This command works:

skuid pull -m Download --host <a target="" rel="" href="https://hsi--devpro01.cs17.my.salesforce.com" alt="" title="Link httpshsi--devpro01cs17mysalesforcecom" name="" value="" type="">https://hsi--devpro01.cs17.my.salesforce.com</a>

This failed:

skuid pull -n Download_TestContact --host <a href="https://hsi--devpro01.cs17.my.salesforce.com" title="Link: https://hsi--devpro01.cs17.my.salesforce.com">https://hsi--devpro01.cs17.my.salesforce.com</a>

“{”“error”“:”“You must provide a "“module"” URL Parameter containing the name, or comma-separated names, of the Modules of pages you would like to retrieve”“}”
json: cannot unmarshal string into Go value of type types.PullResponse

Just noticed there is an update to release 0.3.0. I am using 0.2.3. I’ll test with 0.3.0.

I just noticed that the release was just from about a week ago. Good catch!

Ok, I upgraded to skuid CLI 0.3.0 and it is still working for both -m and -n.

Here’s the full command line string I’m using:

skuid pull --host https://skuid-demo.my.salesforce.com -u -p <Password+Token> --client-id --client-secret -n -v
or
skuid pull --host https://skuid-demo.my.salesforce.com -u -p <Password+Token> --client-id --client-secret -m -v

Go ahead and add an issue in Github for the project, “https://github.com/skuid/skuid”.

Thanks,
Matt

I’m still getting the same error. For PageName, did you use module_pagename? Is it possible for Skuid to investigate why this message comes up:

“{”“error”“:”“You must provide a "“module"” URL Parameter containing the name, or comma-separated names, of the Modules of pages you would like to retrieve”“}”
json: cannot unmarshal string into Go value of type types.PullResponse

It works with page name by itself as well as with module with page name. What is your module and page name (-m Download -n Download_TestContact)? I still recommend adding an issue in the Github project.

The page name is TestContact. Module is Download.

Issue added to the github project.

Jill, what Skuid release do you have installed in your org? The ability to pull specific pages by name may not be available in the release of Skuid that is in your org. 

We are still on Rockaway. The skuid REST API in Rockaway does not support the new -n flag?

That is correct. The single page functionality was added in Millau (11.2.0). Your Salesforce instance will need to be updated to at least this version of Skuid in order for this functionality to work.

Thanks very much! We are going for the Millau upgrade soon!

CLI is working correctly against Millau.

I’m also evaluating https://github.com/skuid/skuid-grunt

  • options.page: [String or Array| Required] The Page(s) you want to pull down (Requires Skuid Version 11.2 or higher).

I tried this again a Millau 11.2.8. It is still querying against the module name in the API calls to Salesforce and downloading the page with empty module name.
  var millauOptions = {
‘clientId’: ‘’,
‘clientSecret’: ‘’,
‘username’: ‘’,
‘password’: ‘’,
‘nforceOptions’: {
‘environment’: ‘sandbox’,
‘loginUri’: ‘test.salesforce.com’
}
}; <br alt="" name="" rel="" target="" title="" type="" value="" /><pre alt="" name="" rel="" target="" title="" type="" value=""> 'skuid-pull':{<br alt="" name="" rel="" target="" title="" type="" value="" /> 'options': millauOptions,<br alt="" name="" rel="" target="" title="" type="" value="" /> 'devpro01':{<br alt="" name="" rel="" target="" title="" type="" value="" /> 'options':{<br alt="" name="" rel="" target="" title="" type="" value="" /> 'dest': 'skuidpages/',<br alt="" name="" rel="" target="" title="" type="" value="" /> 'page':['SFHeaderContactDetail'],<br alt="" name="" rel="" target="" title="" type="" value="" /> }<br alt="" name="" rel="" target="" title="" type="" value="" /> }<br alt="" name="" rel="" target="" title="" type="" value="" /> }Is options.page supported in the grunt version as the documentation says?