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.
Files changed (67) hide show
  1. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/PKG-INFO +6 -2
  2. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/README.md +5 -1
  3. open_shield_python-0.2.6/docs/images/sequence-flow.png +0 -0
  4. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/pyproject.toml +1 -1
  5. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-packaging/SKILL.md +0 -0
  6. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-packaging/resources/implementation-playbook.md +0 -0
  7. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-pro/SKILL.md +0 -0
  8. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-testing-patterns/SKILL.md +0 -0
  9. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/python-testing-patterns/resources/implementation-playbook.md +0 -0
  10. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/SKILL.md +0 -0
  11. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/examples/before_after_refactor.py +0 -0
  12. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/examples/clean_architecture_layout.md +0 -0
  13. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/examples/dip_ports_adapters.py +0 -0
  14. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.agent/skills/solid_architecture/resources/code_review_checklist.md +0 -0
  15. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.github/workflows/ci.yml +0 -0
  16. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/.gitignore +0 -0
  17. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/CHANGELOG.md +0 -0
  18. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/CODE_OF_CONDUCT.md +0 -0
  19. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/CONTRIBUTING.md +0 -0
  20. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/LICENSE +0 -0
  21. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/SECURITY.md +0 -0
  22. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/architecture/system-overview.md +0 -0
  23. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/design/overview.md +0 -0
  24. {open_shield_python-0.2.5/docs → open_shield_python-0.2.6/docs/images}/architecture.png +0 -0
  25. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/implementation/guidelines.md +0 -0
  26. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/README.md +0 -0
  27. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/backlog.md +0 -0
  28. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/0000-template.md +0 -0
  29. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/001-clean-architecture.md +0 -0
  30. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/002-modern-tooling.md +0 -0
  31. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/decisions/003-pydantic-usage.md +0 -0
  32. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-0-init.md +0 -0
  33. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-1-core.md +0 -0
  34. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-2-authz.md +0 -0
  35. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-3-integration.md +0 -0
  36. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/phases/phase-4-publish.md +0 -0
  37. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/roadmap.md +0 -0
  38. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/specs.md +0 -0
  39. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/tasks.md +0 -0
  40. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/docs/planning/tech-debt.md +0 -0
  41. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/main.py +0 -0
  42. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/__init__.py +0 -0
  43. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/config.py +0 -0
  44. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/key_provider.py +0 -0
  45. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/adapters/token_validator.py +0 -0
  46. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/__init__.py +0 -0
  47. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/__init__.py +0 -0
  48. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/dependencies.py +0 -0
  49. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/api/fastapi/middleware.py +0 -0
  50. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/__init__.py +0 -0
  51. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/entities.py +0 -0
  52. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/exceptions.py +0 -0
  53. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/__init__.py +0 -0
  54. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/key_provider.py +0 -0
  55. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/tenant_resolver.py +0 -0
  56. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/ports/token_validator.py +0 -0
  57. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/__init__.py +0 -0
  58. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/authorization_service.py +0 -0
  59. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/claim_mapping.py +0 -0
  60. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/src/open_shield/domain/services/token_service.py +0 -0
  61. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/integration/adapters/test_key_provider.py +0 -0
  62. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/integration/adapters/test_token_validator.py +0 -0
  63. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/integration/api/test_fastapi.py +0 -0
  64. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/adapters/test_config.py +0 -0
  65. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/domain/test_authorization_service.py +0 -0
  66. {open_shield_python-0.2.5 → open_shield_python-0.2.6}/tests/unit/domain/test_claim_mapping.py +0 -0
  67. {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.5
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
- ![How Open Shield Works](https://raw.githubusercontent.com/avinash-singh-io/open-shield-python/main/docs/architecture.png)
269
+ ![How Open Shield Works](https://raw.githubusercontent.com/avinash-singh-io/open-shield-python/main/docs/images/architecture.png)
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
+ ![Request Authentication Flow](https://raw.githubusercontent.com/avinash-singh-io/open-shield-python/main/docs/images/sequence-flow.png)
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
- ![How Open Shield Works](https://raw.githubusercontent.com/avinash-singh-io/open-shield-python/main/docs/architecture.png)
243
+ ![How Open Shield Works](https://raw.githubusercontent.com/avinash-singh-io/open-shield-python/main/docs/images/architecture.png)
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
+ ![Request Authentication Flow](https://raw.githubusercontent.com/avinash-singh-io/open-shield-python/main/docs/images/sequence-flow.png)
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.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "open-shield-python"
3
- version = "0.2.5"
3
+ version = "0.2.6"
4
4
  description = "Vendor-agnostic authentication and authorization enforcement SDK"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"