Skip to content

Commit db4052f

Browse files
committed
feat: runtime environment detection for multi-env support
env.js now detects environment from hostname at runtime: - eagle-dev.apps.silver.devops.gov.bc.ca → dev config - eagle-test.apps.silver.devops.gov.bc.ca → test config - projects.eao.gov.bc.ca → prod config - localhost/other → local config (uses proxy.conf.json for analytics) This allows the same image to be promoted through environments without rebuilding, matching the existing image tagging workflow.
1 parent c817844 commit db4052f

1 file changed

Lines changed: 43 additions & 7 deletions

File tree

src/env.js

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,57 @@
55
// turn on/off the console.log's
66
window.__env.debugMode = true;
77

8+
// Detect environment from hostname at runtime
9+
const hostname = window.location.hostname;
10+
11+
// Environment configuration based on hostname
12+
const envConfigs = {
13+
'eagle-dev.apps.silver.devops.gov.bc.ca': {
14+
environment: 'dev',
15+
bannerColour: 'blue',
16+
apiLocation: 'https://eagle-dev.apps.silver.devops.gov.bc.ca',
17+
keycloakUrl: 'https://dev.loginproxy.gov.bc.ca/auth',
18+
analyticsUrl: 'https://penguin-analytics-api-6cdc9e-dev.apps.silver.devops.gov.bc.ca/events'
19+
},
20+
'eagle-test.apps.silver.devops.gov.bc.ca': {
21+
environment: 'test',
22+
bannerColour: 'orange',
23+
apiLocation: 'https://eagle-test.apps.silver.devops.gov.bc.ca',
24+
keycloakUrl: 'https://test.loginproxy.gov.bc.ca/auth',
25+
analyticsUrl: 'https://penguin-analytics-api-6cdc9e-test.apps.silver.devops.gov.bc.ca/events'
26+
},
27+
'projects.eao.gov.bc.ca': {
28+
environment: 'prod',
29+
bannerColour: 'green',
30+
apiLocation: 'https://projects.eao.gov.bc.ca',
31+
keycloakUrl: 'https://loginproxy.gov.bc.ca/auth',
32+
analyticsUrl: 'https://penguin-analytics-api-6cdc9e-prod.apps.silver.devops.gov.bc.ca/events'
33+
}
34+
};
35+
36+
// Default to local config
37+
const config = envConfigs[hostname] || {
38+
environment: 'local',
39+
bannerColour: 'red',
40+
apiLocation: 'https://eagle-dev.apps.silver.devops.gov.bc.ca',
41+
keycloakUrl: 'https://dev.loginproxy.gov.bc.ca/auth',
42+
analyticsUrl: '/api/analytics' // Uses proxy.conf.json locally
43+
};
44+
845
// Environment name
9-
window.__env.ENVIRONMENT = 'local'; // local | dev | test | prod
10-
window.__env.BANNER_COLOUR = 'red'
11-
window.__env.API_LOCATION = 'https://eagle-dev.apps.silver.devops.gov.bc.ca';
46+
window.__env.ENVIRONMENT = config.environment;
47+
window.__env.BANNER_COLOUR = config.bannerColour;
48+
window.__env.API_LOCATION = config.apiLocation;
1249
window.__env.API_PATH = '/api';
1350
window.__env.API_PUBLIC_PATH = '/api/public';
1451
window.__env.KEYCLOAK_CLIENT_ID = 'eagle-admin-console';
15-
window.__env.KEYCLOAK_URL = 'https://dev.loginproxy.gov.bc.ca/auth';
52+
window.__env.KEYCLOAK_URL = config.keycloakUrl;
1653
window.__env.KEYCLOAK_REALM = 'eao-epic';
1754
window.__env.KEYCLOAK_ENABLED = true;
1855

1956
// Analytics configuration
20-
// Direct URL to penguin-analytics API (route-based, not nginx proxy)
21-
window.__env.ANALYTICS_API_URL = 'https://penguin-analytics-api-6cdc9e-dev.apps.silver.devops.gov.bc.ca/events';
22-
window.__env.ANALYTICS_DEBUG = window.__env.ENVIRONMENT === 'local';
57+
window.__env.ANALYTICS_API_URL = config.analyticsUrl;
58+
window.__env.ANALYTICS_DEBUG = config.environment === 'local';
2359

2460
// Add any feature-toggles
2561
// window.__env.coolFeatureActive = false;

0 commit comments

Comments
 (0)