From 99a2873c76a9311403d78ee104915affde2fe3e4 Mon Sep 17 00:00:00 2001 From: Gowind Date: Tue, 29 Jun 2021 10:58:09 +0200 Subject: [PATCH 1/2] Techdocs: Include cookies when requesting SVGs Signed-off-by: Gowind --- .changeset/bright-pans-rhyme.md | 5 +++++ plugins/techdocs/src/reader/transformers/addBaseUrl.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/bright-pans-rhyme.md diff --git a/.changeset/bright-pans-rhyme.md b/.changeset/bright-pans-rhyme.md new file mode 100644 index 0000000000..c5f72b9ac6 --- /dev/null +++ b/.changeset/bright-pans-rhyme.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Include cookies when making fetch requests for SVG from techdocs plugin diff --git a/plugins/techdocs/src/reader/transformers/addBaseUrl.ts b/plugins/techdocs/src/reader/transformers/addBaseUrl.ts index 81021fbde8..f21cb8c47a 100644 --- a/plugins/techdocs/src/reader/transformers/addBaseUrl.ts +++ b/plugins/techdocs/src/reader/transformers/addBaseUrl.ts @@ -64,7 +64,7 @@ export const addBaseUrl = ({ const apiOrigin = await techdocsStorageApi.getApiOrigin(); if (isSvgNeedingInlining(attributeName, elemAttribute, apiOrigin)) { try { - const svg = await fetch(newValue); + const svg = await fetch(newValue, { credentials: 'include' }); const svgContent = await svg.text(); elem.setAttribute( attributeName, From 103b1b6ea6ccc6b5a4be2a5f2fd470e91575f990 Mon Sep 17 00:00:00 2001 From: Gowind Date: Wed, 30 Jun 2021 22:33:45 +0200 Subject: [PATCH 2/2] Add unit test to ensure credentials are sent for SVGs Signed-off-by: Gowind --- plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts b/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts index 84ac4be7ee..f04c9963f0 100644 --- a/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts +++ b/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts @@ -154,6 +154,9 @@ describe('addBaseUrl', () => { await waitFor(() => { const actualSrc = root.getElementById('x')?.getAttribute('src'); expect(expectedSrc).toEqual(actualSrc); + expect(global.fetch).toHaveBeenCalledWith(`${API_ORIGIN_URL}/test.svg`, { + credentials: 'include', + }); }); });