diff --git a/fern/products/sdks/guides/self-hosted.mdx b/fern/products/sdks/guides/self-hosted.mdx index 02fd71bf..09b95c6f 100644 --- a/fern/products/sdks/guides/self-hosted.mdx +++ b/fern/products/sdks/guides/self-hosted.mdx @@ -6,7 +6,7 @@ description: Fern supports self-hosting SDK generation so that you can run SDK g -Fern SDK generation runs on Fern's infrastructure by default. Self-hosting allows you to run SDK generation on your own infrastructure to meet specific security or compliance requirements. +Fern SDK generation [runs on Fern's infrastructure by default](/sdks/overview/how-it-works). Self-hosting allows you to run SDK generation on your own infrastructure to meet specific security or compliance requirements. ## When to use self-hosting diff --git a/fern/products/sdks/how-it-works.mdx b/fern/products/sdks/how-it-works.mdx new file mode 100644 index 00000000..e84e3c07 --- /dev/null +++ b/fern/products/sdks/how-it-works.mdx @@ -0,0 +1,55 @@ +--- +title: How SDKs work +description: Learn how Fern generates SDKs using cloud infrastructure +--- + +Fern combines your API specifications with generator configurations and custom code to produce SDKs in multiple languages. By default, SDK generation runs on Fern's managed cloud infrastructure. + + + Alternatively, [you can run SDK generation on your own infrastructure](/sdks/deep-dives/self-hosted) to meet specific security or compliance requirements. + + +## Generation workflow + +Before generating SDKs, you'll configure your `fern/` folder with SDK generators specified in `generators.yml` and connect your API specification. You can also add custom code, tests, and other configuration as needed. + +Running `fern generate` kicks off the cloud generation process and involves a few key steps: + + + +Fern allocates compute resources and pulls the appropriate Docker image for your specified generator version. + + +The Docker container executes the generation logic and produces your SDK's core files (models, client code, API methods). + + +Fern verifies your organization registration to ensure the complete SDK can be generated. Without organization verification, only partial SDK files (core code without package metadata) are produced. + + +Fern completes the SDK by adding package distribution files such as `pyproject.toml`, `package.json`, README, and any dependencies. + + +Fern publishes or saves the complete SDK to your configured location (local filesystem, GitHub repository, package registry). After publication, developers can use your SDKs to integrate with your APIs. + + + + + +```mermaid +sequenceDiagram + autonumber + participant Dev as Developer + participant Fern as Fern + participant Docker as Docker Container + participant Dest as Output Destination + + Dev->>Fern: fern generate + Fern->>Fern: Allocate cloud compute + Fern->>Docker: Pull & run generator image + Docker->>Docker: Generate core SDK files + Docker->>Fern: Return partial SDK + Fern->>Fern: Verify organization + Fern->>Fern: Add package metadata + Fern->>Dest: Output complete SDK +``` + \ No newline at end of file diff --git a/fern/products/sdks/sdks.yml b/fern/products/sdks/sdks.yml index a023942f..6db00d10 100644 --- a/fern/products/sdks/sdks.yml +++ b/fern/products/sdks/sdks.yml @@ -4,6 +4,8 @@ navigation: - page: Introduction path: ./introduction.mdx slug: introduction + - page: How it works + path: ./how-it-works.mdx - page: Quickstart path: ./fern-folder.mdx slug: quickstart