Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to how query arguments are handled #197

Merged
merged 12 commits into from
Dec 20, 2016

Conversation

tsandall
Copy link
Member

This PR updates how query arguments are handled.

Conceptually, all query arguments are now nested inside a built-in root document named "request". This way we can say, somewhat more clearly than before, that policies are expressed against (1) state of the world stored in OPA (nested under data) and (2) the state of the world supplied with the query (nested under request).

The API changes are not backwards compatible: callers need to be updated to supply a "request" parameter instead of a "global" parameter now. The existing integrations are locked to stable versions and will be updated once the next release is published.

/cc @mikol

These changes replace the Globals map with a single Request value that
contains all of the supplied query arguments. This way it's still possible for
the caller to provide a single, non-object value as the request input.

Because request has the same semantics as data now, users will no longer
receive a special error if the request is missing a required key. This
behaviour was somewhat broken anyway as missing embedded keys would not
trigger the error. This seems better left to schema checking at the API layer.
@tsandall tsandall merged commit 8ed7d2b into open-policy-agent:master Dec 20, 2016
tsandall added a commit to tsandall/opa that referenced this pull request Jan 24, 2017
These changes update OPA to analyze queries to determine if an input
document is required. In the future, more sophisticated checks could be
performed (e.g., JSON schema validation).

If an input document is required but not provided, OPA will return HTTP
400 (per the documentation). This was broken in open-policy-agent#197.

Fixes open-policy-agent#227
tsandall added a commit that referenced this pull request Jan 25, 2017
These changes update OPA to analyze queries to determine if an input
document is required. In the future, more sophisticated checks could be
performed (e.g., JSON schema validation).

If an input document is required but not provided, OPA will return HTTP
400 (per the documentation). This was broken in #197.

Fixes #227
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants