How can I determine if the org that I'm currently connected to is a scratch org?
When I'm within a Salesforce org, how can I tell if that org is a Scratch Org or not?
Ideally this would be via Apex, but it could be an API call if required.
This would be useful information for the creator of a managed package who may not otherwise know what type of org is running the code.
I've had a couple of thoughts on how this might be achieved:
- Check if the pod/instance that Scratch orgs are created on are separate from the general population of sandbox orgs. I suspect that scratch orgs have dedicated hardware. E.g. a new scratch org I just created is on p0/CS31.
- Look for describe Metadata that is unique to only scratch orgs.
apex scratch-org
add a comment |
When I'm within a Salesforce org, how can I tell if that org is a Scratch Org or not?
Ideally this would be via Apex, but it could be an API call if required.
This would be useful information for the creator of a managed package who may not otherwise know what type of org is running the code.
I've had a couple of thoughts on how this might be achieved:
- Check if the pod/instance that Scratch orgs are created on are separate from the general population of sandbox orgs. I suspect that scratch orgs have dedicated hardware. E.g. a new scratch org I just created is on p0/CS31.
- Look for describe Metadata that is unique to only scratch orgs.
apex scratch-org
Full disclosure, this question has been discussed in the GoodDaySir slack channel. For posterity, it would be useful to have a solution listed in the open. gooddaysir.slack.com/messages/C3BJMEH3J/convo/…
– Daniel Ballinger
34 mins ago
Can you see the relevantActiveScratchOrg
orScratchOrgInfo
from within one?
– Adrian Larson♦
33 mins ago
@AdrianLarson Those are in the DevHub, aren't they? I don't think they would be reachable from the Scratch org itself in isolation.
– Daniel Ballinger
28 mins ago
add a comment |
When I'm within a Salesforce org, how can I tell if that org is a Scratch Org or not?
Ideally this would be via Apex, but it could be an API call if required.
This would be useful information for the creator of a managed package who may not otherwise know what type of org is running the code.
I've had a couple of thoughts on how this might be achieved:
- Check if the pod/instance that Scratch orgs are created on are separate from the general population of sandbox orgs. I suspect that scratch orgs have dedicated hardware. E.g. a new scratch org I just created is on p0/CS31.
- Look for describe Metadata that is unique to only scratch orgs.
apex scratch-org
When I'm within a Salesforce org, how can I tell if that org is a Scratch Org or not?
Ideally this would be via Apex, but it could be an API call if required.
This would be useful information for the creator of a managed package who may not otherwise know what type of org is running the code.
I've had a couple of thoughts on how this might be achieved:
- Check if the pod/instance that Scratch orgs are created on are separate from the general population of sandbox orgs. I suspect that scratch orgs have dedicated hardware. E.g. a new scratch org I just created is on p0/CS31.
- Look for describe Metadata that is unique to only scratch orgs.
apex scratch-org
apex scratch-org
edited 29 mins ago
Daniel Ballinger
asked 49 mins ago
Daniel BallingerDaniel Ballinger
74.3k15154405
74.3k15154405
Full disclosure, this question has been discussed in the GoodDaySir slack channel. For posterity, it would be useful to have a solution listed in the open. gooddaysir.slack.com/messages/C3BJMEH3J/convo/…
– Daniel Ballinger
34 mins ago
Can you see the relevantActiveScratchOrg
orScratchOrgInfo
from within one?
– Adrian Larson♦
33 mins ago
@AdrianLarson Those are in the DevHub, aren't they? I don't think they would be reachable from the Scratch org itself in isolation.
– Daniel Ballinger
28 mins ago
add a comment |
Full disclosure, this question has been discussed in the GoodDaySir slack channel. For posterity, it would be useful to have a solution listed in the open. gooddaysir.slack.com/messages/C3BJMEH3J/convo/…
– Daniel Ballinger
34 mins ago
Can you see the relevantActiveScratchOrg
orScratchOrgInfo
from within one?
– Adrian Larson♦
33 mins ago
@AdrianLarson Those are in the DevHub, aren't they? I don't think they would be reachable from the Scratch org itself in isolation.
– Daniel Ballinger
28 mins ago
Full disclosure, this question has been discussed in the GoodDaySir slack channel. For posterity, it would be useful to have a solution listed in the open. gooddaysir.slack.com/messages/C3BJMEH3J/convo/…
– Daniel Ballinger
34 mins ago
Full disclosure, this question has been discussed in the GoodDaySir slack channel. For posterity, it would be useful to have a solution listed in the open. gooddaysir.slack.com/messages/C3BJMEH3J/convo/…
– Daniel Ballinger
34 mins ago
Can you see the relevant
ActiveScratchOrg
or ScratchOrgInfo
from within one?– Adrian Larson♦
33 mins ago
Can you see the relevant
ActiveScratchOrg
or ScratchOrgInfo
from within one?– Adrian Larson♦
33 mins ago
@AdrianLarson Those are in the DevHub, aren't they? I don't think they would be reachable from the Scratch org itself in isolation.
– Daniel Ballinger
28 mins ago
@AdrianLarson Those are in the DevHub, aren't they? I don't think they would be reachable from the Scratch org itself in isolation.
– Daniel Ballinger
28 mins ago
add a comment |
1 Answer
1
active
oldest
votes
The SourceMember sObject is only present in scratch orgs. Its presence would be a sign that you are in a scratch org. The gotcha would be that it is only accessible via the Tooling API and not Apex alone.
https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_sourcemember.htm
This seems like a great solution and shouldn't be too difficult with an HTTP request from Apex. Especially since we don't need the Remote Site setting anymore.
– Daniel Ballinger
26 mins ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "459"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f256499%2fhow-can-i-determine-if-the-org-that-im-currently-connected-to-is-a-scratch-org%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The SourceMember sObject is only present in scratch orgs. Its presence would be a sign that you are in a scratch org. The gotcha would be that it is only accessible via the Tooling API and not Apex alone.
https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_sourcemember.htm
This seems like a great solution and shouldn't be too difficult with an HTTP request from Apex. Especially since we don't need the Remote Site setting anymore.
– Daniel Ballinger
26 mins ago
add a comment |
The SourceMember sObject is only present in scratch orgs. Its presence would be a sign that you are in a scratch org. The gotcha would be that it is only accessible via the Tooling API and not Apex alone.
https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_sourcemember.htm
This seems like a great solution and shouldn't be too difficult with an HTTP request from Apex. Especially since we don't need the Remote Site setting anymore.
– Daniel Ballinger
26 mins ago
add a comment |
The SourceMember sObject is only present in scratch orgs. Its presence would be a sign that you are in a scratch org. The gotcha would be that it is only accessible via the Tooling API and not Apex alone.
https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_sourcemember.htm
The SourceMember sObject is only present in scratch orgs. Its presence would be a sign that you are in a scratch org. The gotcha would be that it is only accessible via the Tooling API and not Apex alone.
https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_sourcemember.htm
answered 30 mins ago
HeberHeber
16317
16317
This seems like a great solution and shouldn't be too difficult with an HTTP request from Apex. Especially since we don't need the Remote Site setting anymore.
– Daniel Ballinger
26 mins ago
add a comment |
This seems like a great solution and shouldn't be too difficult with an HTTP request from Apex. Especially since we don't need the Remote Site setting anymore.
– Daniel Ballinger
26 mins ago
This seems like a great solution and shouldn't be too difficult with an HTTP request from Apex. Especially since we don't need the Remote Site setting anymore.
– Daniel Ballinger
26 mins ago
This seems like a great solution and shouldn't be too difficult with an HTTP request from Apex. Especially since we don't need the Remote Site setting anymore.
– Daniel Ballinger
26 mins ago
add a comment |
Thanks for contributing an answer to Salesforce Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f256499%2fhow-can-i-determine-if-the-org-that-im-currently-connected-to-is-a-scratch-org%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Full disclosure, this question has been discussed in the GoodDaySir slack channel. For posterity, it would be useful to have a solution listed in the open. gooddaysir.slack.com/messages/C3BJMEH3J/convo/…
– Daniel Ballinger
34 mins ago
Can you see the relevant
ActiveScratchOrg
orScratchOrgInfo
from within one?– Adrian Larson♦
33 mins ago
@AdrianLarson Those are in the DevHub, aren't they? I don't think they would be reachable from the Scratch org itself in isolation.
– Daniel Ballinger
28 mins ago