feat: Add Public Dashboard FeatureSet with core components and pages

- Implemented DashboardCanvas component for rendering dashboard.
- Created Index.tsx for application entry point with routing setup.
- Developed AllPages.tsx to export main pages: DashboardView, MasterPassword, NotFound, and Forbidden.
- Added DashboardVariableSelector for managing dashboard variables.
- Built DashboardViewPage to display the dashboard with variable selection and auto-refresh functionality.
- Created Forbidden and NotFound pages for access control and error handling.
- Implemented MasterPassword page for secure access to dashboards.
- Added server-side utility for fetching public dashboard data.
- Established API utility for handling requests specific to the public dashboard.
- Configured routing and page mapping for public dashboard navigation.
- Set up TypeScript configuration for the PublicDashboard FeatureSet.
- Created index.ejs for rendering the public dashboard application.
This commit is contained in:
Nawaz Dhandala
2026-03-26 14:48:45 +00:00
parent 1caff6844e
commit 87e34b0abf
32 changed files with 1831 additions and 11 deletions

View File

@@ -118,6 +118,23 @@ server {
proxy_pass $backend_app;
}
location /public-dashboard-api/ {
resolver ${NGINX_RESOLVER} valid=30s;
set $backend_app http://${SERVER_APP_HOSTNAME}:${APP_PORT};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# enable WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
rewrite ^/public-dashboard-api/(.*)$ /api/dashboard/$1 break;
proxy_pass $backend_app;
}
# Acme Verification.
location /.well-known {
resolver ${NGINX_RESOLVER} valid=30s;
@@ -235,6 +252,23 @@ server {
proxy_pass $backend_app;
}
location /public-dashboard-api/ {
resolver ${NGINX_RESOLVER} valid=30s;
set $backend_app http://${SERVER_APP_HOSTNAME}:${APP_PORT};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# enable WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
rewrite ^/public-dashboard-api/(.*)$ /api/dashboard/$1 break;
proxy_pass $backend_app;
}
location /status-page {
resolver ${NGINX_RESOLVER} valid=30s;
set $backend_app http://${SERVER_APP_HOSTNAME}:${APP_PORT};
@@ -420,6 +454,23 @@ ${PROVISION_SSL_CERTIFICATE_KEY_DIRECTIVE}
proxy_pass $backend_app;
}
location /public-dashboard-api/ {
resolver ${NGINX_RESOLVER} valid=30s;
set $backend_app http://${SERVER_APP_HOSTNAME}:${APP_PORT};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# enable WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
rewrite ^/public-dashboard-api/(.*)$ /api/dashboard/$1 break;
proxy_pass $backend_app;
}
location /accounts {
resolver ${NGINX_RESOLVER} valid=30s;