Refer to configurators for a description of the configurator concept and its benefits.
More formally, a configurator is a scripted plug-in that defines the findApplicationPath entry point and the special property "ApplicationPath". A configurator may (but does not have to) also define the getApplicationLicensing entry point, the licenseApplication entry point, and/or the special property "ApplicationLicense".
See entry points for Application discovery and Application licensing, Creating a scripted plug-in, and Obtaining permission.
For the avoidance of doubt:
A script package assigned to a script element is not a configurator; its application discovery entry points are never invoked and its special properties behave as regular properties.
A flow element implementation that does not define the findApplicationPath entry point is not a configurator.
It is an error for a flow element implementation to define the findApplicationPath entry point while not defining the special property "ApplicationPath" (because the flow implementation would have no access to the application path it claims to require).
It is meaningless (but not an error) for a flow element implementation to define the getApplicationLicensing or licenseApplication entry points without defining the findApplicationPath entry point since in that case the entry points will never be invoked.
It is meaningless (but not an error) for a configurator to define the "ApplicationLicense" property without defining the licenseApplication entry point since in that case the property will never receive a value (there is no license context menu and the property is hidden).
Conversely a configurator may define the licenseApplication entry point without defining the "ApplicationLicense" property in case it does not need access to the license string outside of the licenseApplication entry point.