@metasession.co/devaudit-cli 0.1.25 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metasession.co/devaudit-cli",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "description": "DevAudit CLI — installs, syncs, and operates the Metasession SDLC across consumer projects.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@clack/prompts": "^0.8.2",
36
- "@metasession.co/devaudit-plugin-sdk": "^0.1.25",
36
+ "@metasession.co/devaudit-plugin-sdk": "^0.1.27",
37
37
  "commander": "^12.1.0",
38
38
  "consola": "^3.2.3",
39
39
  "env-paths": "^3.0.0",
@@ -329,17 +329,22 @@ jobs:
329
329
  npm audit --json > ci-evidence/dependency-audit.json 2>/dev/null || echo '{"vulnerabilities":{}}' > ci-evidence/dependency-audit.json
330
330
  fi
331
331
 
332
- # Upload SAST results (security_scan category)
332
+ # Upload SAST results — precise evidence_type=sast_report (Phase 3a /
333
+ # devaudit#370). Pre-3a uploads used `audit_log` + category alone,
334
+ # which made the portal's SAST and Dependency Audit gates show
335
+ # identical content (devaudit#387). Tagging the precise type keeps
336
+ # the two panels distinct + matches the ISO 27001 A.8.28 clause.
333
337
  if [ -f ci-evidence/sast-results.json ]; then
334
338
  upload sast-results.json \
335
- {{PROJECT_SLUG}} _compliance-docs audit_log ci-evidence/sast-results.json \
339
+ {{PROJECT_SLUG}} _compliance-docs sast_report ci-evidence/sast-results.json \
336
340
  --category security_scan ${FLAGS}
337
341
  fi
338
342
 
339
- # Upload dependency audit (security_scan category)
343
+ # Upload dependency audit precise evidence_type=dependency_audit
344
+ # (same rationale as SAST above).
340
345
  if [ -f ci-evidence/dependency-audit.json ]; then
341
346
  upload dependency-audit.json \
342
- {{PROJECT_SLUG}} _compliance-docs audit_log ci-evidence/dependency-audit.json \
347
+ {{PROJECT_SLUG}} _compliance-docs dependency_audit ci-evidence/dependency-audit.json \
343
348
  --category security_scan ${FLAGS}
344
349
  fi
345
350
 
@@ -367,10 +372,16 @@ jobs:
367
372
  --category test_report ${FLAGS}
368
373
  fi
369
374
 
370
- # Upload test summary report (test_report category)
375
+ # Upload test summary report — precise evidence_type=test_report
376
+ # (was compliance_document). The portal's Compliance Gates panel
377
+ # filters by evidence_type, so the markdown summary belongs in the
378
+ # Test Reports gate alongside playwright-report.zip + coverage
379
+ # summary. Markdown renders inline (MarkdownRenderer); auditor
380
+ # reads pass/fail counts + narrative without downloading the zip.
381
+ # devaudit#370 follow-up.
371
382
  if [ -f "compliance/test-summary-report.md" ]; then
372
383
  upload test-summary-report.md \
373
- {{PROJECT_SLUG}} _compliance-docs compliance_document compliance/test-summary-report.md \
384
+ {{PROJECT_SLUG}} _compliance-docs test_report compliance/test-summary-report.md \
374
385
  --category test_report ${FLAGS}
375
386
  fi
376
387
 
@@ -125,8 +125,9 @@ jobs:
125
125
  DERIVED_META=()
126
126
  [ -n "$DERIVED_CT" ] && DERIVED_META+=(--change-type "$DERIVED_CT")
127
127
 
128
- # Upload compliance docs (planning category)
129
- for DOC in compliance/RTM.md compliance/test-plan.md compliance/test-cases.md compliance/test-summary-report.md; do
128
+ # Upload planning docs (RTM / Test Plan / Test Cases) as
129
+ # compliance_document they surface under the Documents tab.
130
+ for DOC in compliance/RTM.md compliance/test-plan.md compliance/test-cases.md; do
130
131
  if [ -f "$DOC" ]; then
131
132
  echo "Uploading: $(basename "$DOC")"
132
133
  bash scripts/upload-evidence.sh \
@@ -137,6 +138,49 @@ jobs:
137
138
  fi
138
139
  done
139
140
 
141
+ # Test summary report — precise evidence_type=test_report so it
142
+ # lands in the portal's Test Reports gate (rendered inline by the
143
+ # MarkdownRenderer). devaudit#370 follow-up; same change applied
144
+ # in ci.yml's gate-evidence upload step.
145
+ if [ -f "compliance/test-summary-report.md" ]; then
146
+ echo "Uploading: test-summary-report.md (test_report type)"
147
+ bash scripts/upload-evidence.sh \
148
+ {{PROJECT_SLUG}} _compliance-docs test_report compliance/test-summary-report.md \
149
+ --category test_report ${FLAGS} --release "${DERIVED_RELEASE}" \
150
+ "${DERIVED_META[@]}" \
151
+ || echo "Warning: Failed to upload test-summary-report.md"
152
+ fi
153
+
154
+ # Project-level governance docs (devaudit#370 Phase 3a). When the
155
+ # operator commits any of these markdown files, upload with the
156
+ # precise evidence_type so the portal's framework-coverage matrix
157
+ # auto-closes the matching clauses (GDPR.Art-30 for ropa, GDPR.Art-35
158
+ # for dpia, EUAIA.Art-13 for ai_disclosure, SOC2.CC4.1 + ISO27001.A.12.1
159
+ # for periodic_review, etc.). Each path is optional — skipped silently
160
+ # when the file is absent.
161
+ upload_governance() {
162
+ local FILE="$1" TYPE="$2"
163
+ if [ ! -f "$FILE" ]; then return 0; fi
164
+ echo "Uploading governance: $(basename "$FILE") (type=${TYPE})"
165
+ bash scripts/upload-evidence.sh \
166
+ {{PROJECT_SLUG}} _compliance-docs "$TYPE" "$FILE" \
167
+ --category planning ${FLAGS} --release "${DERIVED_RELEASE}" \
168
+ "${DERIVED_META[@]}" \
169
+ || echo "Warning: Failed to upload $(basename "$FILE")"
170
+ }
171
+ # Recognise governance docs at top-level OR under compliance/governance/
172
+ # (operator's choice — both layouts are common).
173
+ upload_governance compliance/ropa.md ropa
174
+ upload_governance compliance/governance/ropa.md ropa
175
+ upload_governance compliance/dpia.md dpia
176
+ upload_governance compliance/governance/dpia.md dpia
177
+ upload_governance compliance/ai-disclosure.md ai_disclosure
178
+ upload_governance compliance/governance/ai-disclosure.md ai_disclosure
179
+ upload_governance compliance/periodic-review.md periodic_review
180
+ upload_governance compliance/governance/periodic-review.md periodic_review
181
+ upload_governance compliance/incident-report.md incident_report
182
+ upload_governance compliance/governance/incident-report.md incident_report
183
+
140
184
  # Helper: emit a `--release-title …` `--change-type …` pair for a given
141
185
  # REQ, derived from its pending release-ticket H1 and the most recent
142
186
  # commit attributed to that REQ. Empty pair when neither is available.