Commit Graph

263 Commits

Author SHA1 Message Date
Andras Bacsai 25d424c743 refactor: split invitation endpoint into GET (show) and POST (accept)
Refactor the invitation acceptance flow to use a landing page pattern:
- GET shows invitation details (team name, role, confirmation button)
- POST processes the acceptance with proper form submission
- Remove unused revoke GET route (handled by Livewire component)
- Add Blade view for the invitation landing page
- Add feature tests for the new invitation flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 14:30:27 +01:00
Andras Bacsai 847166a3f8 fix(terminal): apply authorization middleware to terminal bootstrap routes
Apply the existing `can.access.terminal` middleware to `POST /terminal/auth`
and `POST /terminal/auth/ips` routes, consistent with the `GET /terminal` route.

Adds regression tests covering unauthenticated, member, admin, and owner roles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 16:56:37 +01:00
Andras Bacsai ca3ae289eb feat(storage): add resources tab and improve S3 deletion handling
Add new Resources tab to storage show page displaying backup schedules using
that storage. Refactor storage show layout with navigation tabs for General
and Resources sections. Move delete action from form to show component.

Implement cascade deletion in S3Storage model to automatically disable S3
backups when storage is deleted. Improve error handling in DatabaseBackupJob
to throw exception when S3 storage is missing instead of silently returning.

- New Storage/Resources Livewire component
- Add resources.blade.php view
- Add storage.resources route
- Move delete() method from Form to Show component
- Add deleting event listener to S3Storage model
- Track backup count and current route in Show component
- Add #[On('submitStorage')] attribute to form submission
2026-03-19 11:42:29 +01:00
Andras Bacsai 5c5f67f48b chore: prepare for PR 2026-03-10 20:37:22 +01:00
Andras Bacsai 664b31212f chore: prepare for PR 2026-02-18 15:42:42 +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 9675d74360 refactor: move Swarm and Sentinel to dedicated sidebar menu items
- Create new Server/Swarm.php Livewire component and view for Swarm configuration
- Create new Server/Sentinel.php Livewire component and view for Sentinel settings
- Add server.swarm and server.sentinel routes
- Move Swarm and Sentinel sections from General page to sidebar menu items
- Improve organization by separating concerns into dedicated pages

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-18 12:18:22 +01:00
Andras Bacsai 635af44539 Merge pull request #6837 from coollabsio/andrasbacsai/custom-webhooks
feat: add custom webhook notification support
2025-10-12 10:57:47 +02:00
Andras Bacsai 5463f4d496 feat: add cloud-init scripts management UI in Security section
Add comprehensive cloud-init script management interface in the Security
section, allowing users to create, edit, delete, and reuse cloud-init
scripts across their team.

New Components:
- CloudInitScripts: Main listing page with grid view of scripts
- CloudInitScriptForm: Modal form for create/edit operations

Features:
- Create new cloud-init scripts with name and content
- Edit existing scripts
- Delete scripts with confirmation (requires typing script name)
- View script preview (first 200 characters)
- Scripts are encrypted in database
- Full authorization using CloudInitScriptPolicy
- Real-time updates via Livewire events

UI Location:
- Added to Security section nav: /security/cloud-init-scripts
- Positioned between Cloud Tokens and API Tokens
- Follows existing security UI patterns

Files Created:
- app/Livewire/Security/CloudInitScripts.php
- app/Livewire/Security/CloudInitScriptForm.php
- resources/views/livewire/security/cloud-init-scripts.blade.php
- resources/views/livewire/security/cloud-init-script-form.blade.php

Files Modified:
- routes/web.php - Added route
- resources/views/components/security/navbar.blade.php - Added nav link

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 12:42:09 +02:00
Andras Bacsai 27879377a0 feat: add custom webhook notification support
Add basic infrastructure for custom webhook notifications:
- Create webhook_notification_settings table with event toggles
- Add WebhookNotificationSettings model with encrypted URL
- Integrate webhook settings into Team model and HasNotificationSettings trait
- Create Livewire component and Blade view for webhook configuration
- Add webhook navigation route and UI

This provides the foundation for sending webhook notifications to custom HTTP/HTTPS endpoints when events occur in Coolify.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 15:37:00 +02:00
Andras Bacsai 704ddf2968 improved hetzner features 2025-10-09 12:53:57 +02:00
Andras Bacsai c1bcc41546 init of cloud providers 2025-10-08 20:47:50 +02:00
ShadowArcanist 299db159cb Moved terminal access settings to security page 2025-09-23 06:32:51 +05:30
Andras Bacsai fe2c4fd1c7 fix(web-routes): enhance backup response messages to clarify local and S3 availability 2025-09-09 10:34:40 +02:00
Andras Bacsai 63fcc0ebc3 feat(acl): Change views/backend code to able to use proper ACL's later on. Currently it is not enabled. 2025-08-26 10:27:38 +02:00
Andras Bacsai 3e1f47a243 feat(auth): introduce resource creation authorization middleware and policies for enhanced access control 2025-08-26 10:27:38 +02:00
Andras Bacsai 90817914d9 refactor(ui): separate views for instance settings to separate paths to make it cleaner 2025-06-30 08:50:17 +02:00
Andras Bacsai 7fb85314e5 refactor(invitation): rename methods for consistency and enhance invitation deletion logic 2025-06-25 11:45:55 +02:00
Andras Bacsai c6f4354fdb fix(routes): add name to security route for improved route management 2025-06-16 13:12:57 +02:00
Andras Bacsai 0767ff2c4f fix(web): update user team retrieval method for consistent authentication handling 2025-06-10 11:10:06 +02:00
Andras Bacsai ddcb14500d refactor(proxy-status): refactored how the proxy status is handled on the UI and on the backend
feat(cloudflare): improved cloudflare tunnel automated installation
2025-06-06 14:47:54 +02:00
Andras Bacsai 261a2fe564 feat(ca-certificate): add CA certificate management functionality with UI integration and routing 2025-05-29 14:27:28 +02:00
Andras Bacsai 46b4cfac68 feat(terminal-access): implement terminal access control for servers and containers, including UI updates and backend logic 2025-05-29 14:09:05 +02:00
Andras Bacsai 82529a3246 feat(routes): restrict backup download access to team admins and owners 2025-05-28 10:48:46 +02:00
Andras Bacsai e7536d3fb8 feat(security): implement server patching functionality
- Add CheckUpdates and UpdatePackage actions for managing server updates.
- Create ServerPackageUpdated event for broadcasting update status.
- Introduce Patches Livewire component for user interface to check and apply updates.
- Update navigation and sidebar to include security patching options.
2025-05-15 22:21:54 +02:00
Andras Bacsai f5cc272861 fix(terminal): enhance WebSocket client verification with authorized IPs in terminal server 2025-04-25 15:35:23 +02:00
peaklabs-dev 04349d9b05 chore(core): remove redocs
- It is not well maintained (no Laravel 12 Support) and does not work anyway.
2025-03-31 18:33:52 +02:00
Andras Bacsai 120facfca3 feat(api): unify service creation endpoint and enhance validation 2025-03-21 11:31:17 +01:00
peaklabs-dev 1f498f8595 Revert "fix(routes): local API docs not available on domain or IP"
This reverts commit a8b5f6befc.
2025-01-22 13:04:35 +01:00
peaklabs-dev a8b5f6befc fix(routes): local API docs not available on domain or IP 2025-01-22 12:51:46 +01:00
peaklabs-dev 23ae0677eb feat: move docker cleanup to its own tab 2025-01-15 14:02:33 +01:00
Andras Bacsai 1fe4dd722b Revert "rector: arrrrr"
This reverts commit 16c0cd10d8.
2025-01-07 15:31:43 +01:00
Andras Bacsai 16c0cd10d8 rector: arrrrr 2025-01-07 14:52:08 +01:00
Andras Bacsai bf9d89f279 Merge branch 'next' into fix-environement-route 2024-12-17 12:17:50 +01:00
Andras Bacsai 38256af9b3 fix: refactor database view 2024-12-17 12:10:55 +01:00
Andras Bacsai b7748479d4 fix: service ui structure 2024-12-17 11:13:17 +01:00
Andras Bacsai e76817d401 improve application view 2024-12-16 14:11:45 +01:00
Andras Bacsai e5f534b6ef fix: pushover 2024-12-12 08:40:34 +01:00
Zao Soula ef35429533 feat(notification): add Pushover 2024-12-11 18:13:16 +01:00
peaklabs-dev 014c6dc446 chore: remove unused route 2024-12-09 20:30:39 +01:00
Andras Bacsai 78f0ac80c1 Merge branch 'next' into feat/deployment-token 2024-12-09 09:16:59 +01:00
peaklabs-dev 5737a6d37f new routes for environment with uuid 2024-11-22 15:30:46 +01:00
Marvin von Rappard 40fb73ee8e fix: import NotificationSlack correctly 2024-11-20 13:01:56 +01:00
Marvin von Rappard 7bdac8b42f Merge branch 'next' into main 2024-11-14 12:54:04 +01:00
peaklabs-dev f55bb5b0fb remove resale license 2024-11-13 18:38:22 +01:00
Marvin von Rappard eb0686fe20 feat: slack notifications 2024-11-12 22:37:55 +01:00
peaklabs-dev b810a96f2a Update web.php 2024-11-12 16:53:55 +01:00
Andras Bacsai 7253041e15 feat: add internal api docs to /docs/api with auth 2024-11-12 13:49:40 +01:00
Andras Bacsai a297c9fcab fix: better invitation errors 2024-11-07 12:32:23 +01:00
Andras Bacsai bfad7c7d7f remove unnecesary route 2024-11-05 10:32:21 +01:00