Add StrongPoint custom knowledge layer

Eight organization rules in custom/knowledge, each overriding or
supplementing the Microsoft layer for StrongPoint repositories:

- style/spu-prefix-on-objects-and-extension-members
- style/cyclomatic-complexity-is-not-a-gate-in-sp-repos (LC0010 = Info)
- ui/keep-tooltips-on-sp-page-fields (AA0218 = Error, LC0064 off;
  overrides microsoft ui/bound-page-field-inherits-source-field-tooltip)
- data-modeling/sp-field-names-fit-30-chars-with-prefix (AL0468 = Error)
- events/change-ls-central-behaviour-through-its-events
- web-services/device-io-goes-through-sp-device-manager
- appsource/sp-id-ranges-are-not-checked-by-as0084 (AS0084 = None)
- upgrade/sp-released-ids-never-change

Sources: sp.ruleset.json across SP repositories, SPUFBUpgrade pattern in
SP-LSC-Fiscal-Printing, observed LS Central and Device Manager usage.
Verified: all eight are indexed by Build-KnowledgeIndex.ps1, and a review
of a probe app applied the ToolTip rule as major and suppressed the
Microsoft article by layer precedence.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Paulius Urbanas 2026-09-25 13:50:52 +03:00
parent 07e324ddbc
commit 5149da25ba
8 changed files with 208 additions and 0 deletions

View file

@ -0,0 +1,26 @@
---
bc-version: [all]
domain: web-services
keywords: [device, hardware, httpclient, sp-device-manager, payment-terminal, fiscal-printer, sco]
technologies: [al]
countries: [w1]
application-area: [all]
---
# Hardware devices are reached through SP Device Manager, not HttpClient
## Description
StrongPoint extensions talk to physical devices — payment terminals (EMV), fiscal printers, self-checkout terminals — only through the `SP Device Manager` app: its `SPU Device Manager` record (per store / POS terminal, holding device settings such as the fiscal protocol version) and the `SPU Device Manager` / `SPU Device Communication` codeunits, which exchange JSON with the Device Manager Windows service. Keeping device I/O in one place is what lets device settings, timeouts, logging and the service endpoint be managed per terminal.
## Best Practice
For new device interaction, read the device setup from the `SPU Device Manager` record and send requests through the Device Manager codeunits, following how the existing EMV and Fiscal Printing apps do it. Report a new direct `HttpClient` call to a device endpoint as `major`.
## Anti Pattern
A device integration that builds its own `HttpClient` request to a terminal or printer URL, stores device endpoints in its own setup table, or bypasses the per-terminal Device Manager record. Not a violation: `HttpClient` used for ordinary web services that are not devices (for example calls to external business APIs).
## References
StrongPoint architecture: `SP-Device-Manager` is the declared dependency for device I/O in SP-LSC-EMV-Integration, SP-LSC-Fiscal-Printing and SP-LSC-SCO-Integration (workspace `CLAUDE.md`, "SP-Device-Manager (Foundation)").