Releases: fern-api/fern
Releases · fern-api/fern
3.22.3
feat(csharp): add support for inferred authentication scheme (#11109) * feat(csharp): add support for inferred authentication scheme Co-Authored-By: Niels Swimberghe <[email protected]> * fix(csharp): fix TypeScript compile errors and update seed output for inferred auth Co-Authored-By: Niels Swimberghe <[email protected]> * fix(csharp): fix property naming in inferred auth request initializer Use PascalCase property names (XApiKey, ClientId, ClientSecret) instead of private field names (_xApiKey, _clientId, _clientSecret) when initializing the token request object in InferredAuthTokenProvider. Co-Authored-By: Niels Swimberghe <[email protected]> * feat(csharp): implement inferred authentication support across SDK clients and tests * seed * seed * Refactor authentication client initialization to include scope parameter - Updated the SeedInferredAuthExplicitClient, SeedInferredAuthImplicitNoExpiryClient, and SeedWebsocketAuthClient constructors to accept an optional scope parameter. - Modified example snippets and test cases to reflect the new constructor signature, ensuring consistent usage of "X-Api-Key", "client_id", "client_secret", and "scope". - Adjusted README files and code snippets to demonstrate the updated client initialization. * refactor: streamline token endpoint identification and credential extraction * inferred updates * fix(csharp): update authorization header handling to use async Func<ValueTask<string>> for non-blocking calls * Update IR in csharp generator * feat: update C# SDK and model to version 62, including auth examples - Updated the C# model to version 62 in seed.yml. - Updated the C# SDK to version 62 in seed.yml. - Modified example files in inferred-auth-explicit, inferred-auth-implicit, inferred-auth-implicit-no-expiry, and websocket-inferred-auth to include new authentication parameters (xApiKey, clientId, clientSecret, scope). - Updated BaseMockServerTest to reflect changes in header values for inferred-auth-implicit-api-key. - Updated package.json files across multiple generators (Go, Java, Python, Ruby, Swift) to use dynamic-ir-sdk version 62.3.0. - Adjusted pnpm-lock.yaml to reflect updated dependencies for dynamic-ir-sdk. - Enhanced the BaseMockServerTestGenerator to update example values based on client instantiation. * feat(csharp): implement thread-safe token handling and update IR version to 62 * feat(csharp): enhance token provider with error handling and caching logic * feat: Implement RawClient for handling raw HTTP requests with retries and timeouts - Added RawClient class for making raw HTTP requests to the API. - Implemented methods for sending requests with retries and handling different content types. - Introduced StreamRequest for streaming uploads. - Created StringEnum interface and related extensions for better enum handling. - Added ValueConvert utility for converting values to string for path and query parameters. - Developed ApiClient and NestedClient for structured API interactions. - Established NestedNoAuthClient for handling requests without authentication. - Defined API specifications in YAML for inferred-auth-implicit and nested services. - Configured project properties and dependencies in the .csproj file. * Refactor code for improved readability and consistency - Updated formatting in RawClient.ts, ReferencedEndpointRequest.ts, WrappedEndpointRequest.ts, EndpointSnippetsGenerator.ts, getEndpointReturnType.ts, and various error generators to enhance code clarity. - Changed access modifiers from public to internal in InferredAuthTokenProvider classes across multiple projects to restrict visibility. - Adjusted parameter formatting in several methods for better alignment and readability. - Ensured consistent use of object destructuring in function calls throughout the codebase. - Enhanced type reference handling in WebsocketClientGenerator and WrappedRequestGenerator for improved type safety. * feat(csharp): refactor inferred auth handling to use collectInferredAuthCredentials utility * Add JSON schema snapshots for authentication requests and responses - Created schema for GetTokenRequest with required fields: client_id, client_secret, audience, and grant_type. - Created schema for RefreshTokenRequest with required fields: client_id, client_secret, refresh_token, audience, and grant_type. - Created schema for TokenResponse with required fields: access_token and expires_in. * feat: add inferred auth endpoint paths for testing * fix: update changelog entry type for inferred auth dynamic IR generation * fix: update snapshot names for broken links and init tests for clarity * Automated update of seed files * chore(versions): update versioning for inferred auth improvements * feat(seed): add inferred auth failure cases for FastAPI, Ruby SDK, and Swift SDK * update snapshots, fix seed.yml --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Niels Swimberghe <[email protected]> Co-authored-by: Fern Support <[email protected]> Co-authored-by: fern-support <[email protected]>
3.22.2
fix(openapi): preserve explicit null values in OpenAPI examples (#11160) * chore(internal): add test for nullable balance_max in tiered rates Co-Authored-By: Sarah Bawabe <[email protected]> * test: add explicit example with null balance_max and regression assertions - Add explicit response example with 3 tiers where the third tier has balance_max: null - Add assertions to verify null value is preserved in the output - Mark test as expected-failing (it.fails) since the bug currently replaces null with schema example value - Once the bug is fixed, this test should be changed back to a normal it(...) test Co-Authored-By: Sarah Bawabe <[email protected]> * fix: preserve explicit null values in OpenAPI examples The nullish coalescing operator (??) was treating explicit null values as nullish and falling back to schema examples. Changed to use explicit undefined check to preserve null values in examples. This fixes the bug where balance_max: null in tiered rate structures was being replaced with the schema example value (e.g., '100000000'). Co-Authored-By: Sarah Bawabe <[email protected]> * test: update valtown snapshots to reflect null value preservation The fix for preserving explicit null values in OpenAPI examples now correctly shows profileImageUrl: null instead of the schema example, and omits lastInsertRowid when not present in the example. Co-Authored-By: Sarah Bawabe <[email protected]> * chore: trigger CI re-run for updated PR title Co-Authored-By: Sarah Bawabe <[email protected]> * test: update balance-max-null snapshot after merge Co-Authored-By: Sarah Bawabe <[email protected]> * chore: add changelog entry for null value preservation fix (3.21.1) Co-Authored-By: Sarah Bawabe <[email protected]> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
3.22.1
fix(cli): respect $ref sibling examples in OpenAPI 3.1+ parsing (#11238) * fix(cli): respect $ref sibling examples in OpenAPI 3.1+ parsing In OpenAPI 3.1+, $ref siblings are supported. When a property has both $ref and sibling examples/example, the sibling examples should take precedence over the referenced schema's examples. This fix updates both the old parser (openapi-ir-parser) and the new parser (v3-importer-commons) to check for sibling examples before falling back to the resolved schema's examples. Fixes the issue where property-level examples were being ignored in favor of the referenced schema's examples. Co-Authored-By: Sarah Bawabe <[email protected]> * chore(cli): add version 3.21.2 for $ref sibling examples fix Co-Authored-By: Sarah Bawabe <[email protected]> * chore(cli): add code snippet to changelog entry for $ref sibling examples Co-Authored-By: Sarah Bawabe <[email protected]> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
3.22.0
chore(cli): bump versions.yml for fernignore sharing feature (#11239) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
3.21.1
feat(ruby): add `x-fern-server-name` support for multiple base URLs (…
3.21.0
feat(cli): add custom page actions (#11221) * chore(cli): add custom page actions * support slug, domain, and url * feat(cli): add support for locally-hosted icons in custom page actions Co-Authored-By: Catherine Deskur <[email protected]> * update description * update description * add version --------- Co-authored-by: fern-bot <[email protected]> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
3.20.0
feat(openapi): add webhook response descriptions to IR (#11222) * feat(openapi): add webhook response descriptions to IR This PR adds support for webhook response descriptions by: 1. Adding response field to OpenAPI IR Webhook type 2. Adding response/response-stream fields to Fern definition webhook schema 3. Converting OpenAPI webhook responses to Fern definition format 4. Converting Fern definition webhook responses to IR format The descriptions are stored in the body-level docs fields (JsonResponse, FileDownloadResponse, etc.) rather than adding a response-level docs field to HttpResponse, which avoids widespread changes to endpoint handling. Co-Authored-By: Sarah Bawabe <[email protected]> * fix: add response and response-stream fields to webhook validator visitor Co-Authored-By: Sarah Bawabe <[email protected]> * chore: regenerate JSON schema files with webhook response fields Co-Authored-By: Sarah Bawabe <[email protected]> * feat(ir): add docs field to HttpResponse for webhook response descriptions - Add extends: commons.WithDocs to HttpResponse in IR schema - Regenerate IR SDK types for ir-types-latest - Update convertWebhookGroup.ts to populate docs field on webhook responses - Update convertHttpResponse.ts to include docs field on endpoint responses - Update openapi-to-ir WebhookConverter.ts to capture response descriptions - Update openapi-to-ir OperationConverter.ts to include docs field - Update openrpc-to-ir MethodConverter.ts to include docs field - Update test snapshots with new docs field Co-Authored-By: Sarah Bawabe <[email protected]> * fix: add docs field to protoc-gen-fern MethodConverter HttpResponse Co-Authored-By: Sarah Bawabe <[email protected]> * test: update ete-tests snapshots for HttpResponse docs field Co-Authored-By: Sarah Bawabe <[email protected]> * feat(ir): bump IR version to 62.5.0 and update snapshots for HttpResponse docs field Co-Authored-By: Sarah Bawabe <[email protected]> * test: update protoc-gen-fern snapshot for HttpResponse docs field Co-Authored-By: Sarah Bawabe <[email protected]> * test: update grpc-comments-ir snapshot for HttpResponse docs field Co-Authored-By: Sarah Bawabe <[email protected]> * test: update webhook-openapi-responses-fdr snapshot with response descriptions Co-Authored-By: Sarah Bawabe <[email protected]> * fix(fdr): propagate response-level docs to FDR description field Co-Authored-By: Sarah Bawabe <[email protected]> * fix: remove trailing newlines from snapshot files Co-Authored-By: Sarah Bawabe <[email protected]> * test: update v61-to-v60 migration snapshot for HttpResponse docs field Co-Authored-By: Sarah Bawabe <[email protected]> * test: regenerate ir-generator-tests JSON fixtures for HttpResponse docs field Co-Authored-By: Sarah Bawabe <[email protected]> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
3.19.0
feat(openapi): add explode field to PathParameter and QueryParameter …
3.18.4
fix(cli): revert regex parsing for <Code> (#11219) revert regex
3.18.3
fix(cli): fix duplicate type declarations for allOf in request bodies…