Commit Graph

3201 Commits

Author SHA1 Message Date
Andras Bacsai 31555f9e8a fix(jobs): prevent non-due jobs firing on restart and enrich skip logs with resource links
- Refactor shouldRunNow() to only fire on first run (empty cache) if actually due by cron schedule, preventing spurious executions after cache loss or service restart
- Add enrichSkipLogsWithLinks() method to fetch and populate resource names and links for tasks, backups, and docker cleanup jobs in skip logs
- Update skip logs UI to display resource column with links to related resources, improving navigation and context
- Add fallback display when linked resources are deleted
- Expand tests to cover both restart scenarios: non-due jobs (should not fire) and due jobs (should fire)
2026-02-28 18:03:29 +01:00
Andras Bacsai 63be5928ab feat(scheduler): add pagination to skipped jobs and filter manager start events
- Implement pagination for skipped jobs display with 20 items per page
- Add pagination controls (previous/next buttons) to the scheduled jobs view
- Exclude ScheduledJobManager "started" events from run logs, keeping only "completed" events
- Add ShouldBeEncrypted interface to ScheduledTaskJob for secure queue handling
- Update log filtering to fetch 500 recent skips and slice for pagination
- Use Log facade instead of fully qualified class name
2026-02-28 16:23:58 +01:00
Andras Bacsai c93296e9a6 feat(healthcheck): add command-based health check support (#8612) 2026-02-25 12:09:59 +01:00
Andras Bacsai b88f9fca67 chore: prepare for PR 2026-02-25 12:07:29 +01:00
Andras Bacsai 609cb4190e fix(health-checks): sanitize and validate CMD healthcheck commands
- Add regex validation to restrict allowed characters (alphanumeric, spaces, and specific safe symbols)
- Enforce maximum 1000 character limit on healthcheck commands
- Strip newlines and carriage returns to prevent command injection
- Change input field from textarea to text input in UI
- Add warning callout about prohibited shell operators
- Add comprehensive validation tests for both valid and malicious command patterns
2026-02-25 11:28:33 +01:00
Aditya Tripathi 036f565785 Merge branch 'next' into feat/healthcheck-cmd 2026-02-24 22:22:02 +05:30
Andras Bacsai 279322d50f fix(input): prevent eye icon flash on password fields before Alpine.js loads (#8599) 2026-02-24 12:57:22 +01:00
Andras Bacsai 448e922e6c chore: prepare for PR 2026-02-24 12:56:54 +01:00
Andras Bacsai 2986d7604e chore: prepare for PR 2026-02-24 10:17:16 +01:00
Andras Bacsai 6cacd2f0ff chore: prepare for PR 2026-02-23 14:17:15 +01:00
Aditya Tripathi 04283a03a0 Merge branch 'next' into feat/healthcheck-cmd 2026-02-21 06:54:29 +05:30
Andras Bacsai 664b31212f chore: prepare for PR 2026-02-18 15:42:42 +01:00
Andras Bacsai 967d295963 chore: prepare for PR 2026-02-18 11:20:32 +01:00
Andras Bacsai 47a3f2e2cd test: add Pest browser testing with SQLite :memory: schema
Set up end-to-end browser testing using Pest Browser Plugin + Playwright.
New v4 test suite uses SQLite :memory: database with pre-generated schema dump
(database/schema/testing-schema.sql) instead of running migrations, enabling
faster test startup.

- Add pestphp/pest-plugin-browser dependency
- Create GenerateTestingSchema command to export PostgreSQL schema to SQLite
- Add .env.testing configuration for isolated test environment
- Implement v4 test directory structure (Feature, Browser, Unit tests)
- Update Pest skill documentation with browser testing patterns, API reference,
  debugging techniques, and common pitfalls
- Configure phpunit.xml and tests/Pest.php for v4 suite
- Update package.json and docker-compose.dev.yml for testing dependencies
2026-02-11 15:25:47 +01:00
Andras Bacsai c5afd8638e chore: prepare for PR 2026-02-09 15:24:24 +01:00
peaklabs-dev 807cb4349d feat(ui): use 2 column layout 2026-02-04 17:17:51 +01:00
peaklabs-dev 4dc1ae8bf5 feat(ui): add official postgres 18 support
- add postgres 18 support
- add pgvector 18 support
- add postgres 16 as well as it is still widely used
2026-02-04 00:32:30 +01:00
ShadowArcanist e57cc16b91 fix(validation): enforce url validation for instance domain (#8078) 2026-02-03 22:00:12 +01:00
Mailo 3a60561a34 fix(ui): horizontal overflow on application and service headings (#7970) 2026-01-19 19:27:19 +01:00
peaklabs-dev 7aa41675ab fix(ui): modal issues
- tooltips can not extend outside the modal causing a scrollbar to appear
- modals are to wide
- remove unused minWidth and maxWidth props
2026-01-19 18:19:35 +01:00
peaklabs-dev bd5696db1c fix(ui): make tooltips a bit wider 2026-01-19 18:17:12 +01:00
Andras Bacsai 95091e918f fix: optimize queries and caching for projects and environments 2026-01-16 11:51:26 +01:00
Aditya Tripathi 33d5879160 Merge branch 'next' into feat/healthcheck-cmd 2026-01-15 16:37:54 +05:30
ShadowArcanist 728396f410 fix(ui): improve volume mount warning for compose applications (#7947) 2026-01-13 20:40:00 +01:00
Dominic Schmid d4957ff3d1 feat(ui): improve sidebar menu items styling (#7928) 2026-01-12 23:09:56 +01:00
Dominic Schmid abd2df312c fix(ui): hide already registered button when there are 0 users (#7918) 2026-01-11 18:06:30 +01:00
Alexzvn a5537119b9 fix(ui): empty network destinations when cloning a resource (#7309) 2026-01-06 14:14:56 +01:00
peaklabs-dev 86ffef2df5 feat(ui): add port mapping format to helper and fix typo 2026-01-05 21:39:39 +01:00
Aleksander Lis 7c075551ff fix(log): preserve leading whitespace in logs (#7879) 2026-01-05 21:32:34 +01:00
Favour Chukwuedo 571bbe235d feat(ui): make git repository dropdown searchable (#7064)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-04 19:28:15 +01:00
Murat Aslan 4fa3c538bc fix(ui): change password visibility eye icon based on state (#7729) 2026-01-04 18:52:07 +01:00
ShadowArcanist cc3e39db1f feat(ui): show server name on resource card (#7417) 2026-01-04 17:19:01 +01:00
Andras Bacsai 796bb3a19d feat: Refactor service database management and backup functionalities
- Introduced a new sidebar component for service database navigation.
- Updated routes for database import and backup functionalities.
- Refactored the database import view to improve clarity and maintainability.
- Consolidated service application and database views into a more cohesive structure.
- Removed deprecated service application view and integrated its functionalities into the service index.
- Enhanced user experience with modal confirmations for critical actions.
- Improved code readability and organization across various components.
2026-01-02 16:29:48 +01:00
Andras Bacsai 360a82ec5d Merge branch 'next' into feat/servicedatabase-restore 2026-01-02 13:45:15 +01:00
Andras Bacsai b448b08058 fix: prevent metric charts from freezing on page navigation (#7848) 2026-01-02 13:13:45 +01:00
Andras Bacsai 399b0130bc fix: remove livewire:init wrapper from server charts event listeners
The livewire:init event fires before inline scripts execute in Livewire
components, so wrapping Livewire.on() in document.addEventListener('livewire:init')
prevents the callback from ever firing, breaking chart data updates.

This removes the wrapper to match the working pattern in metrics.blade.php.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 13:11:16 +01:00
Andras Bacsai a8aa452475 fix: prevent metric charts from freezing when navigating with wire:navigate
Wraps inline chart initialization scripts in IIFEs to create local scope for variables. This prevents "Identifier has already been declared" errors when Livewire's SPA navigation re-executes scripts, allowing smooth navigation between metrics pages without page refresh.

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-02 12:36:17 +01:00
Andras Bacsai 006e787e2a feat(logs): Add loading indicator to download all logs buttons (#7847) 2026-01-02 12:05:14 +01:00
Andras Bacsai 4d4254b591 claude fix test (#7825) 2026-01-02 12:04:23 +01:00
Andras Bacsai a980fd460a feat(logs): Add loading indicator to download all logs buttons
Add visual feedback when downloading all logs in both container and deployment log views. Users now see an animated spinner and "Downloading..." text, preventing multiple concurrent downloads and improving UX during long operations.

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-02 12:04:17 +01:00
Andras Bacsai 770ce2d327 Refactor application general settings view for improved readability and maintainability
- Adjusted indentation and formatting for better code clarity.
- Simplified conditional statements and removed unnecessary null checks.
- Enhanced user interface elements for Docker Compose and Dockerfile configurations.
- Improved handling of deployment commands and network settings.
- Updated helper texts for better user guidance.
2025-12-31 11:44:08 +01:00
Claude bbb2aa9ad4 feat(logs): Add dropdown to download displayed or all logs
Users can now choose between downloading only the currently displayed
logs or fetching and downloading all available logs from the container.

Changes:
- Add downloadAllLogs() method that fetches all logs without limit
- Replace download button with dropdown menu
- Options: "Download displayed logs" and "Download all logs"

Addresses #7803
2025-12-29 17:59:23 +00:00
Claude b484c0cc25 fix(logs): Remove hardcoded 2000 line display limit
The log viewer was artificially limiting display to 2000 lines
regardless of user's requested amount. Users could request 10k, 40k,
or 50k lines but only 2000 were ever shown.

Changes:
- Remove the hardcoded $maxDisplayLines = 2000 limit in the view
- Add MAX_LOG_LINES constant (50,000) in GetLogs component
- Enforce maximum limit in backend to prevent extremely large requests
- Update input field with max attribute and tooltip

Fixes #7803
2025-12-29 17:52:35 +00:00
Andras Bacsai bd22c0e470 fix: back navigation in global search resource selection
Add smart goBack() method that skips auto-selected steps and returns to the
last step where user had a real choice. This prevents navigation loops when
previous steps only have a single option and auto-select.

Fixes #7739

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-28 13:53:26 +01:00
Andras Bacsai b9ea89d528 fix(ui): make build pack UI reactivity work properly (#7780)
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-27 14:38:12 +01:00
Andras Bacsai a33dbb8a90 fix(ui): improve upgrade modal loading indicators visibility in light mode (#7770) 2025-12-26 13:20:31 +01:00
Aditya Tripathi 1ef6351701 feat: require health check command for 'cmd' type with backend validation and frontend update 2025-12-25 21:03:49 +00:00
Claude 707bfacbcd fix(ui): improve upgrade modal loading indicators visibility in light mode
Change yellow loading indicators to black in light mode for better
visibility while keeping warning (yellow) color for dark mode.
2025-12-25 18:18:26 +00:00
Aditya Tripathi 342e8e765d feat: add command healthcheck type 2025-12-25 08:11:11 +00:00
ShadowArcanist 1d1290c076 fix(ui): broken hyperlink to sentinel page on application metrics page 2025-12-23 18:46:07 +01:00