forked from wangziqi/gongxue-base
feat: establish production SaaS foundation
This commit is contained in:
81
package.json
81
package.json
@@ -11,8 +11,13 @@
|
||||
"packages/*",
|
||||
"scripts/import-pocketbase"
|
||||
],
|
||||
"overrides": {
|
||||
"lodash-es": "4.18.1",
|
||||
"swiper": "12.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"pg": "^8.16.3",
|
||||
"selfsigned": "2.4.1",
|
||||
"supabase": "^2.107.0",
|
||||
"write-excel-file": "^4.1.1"
|
||||
},
|
||||
@@ -25,8 +30,9 @@
|
||||
"check:taro": "npm --workspace @tiku-saas/taro run check",
|
||||
"check:worker": "npm --workspace @tiku-saas/worker run check",
|
||||
"check:refactor": "npm run check:api && npm run check:worker && npm run check:importer && npm run pb:import:validate && npm run test:readiness && npm run test:pb:dry-run && npm run test:api",
|
||||
"audit:runtime": "npm audit --omit=dev --audit-level=high",
|
||||
"audit:taro:toolchain": "npm audit --workspace @tiku-saas/taro --audit-level=high",
|
||||
"audit:runtime": "npm audit --registry=${NPM_AUDIT_REGISTRY:-https://registry.npmjs.org/} --omit=dev --audit-level=high",
|
||||
"audit:taro:toolchain": "npm audit --registry=${NPM_AUDIT_REGISTRY:-https://registry.npmjs.org/} --workspace @tiku-saas/taro --audit-level=high",
|
||||
"audit:taro:supply-chain": "node scripts/taro-supply-chain-audit.js",
|
||||
"security:repo": "node scripts/repo-security-scan.js",
|
||||
"docker:api:build": "docker compose -f docker-compose.api.yml build",
|
||||
"docker:api:up": "docker compose -f docker-compose.api.yml up api",
|
||||
@@ -36,38 +42,66 @@
|
||||
"supabase:status": "supabase status",
|
||||
"supabase:reset": "supabase db reset",
|
||||
"db:smoke-seed": "node scripts/smoke-seed.js",
|
||||
"db:smoke-seed:test": "node scripts/smoke-seed.js --confirm=SMOKE_SEED_LOCAL_OR_CI_ONLY",
|
||||
"smoke:core-api": "node scripts/smoke-core-api.js",
|
||||
"smoke:auth:remote": "node scripts/remote-auth-jwt-smoke.js",
|
||||
"test:api": "npm run db:smoke-seed && npm run build:api && node scripts/api-integration-test.js --start-server",
|
||||
"test:api": "npm run db:smoke-seed:test && npm run build:api && node scripts/api-integration-test.js --start-server --confirm=SMOKE_SEED_LOCAL_OR_CI_ONLY",
|
||||
"perf:api:local": "npm run build:api && node scripts/api-performance-benchmark.js",
|
||||
"perf:api:docker-4c16g": "node scripts/run-docker-4c16g-benchmark.js",
|
||||
"perf:postgres:evidence": "node scripts/postgres-tuning-evidence.js",
|
||||
"perf:postgres:sql": "node scripts/postgres-tuning-evidence.js --print-sql",
|
||||
"test:worker:crm": "npm run db:smoke-seed && npm run build:worker && node scripts/crm-worker-integration-test.js",
|
||||
"test:worker:commerce": "npm run db:smoke-seed && npm run build:worker && node scripts/commerce-worker-integration-test.js",
|
||||
"test:worker:platform-billing": "npm run db:smoke-seed && npm run build:worker && node scripts/platform-billing-worker-integration-test.js",
|
||||
"test:worker:platform-usage": "npm run db:smoke-seed && npm run build:worker && node scripts/platform-usage-worker-integration-test.js",
|
||||
"test:worker:platform-usage-overage": "npm run db:smoke-seed && npm run build:worker && node scripts/platform-usage-overage-worker-integration-test.js",
|
||||
"test:worker:platform-dunning": "npm run db:smoke-seed && npm run build:worker && node scripts/platform-dunning-worker-integration-test.js",
|
||||
"test:worker:platform-dunning-notifications": "npm run db:smoke-seed && npm run build:worker && node scripts/platform-dunning-notification-worker-integration-test.js",
|
||||
"test:worker:platform-audit-alerts": "npm run db:smoke-seed && npm run build:worker && node scripts/platform-audit-alert-worker-integration-test.js",
|
||||
"test:worker:platform-audit-notifications": "npm run db:smoke-seed && npm run build:worker && node scripts/platform-audit-notification-worker-integration-test.js",
|
||||
"test:worker:assets": "npm run db:smoke-seed && npm run build:worker && node scripts/asset-worker-integration-test.js",
|
||||
"test:worker:exports": "npm run db:smoke-seed && npm run build:worker && node scripts/export-worker-integration-test.js",
|
||||
"test:worker:imports": "npm run db:smoke-seed && npm run build:worker && node scripts/import-worker-integration-test.js",
|
||||
"test:worker:public-banks": "npm run db:smoke-seed && npm run build:worker && node scripts/public-bank-worker-integration-test.js",
|
||||
"test:worker:student-supervision": "npm run db:smoke-seed && npm run build:worker && node scripts/student-supervision-worker-integration-test.js",
|
||||
"test:rls": "npm run db:smoke-seed && node scripts/rls-tenant-isolation-test.js",
|
||||
"test:readiness": "node scripts/production-readiness-check-test.js && node scripts/production-config-failfast-test.js && node scripts/aliyun-pnvs-provider-contract-test.js && node scripts/configure-aliyun-pnvs-provider-test.js && node scripts/diagnose-aliyun-pnvs-provider-test.js && node scripts/disable-legacy-sms-providers-test.js && node --import tsx scripts/taro-runtime-config-test.js && node --import tsx scripts/taro-api-auth-mode-test.js && node scripts/taro-student-product-guardrails-test.js && node scripts/product-scope-guardrails-test.js && node scripts/taro-route-contract-test.js && node scripts/taro-api-contract-test.js && node scripts/taro-persona-contract-test.js && node scripts/taro-h5-release-guardrails-test.js && node scripts/taro-h5-release-manifest-test.js && node scripts/taro-visual-guardrails-test.js && node --import tsx scripts/auto-badge-concurrency-test.js && node scripts/postgres-tuning-evidence-test.js && node scripts/docker-benchmark-resource-evidence-test.js && node scripts/repo-security-scan-test.js && node scripts/remote-auth-jwt-smoke-test.js && node scripts/remote-sms-login-smoke-test.js && node scripts/launch-persona-smoke-test.js && node scripts/production-launch-gate-test.js",
|
||||
"perf:tenant-students:plan": "node scripts/tenant-student-capacity.js --mode=plan",
|
||||
"perf:tenant-students:seed": "node scripts/tenant-student-capacity.js --mode=seed",
|
||||
"perf:tenant-students:run": "node scripts/tenant-student-capacity.js --mode=run",
|
||||
"perf:tenant-students:evidence": "node scripts/tenant-student-capacity.js --mode=evidence",
|
||||
"perf:tenant-students:benchmark": "node scripts/tenant-student-capacity.js --mode=benchmark",
|
||||
"perf:tenant-students:cleanup": "node scripts/tenant-student-capacity.js --mode=cleanup",
|
||||
"test:worker:crm": "npm run db:smoke-seed:test && npm run build:worker && node scripts/crm-worker-integration-test.js",
|
||||
"test:worker:commerce": "npm run db:smoke-seed:test && npm run build:worker && node scripts/commerce-worker-integration-test.js",
|
||||
"test:worker:platform-billing": "npm run db:smoke-seed:test && npm run build:worker && node scripts/platform-billing-worker-integration-test.js",
|
||||
"test:worker:platform-usage": "npm run db:smoke-seed:test && npm run build:worker && node scripts/platform-usage-worker-integration-test.js",
|
||||
"test:worker:platform-usage-overage": "npm run db:smoke-seed:test && npm run build:worker && node scripts/platform-usage-overage-worker-integration-test.js",
|
||||
"test:worker:platform-dunning": "npm run db:smoke-seed:test && npm run build:worker && node scripts/platform-dunning-worker-integration-test.js",
|
||||
"test:worker:platform-dunning-notifications": "npm run db:smoke-seed:test && npm run build:worker && node scripts/platform-dunning-notification-worker-integration-test.js",
|
||||
"test:worker:platform-audit-alerts": "npm run db:smoke-seed:test && npm run build:worker && node scripts/platform-audit-alert-worker-integration-test.js",
|
||||
"test:worker:platform-audit-notifications": "npm run db:smoke-seed:test && npm run build:worker && node scripts/platform-audit-notification-worker-integration-test.js",
|
||||
"test:worker:assets": "npm run db:smoke-seed:test && npm run build:worker && node scripts/asset-worker-integration-test.js",
|
||||
"test:worker:exports": "npm run db:smoke-seed:test && npm run build:worker && node scripts/export-worker-integration-test.js",
|
||||
"test:worker:imports": "npm run db:smoke-seed:test && npm run build:worker && node scripts/import-worker-integration-test.js --confirm=SMOKE_SEED_LOCAL_OR_CI_ONLY",
|
||||
"test:worker:public-banks": "npm run db:smoke-seed:test && npm run build:worker && node scripts/public-bank-worker-integration-test.js",
|
||||
"test:worker:student-supervision": "npm run db:smoke-seed:test && npm run build:worker && node scripts/student-supervision-worker-integration-test.js",
|
||||
"test:rls": "npm run db:smoke-seed:test && node scripts/rls-tenant-isolation-test.js --confirm=SMOKE_SEED_LOCAL_OR_CI_ONLY",
|
||||
"test:readiness": "node scripts/production-readiness-check-test.js && node scripts/production-config-failfast-test.js && node --import tsx scripts/api-cors-policy-test.js && node scripts/destructive-test-database-guard-test.js && node scripts/bootstrap-backend-runtime-roles-test.js && node scripts/backend-runtime-role-contract-test.js && node scripts/tenant-foreign-key-audit-test.js && node scripts/tenant-student-capacity-contract-test.js && node scripts/aliyun-pnvs-provider-contract-test.js && node scripts/configure-aliyun-pnvs-provider-test.js && node scripts/diagnose-aliyun-pnvs-provider-test.js && node scripts/disable-legacy-sms-providers-test.js && node scripts/sms-rate-limit-contract-test.js && node scripts/audit-log-capacity-contract-test.js && node scripts/data-api-security-contract-test.js && node --import tsx scripts/auth-context-platform-admin-test.js && node --import tsx scripts/tenant-permission-resolution-test.js && node --import tsx scripts/tenant-student-cursor-test.js && node scripts/bootstrap-platform-admin-test.js && node --import tsx scripts/taro-runtime-config-test.js && node --import tsx scripts/taro-api-auth-mode-test.js && node --import tsx scripts/taro-app-foundation-test.js && node scripts/taro-student-product-guardrails-test.js && node scripts/product-scope-guardrails-test.js && node --import tsx scripts/taro-route-contract-test.js && node --import tsx scripts/taro-build-matrix-contract-test.js && node scripts/taro-api-contract-test.js && node scripts/taro-api-compatibility-contract-test.js && node scripts/taro-components-h5-runtime-patch-test.js && node scripts/taro-supply-chain-audit-test.js && node --import tsx scripts/taro-persona-contract-test.js && node scripts/taro-h5-release-guardrails-test.js && node scripts/taro-h5-release-manifest-test.js && node scripts/taro-visual-guardrails-test.js && node --import tsx scripts/auto-badge-concurrency-test.js --confirm=SMOKE_SEED_LOCAL_OR_CI_ONLY && node scripts/postgres-tuning-evidence-test.js && node scripts/docker-benchmark-resource-evidence-test.js && node scripts/api-docker-runtime-contract-test.js && node scripts/repo-security-scan-test.js && node scripts/remote-auth-jwt-smoke-test.js && node scripts/remote-sms-login-smoke-test.js && node scripts/remote-tenant-cors-smoke-test.js && node scripts/launch-persona-smoke-test.js && node scripts/production-launch-gate-test.js && node scripts/deploy-contract-test.js",
|
||||
"test:destructive-db-guard": "node scripts/destructive-test-database-guard-test.js",
|
||||
"test:tenant-students:capacity:contract": "node scripts/tenant-student-capacity-contract-test.js",
|
||||
"audit:tenant-foreign-keys": "node scripts/tenant-foreign-key-audit.js",
|
||||
"test:tenant-foreign-keys": "node scripts/tenant-foreign-key-audit-test.js",
|
||||
"test:tenant-students:capacity:smoke": "node scripts/tenant-student-capacity.js --mode=smoke --tenant-slug=capacity-test-students-smoke --count=250 --batch-size=250 --iterations=2 --warmup-iterations=1 --confirm=SMOKE_SEED_LOCAL_OR_CI_ONLY",
|
||||
"test:deploy:contract": "node scripts/deploy-contract-test.js && node --import tsx scripts/worker-scheduling-contract-test.js",
|
||||
"test:worker:scheduling": "node --import tsx scripts/worker-scheduling-contract-test.js",
|
||||
"test:api:operations": "npm run build:api && node scripts/api-server-operations-contract-test.js",
|
||||
"test:api:cors": "node --import tsx scripts/api-cors-policy-test.js && npm run test:api:operations",
|
||||
"test:auth:foundation": "node --import tsx scripts/auth-context-platform-admin-test.js && node --import tsx scripts/tenant-permission-resolution-test.js && node --import tsx scripts/tenant-resolve-contract-test.js && node scripts/bootstrap-platform-admin-test.js",
|
||||
"test:data-api:security": "node scripts/data-api-security-contract-test.js",
|
||||
"test:audit-log:capacity": "node scripts/audit-log-capacity-contract-test.js",
|
||||
"test:taro:foundation": "node --import tsx scripts/taro-runtime-config-test.js && node --import tsx scripts/taro-api-auth-mode-test.js && node --import tsx scripts/taro-app-foundation-test.js && node --import tsx scripts/taro-route-contract-test.js && node --import tsx scripts/taro-build-matrix-contract-test.js && node --import tsx scripts/taro-persona-contract-test.js",
|
||||
"test:taro:api-compatibility": "node scripts/taro-api-compatibility-contract-test.js",
|
||||
"test:taro:supply-chain": "node scripts/taro-components-h5-runtime-patch-test.js && node scripts/taro-supply-chain-audit-test.js",
|
||||
"check:taro:h5-runtime-patches": "node scripts/taro-components-h5-runtime-patch.js --check",
|
||||
"patch:taro:h5-runtime": "node scripts/taro-components-h5-runtime-patch.js --apply",
|
||||
"test:auth:remote-smoke": "node scripts/remote-auth-jwt-smoke-test.js",
|
||||
"bootstrap:platform-admin": "node scripts/bootstrap-platform-admin.js",
|
||||
"bootstrap:db-runtime-roles": "node scripts/bootstrap-backend-runtime-roles.js",
|
||||
"configure:aliyun-pnvs": "node scripts/configure-aliyun-pnvs-provider.js",
|
||||
"diagnose:aliyun-pnvs": "node scripts/diagnose-aliyun-pnvs-provider.js",
|
||||
"disable:legacy-sms-providers": "node scripts/disable-legacy-sms-providers.js",
|
||||
"smoke:sms-login:remote": "node scripts/remote-sms-login-smoke.js",
|
||||
"smoke:tenant-cors:remote": "node scripts/remote-tenant-cors-smoke.js",
|
||||
"test:launch-gate": "node scripts/production-launch-gate-test.js",
|
||||
"smoke:launch-persona": "npm run build:api && node scripts/launch-persona-smoke.js",
|
||||
"smoke:taro:h5": "node scripts/taro-h5-static-smoke.js",
|
||||
"smoke:taro:h5:interaction": "node scripts/taro-h5-interaction-smoke.js",
|
||||
"serve:taro:h5:qa": "node scripts/taro-h5-interaction-smoke.js --serve-only",
|
||||
"manifest:taro:h5": "node scripts/taro-h5-release-manifest.js",
|
||||
"guard:taro:visual": "node scripts/taro-visual-guardrails.js",
|
||||
"test:pb:dry-run": "node scripts/pb-dry-run-report-test.js",
|
||||
@@ -77,12 +111,19 @@
|
||||
"readiness:production:db": "node scripts/production-readiness-check.js --check-db",
|
||||
"launch:gate": "node scripts/production-launch-gate.js",
|
||||
"perf:summary": "node scripts/performance-summary.js",
|
||||
"test:api:remote": "node scripts/api-integration-test.js",
|
||||
"dev:taro:h5": "npm --workspace @tiku-saas/taro run dev:h5",
|
||||
"build:taro:h5": "npm --workspace @tiku-saas/taro run build:h5",
|
||||
"build:taro:h5:student": "npm --workspace @tiku-saas/taro run build:h5:student",
|
||||
"build:taro:h5:tenant": "npm --workspace @tiku-saas/taro run build:h5:tenant",
|
||||
"build:taro:h5:platform": "npm --workspace @tiku-saas/taro run build:h5:platform",
|
||||
"build:taro:h5:preview": "npm run build:taro:h5:student:preview && npm run build:taro:h5:tenant:preview && npm run build:taro:h5:platform:preview",
|
||||
"build:taro:h5:student:preview": "npm --workspace @tiku-saas/taro run build:h5:student:preview",
|
||||
"build:taro:h5:tenant:preview": "npm --workspace @tiku-saas/taro run build:h5:tenant:preview",
|
||||
"build:taro:h5:platform:preview": "npm --workspace @tiku-saas/taro run build:h5:platform:preview",
|
||||
"dev:taro:weapp:student": "npm --workspace @tiku-saas/taro run dev:weapp:student",
|
||||
"build:taro:weapp:student": "npm --workspace @tiku-saas/taro run build:weapp:student",
|
||||
"build:taro:weapp:student:production": "npm --workspace @tiku-saas/taro run build:weapp:student:production",
|
||||
"guard:taro:weapp": "node scripts/taro-weapp-release-guardrails.js",
|
||||
"pb:schema:summary": "npm --workspace @tiku-saas/import-pocketbase run schema:summary",
|
||||
"pb:schema:risk": "npm --workspace @tiku-saas/import-pocketbase run schema:risk",
|
||||
"pb:export:sqlite": "npm --workspace @tiku-saas/import-pocketbase run export:sqlite --",
|
||||
|
||||
Reference in New Issue
Block a user