Skip to content

Commit 6e839c6

Browse files
authored
Merge branch 'main' into cm-361-affiliation-registry-migration
2 parents 913baf9 + 28d70de commit 6e839c6

76 files changed

Lines changed: 3794 additions & 1424 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

backend/.env.dist.local

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ OSSPCKGS_GCP_CREDENTIALS_B64=e30=
195195
# maven/all.zip 404s). The allowlist check and DB storage normalize to lowercase
196196
# internally per ADR-0001 §OSV "Ecosystem normalization", so downstream stays lowercase.
197197
OSV_BULK_BASE_URL=https://osv-vulnerabilities.storage.googleapis.com
198-
OSV_ECOSYSTEMS=npm,Maven,cargo
198+
OSV_ECOSYSTEMS=npm,Maven,cargo,NuGet
199199
OSV_TMP_DIR=/tmp/osv
200200
OSV_BATCH_SIZE=500
201201
OSV_DERIVE_BATCH_SIZE=1000

backend/src/api/public/v1/ossprey/packageList.ts

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -20,33 +20,38 @@ const LIFECYCLE_SET = new Set<string>(LIFECYCLE_VALUES)
2020

2121
const boolParam = z.preprocess((v) => v === 'true', z.boolean()).default(false)
2222

23-
const querySchema = z.object({
24-
page: z.coerce.number().int().min(1).default(1),
25-
pageSize: z.coerce.number().int().min(1).max(MAX_PAGE_SIZE).default(25),
26-
ecosystem: z.string().trim().optional(),
27-
lifecycle: z.enum(LIFECYCLE_VALUES).optional(),
28-
name: z.string().trim().optional(),
29-
purl: purlFilterSchema,
30-
status: z
31-
.enum([
32-
'unassigned',
33-
'open',
34-
'assessing',
35-
'active',
36-
'needs_attention',
37-
'escalated',
38-
'blocked',
39-
'inactive',
40-
])
41-
.optional(),
42-
healthBand: z.enum(HEALTH_BAND_VALUES).optional(),
43-
vulnSeverity: z.enum(['any', 'high', 'critical', 'none']).optional(),
44-
staleOnly: boolParam,
45-
unstewardedOnly: boolParam,
46-
busFactor1Only: boolParam,
47-
sortBy: z.enum(['name', 'risk', 'impact', 'openVulns', 'health']).default('risk'),
48-
sortDir: z.enum(['asc', 'desc']).default('desc'),
49-
})
23+
const querySchema = z
24+
.object({
25+
page: z.coerce.number().int().min(1).default(1),
26+
pageSize: z.coerce.number().int().min(1).max(MAX_PAGE_SIZE).default(25),
27+
ecosystem: z.string().trim().optional(),
28+
lifecycle: z.enum(LIFECYCLE_VALUES).optional(),
29+
name: z.string().trim().optional(),
30+
purl: purlFilterSchema,
31+
status: z
32+
.enum([
33+
'unassigned',
34+
'open',
35+
'assessing',
36+
'active',
37+
'needs_attention',
38+
'escalated',
39+
'blocked',
40+
'inactive',
41+
])
42+
.optional(),
43+
healthBand: z.enum(HEALTH_BAND_VALUES).optional(),
44+
vulnSeverity: z.enum(['any', 'high', 'critical', 'none']).optional(),
45+
staleOnly: boolParam,
46+
unstewardedOnly: boolParam,
47+
busFactor1Only: boolParam,
48+
sortBy: z.enum(['name', 'risk', 'impact', 'openVulns', 'health']).default('risk'),
49+
sortDir: z.enum(['asc', 'desc']).optional(),
50+
})
51+
.transform((data) => ({
52+
...data,
53+
sortDir: data.sortDir ?? (data.sortBy === 'name' || data.sortBy === 'health' ? 'asc' : 'desc'),
54+
}))
5055

5156
export async function packageListHandler(req: Request, res: Response): Promise<void> {
5257
const params = validateOrThrow(querySchema, req.query)

backend/src/api/public/v1/packages/mockData.ts

Lines changed: 0 additions & 261 deletions
This file was deleted.

backend/src/database/repositories/memberRepository.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ import {
5050
includeMemberToSegments,
5151
} from '@crowd/data-access-layer/src/members/segments'
5252
import { IDbMemberData } from '@crowd/data-access-layer/src/members/types'
53-
import { optionsQx } from '@crowd/data-access-layer/src/queryExecutor'
53+
import { optionsBgQx, optionsQx } from '@crowd/data-access-layer/src/queryExecutor'
5454
import {
5555
fetchManySegments,
5656
getSegmentMergeSuggestionCounts,
@@ -1259,7 +1259,7 @@ class MemberRepository {
12591259
let memberResponse = null
12601260

12611261
const qx = optionsQx(options)
1262-
const bgQx = optionsQx({ ...options, transaction: null })
1262+
const bgQx = optionsBgQx(options)
12631263

12641264
memberResponse = await queryMembersAdvanced(qx, bgQx, options.redis, {
12651265
filter: { id: { eq: id } },
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE packages ADD COLUMN IF NOT EXISTS total_downloads bigint;

0 commit comments

Comments
 (0)