Hi Trailblazers,
With the secure-by-default changes introduced in API version 67.0, Apex database operations (SOQL, SOSL, and DML) now run in User Mode by default. This automatically enforces Object-Level Security (CRUD), Field-Level Security (FLS), and record sharing rules without requiring explicit keywords on every query.
Given this platform shift, do we still need to worry about using Schema classes (like Schema.sObjectType.Account.isAccessible()) for security checks?
I am trying to understand if there are edge cases where manual Schema checks are still required, or if modern alternatives like WITH USER_MODE, AccessLevel.USER_MODE, and Security.stripInaccessible() have made manual schema verification completely obsolete.
I'd love to hear how other architects and developers are adjusting their coding standards and security frameworks for API 67.0+.
Thanks in advance for your insights!
#Salesforce Developer #Architects
#Trailhead Challenges #Security #Apex
Hi @Yash Gurharikar -
Not completely. User Mode removes a lot of the manual security boilerplate, but the Schema class still has valid use cases.
For example, it's still useful for dynamic Apex, conditional UI/business logic, metadata-driven frameworks, or when you need to check access before performing an operation. In most new Apex code, prefer User Mode and Security.stripInaccessible(), and use Schema only where those APIs don't cover your scenario.