manifest.json and mapped to the OwnPay\Plugin\Capability backed PHP enum.
Full-trust model: Installed plugins are owner-uploaded and run with full application trust. Capabilities are declarative metadata and an intent contract. They document what a plugin does and drive UI presentation; they are not a runtime enforcement sandbox.
Declaring capabilities
Capabilities are declared in thecapabilities array inside manifest.json:
PluginInterface::capabilities() method on the entrypoint class should return the matching Capability enum cases:
Full capability reference
Common capability combinations
Payment gateway
Communication addon (SMS/Email/Telegram)
Analytics dashboard widget
Checkout theme
Security-relevant notes
db_read / db_write - SQL isolation
Queries to any op_* table not prefixed with op_plugin_ are blocked by PluginSandbox::validateSql().
file_read / file_write - Path containment
PluginSandbox::validateFilePath() uses realpath() to resolve the target path and checks that it begins with the plugin directory path.