CacheControl/json-rules-engine

Use fact as params input to another fact?

robross0606 opened this issue · 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
        }

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 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.

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