This product is not supported for your selected Datadog site. ().
Metadata
ID:apex-code-style/avoid-global
Language: Apex
Severity: Notice
Category: Best Practices
Description
This rule discourages the use of the global access modifier for classes, variables, methods, and inner classes in Apex code. Declaring elements as global exposes them beyond the namespace boundary, making them accessible to all Apex code in any installed package or org, which can lead to unintended dependencies and security concerns.
To comply with this rule, use more restrictive access modifiers such as private, protected, or public whenever possible. For example, instead of global class MyClass, declare it as public class MyClass unless there is a compelling reason to expose it globally. Similarly, avoid defining variables or methods as global; prefer private or public based on the intended visibility.
Non-Compliant Code Examples
global without sharing class GlobalClass {
global String globalAttribute = 'my-attr';
global static void globalStaticMethod() { }
global class GlobalInnerClass { }
}
Compliant Code Examples
private class PrivateClass {
global void exposedMethod() {
// foobar
}
}
class NotGlobalClass {
String notGlobalAttribute = 'my-attr';
static void staticMethod() { }
class InnerClass { }
}
Seamless integrations. Try Datadog Code Security
Datadog Code Security
Try this rule and analyze your code with Datadog Code Security
How to use this rule
1
2
rulesets:- apex-code-style # Rules to enforce Apex code style.
Create a static-analysis.datadog.yml with the content above at the root of your repository
Use our free IDE Plugins or add Code Security scans to your CI pipelines