Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document the org_config Object #3490

Merged
merged 17 commits into from
Jan 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ For example:
* Gustavo Tandeciarz (dcinzona)
* Chandler Anderson (zenibako)
* Ben French (BenjaminFrench)
* Rupert Barrow (rupertbarrow)
59 changes: 59 additions & 0 deletions docs/org_config-reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# org_config Object Reference

The `org_config` object can be used in the `cumulusci.yml` file to read a large number number of attributes of the Salesforce org currently used. For example, in a [custom flow step](https://cumulusci.readthedocs.io/en/stable/config.html#add-a-flow-step), you can use a `when` clause to adapt the behavior of the new step to the type of org (scratch org or not) by referencing the `org_config.scratch` attribute.

The following information is documented here in the application's source code :
https://github.com/SFDO-Tooling/CumulusCI/blob/main/cumulusci/core/config/org_config.py

## org_config Object Attributes

- `access_token` : access token currently used to authenticate with Salesforce
- `installed_packages` : comma-separated list of package names; a `dict` mapping a namespace or metadata package ID (starts with `033`) to the installed package version(s) matching that identifier. All values are lists, because multiple second-generation packages may be installed with the same namespace. The beta version of a package is represented as "1.2.3b5", where 5 is the build number.
- `instance_url` : eg `https://crazy-demo.scratch.my.salesforce.com`
- `instance_name` : eg `crazy-demo`
- `is_advanced_currency_management_enabled` : `true` or `false`
- `is_multiple_currencies_enabled`: `true` or `false`
- `is_person_accounts_enabled` : `true` or `false`
- `is_sandbox` : `true` if the org is a sandbox
- `is_survey_advanced_features_enabled`: `true` or `false`
- `lightning_base_url` : base url ending with `.lightning.force.com`
- `namespace` : namespace of the org
- `namespaced` : `true` if the org has a namespace
- `org_id` : Organization ID of the Salesforce org
- `org_type` : eg "Enterprise Edition" or "Developer Edition"
- `organization_sobject` : The Organization object (see the [Salesforce documentation for the Organization SObject](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_organization.htm)) for the org.
- `scratch` : `True` when the org is a scratch org.
- `start_url`: the frontdoor URL that results in an instant login, like `https://mydomain.my.salesforce.com/secur/frontdoor.jsp?sid=...`
- `user_id` : user ID of the current Salesforce user
- `userinfo`: user OAuth2 information (see https://help.salesforce.com/s/articleView?id=sf.remoteaccess_using_userinfo_endpoint.htm)
- `username` : username of the current Salesforce user

## Other org_config Object Attributes

- `config_file`
- `config_name`
- `latest_api_version`
- `name`
- `salesforce_client`
- `sfdx_alias`

## org_config Object Methods

- `has_minimum_package_version(package_identifier, version_identifier)`: `true` if the org has a version of the specified package that is equal to or newer than the supplied version identifier.
The package identifier may be either a namespace or a `033` MetadataPackage ID.
The version identifier should be in "1.2.3" or "1.2.3b4" format.

`when` expressions can use the `has_minimum_package_version` method to check if a package is installed with a sufficient version.

For example:
`when: org_config.has_minimum_package_version("namespace", "1.0")`

See a real-life example here : https://trailhead.salesforce.com/fr/trailblazer-community/feed/0D54V00007erukZSAQ

- `get_community_info(community_name, force_refresh=False)`: Returns the community information for the given community (see https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_responses_community.htm)

An API call will be made the first time this method is used,
and the return values will be cached. Subsequent calls will
not call the API unless the requested community name is not in
the cached results, or unless the force_refresh parameter is
set to True
3 changes: 2 additions & 1 deletion docs/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ maxdepth: 1
cheat-sheet
cumulusci_tasks
flows
env_var_reference
env-var-reference
RupertBarrow marked this conversation as resolved.
Show resolved Hide resolved
org_config-reference
```
Loading