feat(connections): the breach check reads Switched off through its switch, and the formatters come from nextcloud-vue 3.2.0 - #721
Merged
rubenvdlinde merged 7 commits intoSep 16, 2026
Conversation
…, and so do SIEM sinks that are all off hibp declares switch on breach_check_enabled in place of requiredConfig, so a switched-off check reads disabled and a switched-on one reads Not checked yet until a lookup reports (hydra connection-registry D4 rule 2b, D12 item 9). SIEM stays reportedOnly: when no sink is on and sinks exist, keepiq reports disabled with a host-free message; with no sink at all it still reports unconfigured.
…ction formatters come from the library 3.2.0 ships connectionStatus, with disabled read as Switched off, and connectionSettingsLabel as built-ins (nextcloud-vue#1173, #1175). The local copy in src/services/connectionRegistry.js and App.vue's formatters prop are gone; the handler stays. The spec now checks the manifest's formatter names against the installed library's built-in map.
The first regeneration ran with --legacy-peer-deps, which dropped every peer entry (84). A plain npm install resolves the same bump with peers kept: against development only @conduction/nextcloud-vue (2.41.1 -> 3.2.0) moves at the top level, and one Dexie (4.4.5) stays in the tree.
…ction keyword antfu/top-level-function refuses a top-level arrow function.
…n-switch-and-built-in-formatters
…ead of reading the module source
Contributor
Quality Report — ConductionNL/keepiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ❌ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 111/111 | |||
| npm | ✅ | ✅ 660/660 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ✅ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it on any branch from the Actions tab, or locally with npx playwright test. |
||||
| Hydra gates | ✅ |
Quality workflow — 2026-09-16 09:55 UTC
Download the full PDF report from the workflow artifacts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
The Breach check row on the Integrations page now reads Switched off while an admin has the breach check off. It used to read Not configured. The two connection formatters now come from
@conduction/nextcloud-vueinstead of a local copy.Refs hydra#677, integriq#2024, nextcloud-vue#1173 and nextcloud-vue#1175.
The switch
hibpinlib/Settings/connections.jsonswapsrequiredConfigfor a switch:breach_check_enabledis a plain boolean in app config, so there is nojsonPath.getValueBool(..., false)inBreachProxyController). An unset key and a storedfalseboth read as empty, so nooffValuesis needed: empty means off, which is what keepiq means too.reportedOnly, with no switch. Sinks are records, not one setting. When sinks exist and all of them are off, keepiq now reportsdisableditself with a message that names no host. With no sink at all it still reportsunconfigured.connections.schema.jsonfrom integriqdevelopment, and the vendored fixture intests/fixtures/Integriq/matches that file.The library move
@conduction/nextcloud-vue^2.41.1to^3.2.0(3.2.0 locked). 3.2.0 mapsdisabledto Switched off and ships the Dutch "Uitgeschakeld".src/services/connectionRegistry.jskeeps only the Add integration handler.App.vueno longer passesformatters, so CnAppRoot supplies the built-ins.tests/vitest/connectionRegistry.spec.jsimportsBUILT_IN_FORMATTERSfrom the installed library and calls it:connectionStatus('disabled')must return Switched off. An earlier version read the module source with a regex, which answers about the file and not about what the page renders. The import reaches@nextcloud/auth, so the file runs on jsdom.npm install. A first try with--legacy-peer-depsdropped all 84 peer entries. Againstdevelopment, only@conduction/nextcloud-vuemoves at the top level, and one Dexie (4.4.5) stays in the tree.developmentis merged in (fix(tests): two #706 tests that could not pass in CI #717, fix(tests): declare the classes the connection report tests use #719), not rebased.What 2.x to 3.x touches in keepiq
I read
CHANGELOG.mdon nextcloud-vuemain.CnNewsWidget,CnNewsWidgetFormornewswidget type anywhere insrc.backgroundColorandtextColorat the top level, so they look the same.headerActionsmove into the Actions menu. No detail page declaresheaderActions. The onlyheaderActionssit on the Integrations index page, which already rendered them in the menu.navigateactions open as links. No manifest action navigates to an external URL.marked,dompurify,dexieand@vueuse/coreare peers. All four are declared and inside the peer ranges (marked 12.0.2 against>=12 <19).Verified
"offValues": ["false"]to thehibpswitch, which would read an unset key as on, reddenedConnectionsDeclarationTest::testTheBreachCheckDeclaresItsSwitchat itsassertSameon line 283. Restored,git statusclean.npm run buildnpm run lintnpm test(vitest)hydra/scripts/diff-check.shcomposer check:strictNot verified
occ, no Playwright.tests/e2e/workflows/integrations-page.spec.tsnow expectsdisabledwhile off andunconfiguredwith Not checked yet while on. It was not run here.Inherited and environmental findings
keepiq-main.jsat 7.17 MiB).#21468B,#3b82f6,#6b7280). That predates this PR and belongs in a theming sweep.🤖 Generated with Claude Code