open-shield-python 0.2.5__tar.gz → 0.2.6__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.
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/PKG-INFO +6 -2
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/README.md +5 -1
- open_shield_python-0.2.6/docs/images/sequence-flow.png +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/pyproject.toml +1 -1
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-packaging/SKILL.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-packaging/resources/implementation-playbook.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-pro/SKILL.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-testing-patterns/SKILL.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-testing-patterns/resources/implementation-playbook.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/SKILL.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/examples/before_after_refactor.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/examples/clean_architecture_layout.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/examples/dip_ports_adapters.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/resources/code_review_checklist.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.github/workflows/ci.yml +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.gitignore +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/CHANGELOG.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/CODE_OF_CONDUCT.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/CONTRIBUTING.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/LICENSE +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/SECURITY.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/architecture/system-overview.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/design/overview.md +0 -0
- {open_shield_python-0.2.5/docs → open_shield_python-0.2.6/docs/images}/architecture.png +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/implementation/guidelines.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/README.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/backlog.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/0000-template.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/001-clean-architecture.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/002-modern-tooling.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/003-pydantic-usage.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-0-init.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-1-core.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-2-authz.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-3-integration.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-4-publish.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/roadmap.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/specs.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/tasks.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/tech-debt.md +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/main.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/__init__.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/config.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/key_provider.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/token_validator.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/__init__.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/__init__.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/dependencies.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/middleware.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/__init__.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/entities.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/exceptions.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/__init__.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/key_provider.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/tenant_resolver.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/token_validator.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/__init__.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/authorization_service.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/claim_mapping.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/token_service.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/integration/adapters/test_key_provider.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/integration/adapters/test_token_validator.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/integration/api/test_fastapi.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/adapters/test_config.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/domain/test_authorization_service.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/domain/test_claim_mapping.py +0 -0
- {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/domain/test_token_service.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: open-shield-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.6
|
|
4
4
|
Summary: Vendor-agnostic authentication and authorization enforcement SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/avinash-singh-io/open-shield-python
|
|
6
6
|
Project-URL: Repository, https://github.com/avinash-singh-io/open-shield-python
|
|
@@ -266,7 +266,7 @@ ctx.user.actor_type # "user" | "service" | "agent"
|
|
|
266
266
|
|
|
267
267
|
Open Shield sits as a **thin, powerful layer** between your identity provider and your Python backend — handling all the complexity of token validation, claim extraction, tenant resolution, and authorization enforcement so you don't have to.
|
|
268
268
|
|
|
269
|
-

|
|
269
|
+

|
|
270
270
|
|
|
271
271
|
### How It Works
|
|
272
272
|
|
|
@@ -279,6 +279,10 @@ Open Shield sits as a **thin, powerful layer** between your identity provider an
|
|
|
279
279
|
- **Enforces authorization** — checks scopes and roles before the request reaches your handler.
|
|
280
280
|
3. **Your Python service** receives a clean, verified `UserContext` object — ready to use. No JWT parsing, no OIDC plumbing, no provider-specific code.
|
|
281
281
|
|
|
282
|
+
### Request Authentication Flow
|
|
283
|
+
|
|
284
|
+

|
|
285
|
+
|
|
282
286
|
### Why This Matters
|
|
283
287
|
|
|
284
288
|
- **Works with any OIDC provider** — Switch from Auth0 to Keycloak? Change two environment variables. Zero code changes.
|
|
@@ -240,7 +240,7 @@ ctx.user.actor_type # "user" | "service" | "agent"
|
|
|
240
240
|
|
|
241
241
|
Open Shield sits as a **thin, powerful layer** between your identity provider and your Python backend — handling all the complexity of token validation, claim extraction, tenant resolution, and authorization enforcement so you don't have to.
|
|
242
242
|
|
|
243
|
-

|
|
243
|
+

|
|
244
244
|
|
|
245
245
|
### How It Works
|
|
246
246
|
|
|
@@ -253,6 +253,10 @@ Open Shield sits as a **thin, powerful layer** between your identity provider an
|
|
|
253
253
|
- **Enforces authorization** — checks scopes and roles before the request reaches your handler.
|
|
254
254
|
3. **Your Python service** receives a clean, verified `UserContext` object — ready to use. No JWT parsing, no OIDC plumbing, no provider-specific code.
|
|
255
255
|
|
|
256
|
+
### Request Authentication Flow
|
|
257
|
+
|
|
258
|
+

|
|
259
|
+
|
|
256
260
|
### Why This Matters
|
|
257
261
|
|
|
258
262
|
- **Works with any OIDC provider** — Switch from Auth0 to Keycloak? Change two environment variables. Zero code changes.
|
|
Binary file
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-packaging/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-testing-patterns/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/SKILL.md
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
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/0000-template.md
RENAMED
|
File without changes
|
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/002-modern-tooling.md
RENAMED
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/003-pydantic-usage.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-3-integration.md
RENAMED
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-4-publish.md
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
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/key_provider.py
RENAMED
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/token_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/__init__.py
RENAMED
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/dependencies.py
RENAMED
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/__init__.py
RENAMED
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/key_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/__init__.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
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/domain/test_claim_mapping.py
RENAMED
|
File without changes
|
{open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/domain/test_token_service.py
RENAMED
|
File without changes
|