Skip to content

Commit 522d18e

Browse files
authored
Merge branch 'main' into feat/packages-tb-enrichment
2 parents 342942f + 1aea913 commit 522d18e

105 files changed

Lines changed: 3421 additions & 705 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
198+
OSV_ECOSYSTEMS=npm,Maven,cargo
199199
OSV_TMP_DIR=/tmp/osv
200200
OSV_BATCH_SIZE=500
201201
OSV_DERIVE_BATCH_SIZE=1000

backend/src/api/activity/activityChannels.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import PermissionChecker from '../../services/user/permissionChecker'
1818
export default async (req, res) => {
1919
new PermissionChecker(req).validateHas(Permissions.values.activityRead)
2020

21-
const payload = await new ActivityService(req).findActivityChannels(req.query.segments)
21+
const payload = await new ActivityService(req).findActivityChannels()
2222

2323
await req.responseHandler.success(req, res, payload)
2424
}

backend/src/api/activity/activityTypes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import PermissionChecker from '../../services/user/permissionChecker'
44

55
export default async (req, res) => {
66
new PermissionChecker(req).validateHas(Permissions.values.activityRead)
7-
const payload = await new ActivityService(req).findActivityTypes(req.query.segments)
7+
8+
const payload = await new ActivityService(req).findActivityTypes()
89

910
await req.responseHandler.success(req, res, payload)
1011
}

backend/src/api/public/v1/akrites/index.ts

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import { Router } from 'express'
22

33
import { createRateLimiter } from '@/api/apiRateLimiter'
4+
import { requireScopes } from '@/api/public/middlewares/requireScopes'
45
import { safeWrap } from '@/middlewares/errorMiddleware'
6+
import { SCOPES } from '@/security/scopes'
57

6-
// TODO: restore once scopes are added to Auth0 staging tenant
7-
// import { requireScopes } from '@/api/public/middlewares/requireScopes'
8-
// import { SCOPES } from '@/security/scopes'
98
import { activityFeedHandler } from '../ossprey/activityFeed'
109
import { metricsHandler } from '../ossprey/metrics'
1110
import { packageListHandler } from '../ossprey/packageList'
@@ -17,6 +16,8 @@ import { getPackageHistory } from '../packages/getPackageHistory'
1716
import { getPackagesMetrics } from '../packages/getPackagesMetrics'
1817
import { assignStewardHandler } from '../stewardships/assignSteward'
1918
import { escalateHandler } from '../stewardships/escalate'
19+
import { getMyActivityHandler } from '../stewardships/getMyActivity'
20+
import { getMyPackagesHandler } from '../stewardships/getMyPackages'
2021
import { openStewardship } from '../stewardships/openStewardship'
2122
import { updateStatusHandler } from '../stewardships/updateStatus'
2223

@@ -25,75 +26,94 @@ const rateLimiter = createRateLimiter({ max: 60, windowMs: 60 * 1000 })
2526
export function akritesRouter(): Router {
2627
const router = Router()
2728

28-
router.get('/metrics', safeWrap(metricsHandler))
29+
router.get(
30+
'/metrics',
31+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
32+
safeWrap(metricsHandler),
33+
)
2934
// /packages/scatter registered before router.use('/packages', ...) so Express evaluates this
3035
// explicit route first; without this ordering the sub-router would receive the request first
3136
// and call next() on no match, adding unnecessary overhead.
32-
router.get('/packages/scatter', rateLimiter, safeWrap(packageScatterHandler))
33-
router.get('/packages', rateLimiter, safeWrap(packageListHandler))
34-
router.get('/activity', safeWrap(activityFeedHandler))
37+
router.get(
38+
'/packages/scatter',
39+
rateLimiter,
40+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
41+
safeWrap(packageScatterHandler),
42+
)
43+
router.get(
44+
'/packages',
45+
rateLimiter,
46+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
47+
safeWrap(packageListHandler),
48+
)
49+
router.get(
50+
'/activity',
51+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
52+
safeWrap(activityFeedHandler),
53+
)
3554

3655
// --- packages ---
3756
router.post(
3857
/^\/packages:batch-stewardship\/?$/,
3958
rateLimiter,
40-
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
41-
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
59+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
4260
safeWrap(batchGetStewardship),
4361
)
4462
const packagesSubRouter = Router()
4563
packagesSubRouter.use(rateLimiter)
4664
packagesSubRouter.get(
4765
'/metrics',
48-
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
49-
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
66+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
5067
safeWrap(getPackagesMetrics),
5168
)
5269
packagesSubRouter.get(
5370
'/detail',
54-
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
55-
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
71+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
5672
safeWrap(getPackage),
5773
)
5874
packagesSubRouter.get(
5975
'/advisories',
60-
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
61-
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
76+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
6277
safeWrap(getPackageAdvisories),
6378
)
6479
packagesSubRouter.get(
6580
'/history',
66-
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
67-
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
81+
requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'),
6882
safeWrap(getPackageHistory),
6983
)
7084
router.use('/packages', packagesSubRouter)
7185

7286
// --- stewardships ---
7387
const stewardshipsSubRouter = Router()
7488
stewardshipsSubRouter.use(rateLimiter)
89+
stewardshipsSubRouter.get(
90+
'/me/packages',
91+
requireScopes([SCOPES.READ_STEWARDSHIPS]),
92+
safeWrap(getMyPackagesHandler),
93+
)
94+
stewardshipsSubRouter.get(
95+
'/me/activity',
96+
requireScopes([SCOPES.READ_STEWARDSHIPS]),
97+
safeWrap(getMyActivityHandler),
98+
)
7599
stewardshipsSubRouter.post(
76100
'/open',
77-
// TODO: restore once write:stewardships is added to Auth0 staging tenant
78-
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
101+
requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
79102
safeWrap(openStewardship),
80103
)
81104
stewardshipsSubRouter.post(
82105
'/:id/assign',
83-
// TODO: restore once write:stewardships is added to Auth0 staging tenant
84-
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
106+
requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
85107
safeWrap(assignStewardHandler),
86108
)
87109
stewardshipsSubRouter.post(
88110
'/:id/escalate',
89-
// TODO: restore once write:stewardships is added to Auth0 staging tenant
90-
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
111+
requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
91112
safeWrap(escalateHandler),
92113
)
93114
stewardshipsSubRouter.patch(
94115
'/:id/status',
95-
// TODO: restore once write:stewardships is added to Auth0 staging tenant
96-
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
116+
requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
97117
safeWrap(updateStatusHandler),
98118
)
99119
router.use('/stewardships', stewardshipsSubRouter)

0 commit comments

Comments
 (0)