Commit Graph
62 Commits
Author SHA1 Message Date
Andras BacsaiandClaude Haiku 4.5 9f315d124d Simplify cloud provider token button labels
Change "Validate Token" to "Validate" and "Delete Token" to "Delete" for cleaner UI.

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-18 12:18:18 +01:00
Andras BacsaiandClaude Haiku 4.5 e709e2c131 Add toggleable wire:navigate SPA navigation with prefetching
Implement instance-wide SPA navigation toggle that enables smooth page transitions with prefetching on hover. Excludes terminal links which require full page lifecycle for WebSocket connections. Adds defensive checks to global-search component for SPA navigation compatibility.

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 12:09:13 +01:00
Andras Bacsai 4052d1bd05 Refactor color classes from yellow to warning across the application
- Updated color classes in NotifyDemo.php to use warning colors.
- Added new warning color variables in app.css.
- Changed warning icon colors in callout.blade.php.
- Updated loading spinner and hover states in global-search.blade.php.
- Refactored warning messages and styles in project application views.
- Adjusted log display colors in get-logs.blade.php.
- Updated private key status indicators in index.blade.php.
- Changed hover and text colors for documentation links in cloudflare-tunnel.blade.php.
- Refactored server creation messages in by-hetzner.blade.php.
- Updated proxy warning button colors in proxy.blade.php.
- Changed loading spinner colors in show.blade.php.
- Updated deployment status colors in deployments.blade.php and show.blade.php.
2025-11-28 16:23:32 +01:00
Andras Bacsai d905ae107b Refactor UI components to use 'coolbox' class for consistent styling across various views
- Updated dashboard, destination, project, and server views to replace 'box' class with 'coolbox' for improved visual consistency.
- Modified links and buttons in shared variables and scheduled tasks views to utilize 'coolbox' class.
- Ensured all relevant components reflect the new styling approach, enhancing user experience and interface coherence.
2025-11-28 13:55:54 +01:00
Andras Bacsai 2a8fbb3f6e feat: add token validation functionality for Hetzner and DigitalOcean providers 2025-10-29 23:21:38 +01:00
Andras Bacsai c95e297f39 fix: update boarding flow logic to complete onboarding when server is created 2025-10-29 23:06:39 +01:00
Andras Bacsai f7427fdea0 Changes auto-committed by Conductor 2025-10-17 23:04:24 +02:00
Andras BacsaiandClaude 837a0f4545 Merge branch 'next' into andrasbacsai/livewire-model-binding
Resolved merge conflicts between Livewire model binding refactoring and UI/CSS updates from next branch. Key integrations:

- Preserved unique HTML ID generation for form components
- Maintained wire:model bindings using $modelBinding
- Integrated new wire:dirty.class styles (border-l-warning pattern)
- Kept both syncData(true) and validateDockerComposeForInjection in StackForm
- Merged security tests and helper improvements from next

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 11:05:29 +02:00
Andras Bacsai b911d2b281 feat: update Hetzner affiliate link text and URL
- Change URL to https://coolify.io/hetzner
- Add detailed explanation about credits (€10 for Coolify, €20 for new users)
- Clarify it's only for new accounts
- Improve text formatting with extra spacing
- Apply consistent messaging across both modal and full-page layouts
2025-10-14 09:28:01 +02:00
Andras Bacsai d4b9b61cbd feat: add Hetzner affiliate link to token form
- Add affiliate link when users add their first Hetzner token
- Shows in both modal and full-page layouts
- Friendly messaging about supporting Coolify and getting credits
2025-10-14 09:25:10 +02:00
Andras BacsaiandClaude f77ad4cbd9 Complete Livewire legacy model binding migration (25+ components)
This completes the migration from Livewire's legacy `id="model.property"`
pattern to explicit properties with manual synchronization. This allows
disabling the `legacy_model_binding` feature flag.

**Components Migrated (Final Session - 9 components):**
- Server/Proxy.php (1 field)
- Service/EditDomain.php (1 field) - Fixed Collection/string bug & parent sync
- Application/Previews.php (2 fields - array handling)
- Service/EditCompose.php (4 fields)
- Service/FileStorage.php (6 fields)
- Service/Database.php (7 fields)
- Service/ServiceApplicationView.php (10 fields)
- Application/General.php (53 fields) - LARGEST migration
- Application/PreviewsCompose.php (1 field)

**Total Migration Summary:**
- 25+ components migrated across all phases
- 150+ explicit properties added
- 0 legacy bindings remaining (verified via grep)
- All wire:model, id, @entangle bindings updated
- All updater hooks renamed (updatedApplicationX → updatedX)

**Technical Changes:**
- Added explicit public properties (camelCase)
- Implemented syncData(bool $toModel) bidirectional sync
- Updated validation rules (removed model. prefix)
- Updated all action methods (mount, submit, instantSave)
- Fixed updater hooks: updatedBuildPack, updatedBaseDirectory, updatedIsStatic
- Updated Blade views (id & wire:model bindings)
- Applied Collection/string confusion fixes
- Added model refresh + re-sync pattern

**Critical Fixes:**
- EditDomain.php Collection/string confusion (use intermediate variables)
- EditDomain.php parent component sync (refresh + re-sync after save)
- General.php domain field empty (syncData at end of mount)
- General.php wire:model bindings (application.* → property)
- General.php updater hooks (wrong naming convention)

**Files Modified:** 34 files
- 17 PHP Livewire components
- 17 Blade view templates
- 1 MIGRATION_REPORT.md (documentation)

**Ready to disable legacy_model_binding flag in config/livewire.php**

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 15:38:59 +02:00
Andras BacsaiandClaude 9c21304ddb docs: clarify cloud-init script compatibility
Add note that cloud-init scripts currently work only with Hetzner
integration to set user expectations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 14:06:16 +02:00
Andras BacsaiandClaude d93a13eeee feat: add YAML validation for cloud-init scripts
Add ValidCloudInitYaml validation rule to ensure cloud-init scripts
are properly formatted before saving. The validator supports:
- Cloud-config YAML (with or without #cloud-config header)
- Bash scripts (starting with #!)
- Empty/null values (optional field)

Uses Symfony YAML parser to validate YAML syntax and provides
detailed error messages when validation fails.

Added comprehensive unit tests covering:
- Valid cloud-config with/without header
- Valid bash scripts
- Invalid YAML syntax detection
- Complex multi-section cloud-config

Applied validation to:
- ByHetzner component (server creation)
- CloudInitScriptForm component (script management)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 13:56:55 +02:00
Andras BacsaiandClaude ff889e658d refactor: improve cloud-init script management UI and cache control
- Add manual cache clearing command (search:clear) for testing
- Integrate cloud-init scripts into global search navigation
- Improve form UX by preventing field reset during edit operations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 13:47:26 +02:00
Andras BacsaiandClaude 6c5adce633 fix: improve cloud-init scripts UI styling and behavior
Fix multiple UI/UX issues with cloud-init scripts management:

1. Fix card styling - Remove purple box background, use simple border
   - Changed from .box class to inline flex/border styling
   - Matches cloud provider tokens styling pattern

2. Remove script preview section
   - Preview was taking too much space and looked cluttered
   - Users can edit to see full script content

3. Make edit modal full width
   - Added fullWidth attribute to x-modal-input component
   - Provides better editing experience for long scripts

4. Fix fields clearing after update
   - Fields were being reset even in edit mode
   - Now only reset fields when creating new script
   - Edit mode preserves values after save

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 13:30:44 +02:00
Andras BacsaiandClaude 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 b28875c612 fix: update cloud provider token form with improved placeholder and guidance for API token creation 2025-10-10 15:40:20 +02:00
Andras Bacsai ee211526ea fix: improve placeholder text for token name input in cloud provider token form 2025-10-10 11:38:35 +02:00
Andras Bacsai 704ddf2968 improved hetzner features 2025-10-09 12:53:57 +02:00
Andras Bacsai d837aa1473 fix(api-tokens): update settings link for API enablement message
- Changed the link in the API tokens view to direct users to the advanced settings page instead of the general settings page, providing clearer guidance for enabling the API.
2025-10-09 11:22:10 +02:00
Andras Bacsai c1bcc41546 init of cloud providers 2025-10-08 20:47:50 +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 5c4a265542 refactor(validation): implement centralized validation patterns across components
- Introduced `ValidationPatterns` class to standardize validation rules and messages for various fields across multiple components.
- Updated components including `General`, `StackForm`, `Create`, and `Show` to utilize the new validation patterns, ensuring consistent validation logic.
- Enhanced error messages for required fields and added regex validation for names and descriptions to improve user feedback.
- Adjusted styling in the `create.blade.php` view for better visual hierarchy.
2025-08-19 14:15:31 +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 0e27d1f46d fix(ui): update border styling for consistency across components and enhance loading indicators 2025-06-25 10:56:35 +02:00
Andras Bacsai fb80ce64ec fix(ui): refine API token creation form and update helper text for clarity 2025-06-24 17:19:25 +02:00
0x4e32andGitHub c728e6f2ba feat(ui): Upgrade to Tailwind v4 (#5710) 2025-05-14 12:43:23 +02:00
Andras Bacsai d47946a0ad fix(ui): Disable livewire navigate feature (causing spam of setInterval()) 2025-04-29 09:04:24 +02:00
peaklabs-dev a1dbcb5f4d fix: more wire:navigate 2025-01-10 15:20:01 +01:00
Andras Bacsai ff74fb7385 feat: introduce root permission 2024-12-09 10:52:38 +01:00
Andras Bacsai 5bbcd7bf76 fix: add middleware to new abilities, better ux for selecting permissions, etc. 2024-12-09 10:28:34 +01:00
Andras Bacsai 78f0ac80c1 Merge branch 'next' into feat/deployment-token 2024-12-09 09:16:59 +01:00
Kael 6520235667 middleware should allow, not deny 2024-10-30 19:06:50 +11:00
Kael d4d63ff273 feat: add deploy-only token permission 2024-10-30 17:00:55 +11:00
Andras Bacsai 8eac7c209a Refactor server resources view to use flexbox for sidebar layout 2024-10-21 14:22:07 +02:00
Andras Bacsai c4e702f096 fix: able to select root permission easier 2024-10-03 09:57:37 +02:00
Andras Bacsai 8e6c7eaeda chore: Update API Tokens view to include link to Settings menu 2024-09-27 17:23:36 +02:00
Andras Bacsai 8d02fb9254 chore: Refactor API Tokens component to use isApiEnabled flag 2024-09-27 16:48:17 +02:00
peaklabs-dev 111e9ba3a3 Fix: Disable API by default 2024-09-26 10:45:18 +02:00
peaklabs-dev 47920f1191 Feat: If API is disabeled do not show API token creation stuff 2024-09-26 10:32:12 +02:00
peaklabs-dev dbc723089b Feat: Delete unused private keys button 2024-09-19 19:27:25 +02:00
Andras BacsaiandGitHub 631b4e6438 Merge branch 'next' into fix-ssh-keys 2024-09-19 11:45:12 +02:00
peaklabs-dev 283fcc87a5 Fix: SSH algorhytm text 2024-09-17 15:31:44 +02:00
peaklabs-dev ba636a95dc Refactor SSH Keys 2024-09-16 17:24:42 +02:00
ayntk-ai 9515bc6162 Feat: confirm private key 2024-09-04 20:02:01 +02:00
ayntk-ai 93a4a3e09c Feat: confirm API token 2024-09-04 19:58:36 +02:00
Andras Bacsai c39d6dd407 feat: token permissions
feat: handle sensitive data
feat: handle read-only data
2024-07-02 12:15:58 +02:00
Andras Bacsai 35cea852ca feat: add titles 2024-06-07 11:01:10 +02:00
Andras Bacsai 22a1d3882e feat: able to make rsa/ed ssh keys 2024-04-03 13:45:49 +02:00
Andras Bacsai 7a92ecfa30 fix: async public key loading 2024-03-30 18:58:41 +01:00