mobbdev 1.4.2 → 1.4.9
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/dist/args/commands/upload_ai_blame.mjs +109 -17
- package/dist/index.mjs +760 -335
- package/package.json +10 -10
|
@@ -94,6 +94,9 @@ function getSdk(client, withWrapper = defaultWrapper) {
|
|
|
94
94
|
performCliLogin(variables, requestHeaders, signal) {
|
|
95
95
|
return withWrapper((wrappedRequestHeaders) => client.request({ document: PerformCliLoginDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "performCliLogin", "mutation", variables);
|
|
96
96
|
},
|
|
97
|
+
SetQuarantineEnabled(variables, requestHeaders, signal) {
|
|
98
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: SetQuarantineEnabledDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "SetQuarantineEnabled", "mutation", variables);
|
|
99
|
+
},
|
|
97
100
|
CreateProject(variables, requestHeaders, signal) {
|
|
98
101
|
return withWrapper((wrappedRequestHeaders) => client.request({ document: CreateProjectDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "CreateProject", "mutation", variables);
|
|
99
102
|
},
|
|
@@ -135,7 +138,7 @@ function getSdk(client, withWrapper = defaultWrapper) {
|
|
|
135
138
|
}
|
|
136
139
|
};
|
|
137
140
|
}
|
|
138
|
-
var AiBlameInferenceType, FixQuestionInputType, Language, ManifestAction, Effort_To_Apply_Fix_Enum, Fix_Rating_Tag_Enum, Fix_Report_State_Enum, Fix_State_Enum, IssueLanguage_Enum, IssueType_Enum, Pr_Status_Enum, Project_Role_Type_Enum, Vulnerability_Report_Issue_Category_Enum, Vulnerability_Report_Issue_State_Enum, Vulnerability_Report_Issue_Tag_Enum, Vulnerability_Report_Vendor_Enum, Vulnerability_Severity_Enum, FixDetailsFragmentDoc, FixReportSummaryFieldsFragmentDoc, MeDocument, GetLastOrgAndNamedProjectDocument, GetLastOrgDocument, GetEncryptedApiTokenDocument, FixReportStateDocument, GetVulnerabilityReportPathsDocument, GetAnalysisSubscriptionDocument, GetAnalysisDocument, GetFixesDocument, GetVulByNodesMetadataDocument, GetFalsePositiveDocument, UpdateScmTokenDocument, UploadS3BucketInfoDocument, GetTracyDiffUploadUrlDocument, AnalyzeCommitForExtensionAiBlameDocument, GetAiBlameInferenceDocument, GetAiBlameAttributionPromptDocument, GetPromptSummaryDocument, UploadAiBlameInferencesInitDocument, FinalizeAiBlameInferencesUploadDocument, UploadTracyRecordsDocument, GetTracyRawDataUploadUrlDocument, DigestVulnerabilityReportDocument, SubmitVulnerabilityReportDocument, CreateCommunityUserDocument, CreateCliLoginDocument, PerformCliLoginDocument, CreateProjectDocument, ValidateRepoUrlDocument, GitReferenceDocument, AutoPrAnalysisDocument, GetFixReportsByRepoUrlDocument, GetReportFixesDocument, GetLatestReportByRepoUrlDocument, UpdateDownloadedFixDataDocument, GetUserMvsAutoFixDocument, StreamBlameAiAnalysisRequestsDocument, StreamCommitBlameRequestsDocument, ScanSkillDocument, SkillVerdictsByMd5Document, defaultWrapper;
|
|
141
|
+
var AiBlameInferenceType, FixQuestionInputType, Language, ManifestAction, Effort_To_Apply_Fix_Enum, Fix_Rating_Tag_Enum, Fix_Report_State_Enum, Fix_State_Enum, IssueLanguage_Enum, IssueType_Enum, Pr_Status_Enum, Project_Role_Type_Enum, Vulnerability_Report_Issue_Category_Enum, Vulnerability_Report_Issue_State_Enum, Vulnerability_Report_Issue_Tag_Enum, Vulnerability_Report_Vendor_Enum, Vulnerability_Severity_Enum, FixDetailsFragmentDoc, FixReportSummaryFieldsFragmentDoc, MeDocument, GetLastOrgAndNamedProjectDocument, GetLastOrgDocument, GetEncryptedApiTokenDocument, FixReportStateDocument, GetVulnerabilityReportPathsDocument, GetAnalysisSubscriptionDocument, GetAnalysisDocument, GetFixesDocument, GetVulByNodesMetadataDocument, GetFalsePositiveDocument, UpdateScmTokenDocument, UploadS3BucketInfoDocument, GetTracyDiffUploadUrlDocument, AnalyzeCommitForExtensionAiBlameDocument, GetAiBlameInferenceDocument, GetAiBlameAttributionPromptDocument, GetPromptSummaryDocument, UploadAiBlameInferencesInitDocument, FinalizeAiBlameInferencesUploadDocument, UploadTracyRecordsDocument, GetTracyRawDataUploadUrlDocument, DigestVulnerabilityReportDocument, SubmitVulnerabilityReportDocument, CreateCommunityUserDocument, CreateCliLoginDocument, PerformCliLoginDocument, SetQuarantineEnabledDocument, CreateProjectDocument, ValidateRepoUrlDocument, GitReferenceDocument, AutoPrAnalysisDocument, GetFixReportsByRepoUrlDocument, GetReportFixesDocument, GetLatestReportByRepoUrlDocument, UpdateDownloadedFixDataDocument, GetUserMvsAutoFixDocument, StreamBlameAiAnalysisRequestsDocument, StreamCommitBlameRequestsDocument, ScanSkillDocument, SkillVerdictsByMd5Document, defaultWrapper;
|
|
139
142
|
var init_client_generates = __esm({
|
|
140
143
|
"src/features/analysis/scm/generates/client_generates.ts"() {
|
|
141
144
|
"use strict";
|
|
@@ -260,6 +263,7 @@ var init_client_generates = __esm({
|
|
|
260
263
|
IssueType_Enum2["HttpParameterPollution"] = "HTTP_PARAMETER_POLLUTION";
|
|
261
264
|
IssueType_Enum2["HttpResponseSplitting"] = "HTTP_RESPONSE_SPLITTING";
|
|
262
265
|
IssueType_Enum2["IframeWithoutSandbox"] = "IFRAME_WITHOUT_SANDBOX";
|
|
266
|
+
IssueType_Enum2["ImproperCertificateValidation"] = "IMPROPER_CERTIFICATE_VALIDATION";
|
|
263
267
|
IssueType_Enum2["ImproperExceptionHandling"] = "IMPROPER_EXCEPTION_HANDLING";
|
|
264
268
|
IssueType_Enum2["ImproperResourceShutdownOrRelease"] = "IMPROPER_RESOURCE_SHUTDOWN_OR_RELEASE";
|
|
265
269
|
IssueType_Enum2["ImproperStringFormatting"] = "IMPROPER_STRING_FORMATTING";
|
|
@@ -278,6 +282,7 @@ var init_client_generates = __esm({
|
|
|
278
282
|
IssueType_Enum2["InsecureTmpFile"] = "INSECURE_TMP_FILE";
|
|
279
283
|
IssueType_Enum2["InsecureUuidVersion"] = "INSECURE_UUID_VERSION";
|
|
280
284
|
IssueType_Enum2["InsufficientLogging"] = "INSUFFICIENT_LOGGING";
|
|
285
|
+
IssueType_Enum2["J2EeGetConnection"] = "J2EE_GET_CONNECTION";
|
|
281
286
|
IssueType_Enum2["JqueryDeprecatedSymbols"] = "JQUERY_DEPRECATED_SYMBOLS";
|
|
282
287
|
IssueType_Enum2["LeftoverDebugCode"] = "LEFTOVER_DEBUG_CODE";
|
|
283
288
|
IssueType_Enum2["LocaleDependentComparison"] = "LOCALE_DEPENDENT_COMPARISON";
|
|
@@ -593,6 +598,7 @@ var init_client_generates = __esm({
|
|
|
593
598
|
id
|
|
594
599
|
organization {
|
|
595
600
|
id
|
|
601
|
+
enableV2Fixes
|
|
596
602
|
projects(where: {name: {_eq: $projectName}}) {
|
|
597
603
|
name
|
|
598
604
|
id
|
|
@@ -611,6 +617,7 @@ var init_client_generates = __esm({
|
|
|
611
617
|
id
|
|
612
618
|
organization {
|
|
613
619
|
id
|
|
620
|
+
enableV2Fixes
|
|
614
621
|
}
|
|
615
622
|
}
|
|
616
623
|
}
|
|
@@ -941,6 +948,12 @@ var init_client_generates = __esm({
|
|
|
941
948
|
level
|
|
942
949
|
justification
|
|
943
950
|
}
|
|
951
|
+
appliedSkills
|
|
952
|
+
mcpCalls {
|
|
953
|
+
mcpServer
|
|
954
|
+
mcpTool
|
|
955
|
+
callCount
|
|
956
|
+
}
|
|
944
957
|
}
|
|
945
958
|
}
|
|
946
959
|
... on PromptSummaryProcessing {
|
|
@@ -1092,6 +1105,13 @@ var init_client_generates = __esm({
|
|
|
1092
1105
|
performCliLogin(loginId: $loginId) {
|
|
1093
1106
|
status
|
|
1094
1107
|
}
|
|
1108
|
+
}
|
|
1109
|
+
`;
|
|
1110
|
+
SetQuarantineEnabledDocument = `
|
|
1111
|
+
mutation SetQuarantineEnabled($enabled: Boolean!) {
|
|
1112
|
+
update_organization(where: {}, _set: {quarantineEnabled: $enabled}) {
|
|
1113
|
+
affected_rows
|
|
1114
|
+
}
|
|
1095
1115
|
}
|
|
1096
1116
|
`;
|
|
1097
1117
|
CreateProjectDocument = `
|
|
@@ -1277,12 +1297,15 @@ var init_client_generates = __esm({
|
|
|
1277
1297
|
SkillVerdictsByMd5Document = `
|
|
1278
1298
|
query SkillVerdictsByMd5($md5s: [String!]!) {
|
|
1279
1299
|
skillVerdictsByMd5(md5s: $md5s) {
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1300
|
+
quarantineEnabled
|
|
1301
|
+
verdicts {
|
|
1302
|
+
md5
|
|
1303
|
+
verdict
|
|
1304
|
+
summary
|
|
1305
|
+
scannerName
|
|
1306
|
+
scannerVersion
|
|
1307
|
+
scannedAt
|
|
1308
|
+
}
|
|
1286
1309
|
}
|
|
1287
1310
|
}
|
|
1288
1311
|
`;
|
|
@@ -1708,6 +1731,7 @@ var init_getIssueType = __esm({
|
|
|
1708
1731
|
["NO_EQUIVALENCE_METHOD" /* NoEquivalenceMethod */]: "Class Does Not Implement Equivalence Method",
|
|
1709
1732
|
["INFORMATION_EXPOSURE_VIA_HEADERS" /* InformationExposureViaHeaders */]: "Information Exposure via Headers",
|
|
1710
1733
|
["DEBUG_ENABLED" /* DebugEnabled */]: "Debug Enabled",
|
|
1734
|
+
["J2EE_GET_CONNECTION" /* J2EeGetConnection */]: "J2EE Bad Practices: getConnection()",
|
|
1711
1735
|
["LEFTOVER_DEBUG_CODE" /* LeftoverDebugCode */]: "Leftover Debug Code",
|
|
1712
1736
|
["POOR_ERROR_HANDLING_EMPTY_CATCH_BLOCK" /* PoorErrorHandlingEmptyCatchBlock */]: "Poor Error Handling: Empty Catch Block",
|
|
1713
1737
|
["ERRONEOUS_STRING_COMPARE" /* ErroneousStringCompare */]: "Erroneous String Compare",
|
|
@@ -1782,7 +1806,8 @@ var init_getIssueType = __esm({
|
|
|
1782
1806
|
["TAINTED_NUMERIC_CAST" /* TaintedNumericCast */]: "Tainted Numeric Cast",
|
|
1783
1807
|
["MISSING_X_FRAME_OPTIONS" /* MissingXFrameOptions */]: "Missing X-Frame-Options Header",
|
|
1784
1808
|
["IMPROPER_VALIDATION_OF_ARRAY_INDEX" /* ImproperValidationOfArrayIndex */]: "Improper Validation of Array Index",
|
|
1785
|
-
["INCORRECT_INTEGER_CONVERSION" /* IncorrectIntegerConversion */]: "Incorrect Integer Conversion"
|
|
1809
|
+
["INCORRECT_INTEGER_CONVERSION" /* IncorrectIntegerConversion */]: "Incorrect Integer Conversion",
|
|
1810
|
+
["IMPROPER_CERTIFICATE_VALIDATION" /* ImproperCertificateValidation */]: "Improper Certificate Validation"
|
|
1786
1811
|
};
|
|
1787
1812
|
issueTypeZ = z5.nativeEnum(IssueType_Enum);
|
|
1788
1813
|
getIssueTypeFriendlyString = (issueType) => {
|
|
@@ -2684,7 +2709,7 @@ var init_env = __esm({
|
|
|
2684
2709
|
GITLAB_API_TOKEN: z16.string().optional(),
|
|
2685
2710
|
GITHUB_API_TOKEN: z16.string().optional(),
|
|
2686
2711
|
GIT_PROXY_HOST: z16.string().optional().default("http://tinyproxy:8888"),
|
|
2687
|
-
MAX_UPLOAD_FILE_SIZE_MB: z16.coerce.number().gt(0).default(
|
|
2712
|
+
MAX_UPLOAD_FILE_SIZE_MB: z16.coerce.number().gt(0).default(2),
|
|
2688
2713
|
GITHUB_API_CONCURRENCY: z16.coerce.number().gt(0).optional().default(10)
|
|
2689
2714
|
});
|
|
2690
2715
|
({
|
|
@@ -3546,7 +3571,13 @@ var init_FileUtils = __esm({
|
|
|
3546
3571
|
const results = [];
|
|
3547
3572
|
const filePromises = [];
|
|
3548
3573
|
for (const item of items) {
|
|
3549
|
-
const
|
|
3574
|
+
const safeInput = path4.resolve(
|
|
3575
|
+
path4.sep,
|
|
3576
|
+
path4.normalize(
|
|
3577
|
+
String(dir || "").replace("\0", "").replace(/^(\.\.(\/|\\$))+/, "")
|
|
3578
|
+
)
|
|
3579
|
+
);
|
|
3580
|
+
const fullPath = path4.join(safeInput, item);
|
|
3550
3581
|
try {
|
|
3551
3582
|
await fsPromises.access(fullPath, fs4.constants.R_OK);
|
|
3552
3583
|
const stat = await fsPromises.stat(fullPath);
|
|
@@ -3584,7 +3615,9 @@ var init_FileUtils = __esm({
|
|
|
3584
3615
|
}) {
|
|
3585
3616
|
try {
|
|
3586
3617
|
const stats = fs4.statSync(dir);
|
|
3587
|
-
if (!stats.isDirectory())
|
|
3618
|
+
if (!stats.isDirectory()) {
|
|
3619
|
+
return [];
|
|
3620
|
+
}
|
|
3588
3621
|
} catch {
|
|
3589
3622
|
return [];
|
|
3590
3623
|
}
|
|
@@ -3593,7 +3626,7 @@ var init_FileUtils = __esm({
|
|
|
3593
3626
|
const { GitService: GitService2 } = await Promise.resolve().then(() => (init_GitService(), GitService_exports));
|
|
3594
3627
|
const gitService = new GitService2(dir);
|
|
3595
3628
|
gitMatcher = await gitService.getGitignoreMatcher();
|
|
3596
|
-
} catch
|
|
3629
|
+
} catch {
|
|
3597
3630
|
}
|
|
3598
3631
|
const allFiles = await this.processRootDirectory(dir, EXCLUDED_DIRS);
|
|
3599
3632
|
const filteredFiles = allFiles.filter(
|
|
@@ -4852,6 +4885,7 @@ var fixDetailsData = {
|
|
|
4852
4885
|
issueDescription: "A data member and a function have the same name which can be confusing to the developer.",
|
|
4853
4886
|
fixInstructions: "Rename the data member to avoid confusion."
|
|
4854
4887
|
},
|
|
4888
|
+
["J2EE_GET_CONNECTION" /* J2EeGetConnection */]: void 0,
|
|
4855
4889
|
["LEFTOVER_DEBUG_CODE" /* LeftoverDebugCode */]: void 0,
|
|
4856
4890
|
["UNVALIDATED_PUBLIC_METHOD_ARGUMENT" /* UnvalidatedPublicMethodArgument */]: void 0,
|
|
4857
4891
|
["ERRONEOUS_STRING_COMPARE" /* ErroneousStringCompare */]: void 0,
|
|
@@ -4954,7 +4988,8 @@ var fixDetailsData = {
|
|
|
4954
4988
|
["TAINTED_NUMERIC_CAST" /* TaintedNumericCast */]: void 0,
|
|
4955
4989
|
["MISSING_X_FRAME_OPTIONS" /* MissingXFrameOptions */]: void 0,
|
|
4956
4990
|
["IMPROPER_VALIDATION_OF_ARRAY_INDEX" /* ImproperValidationOfArrayIndex */]: void 0,
|
|
4957
|
-
["INCORRECT_INTEGER_CONVERSION" /* IncorrectIntegerConversion */]: void 0
|
|
4991
|
+
["INCORRECT_INTEGER_CONVERSION" /* IncorrectIntegerConversion */]: void 0,
|
|
4992
|
+
["IMPROPER_CERTIFICATE_VALIDATION" /* ImproperCertificateValidation */]: void 0
|
|
4958
4993
|
};
|
|
4959
4994
|
|
|
4960
4995
|
// src/features/analysis/scm/shared/src/commitDescriptionMarkup.ts
|
|
@@ -5031,6 +5066,31 @@ var go_default = vulnerabilities3;
|
|
|
5031
5066
|
// src/features/analysis/scm/shared/src/storedFixData/java/index.ts
|
|
5032
5067
|
init_client_generates();
|
|
5033
5068
|
|
|
5069
|
+
// src/features/analysis/scm/shared/src/storedFixData/java/j2eeGetConnection.ts
|
|
5070
|
+
var j2eeGetConnection = {
|
|
5071
|
+
guidance: () => `This fix replaces direct \`DriverManager.getConnection(...)\` calls with a container-managed JNDI \`DataSource\` lookup. The new code expects the app server (Tomcat / WildFly / WebSphere / etc.) to expose a configured connection pool under the JNDI name you specified.
|
|
5072
|
+
|
|
5073
|
+
|
|
5074
|
+
|
|
5075
|
+
|
|
5076
|
+
***Make sure the resource pool exists before merging.*** The patched code will throw a \`NamingException\` at runtime if the JNDI name does not resolve. Configure it in your container's resource definition:
|
|
5077
|
+
|
|
5078
|
+
- **Tomcat**: declare a \`<Resource>\` element in \`context.xml\` (or per-app \`META-INF/context.xml\`) with the same JNDI name, plus \`url\`, \`username\`, \`password\`, \`driverClassName\`, and any pool sizing.
|
|
5079
|
+
- **Spring Boot (embedded Tomcat)**: configure via \`spring.datasource.jndi-name\` and matching \`<Resource>\`, or use \`@ConfigurationProperties\` to bind a \`DataSource\` bean.
|
|
5080
|
+
- **WildFly / JBoss EAP**: declare a \`<datasource>\` in the standalone/domain XML and reference its JNDI binding.
|
|
5081
|
+
- **WebSphere / WebLogic**: define the JDBC provider and data source through the admin console; bind it to the JNDI name.
|
|
5082
|
+
|
|
5083
|
+
|
|
5084
|
+
|
|
5085
|
+
|
|
5086
|
+
Also add a matching \`<resource-ref>\` (or \`<data-source>\`) in your \`WEB-INF/web.xml\` if you use one. The original connection details (URL, user, password) move from the call site into the resource definition \u2014 remove them from any constants / properties files where they were duplicated.
|
|
5087
|
+
|
|
5088
|
+
|
|
5089
|
+
|
|
5090
|
+
|
|
5091
|
+
This fix is mandated by the J2EE / Jakarta EE specification (CWE-245) \u2014 direct driver management bypasses the container's pooling, retry, and failover policies.`
|
|
5092
|
+
};
|
|
5093
|
+
|
|
5034
5094
|
// src/features/analysis/scm/shared/src/storedFixData/java/sqlInjection.ts
|
|
5035
5095
|
var sqlInjection = {
|
|
5036
5096
|
guidance: ({
|
|
@@ -5058,6 +5118,7 @@ var systemInformationLeak = {
|
|
|
5058
5118
|
// src/features/analysis/scm/shared/src/storedFixData/java/index.ts
|
|
5059
5119
|
var vulnerabilities4 = {
|
|
5060
5120
|
["PASSWORD_IN_COMMENT" /* PasswordInComment */]: passwordInComment,
|
|
5121
|
+
["J2EE_GET_CONNECTION" /* J2EeGetConnection */]: j2eeGetConnection,
|
|
5061
5122
|
["SQL_Injection" /* SqlInjection */]: sqlInjection,
|
|
5062
5123
|
["SYSTEM_INFORMATION_LEAK" /* SystemInformationLeak */]: systemInformationLeak
|
|
5063
5124
|
};
|
|
@@ -5142,10 +5203,24 @@ See more information [here](https://jinja.palletsprojects.com/en/3.1.x/templates
|
|
|
5142
5203
|
***Note: make sure that none of the data you're marking as safe is coming from user input, as this can lead to XSS vulnerabilities!***`
|
|
5143
5204
|
};
|
|
5144
5205
|
|
|
5206
|
+
// src/features/analysis/scm/shared/src/storedFixData/python/improperCertificateValidation.ts
|
|
5207
|
+
var improperCertificateValidation = {
|
|
5208
|
+
guidance: () => `This fix re-enables TLS certificate validation by changing \`verify=False\` to \`verify=True\` on the HTTP request. Any call that was deliberately reaching a server with a self-signed, expired, or otherwise untrusted certificate will start raising \`ssl.SSLError\` / \`requests.exceptions.SSLError\` after this change.
|
|
5209
|
+
|
|
5210
|
+
|
|
5211
|
+
|
|
5212
|
+
***Before merging, confirm that every endpoint reached by this call presents a certificate signed by a trusted CA.*** If the call must talk to an internal service that uses a private CA, prefer pointing \`verify\` at the CA bundle (\`verify="/path/to/ca.pem"\`) over disabling validation. If the certificate cannot be trusted at all, the safe fix is to terminate that connection at a properly configured proxy, not to keep it unvalidated.
|
|
5213
|
+
|
|
5214
|
+
|
|
5215
|
+
|
|
5216
|
+
See the [\`requests\` SSL verification docs](https://requests.readthedocs.io/en/latest/user/advanced/#ssl-cert-verification) for the supported \`verify\` values.`
|
|
5217
|
+
};
|
|
5218
|
+
|
|
5145
5219
|
// src/features/analysis/scm/shared/src/storedFixData/python/index.ts
|
|
5146
5220
|
var vulnerabilities7 = {
|
|
5147
5221
|
["AUTO_ESCAPE_FALSE" /* AutoEscapeFalse */]: autoEscapeFalse,
|
|
5148
|
-
["CSRF" /* Csrf */]: csrf
|
|
5222
|
+
["CSRF" /* Csrf */]: csrf,
|
|
5223
|
+
["IMPROPER_CERTIFICATE_VALIDATION" /* ImproperCertificateValidation */]: improperCertificateValidation
|
|
5149
5224
|
};
|
|
5150
5225
|
var python_default = vulnerabilities7;
|
|
5151
5226
|
|
|
@@ -5681,6 +5756,15 @@ var insecureCookie2 = {
|
|
|
5681
5756
|
}
|
|
5682
5757
|
};
|
|
5683
5758
|
|
|
5759
|
+
// src/features/analysis/scm/shared/src/storedQuestionData/java/j2eeGetConnection.ts
|
|
5760
|
+
var j2eeGetConnection2 = {
|
|
5761
|
+
jndiResourceName: {
|
|
5762
|
+
content: () => "What JNDI name is the database connection pool registered under?",
|
|
5763
|
+
description: () => 'We need the JNDI name your app server uses to expose its container-managed `DataSource`. The fix performs `new InitialContext().lookup(<jndi-name>)` to retrieve the pool, so this value must exactly match the resource definition (e.g. `<Resource name="...">` in Tomcat `context.xml`, or the binding declared in WildFly / WebSphere / WebLogic). The default `java:comp/env/jdbc/myDataSource` is the canonical Tomcat / Spring convention; replace it with whatever your environment uses.',
|
|
5764
|
+
guidance: () => ""
|
|
5765
|
+
}
|
|
5766
|
+
};
|
|
5767
|
+
|
|
5684
5768
|
// src/features/analysis/scm/shared/src/storedQuestionData/java/leftoverDebugCode.ts
|
|
5685
5769
|
var leftoverDebugCode = {
|
|
5686
5770
|
isCodeUsed: {
|
|
@@ -6009,6 +6093,7 @@ var vulnerabilities12 = {
|
|
|
6009
6093
|
["UNCHECKED_LOOP_CONDITION" /* UncheckedLoopCondition */]: uncheckedLoopCondition,
|
|
6010
6094
|
["INSECURE_COOKIE" /* InsecureCookie */]: insecureCookie2,
|
|
6011
6095
|
["TRUST_BOUNDARY_VIOLATION" /* TrustBoundaryViolation */]: trustBoundaryViolation2,
|
|
6096
|
+
["J2EE_GET_CONNECTION" /* J2EeGetConnection */]: j2eeGetConnection2,
|
|
6012
6097
|
["LEFTOVER_DEBUG_CODE" /* LeftoverDebugCode */]: leftoverDebugCode,
|
|
6013
6098
|
["ERRONEOUS_STRING_COMPARE" /* ErroneousStringCompare */]: erroneousStringCompare,
|
|
6014
6099
|
["DUPLICATED_STRINGS" /* DuplicatedStrings */]: duplicatedStrings
|
|
@@ -6870,7 +6955,8 @@ var GQLClient = class {
|
|
|
6870
6955
|
const getLastOrgRes = await this._clientSdk.getLastOrg({ email });
|
|
6871
6956
|
return {
|
|
6872
6957
|
organizationId: getLastOrgRes?.user?.[0]?.userOrganizationsAndUserOrganizationRoles?.[0]?.organization?.id,
|
|
6873
|
-
userName: getLastOrgRes?.user?.[0]?.name ?? ""
|
|
6958
|
+
userName: getLastOrgRes?.user?.[0]?.name ?? "",
|
|
6959
|
+
enableV2Fixes: getLastOrgRes?.user?.[0]?.userOrganizationsAndUserOrganizationRoles?.[0]?.organization?.enableV2Fixes === true
|
|
6874
6960
|
};
|
|
6875
6961
|
}
|
|
6876
6962
|
async createCliLogin(variables) {
|
|
@@ -6952,7 +7038,8 @@ var GQLClient = class {
|
|
|
6952
7038
|
}
|
|
6953
7039
|
return {
|
|
6954
7040
|
organizationId: organization.id,
|
|
6955
|
-
projectId
|
|
7041
|
+
projectId,
|
|
7042
|
+
enableV2Fixes: organization.enableV2Fixes === true
|
|
6956
7043
|
};
|
|
6957
7044
|
}
|
|
6958
7045
|
async getEncryptedApiToken(variables) {
|
|
@@ -7282,6 +7369,7 @@ var GQLClient = class {
|
|
|
7282
7369
|
return await this._clientSdk.ScanSkill(variables);
|
|
7283
7370
|
}
|
|
7284
7371
|
// T-467 — batched verdict lookup for the client-side quarantine check.
|
|
7372
|
+
// T-493 — response is the envelope `{ quarantineEnabled, verdicts }`.
|
|
7285
7373
|
async skillVerdictsByMd5(md5s) {
|
|
7286
7374
|
return await this._clientSdk.SkillVerdictsByMd5({ md5s });
|
|
7287
7375
|
}
|
|
@@ -7428,7 +7516,11 @@ async function sanitizeDataWithCounts(obj, options) {
|
|
|
7428
7516
|
if (typeof data === "string") {
|
|
7429
7517
|
return sanitizeString(data);
|
|
7430
7518
|
} else if (Array.isArray(data)) {
|
|
7431
|
-
|
|
7519
|
+
const results = [];
|
|
7520
|
+
for (const item of data) {
|
|
7521
|
+
results.push(await sanitizeRecursive(item));
|
|
7522
|
+
}
|
|
7523
|
+
return results;
|
|
7432
7524
|
} else if (data instanceof Error) {
|
|
7433
7525
|
return data;
|
|
7434
7526
|
} else if (data instanceof Date) {
|