WP-40/41/42: dashboard, security hardening, deployment and operations docs
Dashboard endpoint and page aggregating inventory, vulnerabilities, cluster health, backups and recent jobs. Security headers (CSP, nosniff, DENY, referrer policy), 1 MB body limit, configurable login rate limit, audit steps in CI. Installer script, systemd unit, install/architecture docs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@ -10,7 +10,7 @@ async function loginAdmin(page: Page) {
|
||||
|
||||
test('admin saves SMTP settings and a schedule', async ({ page }) => {
|
||||
await loginAdmin(page)
|
||||
await page.getByRole('link', { name: 'Settings' }).click()
|
||||
await page.getByRole('navigation').getByRole('link', { name: 'Settings' }).click()
|
||||
await page.getByLabel('SMTP host').fill('mail.example.com')
|
||||
await page.getByLabel('Port').fill('587')
|
||||
await page.getByLabel('Username').fill('bot')
|
||||
@ -31,7 +31,7 @@ test('admin saves SMTP settings and a schedule', async ({ page }) => {
|
||||
|
||||
test('admin runs a job manually and sees the log', async ({ page }) => {
|
||||
await loginAdmin(page)
|
||||
await page.getByRole('link', { name: 'Jobs' }).click()
|
||||
await page.getByRole('navigation').getByRole('link', { name: 'Jobs' }).click()
|
||||
await page.getByLabel('Job').selectOption('package_refresh')
|
||||
await page.getByRole('button', { name: 'Run now' }).click()
|
||||
const row = page.getByRole('row', { name: /package_refresh/ }).first()
|
||||
|
||||
Reference in New Issue
Block a user