427 Commits

Author SHA1 Message Date
Andras Bacsai 40d570f195 chore: update team invitation handling 2026-06-02 12:22:27 +02:00
Andras Bacsai 6ed03a8c0a chore(deps): bump realtime helper and postcss versions 2026-05-29 15:25:25 +02:00
Andras Bacsai 21db1fd374 fix(sync-bunny): sync nightly CDN files to nested paths
Write nightly versions and releases under json/nightly in the CDN repo, and cover both release and versions-only sync flows with feature tests.
2026-05-26 11:41:04 +02:00
Andras Bacsai fde500a347 fix(templates): require Docmost mail driver
Require MAIL_DRIVER to be set before Docmost starts and add a unit test to keep the compose template and generated service templates in sync.
2026-05-15 13:36:02 +02:00
Andras Bacsai 9bb40f3ccb fix(deployment): avoid shared preview tags for HEAD commits
Use the deployment UUID when preview deployments are built from HEAD so each deployment gets distinct production and build image tags.
2026-05-11 22:11:08 +02:00
Andras Bacsai 6ee75cfa65 fix(api): remove deprecated docker compose application endpoint
Drop the unstable applications/dockercompose route and controller path now that
service creation is handled by POST /api/v1/services. Add coverage to ensure the
deprecated endpoint stays unregistered while the services endpoint remains
available.
2026-05-11 13:20:05 +02:00
Andras Bacsai 9a58e0fea2 fix(logs): disable auto-scroll on user scroll-up, re-enable on scroll-to-bottom
Add wheel, touch, and keyboard event handlers to log containers in
deployment and get-logs views. Auto-follow disables when user scrolls
up; re-enables when user scrolls back to bottom (within 10px threshold).
2026-04-28 10:33:08 +02:00
Andras Bacsai 6b609536a5 fix(templates): mark Cal.com as AMD-only
Add the `amd_only` flag to the Cal.com service entry in both template JSON files so it is constrained to supported architecture.
2026-04-14 11:16:18 +02:00
Andras Bacsai 92d1168228 chore: bump version to 4.0.0-beta.472 2026-04-09 12:13:39 +02:00
Andras Bacsai e36ae82d9d fix(validation): allow quoted shell args in docker options
Permit single-quoted arguments in SHELL_SAFE_COMMAND_PATTERN while
keeping dangerous metacharacters blocked, and add security test cases
for quoted --entrypoint and --hostname values.
2026-04-08 14:21:49 +02:00
Andras Bacsai 850c37bedd fix(database): auto-generate missing CA cert on SSL regeneration
Prevent null CA certificate access during database SSL certificate regeneration
across KeyDB, MariaDB, MongoDB, MySQL, PostgreSQL, and Redis components.

If no CA certificate exists, attempt to generate one and re-query; if still
missing, dispatch a clear error and stop regeneration gracefully.

Add `SslCertificateRegenerationTest` coverage for missing-CA and CA-query
scenarios to prevent regressions.
2026-03-30 13:10:49 +02:00
Andras Bacsai 6a14a12a58 fix(parsers): preserve ${VAR} references in compose instead of resolving to DB values
Do not replace self-referencing environment variables (e.g., DATABASE_URL: ${DATABASE_URL})
with saved DB values in the compose environment section. Keeping the reference intact allows
Docker Compose to resolve from .env at deploy time, preventing stale values from overriding
user updates that haven't been re-parsed.

Fixes #9136
2026-03-24 21:52:36 +01:00
Andras Bacsai 0ffcee7a4d Squashed commit from '4fhp-investigate-os-command-injection' 2026-03-16 16:40:16 +01:00
Andras Bacsai a97612b29e fix(docker-compose): respect preserveRepository when injecting --project-directory
When adding --project-directory to custom docker compose start commands,
use the application's host workdir if preserveRepository is true, otherwise
use the container workdir. Add tests for both scenarios and explicit paths.
2026-03-13 13:53:03 +01:00
Andras Bacsai 01aa534556 fix(application-source): support localhost key with id=0
Previously, the view checked $privateKeyId with ! operator, which
incorrectly treats 0 (localhost key) as falsy. Changed to explicit
is_null() checks to distinguish between null (no key) and 0 (localhost).
Added test coverage for both cases.
2026-03-09 17:20:33 +01:00
Andras Bacsai 76ae720c36 feat(subscription): add Stripe server limit quantity adjustment flow
Introduce a new `UpdateSubscriptionQuantity` Stripe action to:
- preview prorated due-now and next-cycle recurring costs
- update subscription item quantity with proration invoicing
- revert quantity and void invoice when payment is not completed

Wire the flow into the Livewire subscription actions UI with a new adjust-limit modal,
price preview loading, and confirmation-based updates. Also refactor the subscription
management section layout and fix modal confirmation behavior for temporary 2FA bypass.

Add `Subscription::billingInterval()` helper and comprehensive Pest coverage for
quantity updates, preview calculations, failure/revert paths, and billing interval logic.
2026-03-03 12:24:13 +01:00
Andras Bacsai d2744e0cff fix(database): handle PDO constant name change for PGSQL_ATTR_DISABLE_PREPARES
Support both the older PDO::PGSQL_ATTR_DISABLE_PREPARES and newer
Pdo\Pgsql::ATTR_DISABLE_PREPARES constant names to ensure compatibility
across different PHP versions.
2026-03-03 09:04:45 +01:00
Andras Bacsai 30c0b37689 chore: prepare for PR 2026-02-25 10:58:29 +01:00
Andras Bacsai 967d295963 chore: prepare for PR 2026-02-18 11:20:32 +01:00
Andras Bacsai b49069f3fc feat(docker): install PHP sockets extension in development environment
Add socket.io/php-socket dependency to support WebSocket functionality
in the development container. Also update package-lock.json to reflect
peer dependency configurations for Socket.IO packages.
2026-02-18 11:04:10 +01:00
Andras Bacsai 4ec32290cf fix(server): improve IP uniqueness validation with team-specific error messages
- Refactor server IP duplicate detection to use `first()` instead of `get()->count()`
- Add team-scoped validation to distinguish between same-team and cross-team IP conflicts
- Update error messages to clarify ownership: "already exists in your team" vs "in use by another team"
- Apply consistent validation logic across API, boarding, and server management flows
- Add comprehensive test suite for IP uniqueness enforcement across teams
2026-02-12 08:10:59 +01:00
Andras Bacsai 4c56b47cfc fix(docs): update documentation link for Openclaw service 2026-02-09 12:35:36 +01:00
Andras Bacsai 63a1c5c0c7 feat(openclaw): add Openclaw service with environment variables and health checks
- Implemented Openclaw service in Service.php to manage environment variables and passwords.
- Added Openclaw SVG icon for branding.
- Created openclaw.yaml for Docker Compose configuration, including necessary environment variables and volume mappings.
- Updated service-templates-latest.json and service-templates.json to include Openclaw service details and metadata.
2026-02-09 12:33:17 +01:00
peaklabs-dev 7d88919775 chore(services): update service template json files 2026-02-04 17:44:00 +01:00
Andras Bacsai c1d2ce6d48 update templates 2026-01-28 11:14:36 +01:00
Andras Bacsai c0dadc003d fix(env): skip escaping for valid JSON in environment variables (#6160)
Prevent double-escaping of COMPOSER_AUTH and other JSON environment variables
by detecting valid JSON objects/arrays in realValue() and skipping quote
escaping entirely. This fixes broken JSON values passed to runtime services
while maintaining proper escaping for non-JSON values.

- Add JSON detection before escaping logic in EnvironmentVariable::realValue()
- JSON objects/arrays pass through unmodified, avoiding quote corruption
- Add comprehensive test coverage for JSON vs non-JSON escaping behavior
2026-01-28 10:59:00 +01:00
peaklabs-dev d020dee9de chore(services): update service template json files 2026-01-16 22:29:09 +01:00
peaklabs-dev 4131290719 chore(service): update service templates json 2026-01-16 18:24:30 +01:00
Andras Bacsai d69bdabee2 chore: prepare for PR 2026-01-14 13:27:32 +01:00
Jérôme Gamez b3743d341b feat(service): add linkding template (#6651)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-13 00:05:43 +01:00
peaklabs-dev 9faa3966a6 chore(services): upgrade service template json files 2026-01-08 23:18:43 +01:00
Victor Canô 06f4774610 feat(service): upgrade trigger template to v4 (#7808)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-07 19:01:32 +01:00
peaklabs-dev 40778ad44d fix(service): budibase worker envs 2026-01-06 23:10:38 +01:00
Sarthak Shrivastava 2332e88a2e feat(service): add nocobase template (#7347)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-06 15:08:23 +01:00
peaklabs-dev 8e002e0558 chore(services): update service json 2026-01-05 23:04:36 +01:00
Yassir eaa668036f feat(service): upgrade docker registry template (#7034)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-05 14:13:42 +01:00
peaklabs-dev c93951da20 chore(service): change sqlite pool size to v2 default 2026-01-05 12:29:18 +01:00
peaklabs-dev a5222830c3 chore(services): update service json 2026-01-05 12:14:06 +01:00
Andras Bacsai 162eaa9f0d feat(github): implement processing for GitHub pull request webhooks and add helper functions for commit and PR file retrieval 2026-01-05 11:13:18 +01:00
peaklabs-dev 8da8afbf49 chore(services): update service templates json 2026-01-04 22:28:08 +01:00
peaklabs-dev 8ba253dcd9 chore(services): update service-templates.json 2026-01-04 17:16:32 +01:00
Andras Bacsai 7e73058b0a chore: update versions.json for consistency across environments 2026-01-02 17:10:50 +01:00
Andras Bacsai 9a1020d5be fix(database): replace temporary file handling with base64 encoding for Keydb and Redis configuration 2025-12-25 18:17:42 +01:00
Andras Bacsai f53027a0a3 chore: update version numbers to 4.0.0-beta.457 and 4.0.0-beta.458 2025-12-18 10:26:27 +01:00
Andras Bacsai 4b65b02103 Fix server resources tab 500 error with mixed model types
The Resources tab threw a "Queueing collections with multiple model types is not supported" error because the Livewire component was storing a mixed-type Eloquent collection (Applications, Databases, Services) as a public property, causing Livewire's serialization to fail.

Fixed by: storing only the unmanaged containers array in the component, and calling definedResources() directly in the Blade view for the managed tab.

Fixes #7666

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 18:13:55 +01:00
Andras Bacsai 679833a0a6 Fix PostgreSQL version selection in global search redirect
Allow users to select PostgreSQL version instead of automatically creating postgres:16-alpine when using global search. The fix includes:

- Remove hardcoded database_image parameter from GlobalSearch
- Update Create.php to fall through to Select component when database_image is not provided
- Add type and destination to Select component query string with proper URL mapping
- Jump directly to PostgreSQL version selection step when navigating from global search

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-17 16:01:39 +01:00
Andras Bacsai 5d73ac36da improve breadcrumbs a lot 2025-12-15 16:25:04 +01:00
Andras Bacsai b36f59fe58 Merge branch 'next' into feat/escape-key-fullscreen-exit
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 15:43:39 +01:00
Andras Bacsai d68ee93445 Update garage.yaml for improved configuration clarity 2025-12-10 12:57:34 +01:00
Andras Bacsai 7c1f230bd3 fix: remove {{port}} template variable and ensure ports are always appended to preview URLs
The {{port}} template variable was undocumented and caused a double port bug
when used in preview URL templates. Since ports are always appended to the final
URL anyway, we remove {{port}} substitution entirely and ensure consistent port
handling across ApplicationPreview, PreviewsCompose, and the applicationParser helper.

Also fix PreviewsCompose.php which wasn't preserving ports at all, and improve
the Blade template formatting in previews-compose.blade.php.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 21:53:47 +01:00