Go to file
2021-09-09 19:52:45 +03:00
build_utils@a7655bc60c ED-124 ED-162 ED-242: +rbkmoney/bouncer-proto#26 +erlang 24 (#33) 2021-08-26 07:04:16 +03:00
config ED-114: gunner metrics via hay (#26) 2021-07-21 14:17:57 +03:00
src ED-124: -drop legacy ContextTokens (#35) 2021-09-09 19:52:45 +03:00
test ED-124 ED-162 ED-242: +rbkmoney/bouncer-proto#26 +erlang 24 (#33) 2021-08-26 07:04:16 +03:00
.gitignore MSPF-629: Add decisions (#12) 2020-12-31 17:26:12 +03:00
.gitmodules Implement a thrift service around opa policy solver (#1) 2020-10-14 12:09:26 +03:00
docker-compose.sh MSPF-641: Relax fsync-every-write audit log handler policy (#20) 2021-02-18 11:24:50 +03:00
Dockerfile.sh Implement a thrift service around opa policy solver (#1) 2020-10-14 12:09:26 +03:00
Jenkinsfile Cut fragments ctx out of audit logs (#19) 2021-02-08 11:12:39 +03:00
LICENSE Let's make it opensource (#30) 2021-08-04 14:15:07 +03:00
Makefile ED-124 ED-162 ED-242: +rbkmoney/bouncer-proto#26 +erlang 24 (#33) 2021-08-26 07:04:16 +03:00
README.md Fix a typo in README.md file (#34) 2021-08-24 09:27:43 +03:00
rebar.config ED-124 ED-162 ED-242: +rbkmoney/bouncer-proto#26 +erlang 24 (#33) 2021-08-26 07:04:16 +03:00
rebar.lock ED-124: -drop legacy ContextTokens (#35) 2021-09-09 19:52:45 +03:00

Bouncer

Does someone look like a troublemaker?

Primary Arbiter thrift service implementation.

In a nutshell this service maps incoming contexts into OPA input documents and asks OPA to compute a judgement allowing, restricting or forbidding actions under given input context.

From the service's point of view a ruleset id is a path to OPA document that define a subdocument named judgement with a rudimentary schema. See https://github.com/rbkmoney/bouncer-policies#authoring for more detailed information.

Things to keep in mind

  • When upgrading service to a newer Erlang OTP release please be aware of potential breakages in bouncer_audit_log not strictly related to usual API deprecations and removals which is an essintial part of a release. That is because this module relies on some OTP libraries' internal implementation details. See module-level notes for additional details.