policy-pattern 0.4.0__tar.gz → 0.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/PKG-INFO +8 -11
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/README.md +7 -10
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/pyproject.toml +2 -2
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/pyproject.toml.orig +2 -2
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/LICENSE.md +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/__init__.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/adapters/__init__.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/adapters/_db_protocols.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/adapters/_tuple_mapping.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/adapters/memory.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/adapters/postgres.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/__init__.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/base_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/evaluation_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/identifier_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/index_entry_too_large_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/model_validation_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/mutation_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/relation_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/unknown_name_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/unknown_type_error.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/evaluator.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/__init__.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/_schema_validation.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/compiled_model.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/direct_subject.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/identifier.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/model.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/mutation.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/object_reference.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/operators.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/reference.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/relation.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/subject.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/subject_set.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/tuple.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/tuple_to_userset.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/models/type.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/ports/__init__.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/ports/tuple_store.py +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/py.typed +0 -0
- {policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/sql/postgres/0001_create_policy_tuples.sql +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: policy-pattern
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: A minimal, embeddable ReBAC authorization engine for Python, inspired by Google Zanzibar.
|
|
5
5
|
Keywords: python,authorization,access-control,rebac,zanzibar,security
|
|
6
6
|
Author: Guillem Pozo Sebastián
|
|
@@ -45,8 +45,7 @@ Description-Content-Type: text/markdown
|
|
|
45
45
|
</a>
|
|
46
46
|
</p>
|
|
47
47
|
|
|
48
|
-
`policy-pattern` is a standalone Python library for relationship-based access control (ReBAC). It models
|
|
49
|
-
authorization as relationships between subjects and objects and evaluates those relationships through composable
|
|
48
|
+
`policy-pattern` is a standalone Python library for relationship-based access control (ReBAC). It models authorization as relationships between subjects and objects and evaluates those relationships through composable
|
|
50
49
|
authorization rules.
|
|
51
50
|
|
|
52
51
|
- **No authorization server**
|
|
@@ -131,18 +130,15 @@ evaluator = Evaluator(model=compiled, store=store)
|
|
|
131
130
|
evaluator.check(alice, "viewer", document_42) # True — alice owns the parent folder
|
|
132
131
|
```
|
|
133
132
|
|
|
134
|
-
`viewer` here means "the document's own owner, or the owner of whatever folder it lives in" — a document under
|
|
135
|
-
`folder:engineering` inherits access from that folder without copying a permission onto every document.
|
|
133
|
+
`viewer` here means "the document's own owner, or the owner of whatever folder it lives in" — a document under `folder:engineering` inherits access from that folder without copying a permission onto every document.
|
|
136
134
|
|
|
137
|
-
See the [Usage Guide](docs/usage/README.md) for the full, runnable walkthrough — every rewrite operator, nested
|
|
138
|
-
groups, `EvaluationBudget`, and error handling.
|
|
135
|
+
See the [Usage Guide](docs/usage/README.md) for the full, runnable walkthrough — every rewrite operator, nested groups, `EvaluationBudget`, and error handling.
|
|
139
136
|
|
|
140
137
|
---
|
|
141
138
|
|
|
142
139
|
## Documentation
|
|
143
140
|
|
|
144
|
-
The repository uses specifications and architecture documents as part of the implementation contract — they
|
|
145
|
-
describe **what must be true**, independent of any one adapter's implementation.
|
|
141
|
+
The repository uses specifications and architecture documents as part of the implementation contract — they describe **what must be true**, independent of any one adapter's implementation.
|
|
146
142
|
|
|
147
143
|
```text
|
|
148
144
|
docs/
|
|
@@ -153,8 +149,9 @@ docs/
|
|
|
153
149
|
└── errors.md — the PPxxx error code ranges and what each one means
|
|
154
150
|
```
|
|
155
151
|
|
|
156
|
-
Start with the [Usage Guide](docs/usage/README.md) to see the library working end to end, then
|
|
157
|
-
|
|
152
|
+
Start with the [Usage Guide](docs/usage/README.md) to see the library working end to end, then [Architecture](docs/architecture.md) to understand why the model is shaped the way it is.
|
|
153
|
+
|
|
154
|
+
See [`CODE_STYLE.md`](.github/CODE_STYLE.md) and [`TESTING.md`](TESTING.md) for contributor conventions no tool enforces.
|
|
158
155
|
|
|
159
156
|
---
|
|
160
157
|
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
</a>
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
|
-
`policy-pattern` is a standalone Python library for relationship-based access control (ReBAC). It models
|
|
24
|
-
authorization as relationships between subjects and objects and evaluates those relationships through composable
|
|
23
|
+
`policy-pattern` is a standalone Python library for relationship-based access control (ReBAC). It models authorization as relationships between subjects and objects and evaluates those relationships through composable
|
|
25
24
|
authorization rules.
|
|
26
25
|
|
|
27
26
|
- **No authorization server**
|
|
@@ -106,18 +105,15 @@ evaluator = Evaluator(model=compiled, store=store)
|
|
|
106
105
|
evaluator.check(alice, "viewer", document_42) # True — alice owns the parent folder
|
|
107
106
|
```
|
|
108
107
|
|
|
109
|
-
`viewer` here means "the document's own owner, or the owner of whatever folder it lives in" — a document under
|
|
110
|
-
`folder:engineering` inherits access from that folder without copying a permission onto every document.
|
|
108
|
+
`viewer` here means "the document's own owner, or the owner of whatever folder it lives in" — a document under `folder:engineering` inherits access from that folder without copying a permission onto every document.
|
|
111
109
|
|
|
112
|
-
See the [Usage Guide](docs/usage/README.md) for the full, runnable walkthrough — every rewrite operator, nested
|
|
113
|
-
groups, `EvaluationBudget`, and error handling.
|
|
110
|
+
See the [Usage Guide](docs/usage/README.md) for the full, runnable walkthrough — every rewrite operator, nested groups, `EvaluationBudget`, and error handling.
|
|
114
111
|
|
|
115
112
|
---
|
|
116
113
|
|
|
117
114
|
## Documentation
|
|
118
115
|
|
|
119
|
-
The repository uses specifications and architecture documents as part of the implementation contract — they
|
|
120
|
-
describe **what must be true**, independent of any one adapter's implementation.
|
|
116
|
+
The repository uses specifications and architecture documents as part of the implementation contract — they describe **what must be true**, independent of any one adapter's implementation.
|
|
121
117
|
|
|
122
118
|
```text
|
|
123
119
|
docs/
|
|
@@ -128,8 +124,9 @@ docs/
|
|
|
128
124
|
└── errors.md — the PPxxx error code ranges and what each one means
|
|
129
125
|
```
|
|
130
126
|
|
|
131
|
-
Start with the [Usage Guide](docs/usage/README.md) to see the library working end to end, then
|
|
132
|
-
|
|
127
|
+
Start with the [Usage Guide](docs/usage/README.md) to see the library working end to end, then [Architecture](docs/architecture.md) to understand why the model is shaped the way it is.
|
|
128
|
+
|
|
129
|
+
See [`CODE_STYLE.md`](.github/CODE_STYLE.md) and [`TESTING.md`](TESTING.md) for contributor conventions no tool enforces.
|
|
133
130
|
|
|
134
131
|
---
|
|
135
132
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "policy-pattern"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.1"
|
|
4
4
|
description = "A minimal, embeddable ReBAC authorization engine for Python, inspired by Google Zanzibar."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -38,7 +38,7 @@ Repository = "https://github.com/guillem-ps/policy-pattern"
|
|
|
38
38
|
Issues = "https://github.com/guillem-ps/policy-pattern/issues"
|
|
39
39
|
|
|
40
40
|
[build-system]
|
|
41
|
-
requires = ["uv_build>=0.11.16,<0.
|
|
41
|
+
requires = ["uv_build>=0.11.16,<0.14.0"]
|
|
42
42
|
build-backend = "uv_build"
|
|
43
43
|
|
|
44
44
|
[tool.uv.build-backend]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "policy-pattern"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.1"
|
|
4
4
|
description = "A minimal, embeddable ReBAC authorization engine for Python, inspired by Google Zanzibar."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -37,7 +37,7 @@ Repository = "https://github.com/guillem-ps/policy-pattern"
|
|
|
37
37
|
Issues = "https://github.com/guillem-ps/policy-pattern/issues"
|
|
38
38
|
|
|
39
39
|
[build-system]
|
|
40
|
-
requires = ["uv_build>=0.11.16,<0.
|
|
40
|
+
requires = ["uv_build>=0.11.16,<0.14.0"]
|
|
41
41
|
build-backend = "uv_build"
|
|
42
42
|
|
|
43
43
|
[tool.uv.build-backend]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/index_entry_too_large_error.py
RENAMED
|
File without changes
|
{policy_pattern-0.4.0 → policy_pattern-0.4.1}/policy_pattern/errors/model_validation_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|