chore(parity): wave 5, GLPI source read and driven at 11.0.9, four docs columns re-read, 42 demand rows - #1090
Merged
Conversation
…ic docs read 2026-09-26) and r-glpi packs to 29
…, sources objects for three systems
…admaps and changelogs, stackiq rated from code
…rows, sources for all five systems
Contributor
Quality Report — ConductionNL/stackiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-vue-demi | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| check-l10n-js | ✅ | ||||
| composer | ✅ | ✅ 130/130 | |||
| npm | ✅ | ✅ 807/807 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ⏭️ not run for this diff — no file in this diff matches the code globs, and none carries a source extension — the heavy tier has nothing to decide about it. | ||||
| 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-26 21:59 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.
Wave 5 for stackiq's parity matrix. It deepens all five competitor columns, records where each competitor publishes its capabilities, and adds 42 demand rows mined from tenders, feature requests, roadmaps and changelogs. The diff is
openspec/parity/capabilities.jsononly. No page, test or code changed, so the product's suites are unaffected and were not run.Read against
developmentat b8e7db0, which matchedgit ls-remotewhen the clone was built.How each competitor was read
version/11.0.9andsrc/autoload/constants.php:43agree) on every row. Plugins read at their own tags where a row depends on one: pluginsGLPI/datainjection 2.15.11, pluginsGLPI/fields 1.24.5, yild/gdprropa 1.0.3 (declares GLPI 10 only). I then drove a lab at 11.0.9 for 26 rows, each marked "Driven on the lab at 11.0.9". Gradedriven. The drive confirmed every source rating and moved none.unknown.Closed systems: public documents only, no trial accounts. A
noappears only where a page states the absence or an open request says it is missing.Verifier before
strict profile before:
Verifier after
strict profile after (exit 0):
Grade per system
Ratings per column (yes/partial/no/unknown)
VNG cells that dropped from
notounknown, because they rested on a research gap claim: sec-vulnerability-register, life-eol-warning, ctr-register and ctr-expiry-alert (four, not five). Two more VNG cells moved offnoon live-site evidence: life-phase to yes and life-roadmap to partial.Demand rows added (42)
How the demand rows were formed: 7 come from tenders. Helmond's Architectuur Repository (TenderNed 398728) gives REQ3/61, REQ19, REQ54, REQ78, REQ4 and REQ41. The standard municipal clause pointing suppliers to the Softwarecatalogus (TenderNed 418890 Noordwijk, 417169, 415897, 383984) gives one more. The other 35 come from reader proposals: 9 VNG, 8 TOPdesk, 8 GLPI, 6 LeanIX and 6 BlueDolphin, deduplicated. GLPI's sec-two-factor-login was merged into TOPdesk's sec-multi-factor-sign-in, and ins-natural-language-query was proposed by both LeanIX and BlueDolphin. VNG's comp-processing-register was renamed comp-processing-register-generate, because the name was taken by a tender row. org-field-level-permissions sits in
pending, because stackiq's side rests only on property-level authorization declared in the register. stackiq's column on the new rows is read from code with the two-hop trace. Every other column was back-filled on every new row.Lab and images
glpi/glpi:11.0.9: 1.18 GB, pulled, then removed after the drive.mariadb:10.6(316 MB) was already on the box and was kept.lab-stackiq-glpion port block 19 (127.0.0.1:19880), torn down withdown -v.smoke.shpassed on the fresh instance and again before teardown, both times with the wrong-password control.Where the method was harder
nocells: absence is provable from a source tree but not from a vendor's docs. That asymmetry is why the closed columns keep far more unknowns.--dashes in older notes to commas (prose rule). Nothing else in the existing rows' prose changed.Every rating change on a cell that was rated before
Cells that were
unknownand are now rated are counted in the table, not listed.Sources per system
vng-softwarecatalogus
{ "docs": "https://www.softwarecatalogus.nl/handleidingen_voor_gemeenten", "sourceRepo": null, "featurePage": "https://www.softwarecatalogus.nl/hoe-werkt-de-catalogus", "featureRequests": "https://www.softwarecatalogus.nl/gebruikersonderzoek%202021", "issueTracker": { "url": "https://github.com/VNG-Realisatie/Softwarecatalogus/issues", "featureLabel": "PvE wens" }, "roadmap": null, "changelog": "https://www.softwarecatalogus.nl/Releasebrief%20GEMMA%20Softwarecatalogus%20versie%204.1", "apiReference": null, "marketplace": null, "pricing": null, "accessibilityStatement": "https://www.toegankelijkheidsverklaring.nl/register/20209", "securityDocs": null, "demoInstance": null, "community": null, "reviews": null, "videos": "https://www.youtube.com/channel/UCg0bWcCn9Shnt57-L7hSbow", "caseStudies": "https://www.softwarecatalogus.nl/praktijkvoorbeelden%20softwarecatalogus", "partnerDirectory": null, "trainingCurriculum": null, "jobPostings": null, "tenders": [ "TenderNed 343458 Vernieuwen GEMMA Softwarecatalogus (VNG Realisatie, market consultation, 2024-07-17)", "TenderNed 354602, 354933, 356544 Vernieuwing Softwarecatalogus (VNG Realisatie, 2024-10 to 2024-11)", "TenderNed 401475 Vernieuwing Softwarecatalogus (VNG Realisatie, 2025-11-18)", "TenderNed 264353 functioneel beheerder GEMMA Online en Softwarecatalogus (VNG Realisatie, 2022-06-14)", "Requirement text naming the Softwarecatalogus as the place for supplier product information: TenderNed 418890 (Noordwijk), 417169 (Reimerswaal), 415897 (FUMO), 383984 (HLT Samen)", "Requirements scoping a solution by GEMMA Softwarecatalogus reference components: TenderNed 241147, 229235, 227989, 226100 (Stein)" ], "nullReasons": { "sourceRepo": "The live catalogue runs on Drupal 7 (per the nieuws page) and its source is not public. github.com/VNG-Realisatie/Softwarecatalogus holds the successor build, not the incumbent.", "roadmap": "FAQ E14 points to a homepage block 'Binnenkort in de Softwarecatalogus', which is absent from today's homepage.", "apiReference": "https://www.softwarecatalogus.nl/api returns only 'Services Endpoint api has been setup successfully.'; no API documentation for the incumbent exists. The API specification on vng-realisatie.github.io describes the successor.", "marketplace": "No plugin or extension marketplace; the catalogue is a single hosted service.", "pricing": "No price or fee page found; no page states the service is free either.", "securityDocs": "Only a privacy statement (Privacyverklaring softwarecatalogus) exists; no security documentation found.", "demoInstance": "No demo or sandbox; the public site is browseable without login but no demo login is offered.", "community": "No forum for the incumbent; contact runs through softwarecatalogus@vng.nl.", "reviews": "No third-party review listings found for a free public-sector catalogue.", "partnerDirectory": "No implementation partners; the supplier list at /leveranciers is catalogue content, not a partner directory.", "trainingCurriculum": "Only manuals and FAQ; no training programme found.", "jobPostings": "vng.nl/artikelen/werken-bij-de-vng is linked from the footer but answered 403 to scripted reads." }, "readHow": "curl with a browser user agent on 2026-09-26: every non-null URL returned HTTP 200 (docs, featurePage, featureRequests, changelog, caseStudies, videos, accessibilityStatement, issueTracker). The accessibility statement is status C, last updated 02-04-2026. gh api confirmed the GitHub repo (pushed 2026-02-26, 209 open issues) and its label 'PvE wens'. The GitHub issue tracker and label belong to the successor project, whose PvE wensen describe what the incumbent lacks. vng.nl pages answered 403; gemmaonline.nl answered a JavaScript challenge and was not read. Ruling 2026-09-26: the column rests on the live softwarecatalogus.nl (the old Drupal 7 build) only; the successor build on GitHub is our own work, so nothing from that repo counts as incumbent evidence." }sap-leanix
{ "docs": "https://help.sap.com/docs/leanix/ea", "sourceRepo": null, "featurePage": "https://www.leanix.net/en/products/application-portfolio-management", "featureRequests": "https://roadmap.leanix.net/", "issueTracker": null, "roadmap": "https://roadmap.leanix.net/", "changelog": "https://updates.leanix.net/", "apiReference": "https://help.sap.com/docs/leanix/ea/sap-leanix-apis", "marketplace": "https://exthub.leanix.net/en", "pricing": "https://www.leanix.net/en/enterprise-architecture/pricing", "accessibilityStatement": "https://www.leanix.net/en/enterprise-architecture/accessibility", "securityDocs": "https://www.leanix.net/en/products/security-and-trust", "demoInstance": null, "community": "https://community.leanix.net/", "reviews": "https://www.peerspot.com/products/leanix-reviews", "videos": "https://www.youtube.com/@SAPLeanIX", "caseStudies": "https://www.leanix.net/en/customers/success-stories", "partnerDirectory": null, "trainingCurriculum": "https://learning.sap.com/products/business-transformation-management/leanix", "jobPostings": null, "tenders": null, "nullReasons": { "sourceRepo": "Closed source SaaS; only a public reporting library exists (github.com/leanix/leanix-reporting, named in https://help.sap.com/docs/leanix/ea/reporting-framework-and-cli), not the product source.", "issueTracker": "No public issue tracker; bugs and configuration requests go to SAP for Me, which needs a login (stated in the 2026 product update newsletters on updates.leanix.net).", "demoInstance": "No public demo instance; https://www.leanix.net/en/demo-eam is a demo request form, and sandbox workspaces are a paid add on.", "partnerDirectory": "https://www.leanix.net/en/partner-program explains the partner program but no browsable partner directory was found; /en/partner and /en/partners/find-a-partner answer 404.", "jobPostings": "LeanIX jobs are listed on jobs.sap.com (linked from the LeanIX home page), which answered 403 to scripted reads, so it could not be confirmed today.", "tenders": "no tender in the intelligence database names LeanIX in its name, description or requirement text (searched 2026-09-26); category tenders for architecture tools (Helmond 398728, Breda 413833, Noord-Brabant 434026, Zutphen 363416, Apeldoorn 321765) name no product" }, "readHow": "All checks on 2026-09-26. docs: help.sap.com is a JavaScript app, so the 663 pages of the LeanIX EA deliverable were read in full through the portal's public JSON endpoints (http.svc/deliverableMetadata and http.svc/pagecontent, curl, HTTP 200) and cited by their readable URLs; docs-eam.leanix.net and docs.leanix.net redirect there (curl -L, 200). changelog: updates.leanix.net (LaunchNotes) index pages 1 to 25 and all 171 announcements from pages 1 to 17 (Sept 2025 to Sept 2026) fetched with curl, 200. roadmap and featureRequests: roadmap.leanix.net is a Productboard portal whose card data (392 cards, Voting, In progress, On roadmap, Released) is embedded in the page and was parsed; new idea submissions are allowed per the portal config and the product updates say to share feature ideas there; card URLs follow the /c/<id>-<slug> form the vendor uses inside its own card texts; ideas.leanix.net did not resolve (curl 000); Productboard answers 200 for any path so card paths were confirmed only through the embedded data. featurePage, pricing, accessibilityStatement, securityDocs, caseStudies: curl 200 on links taken from the leanix.net home page (pricing gives the model, per application, no public prices; the accessibility page is titled 'Accessibility Statement'). apiReference: help page read through the JSON endpoint; the OpenAPI explorer itself is inside a workspace behind login. marketplace: store.leanix.net redirects to exthub.leanix.net/en, curl 200. community: curl 200. reviews: peerspot page title 'LeanIX reviews 2026', curl 200; Gartner Peer Insights, G2 and TrustRadius answered 403. videos: YouTube page title 'SAP LeanIX - YouTube', curl 200. trainingCurriculum: learning.sap.com, curl 200. Also read: www.leanix.net/en/legal/commercial and its PDFs Metrics-and-Feature-List-EAM-SAP-LeanIX-v3.1.pdf and Operational-Terms-Exhibit-v.2.0.pdf (curl 200, text extracted). Not readable: www.sap.com trust center and accessibility pages (403), jobs.sap.com (403), g2.com, gartner.com, trustradius.com (403). The browser connection browser-3 was used only to discover the help portal's JSON endpoints; no login and no trial were used. Ruling 2026-09-26: LeanIX was read through help.sap.com public JSON endpoints and the Productboard roadmap card data." }bluedolphin
{ "docs": "https://help.bluedolphin.io/en/", "sourceRepo": null, "featurePage": "https://bluedolphin.io/products/", "featureRequests": null, "issueTracker": null, "roadmap": null, "changelog": "https://bluedolphin.io/product-news/", "apiReference": "https://public-api.eu.bluedolphin.app/swagger/index.html", "marketplace": null, "pricing": "https://bluedolphin.io/pricing/", "accessibilityStatement": null, "securityDocs": "https://bluedolphin.io/pricing/", "demoInstance": null, "community": "https://community.bluedolphin.io/", "reviews": "https://www.peerspot.com/products/bluedolphin-reviews", "videos": "https://www.youtube.com/@bluedolphinhq", "caseStudies": "https://bluedolphin.io/customer-stories/", "partnerDirectory": null, "trainingCurriculum": "https://bluedolphin.io/academy/", "jobPostings": null, "tenders": [ "TenderNed 421044 Tactisch beheer Blue Dolphin (Provincie Noord-Brabant, 2026-04-16)", "TenderNed 367217 Tactisch beheerder Blue Dolphin (Provincie Noord-Brabant, 2025-02-11)", "TenderNed 227678 onderhandse gunning Architectuurtool (Amersfoort, 2021-05-12), description names BlueDolphin" ], "nullReasons": { "sourceRepo": "Closed source SaaS; no public repository found.", "featureRequests": "No public ideas portal found; the product news page and the success page mention no ideas channel, and the community (Hivebrite) needs a login for most content.", "issueTracker": "No public issue tracker; support requests go through the help center and in app chat.", "roadmap": "No public roadmap found; https://bluedolphin.io/success/ says upcoming features are shown in live quarterly webinars for customers.", "marketplace": "The integrations Marketplace is inside the product (paid add on, https://help.bluedolphin.io/en/articles/11967779-add-an-integration-in-bluedolphin); the Microsoft marketplace listings found by search answered 403 to scripted reads.", "accessibilityStatement": "No accessibility statement or VPAT found on bluedolphin.io or in the help center.", "demoInstance": "No public demo instance; a free trial needs a sign up (https://bluedolphin.app/free-trial/) and demos are booked through a form.", "partnerDirectory": "https://bluedolphin.io/partners/ describes the partner program and shows logos without a browsable directory of partners.", "jobPostings": "careers.bluedolphin.io redirects (301) to the LinkedIn company page, which was not read." }, "readHow": "All checks on 2026-09-26. The vendor rebranded from ValueBlue to BlueDolphin in April 2026: support.valueblue.nl no longer resolves (DNS ENOTFOUND), valueblue.zendesk.com answers 403 with a Cloudflare challenge (also in the headless browser-3, so it was left), and www.valueblue.com fails the TLS handshake. docs: help.bluedolphin.io sitemap.xml read with curl (200) and all 267 English articles downloaded with curl (200) and grepped; every cited help URL was checked against that sitemap. bluedolphin.io answers 403 to curl, so its pages were read with WebFetch (home, products, pricing, product-news, success, integrations-partners, capability-based-planning, application-portfolio-management-application-rationalization, customer-stories and two municipality stories, academy, partners, and the product update posts of October, November and December 2025 and February, May, June and July 2026); its post, page and customer story sitemaps were read with curl (200). apiReference: Swagger at public-api.eu.bluedolphin.app answered 200 to curl and is named in the help center quick start guide. securityDocs: the pricing page lists 'SOC 2 Certified' and 'ISO 27001 Certified', BYOK and data center localization; no separate trust page was found. community: WebFetch, Hivebrite platform, mostly behind login. reviews: peerspot page, curl 200; Capterra and G2 answered 403. videos: YouTube page title 'BlueDolphin HQ - YouTube', curl 200. A third party README (github.com/Gemeente-Delft/Gemeentelijk-Gegevensmodel, raw file via curl 200) was read for the GGM row. Not readable: valueblue.zendesk.com, support.valueblue.nl, www.valueblue.com, capterra.com, g2.com, the Microsoft marketplace listings, and the LinkedIn careers target. No login and no trial were used. Ruling 2026-09-26: BlueDolphin was read from help.bluedolphin.io; ValueBlue rebranded in April 2026 and the old support domains are dead or challenged." }glpi
{ "docs": "https://glpi-user-documentation.readthedocs.io/", "sourceRepo": "https://github.com/glpi-project/glpi (tag 11.0.9, 2a44dd15)", "featurePage": "https://glpi-project.org/features/", "featureRequests": "https://github.com/glpi-project/roadmap/discussions", "issueTracker": { "url": "https://github.com/glpi-project/glpi/issues", "featureLabel": "feature suggestion" }, "roadmap": "https://glpi-project.org/roadmap/", "changelog": "https://github.com/glpi-project/glpi/blob/11.0.9/CHANGELOG.md", "apiReference": "https://github.com/glpi-project/glpi/blob/11.0.9/apirest.md", "marketplace": "https://plugins.glpi-project.org/", "pricing": "https://glpi-project.org/pricing/", "accessibilityStatement": null, "securityDocs": "https://www.glpi-project.org/en/security-policy/", "demoInstance": null, "community": "https://forum.glpi-project.org/", "reviews": null, "videos": "https://www.youtube.com/playlist?list=PLUMG2P30gRaHYVZwtqLdRIe2DtkDkNG_s", "caseStudies": "https://glpi-project.org/customers/", "partnerDirectory": "https://glpi-project.org/partners/", "trainingCurriculum": "https://www.glpi-project.org/en/trainings/", "jobPostings": null, "tenders": [ "No TenderNed tender names GLPI (name, description and requirement text searched 2026-09-26)", "portugal-base 7721/2025 Renovacao de Licencas de Software GLPI e Fortinet (ANQEP, 2025-03-26)", "spain-placsp ES-PLACSP-19542624 official plugins for the GLPI instance used by INTEF (2026-04-22)" ], "nullReasons": { "accessibilityStatement": "no statement found: https://glpi-project.org/accessibility/ and /accessibility-statement/ return 404 and the pricing and home pages link none.", "demoInstance": "no public demo: https://glpi-project.org/demo/ returns 404; the pricing page offers only a 45 day GLPI Network trial behind registration (https://myaccount.glpi-network.cloud/register.php), which readers may not open.", "reviews": "G2 (https://www.g2.com/products/glpi/reviews), Capterra, Gartner Peer Insights, TrustRadius, SourceForge and AlternativeTo all return 403 to curl and WebFetch, so none could be confirmed.", "jobPostings": "the GLPI home page links https://www.welcometothejungle.com/fr/companies/teclib, which returns 403 to non-browser clients; https://www.teclib.com/en/careers/ redirects to the GLPI home page, so no job list was confirmed." }, "readHow": "2026-09-26: curl -sIL with a browser user agent returned 200 for docs, sourceRepo, featurePage (title 'Discover GLPI features'), issueTracker, changelog and apiReference at tag 11.0.9, marketplace, pricing, securityDocs, community (title 'Forum GLPI-Project'), videos (playlist title 'GLPI Success Stories'), caseStudies, partnerDirectory, trainingCurriculum; WebFetch confirmed content of pricing (GLPI Network public cloud 19 EUR per user per month, private cloud 21 EUR, self hosted Basic 100 EUR to Enterprise 4,500 EUR per month), roadmap (community roadmap pointing to GitHub discussions), featureRequests (suggest.glpi-project.org 301 redirects to github.com/glpi-project/roadmap/discussions, 'Ideas and feature requests' category, 118 discussions listed through the GitHub GraphQL API), marketplace, customers, partners (searchable by country) and trainings (four courses, no certification). github.com/glpi-project/glpi/discussions returns 404, so the roadmap repository is the feature channel. featureLabel read from the GitHub labels API (labels 'feature suggestion' and 'enhancement'). Plugin repositories read at their release tags: github.com/pluginsGLPI/datainjection 2.15.11, github.com/pluginsGLPI/fields 1.24.5, github.com/yild/gdprropa 1.0.3 (declares GLPI 10 only)." }topdesk
{ "docs": "https://docs.topdesk.com/", "sourceRepo": null, "featurePage": "https://www.topdesk.com/en/features/", "featureRequests": "https://tip.topdesk.com/", "issueTracker": null, "roadmap": "https://tip.topdesk.com/", "changelog": "https://releasenotes.topdesk.com/", "apiReference": "https://developers.topdesk.com/", "marketplace": "https://marketplace.topdesk.com/", "pricing": "https://www.topdesk.com/en/pricing/", "accessibilityStatement": "https://www.topdesk.com/en/accessibility/", "securityDocs": "https://docs.topdesk.com/en/security.html", "demoInstance": null, "community": "https://community.topdesk.com/", "reviews": null, "videos": "https://www.topdesk.com/en/demo/", "caseStudies": "https://www.topdesk.com/en/customer-stories/", "partnerDirectory": null, "trainingCurriculum": null, "jobPostings": "https://careers.topdesk.com/", "tenders": [ "TenderNed 399078 Vrijwillige transparantie TOPdesk MGR (Rijk van Nijmegen, 2025-10-31)", "TenderNed 402170 Service- en vastgoed management systeem (Velsen, 2025-11-21): requirements REQ6, REQ12, REQ15 name integration with OGD/TOPdesk", "TenderNed 206168 and 219511 TOPdesk migration (Amsterdam, 2020 to 2021)", "TenderNed 324002 and 237630 TOPdesk specialist hire (Zorginstituut Nederland)" ], "nullReasons": { "sourceRepo": "TOPdesk is closed source.", "issueTracker": "No public issue tracker; support runs through My TOPdesk (login). Public input goes through the roadmap portal tip.topdesk.com.", "demoInstance": "No public demo instance; a community question about a trial (community.topdesk.com/q-a-129/topdesk-trial-version-personal-instance-974) shows trials run through sales.", "reviews": "G2 (g2.com/products/topdesk/reviews) and Capterra answered 403 to scripted reads; not confirmed.", "partnerDirectory": "www.topdesk.com/en/partners/ answered 404 and no partner directory is linked from the English site.", "trainingCurriculum": "www.topdesk.com/en/training/ answered 404; only consultancy services are linked (www.topdesk.com/en/services/consultancy/)." }, "readHow": "curl with a browser user agent on 2026-09-26, all non-null URLs HTTP 200. docs.topdesk.com was read through its full-text search index en/js/fuzzydata.js (1,532 sections, 987 pages); every docs page cited in the pack was re-fetched with HTTP 200. tip.topdesk.com (Productboard public roadmap, columns Under consideration, Planned, Building, Launched) was parsed from the page's embedded JSON, 185 cards. releasenotes.topdesk.com is a JavaScript app whose entries were not read. community.topdesk.com/ideas answered 403; the community has no ideas board, ideas go to tip.topdesk.com per docs.topdesk.com/en/product-updates.html. docs.topdesk.com also carries Virtual Appliance (on-premises) documentation per release." }🤖 Generated with Claude Code