today = the current date
Consider that OPA conclusion above (or in some projects the equivalent: the date of assessment = the current date)
First, I don't mind the form the conclusion takes. However, that single important rule MUST exist in every OPA project I evaluate. Further, the current date may only show up once in every project I evaluate (and it must be in this context). Everywhere else, I want to see today or the date of assessment.
Second, and this is not so evident, my test cases always contain a baseline that overrides today to some known date with a known set of results.
Third, and I will elaborate on this later, I don't delete policy and associated test cases until the information that was determined by the policy no longer has value.
This rule enables policy to be invoked ... as of XXXX-XX-XX. Policy can be invoked in the past, present, or future. By leaving the attribute alone, determination is done in the present. By overriding the intermediate attribute today or the date of assessment, the policy can be invoked in the past or the future (assuming future policy has been put into the project.)
This rule enables interesting ability to correct policy and have impact analysis on the incorrect policy. (One of my next blogs will elaborate on this.)
This rule, in some instances, even allows future rules to be put into production and tested in a production context. (Again, I will elaborate.)
This rule begins a discussion of what I refer to as the change in observer's perspective.
It has been about 10 years since I took formal OPA training. I know Oracle mentioned this concept in that training way back then, and I believe Oracle mentions this in several PDF guides. I assume Oracle still agrees. A lot has changed in 10 years (for instance, temporal reasoning was introduced afterwards - I believe in 10.2 or 10.4???? Going down memory lane.) Let's see what cool/advanced things we can do with this today.