Conversation
- Add GetSubscribers endpoint to subscriber handler (admin, auth) - Create Pinia store, composable, and view for subscriber management - Status page selector + search + unsubscribe in table view Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New ssl_monitors Go module with TLS dial cert checking - Entity: SSLCert with expiry tracking and status badges - Frontend page: cert table with expiring-soon alerts - Check now / check all endpoints for manual triggers Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New api_tokens Go module with SHA256 token hashing - Generate pu_ prefixed tokens, return raw token once - Token list view with copy-once dialog and revoke - Admin sees all tokens, users manage own Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New tags Go module with Tag + MonitorTag entities (many2many) - CRUD endpoints + attach/detach to monitors - Tag color presets with visual swatch picker - Reusable tag-badge component for inline display Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New NotificationLog entity in notifications module - Hook logging into notification sending (future senders) - GET /notification-logs endpoint with channel/status/date filters - Frontend: log table with channel icons, status badges, search Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New GET /analytics/report endpoint with from/to query params - Frontend: date range picker, monitor filter, stats cards - Export CSV/JSON download buttons Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New teams Go module: Team + TeamMember entities - Full CRUD teams, invite/accept/reject members - Role management (admin/member) with status tracking - Frontend: team list cards, member table, invite dialog Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New integrations Go module: Slack, Discord, Webhook, GitHub, PagerDuty - CRUD + test integration (sends test payload via webhook) - Frontend: card-based layout with type icons, connect dialog - Enable/disable toggle and delete with confirmation Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- New backup Go module: export all data (9 tables) as JSON - Import with validation (version check, transactional restore) - File download via Content-Disposition header - Frontend: export/download buttons, drag-drop file upload - Backup history tracking and record management Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- Register 7 new modules in main.go (ssl, api_tokens, tags, teams, integrations, backup) - Restructure sidebar into 5 groups: Monitoring, Status & Reports, Alerts & Incidents, Notifications, Administration (19 menu items total) - Add all new routes with admin protection where needed Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- Change heartbeat_token from string to *string so NULL not empty string avoids UNIQUE constraint violation for non-heartbeat monitors - Fix monitor_response DTO to match *string type - Fix monitors.ts frontend type to allow null - Fix NotificationLogs view: XCircle -> X (icon not in lucide-vue) Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
…orts
- reka-ui SelectItem rejects empty string value
- Change to sentinel ('all-channels', 'all-status', 'all')
- Update filter logic to skip filtering on sentinel
Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Add SQL migration to cleanup existing heartbeat_token empty strings → NULL - Add fallback refetch in StatusPages create dialog when monitors list empty - Prevents 'No monitors available' when user has monitors Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
… scroll handling - Fix AppNavbar anchor navigation to detect current route before scrolling — when on a non-landing page (e.g. /contributing), navigate to the landing page with the hash first instead of trying to find non-existent DOM elements - Add scroll-to-hash handler in LandingPage onMount so that navigating from another page with a hash (e.g. /#hero) smoothly scrolls to the target section after the page renders - Add scrollBehavior to vue-router to automatically scroll to top on every page navigation, handle hash-based scrolling, and restore scroll position on browser back/forward
feat(landing): improve navigation between pages with hash routing and…
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (99)
📝 WalkthroughWalkthroughThis PR adds new backend modules and admin pages for API tokens, SSL monitoring, tags, integrations, backups, teams, reports, and subscribers, publishes full API documentation, updates related routing and migrations, and refreshes the landing page navigation, hero, footer, and marketing sections. ChangesPlatform API and admin surface
Landing page refresh
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This pull request merges the landing page updates, specifically the new
CtaSectioncomponent and the analytics preview images, fromdevintomain.Summary by CodeRabbit
Release Notes
New Features
Documentation