11import { Router } from 'express'
22
33import { createRateLimiter } from '@/api/apiRateLimiter'
4+ import { requireScopes } from '@/api/public/middlewares/requireScopes'
45import { 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'
98import { activityFeedHandler } from '../ossprey/activityFeed'
109import { metricsHandler } from '../ossprey/metrics'
1110import { packageListHandler } from '../ossprey/packageList'
@@ -17,6 +16,8 @@ import { getPackageHistory } from '../packages/getPackageHistory'
1716import { getPackagesMetrics } from '../packages/getPackagesMetrics'
1817import { assignStewardHandler } from '../stewardships/assignSteward'
1918import { escalateHandler } from '../stewardships/escalate'
19+ import { getMyActivityHandler } from '../stewardships/getMyActivity'
20+ import { getMyPackagesHandler } from '../stewardships/getMyPackages'
2021import { openStewardship } from '../stewardships/openStewardship'
2122import { updateStatusHandler } from '../stewardships/updateStatus'
2223
@@ -25,75 +26,94 @@ const rateLimiter = createRateLimiter({ max: 60, windowMs: 60 * 1000 })
2526export 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 / ^ \/ p a c k a g e s : b a t c h - s t e w a r d s h i p \/ ? $ / ,
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