dagu/ui/index.html
Yota Hamada d4b8484ca8
feat(all): implement builtin user management feature (#1463)
* **New Features**
* Built-in RBAC auth with JWT login, token handling, and user lifecycle
APIs (list/create/view/update/delete, reset/change password).
* **UI**
* Login flow, protected routes, Users management page,
change/reset-password modals, user menu and role-aware navigation.
* **Behavior**
* v1 routes disabled when auth enabled; runtime config exposes authMode
and usersDir; client persists auth token.
* **Documentation**
  * Added builtin auth docs and new env/config options.
* **Tests**
* Extensive tests for auth service, file-backed store, and API handlers.
2025-12-09 18:09:11 +09:00

62 lines
2.0 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/assets/favicon.ico" />
<title>Dagu</title>
<script>
// Apply theme immediately to prevent flash
(function () {
try {
const saved = localStorage.getItem('user_preferences');
const preferences = saved ? JSON.parse(saved) : { theme: 'dark' };
if (!preferences.theme || preferences.theme === 'dark') {
document.documentElement.classList.add('dark');
}
} catch {
// Default to dark theme if there's an error
document.documentElement.classList.add('dark');
}
})();
function getConfig() {
return {
apiURL: 'http://localhost:8080/api/v2',
basePath: '',
title: '',
navbarColor: '',
version: 'dev',
tz: '',
tzOffsetInSec: undefined,
maxDashboardPageLimit: '',
remoteNodes: 'local,dev,dev1',
permissions: {
writeDags: true,
runDags: true,
},
paths: {
configFileUsed: '~/.config/dagu/config.yaml',
baseConfig: '~/.config/dagu/base.yaml',
dagsDir: '~/.config/dagu/dags',
logDir: '~/.local/share/dagu/logs',
suspendFlagsDir: '~/.local/share/dagu/suspend',
adminLogsDir: '~/.local/share/dagu/logs/admin',
dagRunsDir: '~/.local/share/dagu/data/dag-runs',
queueDir: '~/.local/share/dagu/data/queue',
procDir: '~/.local/share/dagu/data/proc',
serviceRegistryDir: '~/.local/share/dagu/data/services',
usersDir: '~/.local/share/dagu/data/users',
},
authMode: 'builtin',
};
}
</script>
</head>
<body>
<div id="root"></div>
</body>
</html>