Commit Graph

68 Commits

Author SHA1 Message Date
806d768bbc fix: pass env vars to systemd-run via --setenv (v0.3.5)
- Previous fix failed because systemd-run does not inherit env vars by default
- Added explicit --setenv flags for SKD_UPDATE_* variables
- Bumped version to 0.3.5
2026-01-16 12:14:48 +01:00
bf7d1e466a chore: bump version to 0.3.4 for final update verification 2026-01-16 12:10:28 +01:00
e13e51531d docs: add BUG_000002 and BUG_000003 tickets and update status 2026-01-16 12:08:32 +01:00
b6d81885de fix: reload update token from file to bypass stale cache (v0.3.3)
- Implemented _get_fresh_token in backend/update.py
- Ensures scripts receive the current token even if settings are cached
- Bumped version to 0.3.3
2026-01-16 12:07:52 +01:00
ab58a163a6 chore: bump version to 0.3.2 for update verification 2026-01-16 12:01:12 +01:00
7f5c8f0b7b fix: detach update process via systemd-run (v0.3.1)
- Changed backend/update.py to use systemd-run for spawning update/rollback scripts
- Ensures update process survives service restart
- Bumped version to 0.3.1
2026-01-16 11:38:37 +01:00
63ee0b40b5 feat: login time window rules (EPIC_000014)
- Implemented RuleManager and JSON storage
- Added background enforcement scheduler
- Added Web UI for rule management at /ui/rules
- Bumped version to 0.3.0
2026-01-16 11:25:56 +01:00
9ad9501722 release: 0.2.3 2026-01-15 17:52:21 +01:00
5850ef8358 fix: avoid update failure on /opt/sk cwd 2026-01-15 17:39:40 +01:00
835244b7e0 release: 0.2.2 2026-01-15 17:24:54 +01:00
fb096f7897 fix: ignore unreadable env files in upload script 2026-01-15 13:13:38 +01:00
c748181de2 feat: split update config into update.env 2026-01-15 12:45:22 +01:00
8c55fd4954 feat: add update service env label 2026-01-15 11:18:54 +01:00
f513d46d08 feat: show update service status in UI 2026-01-15 11:06:54 +01:00
55e452b6a2 fix: parse env safely in enrollment script 2026-01-15 09:34:06 +01:00
1888f59c05 scripts: add update-service enrollment helper 2026-01-15 09:28:05 +01:00
b68ce13be0 docs: document Makefile usage 2026-01-15 09:14:26 +01:00
a732a5afc4 docs: add consumer audience split and external deps 2026-01-15 09:09:59 +01:00
10ec58f744 docs: overhaul repository documentation 2026-01-15 08:54:52 +01:00
c41482a7b3 docs: align versions and update update-service docs 2026-01-15 08:40:54 +01:00
589f9595f4 feat: add scripts/enroll_local.py and update task 40 documentation 2026-01-12 16:20:44 +01:00
78594c5bca chore: bump version to 0.2.1 2025-12-31 00:58:21 +01:00
96d559f819 feat: add enrollment ui to admin dashboard 2025-12-31 00:56:33 +01:00
a3a7298447 feat: add manual enrollment script for dev/testing 2025-12-31 00:32:51 +01:00
b2edb400aa chore: bump version to 0.2.0 for update-service v1 release 2025-12-31 00:10:33 +01:00
47290d2d8f feat: implement update-service v1 migration and enrollment flow
- added /update/enroll endpoint and enrollment logic
- migrated update client to v1 api endpoints and bearer auth
- implemented remote status reporting in backend and scripts
- updated requirements and project status
2025-12-31 00:05:46 +01:00
fde2825112 planning: add update v1 tasks 2025-12-30 17:25:32 +01:00
f639e3c56a planning: update-service v1 epic and stories 2025-12-30 14:26:21 +01:00
e75a989c54 ui: refine login and panels 2025-12-30 13:51:10 +01:00
044203e332 ui: add logo and favicon 2025-12-30 13:40:11 +01:00
725b67d734 ui: place oidc button near login 2025-12-30 13:36:01 +01:00
f27e423ef3 ui: add login routing and docs 2025-12-30 13:25:15 +01:00
b12e0bf4d5 docs: log login landing change 2025-12-30 13:16:57 +01:00
5e7eb6a6e7 ui: login landing and header version 2025-12-30 13:15:25 +01:00
49adf77808 feat: replace Watchtower theme with OIDC professional design
- Remove Watchtower theme CSS files (tokens_watchtower.css, theme_watchtower.css)
- Add OIDC styles.css (professional IT asset management design)
- Add dark mode toggle button (moon/sun icon)
- Remove custom CSS in favor of OIDC styles.css
- Add dark mode persistence with localStorage
- Remove bg-noise div (Watchtower-specific)
- Wrap content in .container div for OIDC layout

Benefits:
- Professional gradient header
- Light/Dark mode toggle
- Better color palette for readability
- Consistent with homelab-service-oidc design

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 12:32:57 +01:00
73ade70f16 feat: modernize web UI with dashboard and enhanced UX
- Add Lucide Icons library integration
- Implement metrics dashboard with 4 cards (users count, active, locked, version)
- Replace text-based user list with proper table including status badges
- Add toast notification system with slide-in animation
- Implement loading states with spinners for async operations
- Add action modal for user disable/enable operations
- Add status badges (success/warning/error/neutral) throughout
- Enhance CSS with hover effects, transitions, and modern styling
- Improve visual hierarchy with card-based layout
- Add icon-based actions for better UX

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 12:25:38 +01:00
efd006276d feat: implement Watchtower theme for web UI
Replace Pico CSS with custom Watchtower theme (Sci-Fi Dark Mode):
- Add backend/static/ directory with Watchtower CSS files
- tokens_watchtower.css: Design tokens (colors, typography, spacing)
- theme_watchtower.css: Theme overrides for components

Features:
- High-contrast dark mode (#0b0f14 background)
- Neon accent color (#00e08f teal/cyan)
- Glow effects on buttons and inputs
- Radial gradient background
- SVG noise texture overlay (bg-noise class)
- Pill-shaped buttons (border-radius: 999px)
- Uppercase labels with letter-spacing
- Monospace font for logs

UI Enhancements:
- FastAPI static files mount added
- Custom styling for all components (sections, buttons, inputs, forms)
- Accent border-left on header and update status
- Improved visual hierarchy with color coding
- OIDC button gets secondary style (outline)

Complete US_000024 and TASK_000024.
Based on minecraft-watchtower UI design.
All Pico CSS dependencies removed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 11:59:24 +01:00
f7b1a7987d Merge feature/update-client: Complete EPIC_000008 Client-Side Update Mechanism 2025-12-30 11:38:54 +01:00
d799c0f042 feat: implement update management web UI
Add complete update management interface to web UI:
- Update status display (current version, last status, timestamp, errors)
- Check for updates button with availability indicator
- Apply update button with confirmation dialog and backup warnings
- Rollback button with confirmation dialog
- Update logs viewer (collapsible, reverse chronological)
- Auto-refresh after update/rollback actions (5s delay)

Features:
- Uses existing Pico CSS framework for consistent styling
- Integrates with existing auth system (Bearer token/session cookies)
- Real-time feedback with loading states and error handling
- German UI language matching existing interface
- All API calls use existing api() helper function

Complete US_000029-033 and TASK_000030-034:
- US_000029: Display update status in web UI
- US_000030: Trigger update check from UI
- US_000031: Apply updates from UI
- US_000032: Display update logs in UI
- US_000033: Trigger rollback from UI

EPIC_000008 (Client-Side Update Mechanism) now fully complete.
Documentation updated per SOP (CHANGELOG, PROJECT_STATUS, stories/tasks).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 11:32:39 +01:00
107cdabe8d feat: implement update backend API and client logic
Add complete update mechanism for client-side updates:
- backend/update.py: Core update logic (check, apply, rollback, status/logs)
- backend/app.py: REST API endpoints (GET /update/status, POST /update/check, POST /update/apply, POST /update/rollback, GET /update/logs)
- backend/models.py: Pydantic models for update API responses
- backend/settings.py: Update config (status/log file paths)
- scripts/rollback_client.sh: Rollback script for failed updates
- scripts/update_client.sh: Enhanced update client script
- CLAUDE.md: Documentation for future Claude Code instances

Complete US_000026-028 and TASK_000027-029:
- US_000026: Client pulls updates from remote service
- US_000027: Client verifies and applies updates atomically
- US_000028: Client reports update status to backend

All endpoints require authentication. Updates run asynchronously.
Documentation updated per SOP (CHANGELOG, PROJECT_STATUS, stories/tasks).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 11:18:34 +01:00
b64cc5981c docs: define update status/log files 2025-12-29 00:22:16 +01:00
fde207a3e6 docs: define update backend api 2025-12-29 00:08:16 +01:00
2fc189a467 docs: start update ui stories 2025-12-29 00:01:22 +01:00
312365a5f6 docs: require backup before update/rollback 2025-12-28 23:59:26 +01:00
132604de2d code: report update status 2025-12-28 23:51:20 +01:00
37087e7925 docs: define update status reporting 2025-12-28 23:51:01 +01:00
c41a4560c1 code: add update client prototype script 2025-12-28 23:44:19 +01:00
2d829b74dd docs: add update client flow 2025-12-28 23:44:00 +01:00
b508f5c58c code: load update client config 2025-12-28 23:39:20 +01:00
8a16a8633b docs: add update client config keys 2025-12-28 23:39:10 +01:00