Skip to content

Commit e21db74

Browse files
author
Daniel
committed
Updated with changes by Asaf
1 parent 772c67e commit e21db74

6 files changed

+22
-18
lines changed

docs/HOWTO/get_started_with_opal_docker_compose_tutorial.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Get started with OPAL (a docker-compose playground)
1+
# 🚀 Get started with OPAL (a docker-compose playground)
22

33
This tutorial will show you what you can do with OPAL, and teach you about OPAL core features.
44

docs/HOWTO/get_started_with_opal_python_packages.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This guide will teach you how to setup and use OPAL as Python packages (python 3
1212
export OPAL_AUTH_PUBLIC_KEY=~/opal.pub
1313
export OPAL_AUTH_MASTER_TOKEN="RANDOM-SECRET-STRING"
1414
# Watching a GIT repository from a webhook
15-
export OPAL_POLICY_REPO_URL=https://github.com/authorizon/opal-example-policy-repo.git
15+
export OPAL_POLICY_REPO_URL=https://github.com/permitio/opal-example-policy-repo.git
1616
export OPAL_POLICY_REPO_WEBHOOK_SECRET="RANDOM-SECRET-STRING-SHARED-WITH-GITHUB"
1717
opal-server run
1818
```
@@ -60,6 +60,7 @@ for example `OPAL_SERVER_PORT=1337 opal-server run` is equivalent to `opal-serve
6060
6161
6262
----------------------------
63+
</br>
6364
6465
## Setup OPAL-server
6566

docs/HOWTO/get_started_with_opal_using_docker.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Get started with OPAL docker containers
1+
# 🚀 Get started with OPAL docker containers
22

33
This tutorial will teach you how to run OPAL using the official docker images.
44

@@ -49,7 +49,7 @@ Our recommendation is to start with the [docker-compose playground](https://gith
4949
<th align="left" width="45%">Description</th>
5050
</tr>
5151
<tr>
52-
<td valign="top"><a href="https://hub.docker.com/r/authorizon/opal-server">OPAL Server</a></td>
52+
<td valign="top"><a href="https://hub.docker.com/r/permitio/opal-server">OPAL Server</a></td>
5353
<td valign="top"><code>docker pull authorizon/opal-server</code></td>
5454
<td valign="top">
5555
<ul>
@@ -62,7 +62,7 @@ Our recommendation is to start with the [docker-compose playground](https://gith
6262
</td>
6363
</tr>
6464
<tr>
65-
<td valign="top"><a href="https://hub.docker.com/r/authorizon/opal-client">OPAL Client</a></td>
65+
<td valign="top"><a href="https://hub.docker.com/r/permitio/opal-client">OPAL Client</a></td>
6666
<td valign="top"><code>docker pull authorizon/opal-client</code></td>
6767
<td valign="top">
6868
<ul>

docs/design.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
OPAL is built on the shoulders of open-source giants, including:
66
- [Open Policy Agent](https://www.openpolicyagent.org/)- the default policy agent managed by OPAL.
77
- [FastAPI](https://github.com/tiangolo/fastapi) - the ASGI API framework used by OPAL-servers and OPAL-clients.
8-
- [FastAPI Websocket PubSub](https://github.com/authorizon/fastapi_websocket_pubsub) - powering the live realtime update channels
8+
- [FastAPI Websocket PubSub](https://github.com/permitio/fastapi_websocket_pubsub) - powering the live realtime update channels
99
- [Broadcaster](https://pypi.org/project/broadcaster/) allowing syncing server instances through a backend backbone (e.g. Redis, Kafka)
1010

1111
## <a name="key-concepts"></a>💡 Key Concepts
@@ -26,13 +26,13 @@ OPAL is built on the shoulders of open-source giants, including:
2626
## <a name="design"></a> ✏️ Design choices
2727

2828
- ### Networking
29-
- OPAL creates a highly efficient communications channel using [websocket Pub/Sub connections](https://github.com/authorizon/fastapi_websocket_pubsub) to subscribe to both data and policy updates. This allows OPAL clients (and the services they support) to be deployed anywhere - in your VPC, at the edge, on-premises, etc.
29+
- OPAL creates a highly efficient communications channel using [websocket Pub/Sub connections](https://github.com/permitio/fastapi_websocket_pubsub) to subscribe to both data and policy updates. This allows OPAL clients (and the services they support) to be deployed anywhere - in your VPC, at the edge, on-premises, etc.
3030
- By using **outgoing** websocket connections to establish the Pub/Sub channel most routing/firewall concerns are circumnavigated.
3131
- Using Websocket connections allows network connections to stay idle most of the time, saving CPU cycles for both clients and servers (especially when comparing to polling-based methods).
3232

3333
- ### Implementation with Python
3434
- OPAL is written completely in Python3 using asyncio, FastAPI and Pydantic.
35-
OPAL was initially created as a component of [**auth**orizon.com](https://www.authorizon.com), and we've chosen Python for development speed, ease of use and extensibility (e.g. fetcher providers).
35+
OPAL was initially created as a component of [Permit.io](https://www.permit.io), and we've chosen Python for development speed, ease of use and extensibility (e.g. fetcher providers).
3636
- Python3 with coroutines (Asyncio) and FastAPI has presented [significant improvements for Python server performance](https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=composite&a=2&f=zik0zj-qmx0qn-zhwum7-zijx1b-z8kflr-zik0zj-zik0zj-zijunz-zik0zj-zik0zj-zik0zj-1kv). While still not on par with Go or Rust - the results match and in some cases even surpass Node.js.
3737

3838
- ### Performance
@@ -50,7 +50,7 @@ OPAL is built on the shoulders of open-source giants, including:
5050
- OPAL was built initially with OPA in mind, and OPA is mostly a first-class citizen in OPAL. That said OPAL can support various and multiple policy agents, even in parallel - allowing developers to choose the best policy agent for their needs.
5151

5252
- ### <a name="large-scale-fga"></a> FGA, large scale / global authorization (e.g. Google Zanzibar)
53-
- OPAL is built for fine grained authorizon (FGA), allowing developers to aggregate all and any data they need and restructure it for the authorization layer.
53+
- OPAL is built for fine grained authorization (FGA), allowing developers to aggregate all and any data they need and restructure it for the authorization layer.
5454
- OPAL achieves this by making sure each policy-agent is loaded with only the data it needs via topic subscriptions (i.e: data focus and separation).
5555
- Examples of data separation: the back-office service doesn't need to know about customer users, a tenant specific service doesn't need the user list of other tenants, ...
5656
- That said OPAL is still limited by OPA's [resource utilization capacity](https://www.openpolicyagent.org/docs/latest/policy-performance/#resource-utilization).
@@ -64,5 +64,5 @@ OPAL is built on the shoulders of open-source giants, including:
6464
- If you'd like to use OPAL or some of its underlying modules for other update cases - please contact us (See below), we'd love to help you do that.
6565

6666
- ### Administration capabilities and UI
67-
- We've already built policy editors, back-office, frontend-embeddable interfaces, and more as part of [**auth**orizon.com](https://www.authorizon.com).
68-
- We have plans to migrate more parts of [**auth**orizon.com](https://www.authorizon.com) to be open-source; please let us know what you'd like to see next.
67+
- We've already built policy editors, back-office, frontend-embeddable interfaces, and more as part of [Permit.io](https://permit.io).
68+
- We have plans to migrate more parts of [Permit.io](https://permit.io) to be open-source; please let us know what you'd like to see next.

docs/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Check out OPAL's main site at <a href="https://opal.ac">OPAL.ac</a>
2222
- [Code modules](modules.md) review
2323

2424
## 👩‍🏫 <a name="how-tos"></a> HOW-TOs
25-
- [How to get started with OPAL (Packages and CLI)](HOWTO/get_started_with_opal.md)
25+
- [How to get started with OPAL (Packages and CLI)](HOWTO/get_started_with_opal_python_packages.md)
2626
- [How to get started with OPAL (Container Images)](HOWTO/get_started_with_opal_using_docker.md)
2727
- [How to trigger Data Updates via OPAL](HOWTO/trigger_data_updates.md)
2828
- [How to extend OPAL to fetch data from your sources with FetchProviders](HOWTO/write_your_own_fetch_provider.md)

docs/intro.md

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# <a name="intro"></a>💡 Introduction to OPAL - data and policy realtime delivery
2-
- Modern applications are complex, distributed, multi-tenant and run at scale - often creating overwhelming authorization challenges. OPA (Open-Policy-Agent) brings the power of decoupled policy to the infrastructure layer (especially K8s), and light applications. OPAL supercharges OPA to meet the pace of live applications, where the state relevant to authorization decisions may change with every user click and api call.
2+
Modern applications are complex, distributed, multi-tenant and run at scale - often creating overwhelming authorization challenges.
3+
4+
OPA (Open-Policy-Agent) brings the power of decoupled policy to the infrastructure layer (especially K8s), and light applications.
5+
6+
OPAL supercharges OPA to meet the pace of live applications, where the state relevant to authorization decisions may change with every user click and api call.
37

48
- OPAL builds on top of OPA adding realtime updates (via Websocket Pub/Sub) for both policy and data.
59

@@ -8,10 +12,10 @@
812
### <a name="why-use-opal"></a> Why use OPAL
913
- OPAL is the easiest way to keep your solution's authorization layer up-to-date in realtime.
1014
- OPAL aggregates policy and data from across the field and integrates them seamlessly into the authorization layer.
11-
- OPAL is microservices and cloud-native (see [key concepts](#key-concepts) below)
15+
- OPAL is microservices and cloud-native (see [Key concepts and design](design.md))
1216

1317
### Why OPA + OPAL == 💪 💜
14-
OPA (Open Policy Agent) is great! It decouples policy from code in a highly-performant and elegant way. But the challege of keeping policy agents up-to-date is hard - especially in applications - where each user interaction or API call may affect access-control decisions.
18+
OPA (Open Policy Agent) is great! It decouples policy from code in a highly-performant and elegant way. But the challenge of keeping policy agents up-to-date is hard - especially in applications - where each user interaction or API call may affect access-control decisions.
1519
OPAL runs in the background, supercharging policy-agents, keeping them in sync with events in realtime.
1620

1721
### What OPAL *is not*
@@ -21,13 +25,12 @@ OPAL runs in the background, supercharging policy-agents, keeping them in sync w
2125

2226
</br>
2327
- Large scale Global FGA:
24-
- Currently OPAL is not meant for managing ridiculous (>100GB) amounts of data within one layer. Though it can complement a CDN to achieve a similar result - [see below](#large-scale-fga).
28+
- Currently OPAL is not meant for managing ridiculous (>100GB) amounts of data within one layer. Though it can complement a CDN to achieve a similar result - see [Key concepts and design](design.md#"large-scale-fga).
2529
- Check out <a href="https://research.google/pubs/pub48190/" target="_blank">Google-Zanzibar</a>
2630

2731
</br>
2832
- Fullstack authorization:
2933
- OPAL and OPA essentially provide microservices for authorization
3034
- Developers still need to add control interfaces on top (e.g. user-management, api-key-management, audit, impersonation, invites) both as APIs and UIs
31-
- Check out <a href="https://authorizon.com" target="_blank">**auth**orizon</a>
32-
35+
- Check out <a href="https://permit.io" target="_blank">Permit.io</a>
3336

0 commit comments

Comments
 (0)