Commit Graph

521 Commits

Author SHA1 Message Date
Andras Bacsai eb96c9550b fix(api): add docker_cleanup parameter to stop endpoints (#8899) 2026-03-11 10:18:22 +01:00
Andras Bacsai 11007771f0 Fix/wrong destinations api (#8646) 2026-03-05 16:32:09 +01:00
Andras Bacsai 839635e9e8 chore: prepare for PR 2026-03-03 11:51:38 +01:00
Andras Bacsai d9e39ba211 Merge remote-tracking branch 'origin/next' into env-var-descriptions 2026-02-28 00:09:54 +01:00
W8jonas 7c5a6bc96c Fix wrong destination issue on create_service 2026-02-26 23:15:18 -03:00
W8jonas bf6b3b8c71 Fix wrong destination issue on create_application 2026-02-26 23:15:04 -03:00
Andras Bacsai 521d995ea1 Merge remote-tracking branch 'origin/next' into 7765-healthcheck-investigation 2026-02-25 11:57:58 +01:00
Andras Bacsai 8e2f0836da chore: prepare for PR 2026-02-25 11:52:18 +01:00
Andras Bacsai 0580af0d34 feat(healthchecks): add command health checks with input validation
Add support for command-based health checks in addition to HTTP-based checks:
- New health_check_type field supporting 'http' and 'cmd' values
- New health_check_command field with strict regex validation
- Updated allowedFields in create_application and update_by_uuid endpoints
- Validation rules include max 1000 characters and safe character whitelist
- Added feature tests for health check API endpoints
- Added unit tests for GithubAppPolicy and SharedEnvironmentVariablePolicy
2026-02-25 11:38:09 +01:00
Andras Bacsai 73170fdd33 chore: prepare for PR 2026-02-23 12:12:10 +01:00
Andras Bacsai 4d36265017 fix(api): improve scheduled tasks validation and delete logic
- Use explicit has() checks for timeout and enabled fields to properly handle falsy values
- Add validation to prevent empty update requests
- Optimize delete endpoint to use direct query deletion instead of fetch-then-delete
- Update factory to use Team::factory() for proper test isolation
2026-02-18 14:30:44 +01:00
Andras Bacsai ab79a51e29 fix(api): improve scheduled tasks API with auth, validation, and execution endpoints
- Add authorization checks ($this->authorize) for all read/write operations
- Use customApiValidator() instead of Validator::make() to match codebase patterns
- Add extra field rejection to prevent mass assignment
- Use Application::ownedByCurrentTeamAPI() for consistent query patterns
- Remove non-existent standalone_postgresql_id from hidden fields
- Add execution listing endpoints for both applications and services
- Add ScheduledTaskExecution OpenAPI schema
- Use $request->only() instead of $request->all() for safe updates
- Add ScheduledTaskFactory and feature tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 11:53:58 +01:00
Ahmed 2b913a1c35 feat(api): add update endpoints for scheduled tasks in applications and services 2026-02-17 02:18:08 +03:00
Ahmed a5d48c54da feat(api): add delete endpoints for scheduled tasks in applications and services 2026-02-17 01:33:46 +03:00
Ahmed 8c6c2703cc feat: expose scheduled tasks to API 2026-02-16 22:26:58 +03: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 95e93ad899 chore: prepare for PR 2026-02-09 14:48:16 +01:00
Miroslav Banov 442d38c277 fix(api): infinite loop with github app with many repos (#8052)
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
2026-01-27 22:00:02 +01:00
peaklabs-dev b02e64beda docs(api): improve app endpoint deprecation description 2026-01-16 18:24:12 +01:00
peaklabs-dev e53c71908f fix(api): if domains field is empty clear the fqdn column
- providing an empty string for `domains` allows the ability to remove all URLs from the domains field
2026-01-15 13:12:49 +01:00
peaklabs-dev 161e0d2b05 chore(api): improve current request error message 2026-01-14 15:37:02 +01:00
peaklabs-dev 6ca04b5613 feat(api): add more allowed fields
- added dockerfile_location as it is needed for Dockerfile deployments to work properly
- added is_spa as it makes sense together with is_static
- added is_auto_deploy_enabled and is_force_https_enabled
2026-01-14 15:28:02 +01:00
peaklabs-dev 8a1d76cd99 fix(api): is_static and docker network missing
- GitHub App and Private Deploy Key where missing is_static and connect_to_docker_network
2026-01-14 15:27:54 +01:00
peaklabs-dev 5f5c26d841 fix(api): check domain conflicts within the request 2026-01-14 15:22:30 +01:00
peaklabs-dev 754448d9d4 feat(api): improve docker_compose_domains
- add url conflict checking and force_domain_override support
- refactor docker_compose_domains URL validation function
2026-01-14 15:22:18 +01:00
peaklabs-dev c66b6490e6 docs(api): improve domains API docs 2026-01-14 15:21:59 +01:00
peaklabs-dev f4acf7ca10 refactor(api): application urls validation
- rename fqdn to urls as that is what it actually is
- improve URL validation to allow urls without a TLD
- improve error messages to make it clear that URLs are needed
- improve code by combining some actions
2026-01-14 15:21:44 +01:00
🏔️ Peak b87d54f9e4 feat(api): add url update support to services api (#7929) 2026-01-14 14:51:50 +01:00
peaklabs-dev ae9d0ec817 docs(api): change domains to urls 2026-01-14 14:50:48 +01:00
peaklabs-dev 33d3f196cc chore(api): improve current request error message 2026-01-14 14:42:35 +01:00
peaklabs-dev c5196e12d2 fix(api): show an error if the same 2 urls are provided 2026-01-13 20:04:44 +01:00
peaklabs-dev 0628268875 feat(api): improve service urls update
- add force_domain_override functionality and docs
- delete service on creation if there is URL conflicts as otherwise we will have stale services (we need to create the service because we need to parse it and more)
2026-01-13 19:25:58 +01:00
peaklabs-dev aed11b4d67 fix(api): one click service name and description cannot be set during creation 2026-01-13 17:26:51 +01:00
🏔️ Peak 3ff2743e01 fix(api): encoding checks (#7944) 2026-01-13 16:53:11 +01:00
peaklabs-dev 764d8861f6 feat(api): add update urls support to services api
- added update urls support to services api
- remove old stale domains update code
2026-01-12 22:39:30 +01:00
peaklabs-dev ce3cae3ff9 fix(api): applications post and patch endpoints
- remove `docker_compose_raw` from post and patch endpoints, as the compose file is sourced from git and should not be manually settable via the api
- improve the documentation for `docker_compose_domains` (URLs)
- enhanced array validation for `docker_compose_domains` by validating each array field and verifying which fields are allowed
- set a custom array validation error message, as the default message is not really clear
- show an error if the user attempts to set `domains` when the build pack is `dockercompose`
- validate that the `domains` in `docker_compose_domains` are proper URLs and include a valid scheme (`http` or `https`)
2026-01-12 22:08:05 +01:00
peaklabs-dev 7c0cb2f59d fix(api): deprecate applications compose endpoint
- this endpoint is a duplicate of the services endpoint and also updates fields that do not exist which makes it unstable
2026-01-12 22:08:05 +01:00
peaklabs-dev 9253586f8f refactor(api): update application create endpoints docs 2026-01-12 22:08:05 +01:00
🏔️ Peak a83e1899be fix(api): create service endpoint validation and docs (#7916) 2026-01-11 18:29:55 +01:00
peaklabs-dev 9c0e308dd3 refactor(api): make docker_compose_raw description more clear 2026-01-11 18:27:54 +01:00
peaklabs-dev a0c307ac45 fix(api): add custom_network_aliases to allowed fields 2026-01-11 18:18:36 +01:00
peaklabs-dev 7c7c09aa3d fix(api): create service validation and docs
- if service type and docker_compose_raw is filled show an error
- if service type is not valid show an error with all valid service types
- remove enum from service type docs as it always gets outdated
2026-01-10 22:29:11 +01:00
Yassine Benh 31ba241d97 feat(api): add tag filtering on the applications list endpoint (#7360) 2026-01-10 20:22:29 +01:00
peaklabs-dev 54a834e042 fix(git): trigger deployments when watch_paths is empty 2026-01-07 19:15:16 +01:00
Andras Bacsai 162e43a7fc fix: GitLab webhook validation (#7899) 2026-01-07 18:19:11 +01:00
Andras Bacsai 7a305fd2cd fix: prevent timing attack in GitLab webhook token validation
Replace insecure !== operator with hash_equals() for constant-time
string comparison when validating GitLab webhook tokens.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 15:23:48 +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
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
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