bcquality/custom/knowledge/appsource/sp-id-ranges-are-not-checked-by-as0084.md
Paulius Urbanas 5149da25ba 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>
2026-09-25 13:50:52 +03:00

1.2 KiB

bc-version domain keywords technologies countries application-area
all
appsource
id-range
object-id
as0084
app-json
idranges
false-positive
al
w1
all

StrongPoint ID ranges are governed by app.json, not by AS0084

Description

StrongPoint's sp.ruleset.json disables AppSourceCop AS0084 ("We are using our custom range"). SP apps use StrongPoint-registered ranges such as 70760xxx and, for some customer and test apps, other ranges; the rule that matters is that every object and extension field ID lies inside the app's own app.json idRanges and does not collide with another SP app.

Best Practice

Check new IDs against the project's app.json idRanges (and the next free ID in that range). Report an ID outside idRanges as major — the compiler rejects it. Do not assess whether the range itself is an AppSource-assigned range.

Anti Pattern

Reporting an SP app's ID range, or IDs inside it, as invalid because AS0084 or AppSource range rules would flag them; renumbering objects to move them into a different range (see the upgrade rule on ID changes after release).

References

StrongPoint policy: sp.ruleset.json — AS0084 None ("Disable rule AS0084. We are using our custom range").