This section describes NaviGo’s implemented security and quality pipelines, and locally reproducible demonstration methods.
Project scripts (package.json):
npm run typechecknpm run lintnpm run test:unitnpm run test:integrationnpm run test:evalnpm run acceptanceacceptance (scripts/acceptance.sh) execution order:
typechecklinttest:unittest:integrationtest:evalOPENAI_API_KEY + DUFFEL_API_TOKEN + POSTGRES_URL are all present, execute one live CLI scenario; otherwise print [blocked] message.This guarantees a three-layer gate of “static checks + automated tests + conditional real-chain verification.”
.github/workflows/ci.ymlsecurity-scan (LLMSecOps)Enabled:
npm audit --audit-level=moderate --omit=devp/javascript, p/typescript, p/owasp-top-ten, p/cwe-top-25, p/ci, p/secrets, p/supply-chain)checksExecutes after security-scan passes:
npm run typechecknpm run lintnpm run test:unitnpm run test:integrationbuildExecutes after security-scan and checks pass:
npm run builddist/src/index.js and public/ existdocker-build-and-scan.github/workflows/llmsecops.ymlDedicated workflow for LLM application security:
ai-sast (AI SAST)p/insecure-transport, p/xss, p/sql-injection)scripts/prompt-security-scan.ts)
ai-supply-chainnpm audit --omit=devscripts/ai-dependency-scan.ts)
package-lock.json for known AI/ML security advisories (CVE curated list).colors, faker, node-ipc, peacenotwar)llm-redteamtests/redteam/guardrails.redteam.test.ts)
OPENAI_API_KEY)model-config-auditscripts/model-config-audit.ts)
See .github/workflows/cd.yml.
Triggered on main branch push or manual dispatch:
This forms a supply-chain security closed loop from code to image release (scan + SBOM + provenance).
risk_guard handles prompt injection detection (rules + LLM dual-layer).plan_synthesizer handles final summary unsafe output detection (rules + LLM dual-layer).safetyFlags and returns in API response.requestJson(...) provides unified:
ToolError)scripts/prompt-security-scan.ts runs in CI, detecting:
src/observability/tracing.ts:
LANGSMITH_TRACING=trueuserId / threadId / scenario / serviceEntry points:
configureTracingFromEnv() called when API server startsconfigureTracingFromEnv() called before CLI executionnpm install
npm run typecheck
npm run lint
npm run test:unit
npm run test:integration
(Optional) If LangSmith is configured:
npm run test:eval
(Optional) If OpenAI + Duffel + Postgres are configured:
npm run acceptance
Prompt security scan and model configuration audit can also run locally:
npx tsx scripts/prompt-security-scan.ts
npx tsx scripts/ai-dependency-scan.ts
npx tsx scripts/model-config-audit.ts
security-scan (audit / secret / semgrep / SBOM)ai-sast (prompt security scan / semgrep extended rules)ai-supply-chain (audit / AI dependency scan / blocklist)llm-redteam (adversarial test pass rate)model-config-audit (model configuration security audit)checks (typecheck / lint / unit / integration)test:eval into CI as a mandatory or scheduled task (currently mainly environment-gated).