ADR-015 site-specific configuration policy
This commit is contained in:
@@ -135,6 +135,41 @@ if [ -d plugins ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ADR-015: one site's data does not belong in product code. A site host, a site
|
||||||
|
# FQDN or a site network in plugins/ or shopdb/ ships another site a value it
|
||||||
|
# cannot see and did not choose. Use a setting with a NEUTRAL default, a
|
||||||
|
# site-namespaced directory (scripts/site_imports/<site>/), or seed data.
|
||||||
|
#
|
||||||
|
# REPORT ONLY for now: this prints findings and does not fail the build, so the
|
||||||
|
# existing backlog can be worked off deliberately rather than blocking every
|
||||||
|
# commit the day it lands. Flip SITE_LITERALS_ENFORCE to 1 to make it a gate.
|
||||||
|
SITE_LITERALS_ENFORCE=${SITE_LITERALS_ENFORCE:-0}
|
||||||
|
|
||||||
|
echo "==> Checking for site-specific literals in product code (ADR-015)..."
|
||||||
|
# Deliberately narrow: a real site hostname, a site FQDN, or a site network.
|
||||||
|
# Fleet-wide vocabulary (gea-shopfloor-*) is NOT matched - it is overridable
|
||||||
|
# through the pctypemap settings and is not one site's data.
|
||||||
|
SITE_PATTERNS='tsgwp00525|\.geaerospace\.net|\bwjs\b|West Jefferson|10\.134\.48\.|10\.48\.249\.'
|
||||||
|
SITE_HITS=$(grep -rPn "$SITE_PATTERNS" "${EXCLUDES[@]}" \
|
||||||
|
--include='*.py' --include='*.vue' --include='*.js' \
|
||||||
|
plugins/ shopdb/ 2>/dev/null \
|
||||||
|
| grep -v '/tests\?/' \
|
||||||
|
| grep -v 'site_imports/' || true)
|
||||||
|
if [ -n "$SITE_HITS" ]; then
|
||||||
|
COUNT=$(echo "$SITE_HITS" | wc -l)
|
||||||
|
if [ "$SITE_LITERALS_ENFORCE" = "1" ]; then
|
||||||
|
echo "FAIL: $COUNT site-specific literal(s) in product code:"
|
||||||
|
echo "$SITE_HITS"
|
||||||
|
echo
|
||||||
|
VIOLATIONS=$((VIOLATIONS + 1))
|
||||||
|
else
|
||||||
|
echo " $COUNT site-specific literal(s) found (report only, not failing):"
|
||||||
|
echo "$SITE_HITS" | sed 's/^/ /'
|
||||||
|
echo " See docs/adr/ADR-015-site-specific-configuration.md"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$VIOLATIONS" -gt 0 ]; then
|
if [ "$VIOLATIONS" -gt 0 ]; then
|
||||||
echo "=================================================="
|
echo "=================================================="
|
||||||
echo "$VIOLATIONS naming/style violation(s) found."
|
echo "$VIOLATIONS naming/style violation(s) found."
|
||||||
|
|||||||
Reference in New Issue
Block a user