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
This commit is contained in:
Andras Bacsai
2025-12-11 12:12:43 +01:00
parent cf4985c596
commit 5d38147899
10 changed files with 238 additions and 46 deletions

View File

@@ -14,6 +14,9 @@ beforeEach(function () {
$this->user = User::factory()->create();
$this->team->members()->attach($this->user->id, ['role' => 'owner']);
// Set the current team session before creating the token
session(['currentTeam' => $this->team]);
// Create an API token for the user
$this->token = $this->user->createToken('test-token', ['*']);
$this->bearerToken = $this->token->plainTextToken;
@@ -225,7 +228,7 @@ describe('POST /api/v1/cloud-tokens', function () {
]);
$response->assertStatus(400);
$response->assertJson(['message' => 'Invalid Hetzner token. Please check your API token.']);
$response->assertJson(['message' => 'Invalid hetzner token. Please check your API token.']);
});
test('rejects extra fields not in allowed list', function () {