Vault - Secure Secrets Management Vault - Secure Secrets Management

3 likes

nr_vault / stable

Centralized, secure storage for API keys, credentials, and other secrets with envelope encryption, access control, audit logging, and a secure HTTP client.

This version supports TYPO3

13 LTS 14 LTS

Older versions also support TYPO3

13 LTS 14 LTS


Tags

Get started

Download 1.1.0

Details

Author
Netresearch DTT GmbH
Company
Netresearch DTT GmbH
Last update
29. Sep 2026
First upload
12. Jan 2026
Downloads
152,054
Category
Backend
Dependencies
  • PHP (>=8.2.0 <=8.99.99)
  • TYPO3 (>=13.4.0 <=14.99.99)
  • backend (>=13.4.0 <=14.99.99)

Last upload comment

Added:

• A streaming send that keeps the DNS pin (#391). VaultHttpClient implements the new calling interface StreamingHttpClientInterface: sendStreaming() returns once the origin's response head and the first body bytes have arrived, and reading the body drives the transfer, so a caller sees a provider's streamed answer as it arrives instead of at the end. The transfer runs on the curl-multi transport of sendCancellable() with the CURLOPT_RESOLVE pin, the SSRF middleware, the host allowlist and the same credential injection; Guzzle's stream option, which bypasses the pin, is never set. Redirects are returned, not followed, and a tunnelling proxy's 200 Connection established is never returned as the response. At most 16 MiB of unread body is buffered; a step that delivers more, such as a small gzip body that decodes to hundreds of MiB, fails with its own message instead of filling memory. A transfer that fails after the headers throws from read() instead of ending as a short body, a stalled one ends — at the transfer timeout, or, when no total timeout is configured (timeout = 0), after 60 seconds without a final head or body bytes (interim 1xx heads do not count), so a stream that keeps delivering is not cut off — and closing or dropping the body, or the cancellation signal, removes the transfer from the transport. getContents() and __toString() return at most 16 MiB and throw past that; __toString() throws instead of returning a partial body, a deliberate deviation from PSR-7. Each call writes exactly one audit row when sendStreaming() returns or throws: http_call when it returns or fails, http_call_cancelled when the signal stops the transfer before it returns, http_call_cancelled_before_send when the signal was already set on entry. A failure or a cancellation while the body is read writes no second row; the body is never l

For details see https://github.com/netresearch/t3x-nr-vault/releases


Downloads by month

Installation

  1. Download ZIP file
  2. Log into your TYPO3 backend
  3. Go to Extension Manager module
  4. Press the upload button on the top bar
  5. Select the ZIP file and upload it. If you want to overwrite an existing extension installation, activate the checkbox.
  1. Go to your folder where the root composer.json file is located
  2. Type: composer require netresearch/nr-vault to get the latest version that runs on your TYPO3 version.
  1. Download T3X file
  2. Log into your TYPO3 backend
  3. Go to Extension Manager module
  4. Press the upload button on the top bar
  5. Select the T3X file and upload it. If you want to overwrite an existing extension installation, activate the checkbox.

Other extensions by this user (20)


Version history

Filter for TYPO3 versions

1.1.0 stable Latest
September 29, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
Added:

• A streaming send that keeps the DNS pin (#391). VaultHttpClient implements the new calling interface StreamingHttpClientInterface: sendStreaming() returns once the origin's response head and the first body bytes have arrived, and reading the body drives the transfer, so a caller sees a provider's streamed answer as it arrives instead of at the end. The transfer runs on the curl-multi transport of sendCancellable() with the CURLOPT_RESOLVE pin, the SSRF middleware, the host allowlist and the same credential injection; Guzzle's stream option, which bypasses the pin, is never set. Redirects are returned, not followed, and a tunnelling proxy's 200 Connection established is never returned as the response. At most 16 MiB of unread body is buffered; a step that delivers more, such as a small gzip body that decodes to hundreds of MiB, fails with its own message instead of filling memory. A transfer that fails after the headers throws from read() instead of ending as a short body, a stalled one ends — at the transfer timeout, or, when no total timeout is configured (timeout = 0), after 60 seconds without a final head or body bytes (interim 1xx heads do not count), so a stream that keeps delivering is not cut off — and closing or dropping the body, or the cancellation signal, removes the transfer from the transport. getContents() and __toString() return at most 16 MiB and throw past that; __toString() throws instead of returning a partial body, a deliberate deviation from PSR-7. Each call writes exactly one audit row when sendStreaming() returns or throws: http_call when it returns or fails, http_call_cancelled when the signal stops the transfer before it returns, http_call_cancelled_before_send when the signal was already set on entry. A failure or a cancellation while the body is read writes no second row; the body is never l

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
1.0.1 stable
September 25, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
Security:

• The SSRF guard refuses the local-use NAT64 prefix 64:ff9b:1::/48 (RFC 8215). Only the well-known prefix 64:ff9b::/96 was refused, so on a network whose NAT64 gateway uses the local-use prefix an address like 64:ff9b:1:a9fe:a9:fe00:: reached 169.254.169.254.

Fixed:

• SecretTcaHook::processDatamap_preProcessFieldArray() takes ?array &$fieldArray. The hook refuses a record by setting the array to null, as documented; the native array type contradicted that, and PHPStan 2.2.15 reports every test of it as impossible. A field array another hook already nulled is left alone.

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
1.0.0 stable
September 17, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
Added:

• A custom master-key provider can finally be selected. MasterKeyProviderInterface was published as an extension point, but the factory resolved a closed list of four identifiers, so a provider shipped by another extension could never be configured — the developer chapter showed a KmsKeyProvider example that could not work while the key-custody chapter said the opposite. Providers are collected by the service tag nr_vault.master_key_provider and indexed under the identifier each one reports. A duplicate identifier is refused rather than resolved by load order, so an installed extension cannot take over the key source by claiming the name file; a blank identifier is refused; and the ambiguity check runs before the standard-profile fallback that would otherwise auto-detect a different key source. The hardened profile denies typo3 and nothing else, and auto-detection still probes only the built-in local sources, so a vault never adopts an external custody nobody configured.

• The E2E suite runs in CI against both TYPO3 lines. A repository workflow provisions a real installation per matrix cell — TYPO3 13.4 on PHP 8.2 and 14.3 on PHP 8.5, MariaDB, a web server, chromium — and runs the Playwright specs against it. Build/Scripts/e2e-provision.sh builds the same instance locally.

• A written compatibility promise for implementers. Six interfaces are extension points — meant to be implemented by other extensions, not only called: VaultAdapterInterface, MasterKeyProviderInterface, AuditSinkInterface, ForeignEnvelopeRotatorInterface, ReadinessCheckInterface and CancellationSignalInterface. They carry the new #[Netresearch\NrVault\Attribute\ExtensionPoint] attribute, and the API chapter lists them under "Extension points and the compatibility promise": an extension point gains no m

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.16.0 beta
September 05, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.3.99)
Added:

• A cancellable secure outbound send (#302). VaultHttpClient now also implements CancellableHttpClientInterface, whose sendCancellable($request, $signal) polls a caller-supplied CancellationSignalInterface and tears the socket down when it turns true. Until now a consumer whose own work was cancelled still waited out the timeout — up to about 45 seconds for the caller that asked for this (netresearch/t3x-nr-llm#774 (https://github.com/netresearch/t3x-nr-llm/issues/774)) — because PSR-18 returns a response and never a handle, and because Guzzle's synchronous branch settles its promise before it exists, which makes cancel() a no-op there.

The new interface is separate from VaultHttpClientInterface and purely additive, so consumers feature-detect ($client instanceof CancellableHttpClientInterface && $client->supportsCancellation()) instead of raising a version floor. Nothing existing changes shape.

The invariant is that nothing hands a caller a client that already carries a vault secret, and VaultHttpClient is the only place nr-vault attaches a secret to a caller's request. No send a caller can drive puts a vault secret on the wire without the four protections that are statements in the sending method rather than middleware — the scheme allowlist, the host allowlist, the credential injection and the audit write. (nr-vault sends two credentials of its own elsewhere, on paths that are not a caller's request: the transit master-key provider's X-Vault-Token header and the OAuth token leg's client_secret. Both are listed in ADR-037.) Every public method of VaultHttpClient returns a configured clone, a PSR-7 response or a bool — no client, no handler, no promise — and sendCancellable() accepts no per-request option surface (a caller-supplied stream => true or curl array woul

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.15.0 beta
August 10, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.3.99)
One feature, aimed at a gap that only shows up in unattended deployments: there was no way to write a secret from a pipeline without switching on allowCliAccess, which grants the operation to every process holding a shell in that container and attributes the write to nobody.

Added:

• A named actor for unattended writes (#298). vault:store --as-provisioner performs the store inside TechnicalActorContext::runAs() as the backend user named by the new provisioningBeUserUid option. The actor needs no admin flag — a group carrying tx_nrvault:secret.create is enough, because a technical actor's grants are read from its groups' custom permission options. The grant is therefore one operation on one identity, and every write it makes is attributable in the audit log.

The UID comes from configuration and never from the command line. A flag that accepted a UID as an argument would be a general impersonation primitive, strictly worse than the switch it replaces.

Fail-closed at both ends: a non-numeric, negative or absent value reads as no provisioning actor rather than uid 0, which names the unauthenticated CLI placeholder the option exists to avoid; and the flag without a configured actor is an error, not a silent fallback to the unattributed write the caller explicitly asked not to make.

ext_conf_template.txt already recommended "prefer a named technical actor (TechnicalActorContext::runAs())" over allowCliAccess. Until now no command could enter such a scope, so the advice had nothing behind it.

Fixed:

• The closure handed to runAs() captured the plaintext by value, so sodium_memzero() separated the copy-on-write pair instead of wiping both and the secret survived in memory in the copy the command believed it had cleared. Caught in review before release, so no shipped version is affected.

:

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.14.0 beta
August 06, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.3.99)
Fifty-eight merged pull requests since 0.13.0, most of them a hardening programme carried out in four rounds of adversarial review: a technically enforced security profile, ten grantable operation permissions in place of the admin-only model, a tamper-evidence anchor inside and outside the database, and a readiness command an operator or a pipeline can gate on. Several changes are breaking, and several close paths that produced successful-looking audit entries for operations that were never authorised — in an extension whose promise is auditability, that is the part to read first. Start with Changed and end with Migration, which collects everything you actually have to do.

Added:

• Security profiles (#236). securityProfile (standard | hardened, default standard) is a technically enforced policy, not a documentation label. Under hardened, masterKeyProvider = typo3 is a configuration error — vault secrets must not be protected by the same key TYPO3 uses for everything else — and provider selection stops auto-detecting: the configured provider is returned even when it is unavailable, so getMasterKey() fails loudly instead of silently degrading down the old typo3 → env → file chain. An unknown profile value throws rather than falling back to standard, because a typo must never be able to weaken the effective policy. VaultHealthService and vault:rotate-master-key resolve through the same factory, so a misconfiguration surfaces in the system status and blocks rotation instead of being discovered at decryption time.
• Ten grantable operation permissions (#238) replace the coarse admin-only model: secret.use, secret.reveal, secret.create, secret.rotate, secret.delete, secret.manage_policy, audit.view, audit.export, master_key.rotate, vault.configure. They are carried as TYPO3 custom

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.13.0 beta
July 30, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore: release v0.13.0 (#231)
- chore: release v0.13.0
- feat(secret): shared secret catalogue, portable envelope codec, and consumer-envelope rotation (#230)
- test: name the operator-output fragments asserted in several tests
- fix(test): stop declaring coverage on excluded targets
- fix(secret): bound the URL patterns, cover client_secret, reconcile rotation counts
- feat(crypto): portable envelope codec, and rotate consumer-owned envelopes
- feat(secret): share one catalogue of secret shapes (ADR-031)

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.12.2 beta
July 27, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore: release v0.12.2 (#229)
- chore: release v0.12.2
- Add missing metadata_update audit action (#228)
- Add missing metadata_update audit action (#227)

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.12.1 beta
July 25, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore: release v0.12.1 (#226)
- chore: release v0.12.1
- fix(hook): preserve vault secret on an untouched re-save (#223) (#225)
- fix(hook): preserve vault secret on an untouched re-save (#223)
- Update traefik:v3.7 Docker digest to 652929a (#224)
- Update traefik:v3.7 Docker digest to 652929a

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.12.0 beta
July 23, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore: release v0.12.0 (#222)
- chore: release v0.12.0
- Reject epoch-downgrade forgery in the audit chain (#221)
- Reject epoch-downgrade forgery in the audit chain
- Enforce vault delete ACL on DataHandler deletes (#220)
- Close umask race on secret and key file writes (#219)
- Strip URL query strings from audit error messages (#217)
- Neutralize CSV formula injection in audit exports (#218)
- Drop eager site-config vault secret resolution (#216)
- Close umask race on secret and key file writes
- Enforce vault delete ACL on DataHandler deletes
- Strip URL query strings from audit error messages
- Neutralize CSV formula injection in audit exports
- Drop eager site-config vault secret resolution

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.11.4 beta
July 22, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- fix(docs): repair guides.xml and add docs render CI (#215)
- fix(docs): repair guides.xml and add docs render CI

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.11.3 beta
July 21, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore: release v0.11.3 (#214)
- chore: release v0.11.3
- feat(dashboard): admin-only secrets count and audit activity widgets (#212)
- Dark-mode fixes for backend module and TYPO3 v14 style icons (#213)
- Fix code example colors in dark mode and prune dead backend CSS
- Redraw backend icons in TYPO3 v14 style and add submodule icons
- Add admin-only dashboard widgets for secrets and audit activity

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.11.2 beta
July 21, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore(release): 0.11.2 (#211)
- chore(release): 0.11.2
- fix: accept array $pasteUpdate in FlexFormVaultHook too (#210)
- Accept array $pasteUpdate in FlexFormVaultHook too

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.11.1 beta
July 21, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore(release): 0.11.1 (#209)
- chore(release): 0.11.1
- fix: accept array $pasteUpdate in DataHandler cmdmap hooks (#208)
- Accept array $pasteUpdate in DataHandler hooks

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.11.0 beta
July 18, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore(release): 0.11.0 (#206)
- chore(release): 0.11.0
- feat(security): scoped TechnicalActorContext::runAs() for headless consumers (#205)
- test(security): construct GroupResolver version-agnostically
- fix(security): enforce rootLevel restriction on technical actors
- Add scoped TechnicalActorContext runAs API for headless consumers

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.10.2 beta
July 17, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- chore(release): 0.10.2 (#204)
- chore(release): 0.10.2
- Update traefik:v3.7 Docker digest to 4299bbe (#203)
- Update traefik:v3.7 Docker digest to 4299bbe
- fix(security): route unauthenticated CLI user to CLI access rules (#201)
- fix(security): route unauthenticated CLI user to CLI access rules
- Update traefik:v3.7 Docker digest to 0bd09a3 (#200)
- Update traefik:v3.7 Docker digest to 0bd09a3
- Update traefik:v3.7 Docker digest to 1cb3845 (#199)
- Update traefik:v3.7 Docker digest to 1cb3845
- Update traefik:v3.7 Docker digest to 6608e0f (#198)
- Update traefik:v3.7 Docker digest to 6608e0f
- Update traefik:v3.7 Docker digest to de60f2c (#197)
- Update traefik:v3.7 Docker digest to de60f2c

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.10.1 beta
July 03, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- docs: add missed security fixes (#185, #186) to 0.10.1 CHANGELOG (#196)
- docs: polish 0.10.1 security entry wording (review nits)
- docs: add missed security fixes #185 and #186 to 0.10.1 CHANGELOG
- Prepare 0.10.1 release (#195)
- docs: add CHANGELOG compare links for 0.10.0 and 0.10.1
- Prepare 0.10.1 release
- chore: resolve SonarCloud findings (exclusions, constants, suppressions) (#194)
- fix: keep 'application/json' literal in OAuthIntegrationTest
- refactor: extract render context in VaultSecretInputElement (S3776)
- chore: resolve SonarCloud findings (exclusions, constants, suppressions)
- fix(form): render the vaultSecret field description exactly once on v13 and v14 (#189)
- fix(form): render the vaultSecret field description exactly once on v13 and v14
- security: reject legacy numeric IP forms; guard SSRF pin without ext-curl (#193)
- security: reject legacy numeric IP forms; guard pin without ext-curl
- fix: pin all resolved addresses in one CURLOPT_RESOLVE entry (#191)
- fix: pin all resolved addresses in one CURLOPT_RESOLVE entry
- Update traefik:v3.7 Docker digest to 21a3d83 (#187)
- Update traefik:v3.7 Docker digest to 21a3d83
- Enforce owner/admin authorization on secret ACL columns (#186)
- Close audit hash-chain epoch-downgrade and attribution forgery (#185)
- Enforce owner/admin authorization on secret ACL columns
- Close audit hash-chain epoch-downgrade and attribution forgery
- Fix invalid commit-msg hook configuration (#182)
- Update traefik:v3.7 Docker digest to e4d9815 (#184)
- Fix invalid commit-msg hook configuration
- Update traefik:v3.7 Docker digest to e4d9815
- Remove redundant null-valued named arguments (#183)
- Remove redundant null-valued named arguments
- Update traefik:v3.7 Docker digest to 5a52522 (#181)
- Update traefik:v3.7 Docker digest to 5a52522
- ci: adopt canonical typo3-extension template (#180)
- ci: adopt netresearch

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.10.0 beta
June 11, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- Prepare 0.10.0 release (#179)
- Prepare 0.10.0 release
- Add per-instance request timeout override to VaultHttpClient (#178)
- Add per-instance request timeout override to VaultHttpClient
- Default runTests.sh to the upper supported PHP bound (#177)
- Default runTests.sh to the upper supported PHP bound
- Update traefik:v3.7 Docker digest to d685879 (#176)
- Update traefik:v3.7 Docker digest to d685879
- Fix actor-type misclassification of CLI and worker reads (#175)
- Fix actor-type misclassification of CLI and worker reads

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.9.0 beta
June 10, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- Prepare 0.9.0 release (#174)
- Prepare 0.9.0 release
- Per-secret encryption-algorithm marker and atomic audit-chain re-keying on master-key rotation (#173)
- Drop the in-try master-key wipe and trail verification errors
- Bound rotation memory and keep the master-key cache intact
- Cover second master-key rotation with end-to-end functional test
- Re-key audit hash chain atomically during master-key rotation
- Fix peripheral code-review findings in migration, OAuth, and HTTP layers (#172)
- Record encryption algorithm per secret with versioned envelope marker
- Keep fuzzed master-key blobs invalid after trimming
- Reject empty JSON array bodies in secret injection
- Handle escaped quotes in JSON credential redaction
- Harden crypto/key wiping, master-key file loading, and Secret envelope invariant
- Consume guard-test constructions and deduplicate test literals
- Add SSRF tests for IPv6 transition forms
- Reject non-object JSON bodies in secret injection
- Redact quoted credential echoes in OAuth errors
- Include full token identity in OAuth cache key
- Validate OAuth grant config at construction
- Fix UUID v7 variant field random bits
- Fix uid placeholder braces in migration pattern

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.8.0 beta
June 09, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- Prepare 0.8.0 release (#170)
- Prepare 0.8.0 release
- Add Authorization scheme prefix option to vault HTTP client (#169)
- Address review: avoid redundant secret copy and fix docs ordering
- Add Authorization scheme prefix option to vault HTTP client
- Update traefik:v3.7 Docker digest to fcdef59 (#168)
- Update traefik:v3.7 Docker digest to fcdef59
- Update traefik:v3.7 Docker digest to 25cd7b1 (#167)
- Update traefik:v3.7 Docker digest to 25cd7b1
- Reduce cognitive complexity in production code via method extraction (#166)
- Reduce cognitive complexity in production code via method extraction
- Resolve mechanical SonarCloud findings in production code (#165)
- Resolve mechanical SonarCloud findings in production code
- Extract duplicated test literals to class constants (SonarCloud S1192) (#164)
- Keep literal application/json where a const is unreachable from an anonymous class
- Exclude test code from SonarCloud duplication detection
- Extract duplicated test literals to class constants (SonarCloud S1192)
- Resolve mechanical SonarCloud findings in backend JavaScript (#163)
- Resolve mechanical SonarCloud findings in backend JavaScript

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.7.0 beta
June 02, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- Prepare 0.7.0 release (#162)
- Prepare 0.7.0 release
- Document the backend-submodule checklist in AGENTS.md heuristics (#161)
- Document the backend-submodule checklist in AGENTS.md heuristics
- Add secrets usage analytics module and demo-data seeder (#159)
- Unit-test AnalyticsController logic and the StaleSecret value object
- Add the Analytics card to the vault overview and refresh its screenshot
- Document the Vault Analytics module with a screenshot
- Exclude Fluid templates from SonarCloud analysis
- Throw ConfigurationException instead of a generic exception in demo seeder
- Run demo seeding in Development context during ddev install
- Scope demo backdating to the live secret row
- Address PR review and Rector: memoize audit read-split, translation fallback, ARIA values, modernization
- Make analytics service and chain seeder private per DI policy
- Address final review: align neverRotated KPI, fix DI comments, use E2E helpers
- Document Analytics module and vault:seed-demo command
- Address review notes: controller/command count and DemoEvent coverage
- Seed demo data during ddev install
- Add vault:seed-demo command
- Add AuditChainSeeder reconstructing a valid backdated chain
- Add deterministic demo-data specs
- Resolve staleness-rule labels in controller for safe template rendering
- Add Analytics dashboard template and E2E
- Add Analytics submodule controller, registration and labels
- Apply code style to StalenessEvaluator test
- Add VaultAnalyticsService with KPI + redaction-candidate queries
- Add StalenessEvaluator with rule unit tests
- Add analytics value objects
- Add StalenessRule enum
- Add analytics staleness threshold settings
- Fix local ddev start: web image build + mock-oauth healthcheck (#160)
- Preserve a pre-existing policy-rc.d in the ddev web image build
- Set TYPO3 trustedHostsPattern so the v14 backend works over HTTPS
- Take owner

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.6.1 beta
May 31, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- fix: honor literal allowed_hosts in request-time SSRF middleware (#156)
- chore(release): prepare 0.6.1
- fix: honor literal allowed_hosts in request-time SSRF middleware

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.6.0 beta
May 31, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- Release 0.6.0 (#155)
- Release 0.6.0
- Grade-A remediation: security hardening, ACL split, audit enum + scheduler DI fix (#154)
- Gate documentation rendering and tighten project metadata
- Refresh backend module assets and expose JS UI labels
- Harden the AJAX controller and centralise JSON error responses
- Add a vault health probe to the overview module
- Extract pending-secret handling out of the DataHandler hook
- Block IPv6 transition-form addresses in the SSRF guard
- Resolve the secret repository in the scheduler context
- Make secret mutations atomic with their audit record
- Split secret access control into read, write and delete tiers
- Introduce the AuditAction enum and harden the audit log chain
- Cache the master key for the request lifetime (ADR-020)
- Derive the secret checksum as a keyed HMAC over the ciphertext
- docs: land multi-axis review notes (UI/UX/DX + E2E coverage) (#153)
- docs: address PR #153 second-pass review findings
- docs: ADRs 024-028 for this session's architectural decisions (#149)
- fix(security): drop in-memory reveal cache that bypassed the audit log (#151)
- docs: address PR #153 review findings on review notes
- fix: address PR #151 reviewer findings (comment + regression test)
- docs: land multi-axis review notes (UI/UX/DX + E2E coverage)
- chore(deps): update traefik docker tag to v3.7 (#152)
- chore(deps): update traefik docker tag to v3.7
- fix: pin web-dir to .Build/web for local functional tests (#150)
- fix: 3 carried-forward LOW review items (sL fallback + OAuth cache key + redaction) (#148)
- docs: address reviewer findings on ADR-027 and ADR-028
- fix(security): drop in-memory reveal cache that bypassed the audit log
- fix: pin web-dir to .Build/web for local functional tests
- fix: address PR #148 review threads (Gemini HIGH + Copilot findings)
- docs: ADRs 024-028 for this session's architectural decisions
- fix:

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.5.0 beta
April 22, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
- fix(ci): drop slsa-provenance job referencing removed reusable workflow (#117)
- ci(release): drop slsa-provenance job referencing removed reusable workflow
- release: v0.5.0 (#116)
- changelog: add v0.5.0 link reference + bump Unreleased compare target
- release: v0.5.0
- chore(deps): consolidate dev deps via typo3-ci-workflows meta-package (#115)
- phpstan: regenerate baseline with auto-registered extensions
- phpstan: drop explicit extension includes (auto-registered by installer)
- chore(deps): consolidate dev dependencies via typo3-ci-workflows meta-package
- chore(deps): update dependency phpunit/phpunit to v13 (#114)
- chore(deps): update dependency phpunit/phpunit to v13
- test: comprehensive testing pyramid + 3 production security fixes (#113)
- fix(tests): call parent::setUp() before v14-gate skip
- fix(tests): reduce OverviewControllerTest to DI-wiring smoke
- fix(tests): vfsStream setup + LanguageService factory for functional smoke
- ci(fixup): resolve CI matrix failures + address review comments
- fix(review): resolve PR #113 review comments
- ci(tests): fix CI matrix failures from first PR push
- test: migrate 100 tests to project bases + mutation-killer assertions + mock hygiene
- test: expand functional, fuzz, and E2E coverage across security-critical paths
- test(refactor): project base classes, traits, fixture builder, architecture check
- fix(cli): reject empty --uid-field in vault:migrate-field
- feat(oauth): fall back to client_credentials when refresh token is rejected
- fix(audit): detect uid gaps in hash-chain verification
- fix(security): deny vault access to disabled BE users + filter stale group IDs
- test(mutation): enable end-to-end Infection + MSI baseline + ratchet plan
- ci: pin reusable workflows to SHA + concurrency + on-demand mutation
- build(tests): xdebug coverage driver, path coverage, strict static analysis
- ci: silence SAST false positives (Fluid templates, test teardown unlink) (#112)
- ci: silence SAST false positives on Fluid templates and test teardown
- security: eliminate DOM-XSS innerHTML sinks and insecure test randomness (#111)
- security: address PR review feedback (a11y, toggle restore, gitleaks scoping)
- security: eliminate innerHTML DOM-XSS sinks and insecure test randomness
- docs(agents): refresh AGENTS.md files with verified project content (#110)
- docs(agents): fix interface signatures and config examples per PR review
- docs(agents): refresh AGENTS.md files with verified commands and content
- chore(deps): update traefik:v3.6 docker digest to 34d5089 (#109)
- chore(deps): update traefik:v3.6 docker digest to 34d5089
- chore(deps): update traefik:v3.6 docker digest to 5e113a2 (#108)
- chore(deps): update traefik:v3.6 docker digest to 5e113a2
- chore(deps): update traefik:v3.6 docker digest to 5ae9c34 (#107)
- chore(deps): update traefik:v3.6 docker digest to 5ae9c34
- fix(rector): skip ext_emconf.php entirely instead of one rule (#106)
- fix(rector): skip ext_emconf.php entirely instead of one rule
- fix(rector): exclude ext_emconf.php from SafeDeclareStrictTypesRector (#105)
- fix(rector): exclude ext_emconf.php from SafeDeclareStrictTypesRector
- fix(rector): add declare(strict_types=1) to ext_emconf.php (#104)
- fix(rector): add declare(strict_types=1) to ext_emconf.php
- chore(deps): update traefik:v3.6 docker digest to 5d1de6b (#103)
- chore(deps): update traefik:v3.6 docker digest to 5d1de6b
- fix: remove empty secrets blocks and fix YAML syntax
- chore: remove explicit gitleaks call, now handled by org-wide default
- fix: add permissions to gitleaks job, remove stale secret from security job
- feat: add direct gitleaks call from netresearch/.github
- fix: use @main for .github reusable workflows, not SHA pin
- chore: migrate generic workflows from typo3-ci-workflows to .github
- chore: migrate to org-wide Renovate preset
- feat(security): HMAC-SHA256 keyed audit hash chain (ADR-023) (#102)
- fix: resolve all PR review comments for HMAC audit chain
- fix: v13 compatibility for UpgradeWizardInterface
- feat: add TYPO3 upgrade wizard for automatic HMAC migration
- feat(security): HMAC-SHA256 keyed audit hash chain (ADR-023)
- fix: resolve all 19 follow-up items with ADRs (#101)
- fix: remove legacy TCA format from looksLikeVaultIdentifier
- fix: resolve PR review comments
- fix: resolve PHPStan errors and CGL fixes in FlexFormVaultHook
- chore: CGL import ordering fix
- test: add mutation CI job, multi-browser E2E, functional tests
- docs: add troubleshooting page, changelog, fix PlantUML, add 6 ADRs
- refactor: improve code quality across multiple layers
- perf: cache master key for request lifetime
- feat: configurable audit read logging for frontend performance
- feat: dedicated OAuthException for targeted error handling
- feat: FlexForm vault secret lifecycle (delete/copy handling)
- Comprehensive quality assessment: security, performance, a11y, docs (#100)
- test: add tests for all new code paths (patch coverage)
- fix: resolve all PR review comments
- feat(i18n): translate Migration Review template
- feat(i18n): translate remaining Migration templates + Rector skip config
- feat(i18n): replace hardcoded English strings with translation keys
- refactor: extract duplicated generateUuid and looksLikeVaultIdentifier
- perf: fix N+1 queries in VaultService::list()
- fix(ci): resolve all CI failures and PR review feedback
- fix: SecretReveal.js GET→POST and EnvironmentMasterKeyProvider COW bug
- fix: resolve test failures and PHPStan errors
- fix: address re-review findings
- docs: fix version mismatches, improve examples, and extend Makefile
- fix(a11y): improve frontend accessibility and error handling
- refactor: code quality improvements from comprehensive review
- perf: optimize frontend rendering and database operations
- fix(security): address critical and high-severity security findings
- chore(deps): update traefik:v3.6 docker digest to 171c9c3 (#99)
- chore(deps): update traefik:v3.6 docker digest to 171c9c3
- chore(deps): update traefik:v3.6 docker digest to acfc806 (#98)
- chore(deps): update traefik:v3.6 docker digest to acfc806
- chore(deps): update traefik:v3.6 docker digest to 3b61960 (#97)
- chore(deps): update traefik:v3.6 docker digest to 3b61960
- fix: allowlist test fixtures and docs in gitleaks config

For details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.4.6 beta
March 07, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
v0.4.6 -- for details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.4.5 beta
March 07, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
v0.4.5 -- for details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.4.4 beta
March 06, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
v0.4.4 -- for details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.4.3 beta
March 02, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
v0.4.3 -- for details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.4.2 beta
March 01, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
v0.4.2 -- for details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.4.1 beta
March 01, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
v0.4.1 -- for details see https://github.com/netresearch/t3x-nr-vault/releases
Download
0.4.0 beta
February 28, 2026
TYPO3: 13 LTS 14 LTS (>=13.4.0 <=14.99.99)
Release v0.4.0
Download
0.3.1 beta
January 26, 2026
TYPO3: 14 LTS (>=14.0.0 <=14.99.99)
Release v0.3.1
Download
0.3.0 beta
January 12, 2026
TYPO3: 14 LTS (>=14.0.0 <=14.99.99)
Release v0.3.0
Download

Get started

Download 1.1.0

Details

Author
Netresearch DTT GmbH
Company
Netresearch DTT GmbH
Last update
29. Sep 2026
First upload
12. Jan 2026
Downloads
152,054
Category
Backend
Dependencies
  • PHP (>=8.2.0 <=8.99.99)
  • TYPO3 (>=13.4.0 <=14.99.99)
  • backend (>=13.4.0 <=14.99.99)