Skip to main content

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.

Where this fits

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 patternWhat it is
*.tools.sapInternal tooling (code hosting, project tracking, and similar)
*.int.sapInternal services (internal wikis and intranet apps)
*.sap.corpLegacy corporate network hosts
sap.sharepoint.comInternal 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.sap or *.sap.corp.
  • Protocol-relative links are caught too. A link that starts with // and omits the https: scheme (for example //<internal-host>/path) is matched as well, not just a full https:// link.
  • Look-alike hosts are safe. The check uses a host-label boundary, so a decoy like a .sapient.com host is not mistaken for a .sap host.

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.com
  • docs.sap
  • help.sap.com
  • me.sap.com
  • community.sap.com
Prefer a public source

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.

note

If your PR changes no Markdown under docs/ or news/, the check simply reports that there is nothing to scan and passes.

You have two options:

  1. Replace the internal link with a public equivalent: the same information on a customer-facing host such as help.sap.com or community.sap.com.
  2. 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.
Even "example" internal URLs are flagged

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.

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.