Policy language
Status
-
Proposed -
Trialing -
Under review -
Approved -
Retired
Context & Scope
A language is required to write policies. Rego and Common Expression Language (CEL) have been mentioned within OSDU.
Policies are need for the system to enforce entitlement to data and to functionality.
Decision
We will start with Rego as the first supported language. Documented E&O use cases and some example policies to restrict access to functionality will be written in Rego and instrumented as testable requirements. Assuming other functional and nonfunctional requirements are met, this will become part of R3 scope.
Rationale
Majority of stakeholders expressed desire to start an incubator with OPA as policy engine hence making evaluation of Rego the requirement for the incubator project.
Consequences
- We might have a policy support in R3 sooner then if we proceeded with head-on comparison.
- We might end up using a less optimal technology just because this was the first choice.
When to revisit
- Another requirement (e.g., extensibility, performance) is not unachievable using Rego.
Alternatives and implications
Common Expression Language (CEL) is the alternative. With Rego, we are deciding to go with more mature ecosystem that has less aggressive performance constraints and higher complexity. This may prove to be a wrong choice.
Decision criteria and trade-offs
- Time to market
- Solution maturity
- Usability
- Extensibility
- Performance
- Solution complexity
Decision timeline
July 2020