Skip to content

Commit 4869d82

Browse files
authored
feat: add packages api (CM-1334) (#4349)
Signed-off-by: Umberto Sgueglia <usgueglia@contractor.linuxfoundation.org>
1 parent 36b4ed4 commit 4869d82

17 files changed

Lines changed: 1189 additions & 57 deletions
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { Router } from 'express'
2+
3+
import { createRateLimiter } from '@/api/apiRateLimiter'
4+
import { requireScopes } from '@/api/public/middlewares/requireScopes'
5+
import { safeWrap } from '@/middlewares/errorMiddleware'
6+
import { SCOPES } from '@/security/scopes'
7+
8+
import { getAkritesExternalPackageDetail } from '../packages/getAkritesExternalPackageDetail'
9+
import { getAkritesExternalPackageDetailBatch } from '../packages/getAkritesExternalPackageDetailBatch'
10+
11+
const rateLimiter = createRateLimiter({ max: 60, windowMs: 60 * 1000 })
12+
13+
export function akritesExternalRouter(): Router {
14+
const router = Router()
15+
16+
// TODO: swap for a dedicated cdp:packages:read scope once Akrites gets its own
17+
// Auth0 M2M scopes (per the akrites-external draft contract) — reusing the
18+
// internal CDP UI scopes for now since that's what's actually issued today.
19+
const packagesSubRouter = Router()
20+
packagesSubRouter.use(rateLimiter)
21+
packagesSubRouter.use(requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'all'))
22+
packagesSubRouter.get('/detail', safeWrap(getAkritesExternalPackageDetail))
23+
packagesSubRouter.post(/^\/detail:batch\/?$/, safeWrap(getAkritesExternalPackageDetailBatch))
24+
router.use('/packages', packagesSubRouter)
25+
26+
return router
27+
}

0 commit comments

Comments
 (0)