Define extension objects in same app as their base object

Enabled for Public preview General availability
Admins, makers, marketers, or analysts, automatically Apr 1, 2024 Apr 1, 2024

Business value

By allowing the segmentation of objects into base functionality and extended functionality, it becomes possible to define extensions to objects in the same app as the object itself. This provides an option to group related functionality in smaller contributions and makes it easier to later move these to a separate app as part of refactoring.

Feature details

With this new feature, it's possible to define both the base object and extension objects in the same app. For instance, a table and a table extension can be defined within the same app.

In metadata, extension objects remain separate, as before, so each extension object still requires its own object ID in the used range. The key change is that they can now reside in the same extension/app as the base object. In the case of tables, table extensions that reside in the same app as the base table will be merged into that table in the database schema—resulting in no companion table extension.

This feature is applicable to all extensible object types; for example, page, table, report, enum, and permission set objects.

The capability is enabled by default when targeting runtime version 13.0.

See also

Extension objects overview (docs)