sdlc-agent-4-enterprise-server 1.42.2 → 1.43.0
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/.env.example +23 -0
- package/README.md +3 -2
- package/dist/admin/db/config.js +14 -3
- package/dist/admin/db/config.js.map +1 -1
- package/dist/admin/db/core.d.ts +6 -0
- package/dist/admin/db/core.js +36 -10
- package/dist/admin/db/core.js.map +1 -1
- package/dist/admin/db/schema.d.ts +5 -4
- package/dist/admin/db/schema.js +302 -62
- package/dist/admin/db/schema.js.map +1 -1
- package/dist/admin/db/sessions.d.ts +3 -3
- package/dist/admin/db/sessions.js +12 -7
- package/dist/admin/db/sessions.js.map +1 -1
- package/dist/admin/db/users.js +2 -2
- package/dist/admin/db/users.js.map +1 -1
- package/dist/config/EntraConfig.d.ts +77 -0
- package/dist/config/EntraConfig.js +190 -0
- package/dist/config/EntraConfig.js.map +1 -0
- package/dist/config/index.d.ts +6 -2
- package/dist/config/index.js +25 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/unified-extensions.d.ts +10 -0
- package/dist/config/unified-extensions.js +18 -0
- package/dist/config/unified-extensions.js.map +1 -0
- package/dist/database/adapters/SqliteAdapter.js +19 -1
- package/dist/database/adapters/SqliteAdapter.js.map +1 -1
- package/dist/database/migration/ensure-pega-category-counters.d.ts +4 -3
- package/dist/database/migration/ensure-pega-category-counters.js +13 -7
- package/dist/database/migration/ensure-pega-category-counters.js.map +1 -1
- package/dist/database/repositories/UserRepository.d.ts +13 -2
- package/dist/database/repositories/UserRepository.js +62 -0
- package/dist/database/repositories/UserRepository.js.map +1 -1
- package/dist/database/repositories/interfaces.d.ts +17 -0
- package/dist/database/schema-registry/ensure-sa4e-276.d.ts +4 -0
- package/dist/database/schema-registry/ensure-sa4e-276.js +40 -0
- package/dist/database/schema-registry/ensure-sa4e-276.js.map +1 -0
- package/dist/engine/enrichment/CodeEnrichmentHandler.js +9 -2
- package/dist/engine/enrichment/CodeEnrichmentHandler.js.map +1 -1
- package/dist/engine/graph/graph-sync-service.js +1 -1
- package/dist/engine/graph/graph-sync-service.js.map +1 -1
- package/dist/engine/indexer/async-file-scanner.js +1 -1
- package/dist/engine/indexer/async-file-scanner.js.map +1 -1
- package/dist/engine/indexer/file-scanner.js +7 -1
- package/dist/engine/indexer/file-scanner.js.map +1 -1
- package/dist/engine/indexer/project-type/resolver.d.ts +1 -1
- package/dist/engine/indexer/project-type/resolver.js +3 -10
- package/dist/engine/indexer/project-type/resolver.js.map +1 -1
- package/dist/engine/parsers/grammars/tree-sitter-jsp.wasm +0 -0
- package/dist/engine/parsers/indexer/storage.d.ts +1 -0
- package/dist/engine/parsers/indexer/storage.js +21 -0
- package/dist/engine/parsers/indexer/storage.js.map +1 -1
- package/dist/engine/parsers/languages/jsp-parser.d.ts +38 -0
- package/dist/engine/parsers/languages/jsp-parser.js +171 -0
- package/dist/engine/parsers/languages/jsp-parser.js.map +1 -0
- package/dist/engine/parsers/tree-sitter-indexer.d.ts +3 -6
- package/dist/engine/parsers/tree-sitter-indexer.js +79 -15
- package/dist/engine/parsers/tree-sitter-indexer.js.map +1 -1
- package/dist/engine/parsers/types.d.ts +1 -1
- package/dist/models/pega-schema.models.d.ts +42 -42
- package/dist/modules/kb-graph/service/constants.js +36 -0
- package/dist/modules/kb-graph/service/constants.js.map +1 -1
- package/dist/modules/kb-graph/service/sync.js +1 -1
- package/dist/modules/kb-graph/service/sync.js.map +1 -1
- package/dist/modules/memory/MemoryModuleBuilder.js +10 -0
- package/dist/modules/memory/MemoryModuleBuilder.js.map +1 -1
- package/dist/modules/orchestration/McpServerConfigRepository.d.ts +9 -0
- package/dist/modules/orchestration/McpServerConfigRepository.js +17 -1
- package/dist/modules/orchestration/McpServerConfigRepository.js.map +1 -1
- package/dist/modules/pega/schema/SchemaStorageService.js +10 -1
- package/dist/modules/pega/schema/SchemaStorageService.js.map +1 -1
- package/dist/modules/security/SecurityModule.js +1 -1
- package/dist/modules/security/SecurityModule.js.map +1 -1
- package/dist/modules/security/gateguard/GateGuardRepository.d.ts +5 -5
- package/dist/modules/security/gateguard/GateGuardRepository.js +10 -10
- package/dist/modules/security/gateguard/GateGuardRepository.js.map +1 -1
- package/dist/modules/security/gateguard/GateGuardService.d.ts +6 -6
- package/dist/modules/security/gateguard/GateGuardService.js +14 -14
- package/dist/modules/security/gateguard/GateGuardService.js.map +1 -1
- package/dist/modules/security/gateguard/GateGuardToolHandler.js +7 -7
- package/dist/modules/security/gateguard/GateGuardToolHandler.js.map +1 -1
- package/dist/server/HttpServer.js +11 -0
- package/dist/server/HttpServer.js.map +1 -1
- package/dist/server/auth/index.d.ts +3 -0
- package/dist/server/auth/index.js +4 -0
- package/dist/server/auth/index.js.map +1 -0
- package/dist/server/auth/models/GitHubProfile.d.ts +75 -0
- package/dist/server/auth/models/GitHubProfile.js +34 -0
- package/dist/server/auth/models/GitHubProfile.js.map +1 -0
- package/dist/server/auth/models/GoogleClaims.d.ts +75 -0
- package/dist/server/auth/models/GoogleClaims.js +44 -0
- package/dist/server/auth/models/GoogleClaims.js.map +1 -0
- package/dist/server/auth/models/NormalizedProfile.d.ts +8 -0
- package/dist/server/auth/models/NormalizedProfile.js +2 -0
- package/dist/server/auth/models/NormalizedProfile.js.map +1 -0
- package/dist/server/auth/models/SsoProviderConfig.d.ts +14 -0
- package/dist/server/auth/models/SsoProviderConfig.js +2 -0
- package/dist/server/auth/models/SsoProviderConfig.js.map +1 -0
- package/dist/server/auth/strategies/EntraProviderStrategy.d.ts +7 -0
- package/dist/server/auth/strategies/EntraProviderStrategy.js +112 -0
- package/dist/server/auth/strategies/EntraProviderStrategy.js.map +1 -0
- package/dist/server/auth/strategies/GitHubProviderStrategy.d.ts +24 -0
- package/dist/server/auth/strategies/GitHubProviderStrategy.js +133 -0
- package/dist/server/auth/strategies/GitHubProviderStrategy.js.map +1 -0
- package/dist/server/auth/strategies/GoogleProviderConfig.d.ts +23 -0
- package/dist/server/auth/strategies/GoogleProviderConfig.js +50 -0
- package/dist/server/auth/strategies/GoogleProviderConfig.js.map +1 -0
- package/dist/server/auth/strategies/GoogleProviderStrategy.d.ts +35 -0
- package/dist/server/auth/strategies/GoogleProviderStrategy.js +104 -0
- package/dist/server/auth/strategies/GoogleProviderStrategy.js.map +1 -0
- package/dist/server/auth/strategies/SsoProviderStrategy.d.ts +33 -0
- package/dist/server/auth/strategies/SsoProviderStrategy.js +2 -0
- package/dist/server/auth/strategies/SsoProviderStrategy.js.map +1 -0
- package/dist/server/auth/strategies/SsoStrategyRegistry.d.ts +13 -0
- package/dist/server/auth/strategies/SsoStrategyRegistry.js +30 -0
- package/dist/server/auth/strategies/SsoStrategyRegistry.js.map +1 -0
- package/dist/server/auth/strategies/index.d.ts +5 -0
- package/dist/server/auth/strategies/index.js +14 -0
- package/dist/server/auth/strategies/index.js.map +1 -0
- package/dist/server/auth/utils/callback-url.d.ts +22 -0
- package/dist/server/auth/utils/callback-url.js +34 -0
- package/dist/server/auth/utils/callback-url.js.map +1 -0
- package/dist/server/auth/utils/pkce-helper.d.ts +6 -0
- package/dist/server/auth/utils/pkce-helper.js +29 -0
- package/dist/server/auth/utils/pkce-helper.js.map +1 -0
- package/dist/server/auth/utils/sso-config-loader.d.ts +15 -0
- package/dist/server/auth/utils/sso-config-loader.js +35 -0
- package/dist/server/auth/utils/sso-config-loader.js.map +1 -0
- package/dist/server/middleware/jwt-auth.js +19 -12
- package/dist/server/middleware/jwt-auth.js.map +1 -1
- package/dist/server/middleware/verifiers/EntraRS256Verifier.d.ts +46 -0
- package/dist/server/middleware/verifiers/EntraRS256Verifier.js +124 -0
- package/dist/server/middleware/verifiers/EntraRS256Verifier.js.map +1 -0
- package/dist/server/middleware/verifiers/GoogleIdTokenVerifier.d.ts +34 -0
- package/dist/server/middleware/verifiers/GoogleIdTokenVerifier.js +82 -0
- package/dist/server/middleware/verifiers/GoogleIdTokenVerifier.js.map +1 -0
- package/dist/server/middleware/verifiers/JwksCache.d.ts +34 -0
- package/dist/server/middleware/verifiers/JwksCache.js +82 -0
- package/dist/server/middleware/verifiers/JwksCache.js.map +1 -0
- package/dist/server/middleware/verifiers/LocalHS256Verifier.d.ts +11 -0
- package/dist/server/middleware/verifiers/LocalHS256Verifier.js +55 -0
- package/dist/server/middleware/verifiers/LocalHS256Verifier.js.map +1 -0
- package/dist/server/middleware/verifiers/TokenVerifier.d.ts +38 -0
- package/dist/server/middleware/verifiers/TokenVerifier.js +35 -0
- package/dist/server/middleware/verifiers/TokenVerifier.js.map +1 -0
- package/dist/server/middleware/verifiers/entra-auth.d.ts +32 -0
- package/dist/server/middleware/verifiers/entra-auth.js +104 -0
- package/dist/server/middleware/verifiers/entra-auth.js.map +1 -0
- package/dist/server/middleware/verifiers/verifier.test.d.ts +5 -0
- package/dist/server/middleware/verifiers/verifier.test.js +338 -0
- package/dist/server/middleware/verifiers/verifier.test.js.map +1 -0
- package/dist/server/routes/admin/auth.js +6 -109
- package/dist/server/routes/admin/auth.js.map +1 -1
- package/dist/server/routes/admin/config.js +87 -0
- package/dist/server/routes/admin/config.js.map +1 -1
- package/dist/server/routes/admin/context.js +4 -1
- package/dist/server/routes/admin/context.js.map +1 -1
- package/dist/server/routes/admin/database.js +11 -1
- package/dist/server/routes/admin/database.js.map +1 -1
- package/dist/server/routes/admin/index.js +2 -0
- package/dist/server/routes/admin/index.js.map +1 -1
- package/dist/server/routes/admin/sso-providers.d.ts +3 -0
- package/dist/server/routes/admin/sso-providers.js +112 -0
- package/dist/server/routes/admin/sso-providers.js.map +1 -0
- package/dist/server/routes/api-index.js +13 -1
- package/dist/server/routes/api-index.js.map +1 -1
- package/dist/server/routes/auth/entra.d.ts +11 -0
- package/dist/server/routes/auth/entra.js +121 -0
- package/dist/server/routes/auth/entra.js.map +1 -0
- package/dist/server/routes/auth/sso-dynamic.d.ts +2 -0
- package/dist/server/routes/auth/sso-dynamic.js +40 -0
- package/dist/server/routes/auth/sso-dynamic.js.map +1 -0
- package/dist/server/routes/auth/sso-http-helpers.d.ts +61 -0
- package/dist/server/routes/auth/sso-http-helpers.js +162 -0
- package/dist/server/routes/auth/sso-http-helpers.js.map +1 -0
- package/dist/server/routes/auth/sso-provider.d.ts +12 -0
- package/dist/server/routes/auth/sso-provider.js +137 -0
- package/dist/server/routes/auth/sso-provider.js.map +1 -0
- package/dist/server/routes/auth/unified.d.ts +2 -0
- package/dist/server/routes/auth/unified.js +196 -0
- package/dist/server/routes/auth/unified.js.map +1 -0
- package/dist/server/routes/sa4e-215/auth.d.ts +1 -0
- package/dist/server/routes/sa4e-215/auth.js +2 -102
- package/dist/server/routes/sa4e-215/auth.js.map +1 -1
- package/dist/server/services/JitProvisioningService.d.ts +33 -0
- package/dist/server/services/JitProvisioningService.js +145 -0
- package/dist/server/services/JitProvisioningService.js.map +1 -0
- package/dist/server/services/SessionService.d.ts +15 -0
- package/dist/server/services/SessionService.js +20 -0
- package/dist/server/services/SessionService.js.map +1 -0
- package/dist/server/utils/ua.d.ts +2 -0
- package/dist/server/utils/ua.js +11 -0
- package/dist/server/utils/ua.js.map +1 -0
- package/dist/servers/atlassian/credentials/credential-schemas.d.ts +4 -4
- package/dist/shared/EventBus.d.ts +2 -0
- package/dist/shared/EventBus.js +2 -0
- package/dist/shared/EventBus.js.map +1 -1
- package/dist/viewer/admin/entra-sso.html +27 -0
- package/dist/viewer/admin/index.html +44 -5
- package/package.json +4 -1
- package/src/admin/__tests__/admin-db.test.ts +8 -0
- package/src/admin/db/config.ts +15 -5
- package/src/admin/db/core.ts +35 -10
- package/src/admin/db/schema.ts +314 -90
- package/src/admin/db/sessions.ts +14 -6
- package/src/admin/db/users.ts +2 -2
- package/src/config/EntraConfig.ts +231 -0
- package/src/config/index.ts +26 -0
- package/src/config/unified-extensions.ts +20 -0
- package/src/database/adapters/SqliteAdapter.ts +19 -1
- package/src/database/migration/ensure-pega-category-counters.ts +16 -9
- package/src/database/repositories/UserRepository.ts +70 -2
- package/src/database/repositories/__tests__/UserRepository.test.ts +99 -1
- package/src/database/repositories/interfaces.ts +13 -0
- package/src/database/schema-registry/ensure-sa4e-276.ts +41 -0
- package/src/engine/enrichment/CodeEnrichmentHandler.ts +9 -2
- package/src/engine/graph/graph-sync-service.ts +1 -1
- package/src/engine/indexer/async-file-scanner.ts +1 -1
- package/src/engine/indexer/file-scanner.ts +7 -1
- package/src/engine/indexer/project-type/resolver.ts +3 -10
- package/src/engine/parsers/__tests__/tree-sitter-indexer-tierB.test.ts +12 -0
- package/src/engine/parsers/grammar-config.json +9 -0
- package/src/engine/parsers/grammars/tree-sitter-jsp.wasm +0 -0
- package/src/engine/parsers/indexer/storage.ts +23 -0
- package/src/engine/parsers/languages/jsp-parser.js +167 -0
- package/src/engine/parsers/tree-sitter-indexer.ts +86 -21
- package/src/engine/parsers/types.ts +6 -0
- package/src/modules/kb-graph/service/constants.ts +36 -0
- package/src/modules/kb-graph/service/sync.ts +1 -1
- package/src/modules/memory/MemoryModuleBuilder.ts +11 -0
- package/src/modules/orchestration/McpServerConfigRepository.ts +17 -1
- package/src/modules/pega/schema/SchemaStorageService.ts +12 -4
- package/src/modules/security/SecurityModule.ts +1 -1
- package/src/modules/security/gateguard/GateGuardRepository.ts +10 -10
- package/src/modules/security/gateguard/GateGuardService.ts +15 -15
- package/src/modules/security/gateguard/GateGuardToolHandler.ts +7 -7
- package/src/modules/security/gateguard/__tests__/GateGuardRepository.test.ts +28 -28
- package/src/modules/security/gateguard/__tests__/GateGuardService.test.ts +50 -49
- package/src/server/HttpServer.ts +11 -0
- package/src/server/auth/index.ts +3 -0
- package/src/server/auth/models/GitHubProfile.ts +41 -0
- package/src/server/auth/models/GoogleClaims.ts +52 -0
- package/src/server/auth/models/NormalizedProfile.ts +8 -0
- package/src/server/auth/models/SsoProviderConfig.ts +14 -0
- package/src/server/auth/strategies/EntraProviderStrategy.ts +140 -0
- package/src/server/auth/strategies/GitHubProviderStrategy.ts +151 -0
- package/src/server/auth/strategies/GoogleProviderConfig.ts +78 -0
- package/src/server/auth/strategies/GoogleProviderStrategy.ts +148 -0
- package/src/server/auth/strategies/SsoProviderStrategy.ts +41 -0
- package/src/server/auth/strategies/SsoStrategyRegistry.ts +39 -0
- package/src/server/auth/strategies/__tests__/EntraProviderStrategy.state.test.ts +81 -0
- package/src/server/auth/strategies/__tests__/EntraProviderStrategy.test.ts +265 -0
- package/src/server/auth/strategies/__tests__/GitHubProviderStrategy.test.ts +129 -0
- package/src/server/auth/strategies/__tests__/GoogleProviderConfig.test.ts +69 -0
- package/src/server/auth/strategies/__tests__/GoogleProviderStrategy.test.ts +172 -0
- package/src/server/auth/strategies/__tests__/SsoStrategyRegistry.test.ts +75 -0
- package/src/server/auth/strategies/index.ts +15 -0
- package/src/server/auth/utils/callback-url.ts +35 -0
- package/src/server/auth/utils/pkce-helper.ts +32 -0
- package/src/server/auth/utils/sso-config-loader.ts +55 -0
- package/src/server/middleware/__tests__/jwt-auth.test.ts +1 -1
- package/src/server/middleware/jwt-auth.ts +19 -14
- package/src/server/middleware/verifiers/EntraRS256Verifier.ts +184 -0
- package/src/server/middleware/verifiers/GoogleIdTokenVerifier.ts +98 -0
- package/src/server/middleware/verifiers/JwksCache.ts +103 -0
- package/src/server/middleware/verifiers/LocalHS256Verifier.ts +66 -0
- package/src/server/middleware/verifiers/TokenVerifier.ts +65 -0
- package/src/server/middleware/verifiers/__tests__/GoogleIdTokenVerifier.test.ts +106 -0
- package/src/server/middleware/verifiers/entra-auth.ts +117 -0
- package/src/server/middleware/verifiers/verifier.test.ts +429 -0
- package/src/server/routes/__tests__/admin.test.ts +4 -0
- package/src/server/routes/admin/auth.ts +6 -112
- package/src/server/routes/admin/config.ts +69 -0
- package/src/server/routes/admin/context.ts +4 -1
- package/src/server/routes/admin/database.ts +11 -1
- package/src/server/routes/admin/index.ts +2 -0
- package/src/server/routes/admin/sso-providers.ts +102 -0
- package/src/server/routes/api-index.ts +13 -1
- package/src/server/routes/auth/__tests__/sso-dynamic.test.ts +108 -0
- package/src/server/routes/auth/entra.ts +143 -0
- package/src/server/routes/auth/sso-dynamic.ts +50 -0
- package/src/server/routes/auth/sso-http-helpers.ts +176 -0
- package/src/server/routes/auth/sso-provider.ts +160 -0
- package/src/server/routes/auth/unified.ts +188 -0
- package/src/server/routes/sa4e-215/__tests__/sa4e-215.routes.test.ts +7 -4
- package/src/server/routes/sa4e-215/auth.ts +3 -123
- package/src/server/services/JitProvisioningService.ts +194 -0
- package/src/server/services/SessionService.ts +20 -0
- package/src/server/services/__tests__/JitProvisioningService.test.ts +187 -0
- package/src/server/utils/ua.ts +11 -0
- package/src/shared/EventBus.ts +2 -0
- package/src/viewer/admin/entra-sso.html +27 -0
- package/src/viewer/admin/index.html +44 -5
- package/tests/contract/extensions-contract.test.ts +30 -0
- package/tests/integration/auth.test.ts +5 -1
- package/tests/integration/entra-oauth.it.test.ts +169 -0
- package/tests/integration/google-oauth.it.test.ts +173 -0
- package/tests/unit/EntraConfig.test.ts +169 -0
- package/tests/unit/entra-loopback-redirect.test.ts +49 -0
package/.env.example
CHANGED
|
@@ -72,3 +72,26 @@ CHECKSUM_MAX_ZIP_ENTRIES=50000 # trần số entry trong ZIP
|
|
|
72
72
|
# --- Bulk-check limits (SEC-04) ---
|
|
73
73
|
# Server-side cap on checksums per bulk-check request (client batches <= 1000).
|
|
74
74
|
BULK_CHECK_MAX_CHECKSUMS=5000
|
|
75
|
+
|
|
76
|
+
# =============================================================================
|
|
77
|
+
# SA4E-264 — Entra ID SSO config (env template — placeholders only)
|
|
78
|
+
# NEVER commit real values. Use local .env (untracked) or a secret manager.
|
|
79
|
+
# See FSD SA4E-264 §4.1 for validation rules.
|
|
80
|
+
# =============================================================================
|
|
81
|
+
|
|
82
|
+
# Gate flag: true/1 = enable SSO (Entra vars become REQUIRED at startup, fail-fast)
|
|
83
|
+
SSO_ENABLED=false
|
|
84
|
+
|
|
85
|
+
# --- Required when SSO_ENABLED=true (4 values from App Registration runbook SA4E-271) ---
|
|
86
|
+
ENTRA_TENANT_ID=<azure-ad-tenant-guid-or-common>
|
|
87
|
+
ENTRA_CLIENT_ID=<app-registration-client-guid>
|
|
88
|
+
ENTRA_CLIENT_SECRET=<set-via-secret-manager> # min 8 chars; NEVER a real secret in repo
|
|
89
|
+
ENTRA_REDIRECT_URI=http://localhost:48721/auth/entra/callback
|
|
90
|
+
|
|
91
|
+
# --- Optional (derived defaults when absent — see FSD §7.2) ---
|
|
92
|
+
# ENTRA_AUTHORITY=https://login.microsoftonline.com/<tenant-guid>
|
|
93
|
+
# ENTRA_ISSUER=https://login.microsoftonline.com/<tenant-guid>/v2.0
|
|
94
|
+
# ENTRA_JWKS_URI=https://login.microsoftonline.com/<tenant-guid>/discovery/v2.0/keys
|
|
95
|
+
# ENTRA_SCOPES=openid profile email offline_access
|
|
96
|
+
# SSO_ALLOWED_REDIRECTS=/admin?page=dashboard,/app/dashboard
|
|
97
|
+
# SSO_LEGACY_REDIRECT_WITH_TOKEN=false
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<img src="https://img.shields.io/badge/version-1.
|
|
9
|
+
<img src="https://img.shields.io/badge/version-1.43.0-blue?style=for-the-badge" alt="Version">
|
|
10
10
|
<img src="https://img.shields.io/badge/tools-66+-teal?style=for-the-badge" alt="Tools">
|
|
11
11
|
<img src="https://img.shields.io/badge/node-%3E%3D18-green?style=for-the-badge" alt="Node">
|
|
12
12
|
</p>
|
|
@@ -38,7 +38,7 @@ Server starts at **http://localhost:48721**. Verify it's running:
|
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
curl http://localhost:48721/health
|
|
41
|
-
# → {"status":"healthy","version":"1.
|
|
41
|
+
# → {"status":"healthy","version":"1.43.0","uptime":5,"tools_loaded":52}
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
### Development Mode (auto-reload)
|
|
@@ -233,6 +233,7 @@ The embedding model is expected at `.code-intel/models/model.onnx`. Download it:
|
|
|
233
233
|
|
|
234
234
|
| Version | Date | Ticket | Changes |
|
|
235
235
|
|---------|------|--------|---------|
|
|
236
|
+
| 1.43.0 | 2026-09-22 | SA4E-262 | Multi-provider SSO unified on `sso_providers` (Entra/Google/GitHub, Strategy pattern). Entra email verification via Microsoft `xms_edov` claim (Entra omits standard `email_verified`); loopback SSO sessions no longer User-Agent-bound so extension `/api/admin/auth/me` works; JIT provisioning rejections return `403 provisioning_rejected` with a clear reason. |
|
|
236
237
|
| 1.42.2 | 2026-09-11 | SA4E-257 | Wire DB-backed MCP server config to McpClientManager: McpServerConfigRepository loads `mcp_servers` table, initializeAll reads enabled servers from DB, real-time hooks auto connect/reconnect/disconnect on CRUD, transport normalization `streamable-http → httpStream`, mock logs removed. Regression tests pass. |
|
|
237
238
|
| 1.42.1 | 2026-09-10 | SA4E-258 | Tenant scope stamping for tool execution: `/api/tools/execute` + `/api/code/search` stamp trusted scope onto tool args via canonical `__projectId`/`__userId` (not only `_projectContext`), fixing code-intel tools (fail-closed on missing `__projectId`) that returned "No results found". Covers MCP call path (mcpServer) + KB API route. Graph migrator idempotency, query-layer scope resolution, indexing-engine fixes. KB Graph: FileContainsSymbolStrategy dir-based match for LWC/Aura components (LWC_COMPONENT no longer isolated). Regression tests added (tools-execute-scope, orchestration dynamic IT, mcpServer calltool IT). |
|
|
238
239
|
| 1.42.0 | 2026-09-08 | SA4E-301 | Multi-language tree-sitter parsers (C/C++/C#/PHP/Ruby/Scala/Swift/Kotlin) via shared GenericTreeSitterParser + regex fallback; symbol-kind fixes (struct/enum naming, method promotion, variable/property/constant separation, dedupe). Salesforce indexing (Apex/LWC/Aura/Visualforce/meta) with grammars copied to dist. KB Graph edges rebuilt from `relationships` (MembershipEdgeStrategy CONTAINS + FileContainsSymbolStrategy + inherits/implements resolve-by-name); auto-heal backfill (ensure-sa4e-301), unused edge tables dropped (303), unique index (302). Enrichment dedup (single CodeEnrichmentTaskCreator + PENDING guard, orphan task cleanup 300). Continuous budget-driven KB Graph LOD renderer. Node.js 22 LTS. |
|
package/dist/admin/db/config.js
CHANGED
|
@@ -33,9 +33,20 @@ export async function recordConfigChange(section, key, oldValue, newValue, chang
|
|
|
33
33
|
* @param limit - Max entries (default 10)
|
|
34
34
|
*/
|
|
35
35
|
export async function getConfigChanges(limit = 10) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
36
|
+
// Fail-safe: if the config_changes table is not ready yet (e.g. right after
|
|
37
|
+
// switching to a freshly-provisioned Postgres engine before migrations run),
|
|
38
|
+
// return an empty history instead of throwing. Throwing here would bubble up
|
|
39
|
+
// through GET /api/admin/config and blank out the ENTIRE config page
|
|
40
|
+
// (LLM / taskWorker / auth sections all disappear, leaving only Database).
|
|
41
|
+
// Mirrors the resilient pattern used by getLatestConfigValue/loadPersistedLLMConfig.
|
|
42
|
+
try {
|
|
43
|
+
const adapter = getDbAdapter();
|
|
44
|
+
const rows = await adapter.allAsync('SELECT * FROM config_changes ORDER BY changed_at DESC LIMIT ?', [limit]);
|
|
45
|
+
return rows.map(rowToConfigChange);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
39
50
|
}
|
|
40
51
|
/**
|
|
41
52
|
* Load the latest persisted value for a specific section.key from config_changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/admin/db/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAazC,4CAA4C;AAC5C,SAAS,iBAAiB,CAAC,CAAM;IAC/B,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB;KACtC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,GAAW,EACX,QAAuB,EACvB,QAAgB,EAChB,SAAiB,EACjB,eAAwB;IAExB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,OAAO,CAAC,QAAQ,CACpB;kCAC8B,EAC9B,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACjG,CAAC;IACF,8CAA8C;IAC9C,MAAM,OAAO,CAAC,QAAQ,CACpB;;OAEG,CACJ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAK,GAAG,EAAE;IAC/C,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/admin/db/config.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/db/core.d.ts
CHANGED
|
@@ -33,5 +33,11 @@ export declare function resetAdminDb(): void;
|
|
|
33
33
|
/**
|
|
34
34
|
* Get the raw DB instance.
|
|
35
35
|
* @deprecated Use getDbAdapter() for new code. Kept for backward compat with tests.
|
|
36
|
+
* SA4E-262 fix: delegates to getDbAdapter() to honor the unified-DB contract.
|
|
37
|
+
* The previous implementation force-initialized the SQLite adapter even when the
|
|
38
|
+
* active engine was PostgreSQL — splitting admin-UI writes (SQLite) from
|
|
39
|
+
* auth/login-page reads (PostgreSQL) and crashing the server on first
|
|
40
|
+
* sso-providers/config request (lazy SqliteAdapter.connect threw CANTOPEN and
|
|
41
|
+
* the rejection was unhandled).
|
|
36
42
|
*/
|
|
37
43
|
export declare function getAdminDb(): any;
|
package/dist/admin/db/core.js
CHANGED
|
@@ -67,18 +67,29 @@ export function getActiveDbConfig() {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
let sqliteAdapter = null;
|
|
70
|
+
// Single shared init promise — initAdapters() awaits this same promise so no
|
|
71
|
+
// caller (server boot, tests) can race schema creation / admin seeding.
|
|
72
|
+
let sqliteReady = null;
|
|
70
73
|
/**
|
|
71
74
|
* Get or create the unified SQLite adapter (singleton).
|
|
72
|
-
* Handles directory creation
|
|
75
|
+
* Handles directory creation and WAL mode. Schema init is done separately via
|
|
76
|
+
* initAdapters() (async, cross-engine) so the seeding path is identical for
|
|
77
|
+
* SQLite and PostgreSQL. SqliteAdapter async methods wrap sync calls, so awaiting
|
|
78
|
+
* initSchema/seedDefaults on SQLite resolves synchronously in practice.
|
|
73
79
|
* Note: SqliteAdapter.connect() is synchronous internally (just wraps sync calls).
|
|
74
80
|
*/
|
|
75
81
|
function getUnifiedSqliteAdapter() {
|
|
76
82
|
if (!sqliteAdapter) {
|
|
77
83
|
sqliteAdapter = new SqliteAdapter(DB_PATH);
|
|
78
|
-
//
|
|
79
|
-
void
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
// SA4E-262 fix: connect() MUST be chained into sqliteReady — the previous
|
|
85
|
+
// `void connect()` orphaned the rejection, so a CANTOPEN during lazy init
|
|
86
|
+
// crashed the whole server (unhandled rejection) instead of failing the
|
|
87
|
+
// caller's request with a 500.
|
|
88
|
+
const adapter = sqliteAdapter;
|
|
89
|
+
sqliteReady = adapter.connect()
|
|
90
|
+
.then(() => initSchema(adapter))
|
|
91
|
+
.then(() => seedDefaults(adapter))
|
|
92
|
+
.catch((err) => logger.error({ err }, '[admin] SQLite schema init failed'));
|
|
82
93
|
}
|
|
83
94
|
return sqliteAdapter;
|
|
84
95
|
}
|
|
@@ -116,6 +127,17 @@ export async function initAdapters() {
|
|
|
116
127
|
const engine = getActiveEngine();
|
|
117
128
|
if (engine === 'sqlite') {
|
|
118
129
|
getDbAdapter();
|
|
130
|
+
// Await the shared init (schema + admin seed) instead of returning
|
|
131
|
+
// immediately — otherwise the first login/seed-dependent query races init
|
|
132
|
+
// and fails (e.g. 401 in tests, missing tables).
|
|
133
|
+
if (sqliteReady) {
|
|
134
|
+
await sqliteReady;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const adapter = getDbAdapter();
|
|
138
|
+
await initSchema(adapter);
|
|
139
|
+
await seedDefaults(adapter);
|
|
140
|
+
}
|
|
119
141
|
return;
|
|
120
142
|
}
|
|
121
143
|
const configService = new DatabaseConfigService(DATA_DIR);
|
|
@@ -125,8 +147,8 @@ export async function initAdapters() {
|
|
|
125
147
|
dbAdapter = adapter;
|
|
126
148
|
// Initialize schema and seed defaults for PostgreSQL/MySQL
|
|
127
149
|
try {
|
|
128
|
-
initSchema(adapter);
|
|
129
|
-
seedDefaults(adapter);
|
|
150
|
+
await initSchema(adapter);
|
|
151
|
+
await seedDefaults(adapter);
|
|
130
152
|
}
|
|
131
153
|
catch (err) {
|
|
132
154
|
logger.error({ err }, '[admin] Failed to init schema/seed defaults');
|
|
@@ -144,10 +166,14 @@ export function resetAdminDb() {
|
|
|
144
166
|
/**
|
|
145
167
|
* Get the raw DB instance.
|
|
146
168
|
* @deprecated Use getDbAdapter() for new code. Kept for backward compat with tests.
|
|
169
|
+
* SA4E-262 fix: delegates to getDbAdapter() to honor the unified-DB contract.
|
|
170
|
+
* The previous implementation force-initialized the SQLite adapter even when the
|
|
171
|
+
* active engine was PostgreSQL — splitting admin-UI writes (SQLite) from
|
|
172
|
+
* auth/login-page reads (PostgreSQL) and crashing the server on first
|
|
173
|
+
* sso-providers/config request (lazy SqliteAdapter.connect threw CANTOPEN and
|
|
174
|
+
* the rejection was unhandled).
|
|
147
175
|
*/
|
|
148
176
|
export function getAdminDb() {
|
|
149
|
-
|
|
150
|
-
// getRawDb removed; return adapter directly for compat
|
|
151
|
-
return adapter;
|
|
177
|
+
return getDbAdapter();
|
|
152
178
|
}
|
|
153
179
|
//# sourceMappingURL=core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/admin/db/core.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/admin/db/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* admin/db/schema.ts — Admin schema initialization and seed data.
|
|
3
3
|
* SA4E-53: Accepts DatabaseAdapter (sync interface) instead of raw better-sqlite3.
|
|
4
|
+
* Multi-engine: uses async adapter API + per-engine DDL/DML so it runs on both
|
|
5
|
+
* SQLite and PostgreSQL (PostgresAdapter throws on the sync exec/get/run methods).
|
|
4
6
|
*/
|
|
5
|
-
import type {
|
|
6
|
-
|
|
7
|
-
export declare function initSchema(db: SyncDatabaseAdapter): void;
|
|
7
|
+
import type { DatabaseAdapter } from '../../database/adapters/DatabaseAdapter.js';
|
|
8
|
+
export declare function initSchema(db: DatabaseAdapter): Promise<void>;
|
|
8
9
|
/** Seed default access groups and admin user. */
|
|
9
|
-
export declare function seedDefaults(db:
|
|
10
|
+
export declare function seedDefaults(db: DatabaseAdapter): Promise<void>;
|