json-rules-engine icon indicating copy to clipboard operation
json-rules-engine copied to clipboard

Use fact as params input to another fact?

Open robross0606 opened this issue 3 years ago • 3 comments

I've looked across the documentation, examples and existing issues and, if this has been previously discussed, I'm missing it. Is it possible to use one or more Fact as params input to another fact?

This is a little domain specific but, for example, if I have a fact that gets a "section" related to another object (via params) and then another fact that verifies "section" access control, can I do something like this as a fact?

        {
          // Has permission to section?
          fact: 'has-permission',
          params: {
            fact: 'related-section',
            params: {
              id: 'xyz123'
            }
          },
          operator: 'equal',
          value: true
        }

robross0606 avatar Aug 04 '22 16:08 robross0606

I could do this right now by creating another new bespoke 'has-related-section-permission` fact which depends on 'related-section' from the almanac and then checks permissions. But this is is not ideal because it doesn't promote fully decomposing and reusing Facts on Rules.

robross0606 avatar Aug 04 '22 17:08 robross0606

@robross0606 one of the soon things on my wishlist is the ability to add a custom alamanc that would let you add functionality to as deeply as you would like do this.

chris-pardy avatar Oct 17 '23 14:10 chris-pardy

I see that you have this flagged for version 7, but I also see that 6.5.0 introduced the "custom almanac".

robross0606 avatar Mar 18 '24 18:03 robross0606