How can I determine if the org that I'm currently connected to is a scratch org?Apex email extension points - How to replace Messaging.sendEmail or change it's behaviourHow can a Sandbox spin unwanted on a prerelease pod and how to undo it?Workaround for SELECT * (SELECT all) in sfdx force:data:tree:export SOQLCan .forceignore be used to not pull profiles that only exist in the scratch org?Salesforce DX: How to pre-populate scratch orgs with custom objects?Salesforcef DX: How to create a scratch org that opens in Classic by default?Where & how to find out what can be automized on SFDX scratch org creationError creating Scratch Org - The Streaming request failed to handshakeHow to delete Scratch Org user from deleted scratch?Scratch org: how to retrieve metadata
Why do UK politicians seemingly ignore opinion polls on Brexit?
Why is my log file so massive? 22gb. I am running log backups
Information to fellow intern about hiring?
Is there a way to make member function NOT callable from constructor?
Landlord wants to switch my lease to a "Land contract" to "get back at the city"
Could a US political party gain complete control over the government by removing checks & balances?
How to move the player while also allowing forces to affect it
How to create a consistant feel for character names in a fantasy setting?
Email Account under attack (really) - anything I can do?
Is a car considered movable or immovable property?
How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)
What does 'script /dev/null' do?
I see my dog run
What are the advantages and disadvantages of running one shots compared to campaigns?
Patience, young "Padovan"
How to deal with fear of taking dependencies
Shall I use personal or official e-mail account when registering to external websites for work purpose?
How can I fix this gap between bookcases I made?
extract characters between two commas?
When blogging recipes, how can I support both readers who want the narrative/journey and ones who want the printer-friendly recipe?
Latin words with no plurals in English
Wild Shape Centaur Into a Giant Elk: do their Charges stack?
Why doesn't a const reference extend the life of a temporary object passed via a function?
Can I find out the caloric content of bread by dehydrating it?
How can I determine if the org that I'm currently connected to is a scratch org?
Apex email extension points - How to replace Messaging.sendEmail or change it's behaviourHow can a Sandbox spin unwanted on a prerelease pod and how to undo it?Workaround for SELECT * (SELECT all) in sfdx force:data:tree:export SOQLCan .forceignore be used to not pull profiles that only exist in the scratch org?Salesforce DX: How to pre-populate scratch orgs with custom objects?Salesforcef DX: How to create a scratch org that opens in Classic by default?Where & how to find out what can be automized on SFDX scratch org creationError creating Scratch Org - The Streaming request failed to handshakeHow to delete Scratch Org user from deleted scratch?Scratch org: how to retrieve metadata
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
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
Apr 4 at 1:31
Can you see the relevantActiveScratchOrg
orScratchOrgInfo
from within one?
– Adrian Larson♦
Apr 4 at 1:33
@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
Apr 4 at 1:38
For scratch dev edition orgs in specific, they are always located on CS sandbox pods but also identify as Developer Edition. That's a combo you don't see anywhere other than scratch orgs at the moment.
– Charles T
Apr 4 at 4:54
One other option could be to query theOrganization
object and identify the difference betweenCreatedDate
andTrialExpirationDate
for an Org. In majority of the cases say for DE Orgs, Prod, and Sandboxes,TrialExpirationDate
will benull
. If you are not considering any trial orgs, then just havingTrialExpirationDate
populated will help identify that the org is a Scratch Org. For Scratch Orgs, the difference between the dates though will be anything between 1-30.
– Jayant Das
Apr 4 at 13:12
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 Apr 4 at 1:37
Daniel Ballinger
asked Apr 4 at 1:16
Daniel BallingerDaniel Ballinger
74.3k15155406
74.3k15155406
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
Apr 4 at 1:31
Can you see the relevantActiveScratchOrg
orScratchOrgInfo
from within one?
– Adrian Larson♦
Apr 4 at 1:33
@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
Apr 4 at 1:38
For scratch dev edition orgs in specific, they are always located on CS sandbox pods but also identify as Developer Edition. That's a combo you don't see anywhere other than scratch orgs at the moment.
– Charles T
Apr 4 at 4:54
One other option could be to query theOrganization
object and identify the difference betweenCreatedDate
andTrialExpirationDate
for an Org. In majority of the cases say for DE Orgs, Prod, and Sandboxes,TrialExpirationDate
will benull
. If you are not considering any trial orgs, then just havingTrialExpirationDate
populated will help identify that the org is a Scratch Org. For Scratch Orgs, the difference between the dates though will be anything between 1-30.
– Jayant Das
Apr 4 at 13:12
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
Apr 4 at 1:31
Can you see the relevantActiveScratchOrg
orScratchOrgInfo
from within one?
– Adrian Larson♦
Apr 4 at 1:33
@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
Apr 4 at 1:38
For scratch dev edition orgs in specific, they are always located on CS sandbox pods but also identify as Developer Edition. That's a combo you don't see anywhere other than scratch orgs at the moment.
– Charles T
Apr 4 at 4:54
One other option could be to query theOrganization
object and identify the difference betweenCreatedDate
andTrialExpirationDate
for an Org. In majority of the cases say for DE Orgs, Prod, and Sandboxes,TrialExpirationDate
will benull
. If you are not considering any trial orgs, then just havingTrialExpirationDate
populated will help identify that the org is a Scratch Org. For Scratch Orgs, the difference between the dates though will be anything between 1-30.
– Jayant Das
Apr 4 at 13:12
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
Apr 4 at 1:31
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
Apr 4 at 1:31
Can you see the relevant
ActiveScratchOrg
or ScratchOrgInfo
from within one?– Adrian Larson♦
Apr 4 at 1:33
Can you see the relevant
ActiveScratchOrg
or ScratchOrgInfo
from within one?– Adrian Larson♦
Apr 4 at 1:33
@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
Apr 4 at 1:38
@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
Apr 4 at 1:38
For scratch dev edition orgs in specific, they are always located on CS sandbox pods but also identify as Developer Edition. That's a combo you don't see anywhere other than scratch orgs at the moment.
– Charles T
Apr 4 at 4:54
For scratch dev edition orgs in specific, they are always located on CS sandbox pods but also identify as Developer Edition. That's a combo you don't see anywhere other than scratch orgs at the moment.
– Charles T
Apr 4 at 4:54
One other option could be to query the
Organization
object and identify the difference between CreatedDate
and TrialExpirationDate
for an Org. In majority of the cases say for DE Orgs, Prod, and Sandboxes, TrialExpirationDate
will be null
. If you are not considering any trial orgs, then just having TrialExpirationDate
populated will help identify that the org is a Scratch Org. For Scratch Orgs, the difference between the dates though will be anything between 1-30.– Jayant Das
Apr 4 at 13:12
One other option could be to query the
Organization
object and identify the difference between CreatedDate
and TrialExpirationDate
for an Org. In majority of the cases say for DE Orgs, Prod, and Sandboxes, TrialExpirationDate
will be null
. If you are not considering any trial orgs, then just having TrialExpirationDate
populated will help identify that the org is a Scratch Org. For Scratch Orgs, the difference between the dates though will be anything between 1-30.– Jayant Das
Apr 4 at 13:12
add a comment |
2 Answers
2
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
Apr 4 at 1:40
add a comment |
Using the Organization
object, both scratch and trial orgs have TrialExpirationDate
, but we can use IsSandbox
to differentiate the two.
Organization org = [SELECT IsSandbox, TrialExpirationDate FROM Organization];
Boolean isScratchOrg = org.IsSandbox && org.TrialExpirationDate != null;
Boolean isTrialOrg = !org.IsSandbox && org.TrialExpirationDate != null;
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');
);
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
2 Answers
2
active
oldest
votes
2 Answers
2
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
Apr 4 at 1:40
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
Apr 4 at 1:40
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 Apr 4 at 1:36
HeberHeber
19317
19317
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
Apr 4 at 1:40
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
Apr 4 at 1:40
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
Apr 4 at 1:40
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
Apr 4 at 1:40
add a comment |
Using the Organization
object, both scratch and trial orgs have TrialExpirationDate
, but we can use IsSandbox
to differentiate the two.
Organization org = [SELECT IsSandbox, TrialExpirationDate FROM Organization];
Boolean isScratchOrg = org.IsSandbox && org.TrialExpirationDate != null;
Boolean isTrialOrg = !org.IsSandbox && org.TrialExpirationDate != null;
add a comment |
Using the Organization
object, both scratch and trial orgs have TrialExpirationDate
, but we can use IsSandbox
to differentiate the two.
Organization org = [SELECT IsSandbox, TrialExpirationDate FROM Organization];
Boolean isScratchOrg = org.IsSandbox && org.TrialExpirationDate != null;
Boolean isTrialOrg = !org.IsSandbox && org.TrialExpirationDate != null;
add a comment |
Using the Organization
object, both scratch and trial orgs have TrialExpirationDate
, but we can use IsSandbox
to differentiate the two.
Organization org = [SELECT IsSandbox, TrialExpirationDate FROM Organization];
Boolean isScratchOrg = org.IsSandbox && org.TrialExpirationDate != null;
Boolean isTrialOrg = !org.IsSandbox && org.TrialExpirationDate != null;
Using the Organization
object, both scratch and trial orgs have TrialExpirationDate
, but we can use IsSandbox
to differentiate the two.
Organization org = [SELECT IsSandbox, TrialExpirationDate FROM Organization];
Boolean isScratchOrg = org.IsSandbox && org.TrialExpirationDate != null;
Boolean isTrialOrg = !org.IsSandbox && org.TrialExpirationDate != null;
answered Apr 4 at 16:19
Kevin VizcarraKevin Vizcarra
8815
8815
add a comment |
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');
);
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');
);
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');
);
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');
);
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
Apr 4 at 1:31
Can you see the relevant
ActiveScratchOrg
orScratchOrgInfo
from within one?– Adrian Larson♦
Apr 4 at 1:33
@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
Apr 4 at 1:38
For scratch dev edition orgs in specific, they are always located on CS sandbox pods but also identify as Developer Edition. That's a combo you don't see anywhere other than scratch orgs at the moment.
– Charles T
Apr 4 at 4:54
One other option could be to query the
Organization
object and identify the difference betweenCreatedDate
andTrialExpirationDate
for an Org. In majority of the cases say for DE Orgs, Prod, and Sandboxes,TrialExpirationDate
will benull
. If you are not considering any trial orgs, then just havingTrialExpirationDate
populated will help identify that the org is a Scratch Org. For Scratch Orgs, the difference between the dates though will be anything between 1-30.– Jayant Das
Apr 4 at 13:12