diff --git a/frontend/api/index.js b/frontend/api/index.js index 1027f557943c..6c8a3a3b7b55 100755 --- a/frontend/api/index.js +++ b/frontend/api/index.js @@ -208,6 +208,22 @@ app.get('/version', (req, res) => { } }) +if (process.env.FLAGSMITH_PROXY_API_URL) { + app.get('/_backend_version', async (req, res) => { + try { + const response = await fetch( + `${process.env.FLAGSMITH_PROXY_API_URL.replace(/\/?$/, '/')}version/`, + ) + const data = await response.json() + res.json(data) + } catch (err) { + // eslint-disable-next-line + console.log('Unable to fetch backend version:', err) + res.status(502).json({}) + } + }) +} + app.use(bodyParser.json()) app.use(spm) const genericWebsite = (url) => { diff --git a/frontend/common/services/useBuildVersion.ts b/frontend/common/services/useBuildVersion.ts index 826680337eb8..f119fcfeedff 100644 --- a/frontend/common/services/useBuildVersion.ts +++ b/frontend/common/services/useBuildVersion.ts @@ -13,9 +13,13 @@ export const buildVersionService = service providesTags: () => [{ id: 'BuildVersion', type: 'BuildVersion' }], queryFn: async (args, _, _2, baseQuery) => { try { + const backendVersionUrl = + Project.api === '/api/v1/' + ? '/_backend_version' + : `${Project.api.replace('api/v1/', '')}version/` const [frontendRes, backendRes] = await Promise.all([ - data.get(`/version/`).catch(() => ({})), - data.get(`${Project.api.replace('api/v1/', '')}version/`), + data.get(`/version`).catch(() => ({})), + data.get(backendVersionUrl), ]) const frontend = (frontendRes || {}) as Version['frontend']