Commit Graph

152 Commits

Author SHA1 Message Date
peaklabs-dev 9253586f8f refactor(api): update application create endpoints docs 2026-01-12 22:08:05 +01:00
peaklabs-dev a0c307ac45 fix(api): add custom_network_aliases to allowed fields 2026-01-11 18:18:36 +01:00
Yassine Benh 31ba241d97 feat(api): add tag filtering on the applications list endpoint (#7360) 2026-01-10 20:22:29 +01:00
Daniele Luisetto e9ef331def feat(api): allow to escape special characters in labels (#7886) 2026-01-06 15:50:55 +01:00
Yassir aeef97f295 fix(docs): api docs for bulk env update response (#7714) 2026-01-06 12:52:32 +01:00
Muhammed Mustafa AKŞAM 9b6d1613ed fix(docs): remove incorrect uuid format in openapi spec (#7419)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-04 16:16:19 +01:00
claude[bot] 21a7f2f581 fix(api): add docker_cleanup parameter to stop endpoints
Add optional docker_cleanup query parameter to the stop endpoints for
Services, Applications, and Databases. This allows API users to control
whether docker cleanup (pruning networks, volumes, etc.) is performed
when stopping resources.

The parameter defaults to true for backward compatibility.

API Usage:
- Stop without docker cleanup: GET /api/v1/{resource}/{uuid}/stop?docker_cleanup=false
- Stop with docker cleanup (default): GET /api/v1/{resource}/{uuid}/stop

Fixes #7758

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

Co-authored-by: Andras Bacsai <andrasbacsai@users.noreply.github.com>
2026-01-01 12:03:13 +00:00
Andras Bacsai 87f9ce0674 Add comment field support to environment variable API endpoints
API consumers can now create and update environment variables with
an optional comment field for documentation purposes. Changes include:
- Added comment validation (string, nullable, max 256 chars) to all env endpoints
- Updated ApplicationsController create_env and update_env_by_uuid
- Updated ServicesController create_env and update_env_by_uuid
- Updated openapi.json request schemas to document the comment field

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-27 15:24:53 +01:00
Andras Bacsai 5d38147899 feat(api): Improve OpenAPI spec and add rate limit handling for Hetzner
- Add 429 response with Retry-After header for Hetzner server creation
- Create RateLimitException for proper rate limit error handling
- Rename cloud_provider_token_id to cloud_provider_token_uuid with deprecation
- Fix prices array schema in server-types endpoint with proper items definition
- Add explicit default: true to autogenerate_domain properties
- Add timeout and retry options to Docker install curl commands
- Fix race condition in deployment status update using atomic query
2025-12-11 12:12:43 +01:00
Andras Bacsai 32e047e512 Fix API response to return fqdn instead of non-existent domains attribute
The Application model stores domain as 'fqdn' not 'domains'. The API response
was incorrectly using data_get($application, 'domains') which always returned
null. Fixed all 5 application creation endpoint responses.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 16:26:08 +01:00
Andras Bacsai eb743cf690 Add autogenerate_domain API parameter for applications
Allows API consumers to control domain auto-generation behavior. When autogenerate_domain is true (default) and no custom domains are provided, the system auto-generates a domain using the server's wildcard domain or sslip.io fallback.

- Add autogenerate_domain parameter to all 5 application creation endpoints
- Add validation and allowlist rules
- Implement domain auto-generation logic across all application types
- Add comprehensive unit tests for the feature

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 21:16:04 +01:00
Andras Bacsai 4706bc23aa Refactor: Centralize service application prerequisites
Refactors the Appwrite and Beszel service-specific application settings
to use a centralized constant-based approach, following the same pattern
as NEEDS_TO_CONNECT_TO_PREDEFINED_NETWORK.

Changes:
- Added NEEDS_TO_DISABLE_GZIP constant for services requiring gzip disabled
- Added NEEDS_TO_DISABLE_STRIPPREFIX constant for services requiring stripprefix disabled
- Created applyServiceApplicationPrerequisites() helper function in bootstrap/helpers/services.php
- Updated all service creation flows to use the centralized helper:
  * app/Livewire/Project/Resource/Create.php (web handler)
  * app/Http/Controllers/Api/ServicesController.php (API handler - BUG FIX)
  * app/Livewire/Project/New/DockerCompose.php (custom compose handler)
  * app/Http/Controllers/Api/ApplicationsController.php (API custom compose handler)
- Added comprehensive unit tests for the new helper function

Benefits:
- Single source of truth for service prerequisites
- DRY - eliminates code duplication between web and API handlers
- Fixes bug where API-created services didn't get prerequisites applied
- Easy to extend for future services (just edit the constant)
- More maintainable and testable

Related commits: 3a94f1ea1 (Beszel), 02b18c86e (Appwrite)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:47:09 +01:00
Zach Silveira b72f93faab fix api call booleans not being used 2025-10-26 11:25:44 -04:00
Andras Bacsai 20b4288916 fix: improve Docker image digest handling and add auto-parse feature
- Replace manual regex parsing with DockerImageParser in ApplicationsController
- Fix double-decoration bug where image names like nginx@sha256:hash would
  become nginx:hash@sha256 causing malformed references
- Add auto-parse feature in Livewire DockerImage component
- Users can now paste complete references like nginx:stable@sha256:abc123...
  and fields auto-populate
- Update UI placeholder with examples: nginx, docker.io/nginx:latest,
  ghcr.io/user/app:v1.2.3, nginx:stable@sha256:abc123...
- Add comprehensive unit tests for auto-parse functionality
- All tests passing (20 tests, 73 assertions)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 10:19:01 +02:00
Andras Bacsai 78031b991a fix: allow all environment variable fields in API endpoints
Fixes #6847

The API endpoints for environment variables were rejecting valid fields
like is_buildtime, is_runtime, is_multiline, and is_shown_once with
422 errors, even though the code was using these fields internally.

Changes:
- Added missing fields to $allowedFields in create_env()
- Added missing fields to $allowedFields in update_env_by_uuid()
- Updated allowed fields in create_bulk_envs()
- Added validation rules for is_runtime and is_buildtime

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 10:44:06 +02:00
Andras Bacsai 41a8ea870f feat(docker): refine Docker image processing in application creation
- Enhanced logic to process Docker image name and tag, including stripping 'sha256:' prefix and removing '@sha256' suffix.
- Implemented validation to check for valid SHA256 hashes and conditionally append '@sha256' to the image name.
- Defaulted the image tag to 'latest' if not provided, improving user experience and data integrity.
2025-10-03 11:49:20 +02:00
Andras Bacsai a463a562ec fix(domains): trim whitespace from domains before validation 2025-09-22 12:51:23 +02:00
Andras Bacsai f33df13c4e feat(environment): replace is_buildtime_only with is_runtime and is_buildtime flags for environment variables, updating related logic and views 2025-09-18 18:14:54 +02:00
Andras Bacsai 20ad2165e7 feat(environment): introduce 'is_buildtime_only' attribute to environment variables for improved build-time configuration 2025-09-11 17:38:16 +02:00
Andras Bacsai 5b3b4bbc43 refactor(environment): remove 'is_build_time' attribute from environment variable handling across the application to simplify configuration 2025-09-11 16:51:56 +02:00
Andras Bacsai 6e3e80f1c2 fix(api): add custom labels generation for applications with readonly container label setting enabled 2025-08-31 15:40:48 +02:00
Andras Bacsai 75b61a6b00 feat(domains): add force_domain_override option and enhance domain conflict detection responses 2025-08-28 11:21:30 +02:00
Andras Bacsai b1334a1bc6 feat(auth): implement comprehensive authorization checks across API controllers 2025-08-23 18:51:10 +02:00
Andras Bacsai 8408205955 feat(validation): add custom validation rules for Git repository URLs and branches
- Introduced `ValidGitRepositoryUrl` and `ValidGitBranch` validation rules to ensure safe and valid input for Git repository URLs and branch names.
- Updated relevant Livewire components and API controllers to utilize the new validation rules, enhancing security against command injection and invalid inputs.
- Refactored existing validation logic to improve consistency and maintainability across the application.
2025-08-22 14:38:21 +02:00
🏔️ Peak 2a526c54d5 fix(docker): volumes get delete when stopping a service if Delete Unused Volumes is activated (#6317) 2025-08-04 21:15:56 +02:00
Nurdism 999a67cbda feat(api): Add connect_to_docker_network setting to App creation API (#5691) 2025-05-27 15:07:31 +02:00
Andras Bacsai 6c7b64e96d refactor(applications): remove unused docker compose raw decoding 2025-05-20 14:11:59 +02:00
Andras Bacsai cee9dfcf52 fix(api): enhance validation for docker_compose_raw in ApplicationsController
- Add checks to ensure docker_compose_raw is provided and correctly base64 encoded.
- Implement detailed error responses for validation failures to improve user feedback.
2025-05-19 13:30:31 +02:00
Andras Bacsai 38d9471de1 fix(api): validate docker_compose_raw input in ApplicationsController
- Ensure docker_compose_raw is provided and base64 encoded before processing.
- Return appropriate validation error messages for missing or incorrectly formatted input.
2025-05-19 13:29:23 +02:00
Andras Bacsai 78ef80f800 refactor 2025-04-23 13:22:01 +02:00
Andras Bacsai 4ea00cff31 refactor(applications): remove redundant error response in create_env method 2025-04-22 10:44:30 +02:00
Andras Bacsai d075241289 feat(Deployment): enhance queue_application_deployment to handle existing deployments and return appropriate status messages 2025-04-11 15:27:56 +02:00
Laurence 1e7b15ae77 enhance: Add missing UUID to openapi spec 2025-04-09 17:52:12 +01:00
Andrew Nagy 61c689d807 fix(api): Add back validateDataApplications (#5539) 2025-04-05 13:58:15 +02:00
peaklabs-dev 1384de7566 fix(docs): comment out execute for now
- Due to security concerns, execute is disabled, so we need to comment out the code as well to update the docs.
2025-04-01 20:57:20 +02:00
Andras Bacsai 5e6c112fcc feat(github): enhance repository loading and validation in applications 2025-03-24 14:29:17 +01:00
Meghea Iulian 57f0a7d400 fix(api): use name from request payload
In POST `/applications/dockercompose`  the `name` parameter is required.
The API thou ignores it and generates its own name for the service.
2025-03-14 14:41:05 +02:00
Andras Bacsai 96cf9abef8 fix(api): docker compose based apps creationg through api 2025-03-10 11:18:14 +01:00
Andras Bacsai 27e4882d57 feat(core): You can validate compose files with docker compose config
fix(core): labels are now accepted with both compose styles
refactor: remove lots of ray's
2025-02-27 11:29:04 +01:00
Andras Bacsai 186a3fc75b Merge pull request #5038 from Vann-Dev/main
feat(api): add applications logs api
2025-02-04 13:33:30 +01:00
Vann 2e652490c1 chore: add openapi response 2025-02-04 02:56:15 +00:00
Vann 11a5ec7c38 feat: add lines query parameter 2025-02-02 13:43:31 +00:00
Vann 7b60d76b77 feat: remove ansi color from log 2025-02-02 10:01:01 +00:00
sistracia 43e8d17197 fix(api): domain check when updating domain 2025-02-02 14:52:05 +07:00
Vann e7988fc295 feat: container logs 2025-02-01 17:21:38 +00:00
Van-Dev b1d6167e89 feat: add application api route 2025-02-01 22:09:59 +07:00
peaklabs-dev 3d4e8b9867 chore: switch up readonly lables to make more sense 2025-01-08 17:05:11 +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 c7a01eb270 Merge pull request #4596 from arceushui/main
fix: fix domain being override when update application
2024-12-18 11:09:31 +01:00