Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 141 additions & 23 deletions REFERENCE.md

Large diffs are not rendered by default.

711 changes: 656 additions & 55 deletions ergo.rego

Large diffs are not rendered by default.

1,108 changes: 1,108 additions & 0 deletions ergo_test.rego

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions spec/OPEN.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ Derived values on a side of `compare` (`count`, `sum`, `add`, `literal`, and `wi

A subject with `of` (see [REFERENCE.md](../REFERENCE.md#a-subject-built-on-another)) has an entry in `policy/schema.json`, but no rules and no cases yet.

## Parts

A subject's parts (`has`, see [syntax.md](syntax.md#parts)) leave a few things open:

- `named by` a bare word that is a part's alias is written wrong. It would have to read the part's value and use it as a key, as it does for a `for` alias, and nothing says yet whether a part that is a path with its own `named by` can be used that way.
- `identified_by` of a part is read and shown, but nothing uses it. A later change is meant to tag the values a check reads with the id of the part they sit in, so a report can say which one.

## Time limits

`time.format` only takes years 1678 to 2261 and only counts the first nine digits of a fraction. Both limits come from OPA, which holds a time as nanoseconds since 1970 in a 64-bit integer. A port in another language would have to add them on purpose. Either they stay, and the spec keeps them as a rule every implementation follows, or the spec drops them and `ergo.rego` has to compare times some other way outside that range.
Expand Down
Loading
Loading