Field Event Rules plugin: core integration plans & calling external REST APIs from rules

59 views
Skip to first unread message

Crew Techno

unread,
Oct 4, 2026, 9:57:13 PMOct 4
to iDempiere
Hi Diego and all,

We are planning to use the Field Event Rules plugin (bxservice/de.bxservice.fieldEventRules) in production (iDempiere 13). I'm one of the contributors to the plugin, and a few days ago I opened a question on GitHub:
https://github.com/bxservice/de.bxservice.fieldEventRules/issues/2

Diego, since you maintain the plugin, I'd really appreciate your view on these two points (and of course anyone else's experience is welcome too):

1. Core integration - Is there any plan to include Field Event Rules in iDempiere core, or will it remain a standalone plugin? We'd like to avoid deploying something that becomes redundant once it lands in core.

2. Calling external REST APIs from a rule - Currently a rule's value expression can only be SQL or an inline expression against the iDempiere database. Would it be in scope for the "On field change" callout to fetch data from an external application's REST API?

   Example: the user enters an employee ID (NIK) in a field, the rule calls an external API (in our case GLPI, but it could be any system), and the fields below are filled automatically from the JSON response. Conceptually something like:
   - a new expression type, e.g. HTTP GET to an endpoint with @Field@ substitution in the URL,
   - an authentication config (e.g. a Bearer token / OAuth client) stored securely, not in the rule itself,
   - one action per target column mapping a JSON path from the response (e.g. data.name -> Name).

   Do you think this fits the plugin's design, or should it rather live in a separate plugin / extension point? If it fits, I'd be happy to work on it and submit a PR following your guidance.

No rush, any feedback is appreciated. Thanks!

Best regards,
Mochammad Fauzan Fadilah
(GitHub: masozan7)

Diego Ruiz

unread,
Oct 5, 2026, 5:26:26 AMOct 5
to iDempiere
Hi, 

Thanks for your message. 

> 1. Core integration - Is there any plan to include Field Event Rules in iDempiere core, or will it remain a standalone plugin? We'd like to avoid deploying something that becomes redundant once it lands in core.
No plan of including this into the core. So, I believe this will remain an extension. 

> 2. Calling external REST APIs from a rule - Currently a rule's value expression can only be SQL or an inline expression against the iDempiere database. Would it be in scope for the "On field change" callout to fetch data from an external application's REST API?

My current view is that this is out of scope for de.bxservice.fieldEventRules and would be better as a separate plugin / extension point.

Reasons:

  • The plugin’s design goal is to allow “when this field changes, do that” logic using SQL / expressions against the iDempiere database only, without requiring Java or external dependencies.idempiere

  • Adding HTTP calls introduces:

    • New runtime dependencies (HTTP client, JSON parsing),

    • New security concerns (auth, secrets management, outbound network calls from the app server),

    • A significantly larger configuration surface (auth configs, timeouts, error handling, retries, etc.).

  • This moves the plugin from “pure DB expression engine” to “general integration framework”, which changes its risk profile and maintenance burden.

So I’d prefer to keep Field Event Rules focused on DB‑centric rules, and handle external API calls in a dedicated integration layer.

If you use Postgresql, I think that is doable writing a function that uses the pgsql-http extension and make the external call from the function. No changes in the plugin. 

However, I find your recommendation worth exploring but perhaps in a separate plugin? http-callouts or similar -> Then define a clean API/config model for Auth, url templates, JSON paths, error handling strategies .... 


Best regards,
Diego

Crew Techno

unread,
Oct 5, 2026, 8:23:29 AMOct 5
to idem...@googlegroups.com

Hi Diego,

Thank you for your time and the clear explanation. Thanks for the plugin too!

Best regards,
Fauzan


--
You received this message because you are subscribed to the Google Groups "iDempiere" group.
To unsubscribe from this group and stop receiving emails from it, send an email to idempiere+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/idempiere/d294e653-cc1b-4475-9ea0-cb4a21588f9fn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages