Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ products:
slug: ask-fern
subtitle: Let users find answers in your documentation instantly

- display-name: Dashboard
path: ./products/dashboard/dashboard.yml
icon: fa-regular fa-grid-2
slug: dashboard
subtitle: Manage your Fern projects and settings

- display-name: CLI Reference
subtitle: Manage and configure your Fern projects
path: ./products/cli-api-reference/cli-api-reference.yml
Expand Down
10 changes: 10 additions & 0 deletions fern/products/dashboard/dashboard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
navigation:
- section: Getting started
contents:
- page: Overview
path: ./pages/overview.mdx
- section: Configuration
contents:
- page: Set up SSO
path: ./pages/sso.mdx
slug: sso
92 changes: 92 additions & 0 deletions fern/products/dashboard/pages/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
---
title: Dashboard overview
description: Manage your Fern projects, settings, and team from a central dashboard.
---

The Fern Dashboard provides a central place to manage your projects, team members, and settings.

## Setup

Configure your dashboard with these one-time setup steps:

<CardGroup cols={3}>
<Card
title="Authentication"
icon="regular shield-check"
href="/learn/dashboard/configuration/sso"
>
Configure single sign-on for your team.
</Card>
<Card
title="Team members"
icon="regular users"
>
Add and manage team member access to your projects.
</Card>
<Card
title="Enable Ask Fern"
icon="regular message-bot"
href="/learn/ask-fern/getting-started/what-is-ask-fern"
>
Set up AI-powered chat for your documentation.
</Card>
<Card
title="GitHub integration"
icon="brands github"
>
Connect your GitHub repository to your project.
</Card>
<Card
title="Custom domains"
icon="regular globe"
href="/learn/docs/preview-publish/setting-up-your-domain"
>
Configure custom domains for your documentation site.
</Card>
</CardGroup>

## Ongoing usage

Once setup is complete, use the dashboard to monitor and manage your documentation:

<CardGroup cols={3}>
<Card
title="Web analytics"
icon="regular chart-line"
>
Track how developers and bots interact with your documentation.
</Card>
<Card
title="Search analytics"
icon="regular magnifying-glass"
>
Monitor search queries to understand what developers are looking for in your docs.
</Card>
<Card
title="Feedback"
icon="regular comment-dots"
>
View and respond to on-page feedback.
</Card>
<Card
title="Ask Fern conversations"
icon="regular messages"
href="/learn/ask-fern/getting-started/what-is-ask-fern"
>
Review AI chat conversation history.
</Card>
<Card
title="Fern Editor"
icon="regular pen-to-square"
href="/learn/docs/writing-content/fern-editor"
>
Create and manage Fern Editor sessions.
</Card>
<Card
title="Site information"
icon="regular info-circle"
>
View deployment status, domains, CLI version, and GitHub repo details.
</Card>
</CardGroup>

162 changes: 162 additions & 0 deletions fern/products/dashboard/pages/sso.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
---
title: Set up Single Sign-On (SSO)
description: Let teammates sign in to Fern with your IdP (SAML or OIDC)
---

<Markdown src="/snippets/enterprise-plan.mdx" />

Set up Single Sign-On (SSO) to sign in to Fern using the identity provider you already use. SSO setup requires coordination with Fern: you'll need configuration values from Fern (like callback URLs and entity IDs) to set up your IdP, and you'll share your IdP metadata back with Fern to complete the connection.

Choose SAML or OIDC depending on your IdP, then follow the steps below for Okta, Google Workspace, or Microsoft Entra.

<Note title="Using another provider?">
If you use another IdP, Fern will help you configure it. Reach out via Slack or [email protected] to get started.
</Note >

## Okta

<Tabs>
<Tab title="SAML">
<Steps>
<Step title="Receive configuration values from Fern">
Fern will send you the SSO URL and Audience URI through a secure channel (not Slack/email).
</Step>

<Step title="Create and configure application in Okta">
In **Applications**, create a new app integration using **SAML 2.0**. Configure with these values:

| Field | Value |
| ----- | ----- |
| Single sign-on URL | [value from Fern] |
| Audience URI | [value from Fern] |
| Name ID format | `EmailAddress` |

Then, add attribute statements:
| Name | Value |
| ------ | -------------------------------------- |
| `name` | `user.firstName + " " + user.lastName` |
| `email`| `user.email` |
</Step>

<Step title="Send Fern your IdP metadata">
From the **Sign-On** tab, copy the Metadata URL and X.509 certificate. Send them back to Fern. Fern will enable the connection and run a test login with you.
</Step>

<Step title="Disable IdP-initiated login">
In the **General** tab under **App visibility**, enable **Do not display application icon to users**. This prevents IdP-initiated login flows, which carry security risks.
</Step>

<Step title="Assign users">
Assign the people who should access Fern.
</Step>
</Steps>
</Tab>

<Tab title="OIDC">
<Steps>
<Step title="Receive configuration values from Fern">
Fern will send you the Redirect URI through a secure channel (not Slack/email).
</Step>

<Step title="Create and configure application in Okta">
In **Applications**, create a new **Web Application** using OIDC. Use Authorization Code grant and set the Redirect URI to the value Fern provided.
</Step>

<Step title="Send Fern your IdP credentials">
Share the Client ID, Client Secret, and your Okta domain (e.g., `<your-tenant>.okta.com`) back to Fern. Fern will enable the connection and run a test login with you.
</Step>

<Step title="Disable IdP-initiated login">
In the **General** tab under **App visibility**, enable **Do not display application icon to users**. This prevents IdP-initiated login flows, which carry security risks.
</Step>

<Step title="Assign users">
Assign the people who should access Fern.
</Step>
</Steps>
</Tab>
</Tabs>

## Google Workspace

<Tabs>
<Tab title="SAML">
<Steps>
<Step title="Receive configuration values from Fern">
Fern will send you the ACS URL and Entity ID through a secure channel (not Slack/email).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'ACS' has no definition.

</Step>

<Step title="Create and configure application in Google">
In **Web and mobile apps**, choose **Add app → Add custom SAML app**. On **Service provider details**, enter these values:

| Field | Value |
| ----- | ----- |
| ACS URL | [value from Fern] |
| Entity ID | [value from Fern] |
| Name ID format | `EMAIL` |
| Name ID | `Primary email` |

Then, add attribute statements:
| Google Directory Attribute | App Attribute |
| -------------------------- | ------------- |
| `First name` | `firstName` |
| `Last name` | `lastName` |
</Step>

<Step title="Send Fern your IdP metadata">
Copy the SSO URL, Entity ID, and X.509 certificate from Google. Send them to Fern. Fern will enable the connection and run a test login with you.
</Step>

<Step title="Assign users">
Assign the people who should access Fern.
</Step>
</Steps>
</Tab>
</Tabs>

## Microsoft Entra
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[FernStyles.Headings] 'Microsoft Entra' should use sentence-style capitalization.


<Tabs>
<Tab title="SAML">
<Steps>
<Step title="Create an application">
Under **Enterprise applications**, select **New application → Create your own application → Non-gallery**.
</Step>

<Step title="Receive configuration values from Fern">
Fern will send you the Identifier (Entity ID) and Reply URL (ACS) through a secure channel.
</Step>

<Step title="Configure SAML">
In **Single Sign-On**, choose **SAML** and enter these values:

| Field | Value |
| ----- | ----- |
| Identifier (Entity ID) | [value from Fern] |
| Reply URL (ACS) | [value from Fern] |
| Name ID | `user.primaryauthoritativeemail` (email) |

Then, add attribute statements:

| Name | Value |
| ----------- | ---------------- |
| `firstName` | `user.givenname` |
| `lastName` | `user.surname` |
</Step>

<Step title="Send Fern your IdP metadata">
From **SAML Certificates**, copy the **App Federation Metadata URL**. Send it to Fern. Fern will enable the connection and run a test login with you.
</Step>

<Step title="Disable IdP-initiated login">
To prevent IdP-initiated login flows (which carry security risks), do not distribute the User access URL.

Optionally, create a Conditional Access policy to block sign-ins that don't originate from your service provider.
</Step>

<Step title="Assign users">
In **Users and groups**, add the people who should access Fern.
</Step>
</Steps>
</Tab>
</Tabs>
Loading