Files
Edu/services/parent-bff/package.json
SpecialX 2229309a1e feat: initialize parent-bff service with full core features
add complete parent-bff implementation including:
- GraphQL endpoint with depth/cost validation
- ChildGuard越权校验 with redis cache and singleflight
- parallel orchestration with partial failure fallback
- three-level cache fallback strategy (Redis + LRU + downstream)
- Kafka consumer for cache invalidation and notification push
- opossum circuit breaker for downstream services
- Prometheus metrics and SLO alerts
- Helm chart for k8s deployment with multi-environment configs
- Grafana dashboard for observability
- complete unit and integration tests
2026-07-10 18:49:06 +08:00

54 lines
1.5 KiB
JSON

{
"name": "@edu/parent-bff",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"dev": "nest start --watch",
"build": "nest build",
"start": "node dist/main.js",
"test": "vitest run",
"lint": "eslint src test",
"typecheck": "tsc --noEmit -p tsconfig.test.json"
},
"dependencies": {
"@graphql-tools/schema": "^10.0.6",
"@graphql-tools/utils": "^10.6.0",
"@graphql-yoga/plugin-response-cache": "^3.1.0",
"@grpc/grpc-js": "^1.12.0",
"@grpc/proto-loader": "^0.7.13",
"@nestjs/common": "^10.4.0",
"@nestjs/core": "^10.4.0",
"@nestjs/platform-express": "^10.4.0",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/auto-instrumentations-node": "^0.50.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.53.0",
"@opentelemetry/sdk-node": "^0.53.0",
"dataloader": "^2.2.2",
"graphql": "^16.9.0",
"graphql-depth-limit": "^1.1.0",
"graphql-query-complexity": "^1.0.0",
"graphql-yoga": "^5.7.0",
"ioredis": "^5.4.1",
"kafkajs": "^2.2.4",
"opossum": "^8.4.0",
"pino": "^9.4.0",
"prom-client": "^15.1.0",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.0",
"zod": "^3.23.0"
},
"devDependencies": {
"@nestjs/cli": "^10.4.0",
"@types/express": "^4.17.0",
"@types/node": "^22.0.0",
"@types/opossum": "^8.1.4",
"@vitest/coverage-v8": "^2.1.0",
"eslint": "^9.10.0",
"pino-pretty": "^11.2.0",
"testcontainers": "^10.13.2",
"typescript": "^5.6.0",
"vitest": "^2.1.0"
}
}