Skip to content

Commit 05324d7

Browse files
authored
OneID FE under CDN (#899)
* chore: switch assets to be served under cdn * fix: use renderBuiltUrl instead custom approach * fix: add assets-manifest and fixup product.json fetch
1 parent 7b0d43c commit 05324d7

File tree

10 files changed

+77
-22
lines changed

10 files changed

+77
-22
lines changed

src/oneid/oneid-fe/.env.dev

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33

44
VITE_CURRENT_ENV=DEV
55

6+
DEV=true
7+
68
VITE_PUBLIC_URL=
7-
VITE_URL_CDN=/assets
8-
VITE_LOGIN_ALERT_BANNER=/assets/login-alert-message.json
9+
VITE_CDN_URL=https://assets.dev.oneid.pagopa.it/assets
10+
VITE_LOGIN_ALERT_BANNER=https://assets.dev.oneid.pagopa.it/assets/login-alert-message.json
911
VITE_LOGIN_IDP_LIST=/idps
1012
VITE_LOGIN_CLIENT_BASE_URL=/clients
1113
VITE_URL_API_LOGIN=/login

src/oneid/oneid-fe/.env.development

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33

44
VITE_CURRENT_ENV=LOCAL_DEV
55

6+
DEV=true
7+
68
VITE_PUBLIC_URL=
7-
VITE_URL_CDN=/assets
8-
VITE_LOGIN_ALERT_BANNER=/assets/login-alert-message.json
9+
VITE_CDN_URL=https://assets.dev.oneid.pagopa.it/assets
10+
VITE_LOGIN_ALERT_BANNER=https://assets.dev.oneid.pagopa.it/assets/login-alert-message.json
911
VITE_LOGIN_IDP_LIST=/idps
1012
VITE_LOGIN_CLIENT_BASE_URL=/clients
1113
VITE_URL_API_LOGIN=/login

src/oneid/oneid-fe/.env.prod

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33

44
VITE_CURRENT_ENV=PROD
55

6+
PROD=true
7+
68
VITE_PUBLIC_URL=
7-
VITE_URL_CDN=/assets
8-
VITE_LOGIN_ALERT_BANNER=/assets/login-alert-message.json
9+
VITE_CDN_URL=https://assets.oneid.pagopa.it/assets
10+
VITE_LOGIN_ALERT_BANNER=https://assets.oneid.pagopa.it/assets/login-alert-message.json
911
VITE_LOGIN_IDP_LIST=/idps
1012
VITE_LOGIN_CLIENT_BASE_URL=/clients
1113
VITE_URL_API_LOGIN=/login

src/oneid/oneid-fe/.env.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ VITE_ENV=TEST
55
VITE_CURRENT_ENV=TEST
66

77
VITE_PUBLIC_URL=
8-
VITE_URL_CDN=/assets
8+
VITE_CDN_URL=/assets
99
VITE_LOGIN_ALERT_BANNER=/assets/login-alert-message.json
1010
VITE_LOGIN_IDP_LIST=/idps
1111
VITE_LOGIN_CLIENT_URL=/clients

src/oneid/oneid-fe/.env.uat

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33

44
VITE_CURRENT_ENV=UAT
55

6+
# configure UAT as a PROD
7+
PROD=true
8+
69
VITE_PUBLIC_URL=
7-
VITE_URL_CDN=/assets
8-
VITE_LOGIN_ALERT_BANNER=/assets/login-alert-message.json
10+
VITE_CDN_URL=https://assets.uat.oneid.pagopa.it/assets
11+
VITE_LOGIN_ALERT_BANNER=https://assets.uat.oneid.pagopa.it/assets/login-alert-message.json
912
VITE_LOGIN_IDP_LIST=/idps
1013
VITE_LOGIN_CLIENT_BASE_URL=/clients
1114
VITE_URL_API_LOGIN=/login
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"files": {
3+
"main.js": "/static/js/main.js",
4+
"index.html": "/index.html",
5+
"favicon.svg": "/assets/favicon.svg",
6+
"favicon-32x32.png": "/assets/favicon-32x32.png",
7+
"icons/icon-48x48.png": "/assets/icons/icon-48x48.png",
8+
"icons/icon-72x72.png": "/assets/icons/icon-72x72.png",
9+
"icons/icon-96x96.png": "/assets/icons/icon-96x96.png",
10+
"icons/icon-144x144.png": "/assets/icons/icon-144x144.png",
11+
"icons/icon-192x192.png": "/assets/icons/icon-192x192.png",
12+
"icons/icon-256x256.png": "/assets/icons/icon-256x256.png",
13+
"icons/icon-384x384.png": "/assets/icons/icon-384x384.png",
14+
"icons/icon-512x512.png": "/assets/icons/icon-512x512.png"
15+
},
16+
"entrypoints": [
17+
"static/js/main.js"
18+
]
19+
}

src/oneid/oneid-fe/src/components/Header.test.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ vi.mock('../utils/env', () => ({
3434
ANALYTICS: {
3535
ENABLE: false,
3636
},
37+
URL_FE: {
38+
ASSETS: 'https://cdn.pagopa.it/oneid-fe',
39+
},
3740
},
3841
}));
3942

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
import { ENV } from './env';
2+
13
export const ROUTE_LOGIN = '/login';
24
export const ROUTE_LOGIN_SUCCESS = '/login/success';
35
export const ROUTE_LOGIN_ERROR = '/login/error';
46
export const ROUTE_LOGOUT = '/logout';
57

68
export const IDP_PLACEHOLDER_IMG =
7-
'/assets/idps/aHR0cHM6Ly92YWxpZGF0b3IuZGV2Lm9uZWlkLnBhZ29wYS5pdC9kZW1v.png';
9+
ENV.URL_FE.ASSETS +
10+
'/idps/aHR0cHM6Ly92YWxpZGF0b3IuZGV2Lm9uZWlkLnBhZ29wYS5pdC9kZW1v.png';
811

9-
export const PRODUCTS_URL = '/assets/products.json';
12+
export const PRODUCTS_URL = ENV.URL_FE.ASSETS + '/products.json';

src/oneid/oneid-fe/src/utils/env.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const ENV = {
2424
},
2525

2626
URL_FE: {
27-
ASSETS: import.meta.env.VITE_URL_CDN as string,
27+
ASSETS: import.meta.env.VITE_CDN_URL as string,
2828
},
2929

3030
HEADER: {

src/oneid/oneid-fe/vite.config.mts

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
1-
import { defineConfig } from 'vite';
1+
import { defineConfig, loadEnv } from 'vite';
22
import react from '@vitejs/plugin-react';
33

4-
export default defineConfig({
5-
plugins: [react()],
6-
resolve: {
7-
extensions: ['.ts', '.js', '.mjs', '.json', '.tsx'],
8-
},
9-
esbuild: {
10-
loader: 'tsx',
11-
include: /\.(ts|tsx|js|mjs)$/,
12-
},
4+
export default defineConfig(({ command, mode }) => {
5+
const env = loadEnv(mode, process.cwd(), '');
6+
const cdnURL = env.VITE_CDN_URL;
7+
8+
return {
9+
plugins: [react()],
10+
resolve: {
11+
extensions: ['.ts', '.js', '.mjs', '.json', '.tsx'],
12+
},
13+
esbuild: {
14+
loader: 'tsx',
15+
include: /\.(ts|tsx|js|mjs)$/,
16+
},
17+
/**
18+
* https://vite.dev/guide/build.html#advanced-base-options
19+
*/
20+
experimental: {
21+
renderBuiltUrl(filename: string | URL) {
22+
// We only want to prepend the CDN URL during the 'build' command
23+
// and only if the VITE_CDN_URL is set.
24+
if (command === 'build' && cdnURL) {
25+
// hostType can be 'js', 'css', or 'asset'
26+
return new URL(filename, cdnURL).href;
27+
} else {
28+
// Otherwise, (e.g., in 'serve' mode), use relative paths.
29+
return { relative: true };
30+
}
31+
},
32+
},
33+
};
1334
});

0 commit comments

Comments
 (0)