• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

valkyrjaio / valkyrja-php / 30722918436
100%

Build:
DEFAULT BRANCH: 26.x
Ran 01 Aug 2026 11:15PM UTC
Jobs 1
Files 1206
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Aug 2026 11:13PM UTC coverage: 100.0%. Remained the same
30722918436

push

github

web-flow
[Jwt] feat!: Configure the jwt component with typed config contracts (#1021)

# Description

`Valkyrja\Application\Env\Env` is deprecated. It is one non-final class
that holds
about 120 `public const` env variables for every component at once. This
pull
request gives the Jwt component its own typed config contracts. It also
converts
`JwtServiceProvider` to read those contracts.

`JwtServiceProvider` no longer reads `Env`. An application that sets an
`Env::JWT_*` constant loses that setting, so this change breaks a public
contract.

This pull request does not change `Env.php`. Each component gets its own
pull
request, and all of those pull requests are independent. A pull request
that
deleted its own constants would conflict with every sibling pull request
on that
one file. `Env` therefore stays in place and goes unread. A later pull
request
removes the whole class.

## The shape

The component config holds only the component-wide settings, and each
algorithm
family gets its own contract, its own default class, and its own
container
binding:

- `JwtConfigContract` holds `defaultJwt` and `algorithm`.
- `JwtHsConfigContract` holds `hsKey`.
- `JwtRsConfigContract` holds `rsPrivateKey` and `rsPublicKey`.
- `JwtEdDsaConfigContract` holds `edDsaPrivateKey` and `edDsaPublicKey`.

`publishFirebaseJwt` reads the algorithm, and the `match` then resolves
only the
key config for that algorithm. An application that signs with HMAC never
constructs the RSA keys or the EdDSA keys.

Each property carries the algorithm name as a prefix, so one application
config
class can implement several of these contracts at once.
`tests/Tests/Fixtures/Jwt/Data/JwtConfigFixture.php` implements all
four.

valkyrjaio/architecture#131 records this shape as a rule.

## Types of changes

- [ ] Improvement _(non-breaking change which improves code)_
- [ ] Bug fix _(non-breaking change which fixes an issue)_
- [x] New feature _(non-breaking change which adds functionality)_
- [ ] Deprecati... (continued)

64 of 0 new or added lines in 0 files covered. (NaN%)

12847 of 12847 relevant lines covered (100.0%)

24.34 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30722918436.1 01 Aug 2026 11:15PM UTC 1206
100.0
GitHub Action Run
Source Files on build 30722918436
  • Tree
  • List 1206
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30722918436
  • 15bf4d6d on github
  • Prev Build on 26.x (#30722873509)
  • Next Build on 26.x (#30723576186)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc