cyberspectrum/api-platform-toolkit-bundle
Symfony bundle adding API Platform toolkit features: enable custom ExpressionLanguage providers via tagged services, and optional LexikJWT helpers including Swagger/OpenAPI login endpoint docs and configurable default token TTL and login URL.
api_platform_toolkit YAML) simplifies adoption.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| JWT Configuration | Medium | Test TTL overrides with default_ttl; validate against LexikJWTBundle docs. |
| Expression Safety | High | Audit custom providers for injection attacks (e.g., $user->roles → $user->getRoles()). |
| Bundle Maturity | Medium | Implement feature flags for new functionality (e.g., TTL min/max) to isolate issues. |
| Documentation Gaps | High | Create internal runbooks for: |
api-platform-laravel). JWT/LexikJWTBundle may need Laravel-specific tweaks (e.g., kernel boot order).phpstan for type safety).@security("is_granted('ROLE_ADMIN')"))./api/health).enable_expression_language: true and test one custom provider in isolation.lexik_jwt in config/packages/security.yaml before enabling the bundle.default_ttl from the bundle.@security("...")) with tagged providers for maintainability.# Before (inline)
App\Entity\Product:
attributes:
security: "is_granted('ROLE_STAFF') and object.getStock() > 0"
# After (custom provider)
App\ExpressionLanguage\StockExpressionProvider:
tags: [csap_toolkit.security.expression_language]
| Component | Compatibility Notes |
|---|---|
| API Platform | Tested with core but may lag behind minor versions (e.g., 3.1 vs. 3.2). |
| LexikJWTBundle | Requires v2.16+ (check composer.json). |
| Symfony Expression | Assumes Symfony 5.4+ (for newer expression language features). |
| Laravel | No native support; requires API Platform Laravel adapter + manual config. |
| Redis/Memcached | JWT TTL relies on token storage backend; validate config for your setup. |
lexik/jwt-auth-bundle (if not present).security.yaml for JWT.composer require cyberspectrum/api-platform-toolkit-bundle.api_platform_toolkit to config/packages/api_platform_toolkit.yaml.StockExpressionProvider).csap_toolkit.security.expression_language.default_ttl and test token expiration.add_documentation: true).ExpressionLanguage internals).ExpressionLanguage debug mode.@is_authenticated()) if performance is critical.| Failure Scenario | Impact | Mitigation |
|---|
How can I help you explore Laravel packages today?