- Introduced a comprehensive CI job structure for VEX Lens, including build, test, linting, and load testing. - Defined load test parameters and SLOs for VEX Lens API and Issuer Directory. - Created Grafana dashboards and alerting mechanisms for monitoring API performance and error rates. - Established offline posture guidelines for CI jobs and load testing. feat: Implement deterministic projection verification script - Added `verify_projection.sh` script for verifying the integrity of projection exports against expected hashes. - Ensured robust error handling for missing files and hash mismatches. feat: Develop Vuln Explorer CI and Ops Plan - Created CI jobs for Vuln Explorer, including build, test, and replay verification. - Implemented backup and disaster recovery strategies for MongoDB and Redis. - Established Merkle anchoring verification and automation for ledger projector. feat: Introduce EventEnvelopeHasher for hashing event envelopes - Implemented `EventEnvelopeHasher` to compute SHA256 hashes for event envelopes. feat: Add Risk Store and Dashboard components - Developed `RiskStore` for managing risk data and state. - Created `RiskDashboardComponent` for displaying risk profiles with filtering capabilities. - Implemented unit tests for `RiskStore` and `RiskDashboardComponent`. feat: Enhance Vulnerability Detail Component - Developed `VulnerabilityDetailComponent` for displaying detailed information about vulnerabilities. - Implemented error handling for missing vulnerability IDs and loading failures.
20 lines
661 B
Bash
20 lines
661 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "$0")/../../" && pwd)"
|
|
if ! command -v python >/dev/null 2>&1; then
|
|
echo "python not found" >&2; exit 127; fi
|
|
if ! python - <<'PY' >/dev/null 2>&1; then
|
|
import jsonschema
|
|
PY
|
|
then
|
|
echo "python jsonschema module not installed" >&2; exit 127; fi
|
|
python - <<'PY'
|
|
import json, pathlib
|
|
from jsonschema import validate
|
|
root = pathlib.Path('ops/devops/telemetry/tests')
|
|
config = json.loads((root / 'config-valid.json').read_text())
|
|
schema = json.loads(pathlib.Path('docs/modules/telemetry/schemas/telemetry-config.schema.json').read_text())
|
|
validate(config, schema)
|
|
print('telemetry-config schema ok')
|
|
PY
|