You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Write the platform change for BTP, integration and cryptography findings
THE QUALIFIER IS THE DEFECT IN THIS FAMILY, which is what makes it writable and
is the exact inverse of hana_pack. There a qualifier meant the export had not
typed the object, so the statement had to be refused. Here it names the thing to
change — path=/, TrustAll=true, allowedHosts=['*'], instanceStatus=DELETED — and
the object it belongs to is in the same subject entry, so no graph is read at
all. The other three packs walk edges because a role change needs a (role,
object) pair and an assignment a (user, role) pair; this one does not.
BTP-DST-002 Legacy_ECC_SOAP — set TrustAll = false (currently TrustAll=true)
BTP-SB-003 old-test-binding — delete the orphaned binding
BTP-CC-001 S4H_Production — narrow path=/ to the paths your integrations use
CRYPTO-CERT-001 SSL_Server_Cert — remove this expired certificate
THREE SHAPES, NOT THE SAME STRENGTH: an exact target value (TrustAll has two
settings and one of them verifies the certificate), a pure removal (an orphaned
binding needs no replacement), and an exact coordinate whose value is the
customer's (narrow path=/ — to WHAT is theirs).
BTP IS NOT ONE CONSOLE, so `where` is per prefix: a Cloud Connector resource is
narrowed in an on-premise admin UI that is not even in the cockpit, a destination
in Connectivity, a queue in Event Mesh, a partner profile in WE20, a certificate
in STRUST. One label reading "BTP" sends somebody to the wrong screen.
THE FAMILY COUNTS DID NOT SURVIVE READING THE CHECKS, again. INTG showed 300 and
CRYPTO 170; CRYPTO carries almost no qualifiers at all, and three INTG checks are
the SAME design decision already declined on the BTP side — "an insecure
mechanism is in use" is fixed by choosing what to move TO, which is a decision
about the integration and not a setting. Seven checks are declined with that
reason rather than left silent; a check nobody examined returns None instead, and
the plan counts it under not_covered, because claiming a considered refusal for
something nobody looked at is the more flattering lie.
_NO_QUALIFIER exists for the four whose action needs no value: an unused OAuth
client is deleted, an expired certificate removed, and the object's NAME is the
whole coordinate. Without it they would decline as "records no setting", which is
true and beside the point. It is an allowlist, not a loosening — a check whose
action names %(qual)s still declines when the finding records none.
CRYPTO-CERT-002 is the one pack with no rollback and says so. Restoring an
expiring certificate is not an undo, it is reintroducing the finding.
Renamed btp_pack to platform_pack once it handled three families. A name that
lies is worse than a long one.
PRD's plan goes 42 changes to 89 across five block kinds, with 9 declines each
carrying a reason.
Fourteen mutations across the two test files; all fourteen fail them. Two had to
be rebuilt: replacing only a caveat's opening words left the phrases the
assertions check, and slicing the caveat out entirely left a dangling `if`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0 commit comments