fix(scaffolder-backend): sets router max upload size to 10MB
Signed-off-by: Adam Letizia <LetiziaAdam@JohnDeere.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Fixed a regression that prevented uploads greater than 100KB. Uploads up to 10MB are supported again.
|
||||
@@ -1385,34 +1385,24 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{
|
||||
expect.anything(),
|
||||
);
|
||||
});
|
||||
it('disallows users from seeing tasks they do not own', async () => {
|
||||
const { permissions, router, taskBroker } = await createTestRouter();
|
||||
jest
|
||||
.spyOn(permissions, 'authorizeConditional')
|
||||
.mockImplementationOnce(async () => [
|
||||
{
|
||||
conditions: {
|
||||
resourceType: 'scaffolder-task',
|
||||
rule: 'IS_TASK_OWNER',
|
||||
params: { createdBy: ['user'] },
|
||||
},
|
||||
pluginId: 'scaffolder',
|
||||
resourceType: 'scaffolder-task',
|
||||
result: AuthorizeResult.CONDITIONAL,
|
||||
it('allows payloads up to 10MB', async () => {
|
||||
const { unwrappedRouter } = await createTestRouter();
|
||||
const mockToken = mockCredentials.user.token();
|
||||
const mockTemplate = generateMockTemplate();
|
||||
|
||||
const response = await request(unwrappedRouter)
|
||||
.post('/v2/dry-run')
|
||||
.set('Authorization', `Bearer ${mockToken}`)
|
||||
.send({
|
||||
template: mockTemplate,
|
||||
values: {
|
||||
requiredParameter1: 'A'.repeat(9 * 1024 * 1024), // ~9MB
|
||||
requiredParameter2: 'required-value-2',
|
||||
},
|
||||
]);
|
||||
const response = await request(router).get(
|
||||
`/v2/tasks?createdBy=not-user`,
|
||||
);
|
||||
expect(taskBroker.list).toHaveBeenCalledWith({
|
||||
filters: { createdBy: ['not-user'], status: undefined },
|
||||
order: undefined,
|
||||
pagination: { limit: undefined, offset: undefined },
|
||||
permissionFilters: { key: 'created_by', values: ['user'] },
|
||||
});
|
||||
directoryContents: [],
|
||||
});
|
||||
|
||||
expect(response.status).toBe(200);
|
||||
expect(response.body.totalTasks).toBe(0);
|
||||
expect(response.body.tasks).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -186,9 +186,12 @@ const readDuration = (
|
||||
export async function createRouter(
|
||||
options: RouterOptions,
|
||||
): Promise<express.Router> {
|
||||
const router = await createOpenApiRouter();
|
||||
// Be generous in upload size to support a wide range of templates in dry-run mode.
|
||||
router.use(express.json({ limit: '10MB' }));
|
||||
const router = await createOpenApiRouter({
|
||||
middleware: [
|
||||
// Be generous in upload size to support a wide range of templates in dry-run mode.
|
||||
express.json({ limit: '10MB' }),
|
||||
],
|
||||
});
|
||||
|
||||
const {
|
||||
logger: parentLogger,
|
||||
|
||||
Reference in New Issue
Block a user