Commit Graph
3470 Commits
Author SHA1 Message Date
Andras Bacsai 4f6e1f7e42 style(navbar): use tracking-tight instead of tracking-wide for logo 2026-03-31 13:52:39 +02:00
Andras Bacsai 9c646b0a9e Merge remote-tracking branch 'origin/next' into pr-7764-shadow/add-shared-server-env 2026-03-31 13:51:06 +02:00
Andras Bacsai 7638912fdc fix(github): reset branch state when refreshing repositories
Clear `branches` and `total_branches_count` in `loadRepositories` to avoid stale branch data after repo refreshes. Update the Livewire view to use the shared loading button pattern for refresh/load actions, and expand feature coverage for repository refresh behavior and refresh button visibility.
2026-03-31 12:50:19 +02:00
Andras Bacsai 25c0c88eb2 Merge remote-tracking branch 'origin/next' into feat/refresh-repos 2026-03-31 12:37:38 +02:00
Andras Bacsai 30751a60df fix(deployment): resolve shared env vars using main server
Use `$this->mainServer` when resolving environment variable values across
deployment env generation (runtime, buildtime, nixpacks, args, and secrets
hash) so shared server-scoped values are applied consistently.

Also add `server_id` to `SharedEnvironmentVariable::$fillable` and normalize
the Livewire Blade file newline.
2026-03-31 11:07:52 +02:00
Andras Bacsai cb97a18a78 Merge remote-tracking branch 'origin/next' into pr-7764-shadow/add-shared-server-env 2026-03-31 10:52:31 +02:00
Andras Bacsai 2692496726 fix(database): refresh SSL/status state and harden clone writes
Handle database status updates more reliably by listening for `ServiceChecked`
and using explicit `refresh()` handlers in Livewire database components.

Also switch guarded clone/create paths to `forceFill`/`forceCreate` in helper
flows to avoid missing persisted attributes during app/service cloning.

Update log/terminal font stacks to Geist (with bundled variable fonts) and add
coverage for SSL status refresh, persistent volume UUID cloning, and log font
styling.
2026-03-31 09:29:36 +02:00
Andras BacsaiandGitHub 179770d836 fix(validation): add input validation for server advanced settings page (#9242) 2026-03-30 21:01:28 +02:00
Andras BacsaiandGitHub 0b9d2c9e11 fix(validation): add input validation for sentinel configuration (#9243) 2026-03-30 21:00:18 +02:00
Andras BacsaiandGitHub b8fb29f9a8 fix(validation): add input validation for database backup timeout (#9245) 2026-03-30 20:59:37 +02:00
Andras BacsaiandGitHub c52d50cc0a fix(validation): add input validation for emails configuration (#9259) 2026-03-30 20:57:46 +02:00
Andras Bacsai f09115afdc Merge remote-tracking branch 'origin/next' into feat/refresh-repos 2026-03-30 17:30:14 +02:00
Andras BacsaiandGitHub 22b267db37 feat(ui): improve schedule task single view for better UX (#9266) 2026-03-30 15:10:57 +02:00
Andras BacsaiandGitHub 9a0087ff69 fix(validation): add input validation for database public port and proxy timeout (#9272) 2026-03-30 15:10:26 +02:00
Andras Bacsai 61f47cc7ee feat(deployments): support Docker image tags for preview deployments
Add end-to-end support for `docker_registry_image_tag` in preview and deployment queue flows.

- Extend deploy API to accept `pull_request_id` alias and `docker_tag` for preview deploys
- Persist preview-specific Docker tags on `application_previews` and `application_deployment_queues`
- Pass tag through `queue_application_deployment()` and de-duplicate queued jobs by tag
- Update deployment job logic to resolve and use preview Docker tags for dockerimage build packs
- Update Livewire previews UI/state to manage per-preview tags and manual preview/tag inputs
- Add migration for new tag columns and model fillable/casts updates
- Add feature and unit tests covering API behavior and tag resolution
2026-03-30 13:35:35 +02:00
Andras BacsaiandGitHub 7a1999ce39 feat(ui): add two step confirmation to enable self registration (#9277) 2026-03-30 11:47:59 +02:00
ShadowArcanist 31ae8dd9db fix(notification): updated cloud subscription links to valid url 2026-03-30 11:37:28 +05:30
Andras Bacsai a5840501b4 fix(forms): use Alpine state for password visibility toggles
Replace shared `changePasswordFieldType` JS with component-local Alpine logic
across input, textarea, and env-var-input components. This keeps toggle
behavior consistent, resets visibility on `success` events, and preserves
`truncate` styling only when showing plaintext on enabled fields.

Also adds `PasswordVisibilityComponentTest` to verify Alpine bindings are
rendered and legacy handler references are removed.
2026-03-29 20:47:36 +02:00
ShadowArcanist 3a0cfeeab6 feat(ui): add two step confirmation to enable self registration 2026-03-29 22:48:02 +05:30
ShadowArcanist c9f20ba2a2 fix(validation): add input validation for database public port and proxy timeout 2026-03-29 19:11:28 +05:30
ShadowArcanist a1e5357870 feat(ui): add helper text for frequency input on scheduled task view 2026-03-29 15:46:11 +05:30
ShadowArcanist 401227932e feat(ui): reorganize scheduled task single view layout 2026-03-29 15:43:46 +05:30
ShadowArcanist 5037497ada feat(ui): add enable/disable button for scheduled task 2026-03-29 15:36:32 +05:30
ShadowArcanist 1f864dc49b feat(ui): show task name on title for scheduled task single view 2026-03-29 15:29:17 +05:30
ShadowArcanist d33cd7ca71 fix(ui): keep sidebar visible on scheduled task single view 2026-03-29 15:27:40 +05:30
ShadowArcanist 1daff4e23c fix(validation): add input validation for emails configuration 2026-03-29 12:13:30 +05:30
ShadowArcanist 67f8eb929f fix(validation): add input validation for database backup timeout 2026-03-29 02:48:32 +05:30
ShadowArcanist 1ebba7da3a fix(validation): add input validation for sentinel configuration 2026-03-29 01:56:06 +05:30
ShadowArcanist c52a199120 fix(validation): add input validation for server advanced settings page 2026-03-29 01:14:08 +05:30
Andras BacsaiandGitHub 3b2e6e11f1 refactor: use random_int() for email change verification codes (#9226) 2026-03-28 15:18:00 +01:00
ShadowArcanist 1a59c4c7c9 feat(ui): categorize application advanced settings into logical sections 2026-03-28 19:25:50 +05:30
ShadowArcanist 4fd90171eb feat(ui): add info callout to clone resource section about excluded items 2026-03-28 18:57:07 +05:30
ShadowArcanist 987f49b6d1 feat(ui): display memory limit fields in single row 2026-03-28 18:22:31 +05:30
ShadowArcanist 886d01405f feat(applications): add configurable restart loop limit 2026-03-28 17:48:10 +05:30
Andras BacsaiandClaude Opus 4.6 f493b96be3 refactor: use random_int() for email change verification codes
Replace mt_rand/rand with random_int for stronger randomness guarantees
in verification code generation and Blade component keying.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 12:25:54 +01:00
Andras Bacsai 638f1d37f1 feat(subscription): add billing interval to price preview
Extract and return the billing interval (month/year) from subscription pricing
data in fetchPricePreview. Update the view to dynamically display the correct
billing period based on the preview response instead of using static PHP logic.
2026-03-27 19:05:13 +01:00
Andras Bacsai f2e4879742 Merge remote-tracking branch 'origin/next' into feat/refresh-repos 2026-03-26 19:00:08 +01:00
Andras BacsaiandClaude Opus 4.6 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 BacsaiandClaude Opus 4.6 3e0d48faea refactor: simplify remote process chain and harden ActivityMonitor
- Inline PrepareCoolifyTask and CoolifyTaskArgs into remote_process(),
  removing two single-consumer abstraction layers
- Add #[Locked] attribute to ActivityMonitor $activityId property
- Add team ownership verification in ActivityMonitor.hydrateActivity()
  with server_uuid fallback and fail-closed default
- Store team_id in activity properties for proper scoping
- Update CLAUDE.md to remove stale reference
- Add comprehensive tests for activity monitor authorization

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 13:26:16 +01:00
ShadowArcanist 8c4865215b feat(ui): show info callout only when domain is set without exposed ports 2026-03-26 13:26:50 +05:30
ShadowArcanist 9c8e5645b4 feat(application): make ports_exposes optional for portless apps 2026-03-26 13:20:41 +05:30
Andras Bacsai 207002dbb7 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-03-25 16:45:30 +01:00
Andras Bacsai 3034e89edb feat(preview-env): add production variable fallback for docker-compose
When preview environment variables are configured, fall back to production
variables for keys not overridden by preview values. This ensures variables
like DB_PASSWORD that exist only in production are available in the preview
.env file, enabling proper ${VAR} interpolation in docker-compose YAML.

Fallback only applies when preview variables are configured, preventing
unintended leakage of production values when previews aren't in use.

Also improves UI by hiding the Domains section when only database services
are present, and simplifies the logs view by removing status checks.
2026-03-25 13:26:50 +01:00
Andras Bacsai 2ed360f0e0 Merge remote-tracking branch 'origin/next' into feat/railpack 2026-03-23 21:58:33 +01:00
Aditya Tripathi 793077d74f feat(buildpack): add Railpack as a build pack option 2026-03-23 17:12:02 +00:00
Andras Bacsai 89f2b83104 style(modal-confirmation): improve mobile responsiveness
Make modal full-screen on mobile devices with responsive padding,
border radius, and dimensions. Modal is now full-screen on small
screens and constrained to max-width/max-height on larger screens.
2026-03-23 10:36:08 +01:00
Andras BacsaiandGitHub 93a8fcd8a2 perf(breadcrumb): optimize queries and simplify navigation to fix OOM (#9048) 2026-03-20 16:16:10 +01:00
Andras Bacsai 1511797e0a fix(docker): skip cleanup stale warning on cloud instances 2026-03-20 15:59:23 +01:00
Andras Bacsai e65ad22b42 refactor(breadcrumb): optimize queries and simplify state management
- Add column selection to breadcrumb queries for better performance
- Remove unused Alpine.js state (activeRes, activeMenuEnv, resPositions, menuPositions)
- Simplify dropdown logic by removing duplicate state handling in index view
- Change database relationship eager loading to use explicit column selection
2026-03-20 00:02:18 +01:00
Andras Bacsai ce5e736b00 feat(storage): add storage management for backup schedules
Add ability to move backups between S3 storages and disable S3 backups.
Refactor storage resources view from cards to table layout with search
functionality and storage selection dropdowns.
2026-03-19 12:48:52 +01:00