Internal Link Check for SAP-Only Hosts in Content
The SAP Architecture Center is a public site, open to everyone on the internet. A link that only works inside the SAP network or behind single sign-on (SSO) is a dead end for external readers. This check scans the Markdown you changed and flags any link that points to an SAP-internal-only host.
What this check does
When your pull request (PR) touches Markdown under docs/ or news/, this workflow looks at the files you added or modified and searches them for links to hosts that are reachable only from inside SAP. It does not scan the whole site, only your changed .md and .mdx files, so it runs fast and points straight at your edits.
The goal is simple: everything we publish should work for every visitor. An internal wiki page or an internal tooling link may be perfectly valid for you, but a customer, partner, or community member reading the public site will hit a login wall or a "server not found" error.
This is one of several content checks that run on every PR. For the big picture and the full list, see the Overview and Operational Workflows pages. For how results are surfaced across all checks, see Errors & Warnings.
Host patterns that are flagged
The check matches the following internal-only host patterns, case-insensitively, inside any link in your content.
| Host pattern | What it is |
|---|---|
*.tools.sap | Internal tooling (code hosting, project tracking, and similar) |
*.int.sap | Internal services (internal wikis and intranet apps) |
*.sap.corp | Legacy corporate network hosts |
sap.sharepoint.com | Internal SharePoint |
A couple of details worth knowing:
- Subdomains count. Any host ending in one of these patterns is flagged, for example a deep subdomain under
*.tools.sapor*.sap.corp. - Protocol-relative links are caught too. A link that starts with
//and omits thehttps:scheme (for example//<internal-host>/path) is matched as well, not just a fullhttps://link. - Look-alike hosts are safe. The check uses a host-label boundary, so a decoy like a
.sapient.comhost is not mistaken for a.saphost.
Hosts that are intentionally allowed
Not every SAP host is internal. The following customer-facing hosts are public and are not flagged, so you can link to them freely:
*.cloud.sap*.hana.ondemand.comdocs.saphelp.sap.comme.sap.comcommunity.sap.com
When you need to point readers at SAP material, use a public destination first, most often help.sap.com or community.sap.com. These are the public homes for official documentation and community content.
How results appear on your PR
If the check finds an internal-only link, it reports in three places so you cannot miss it:
- An "Internal link"-titled annotation inline on the Files changed tab, attached to the exact line.
- A Check Internal Links section in the sticky PR comment, which gathers the blocking findings from this and the other content checks.
- A job summary on the workflow run, listing each hit as
path:line:url.
A finding here is a blocking error: the check fails until the internal link is gone. The message tells you the file, the line, and the offending URL.
If your PR changes no Markdown under docs/ or news/, the check simply reports that there is nothing to scan and passes.
How to fix a flagged link
You have two options:
- Replace the internal link with a public equivalent: the same information on a customer-facing host such as
help.sap.comorcommunity.sap.com. - Remove the link if no public equivalent exists, and reword the sentence so it still reads well.
Here is a concrete before/after. The "before" stands in for an internal-only link. The host shown is a non-internal placeholder so this page itself stays clean:
<!-- Before: internal-only, breaks for public visitors (placeholder host) -->
See the [onboarding guide](https://wiki.corp.example/onboarding) for details.
<!-- After: public, works for everyone -->
See the [onboarding guide](https://help.sap.com/docs) for details.
If the content you were linking to simply has no public counterpart, drop the link and keep the surrounding prose standalone:
<!-- After (removal): no public equivalent available -->
Follow your team's internal onboarding guide before you start.
This page is scanned by this very check. It matches any host ending in *.tools.sap, *.int.sap, *.sap.corp, or sap.sharepoint.com when it appears as a link (with https://, http://, or a protocol-relative //), whether the host is real or an invented example, and even inside a code block or inline code, because the scan reads the raw text. A bare mention of such a hostname in prose, with no scheme or //, is not flagged. Labelling a host as a "placeholder" does not exempt it. In examples, use a host that does not end in one of those patterns at all, as the before/after above does.
Related checks
- External Links: verifies that your public links actually resolve.
- Front Matter Properties and SEO Front Matter: validate the metadata at the top of each page.
- Overview: the full map of automated checks.
Need a refresher on how contributions flow through the project, or on writing content without touching Markdown by hand? See the contribution process, the Quick Start no-code editor, and the community intro. For links that live inside diagrams, see the diagramming guide.