Skip to content

feat(fga): POC — Docusaurus to Mintlify migration as fga/ microsite#1423

Open
nick-gagliardi wants to merge 1 commit into
mainfrom
feat/fga-microsite-poc
Open

feat(fga): POC — Docusaurus to Mintlify migration as fga/ microsite#1423
nick-gagliardi wants to merge 1 commit into
mainfrom
feat/fga-microsite-poc

Conversation

@nick-gagliardi

Copy link
Copy Markdown
Contributor

Summary

POC for migrating the FGA docs from Docusaurus (atko-cic/fga-docs) to Mintlify, landing as a new self-contained fga/ microsite alongside main/ and auth4genai/. Final URL target: docs.fga.dev.

10 representative pages were converted, chosen to exercise every Docusaurus-ism we'll hit when migrating the remaining 78 pages.

What's in the POC

  • fga/docs.json — Mintlify config modeled on auth4genai/docs.json, Auth0 orange palette, 5 redirects ported from docusaurus.config.js
  • 10 converted MDX pages across 5 nav groups (Introduction, Getting started, Modeling, API integration, Migrations & notices)
  • 3 snippet components in fga/snippets/:
    • CheckRequestViewer.jsx — fully ported, generates SDK code for 9 languages from props
    • AuthzModelSnippetViewer.jsx — JSON-only port (DSL pending — see notes)
    • SupportedLanguage.jsx — shared constants
  • 24 image assets + 2 logo SVGs
  • fga/scripts/convert.mjs — five-pass regex converter (imports, admonitions, tabs, frontmatter, branding helpers)
  • fga/scripts/cleanup.mjs — idempotent post-process (Tip placeholders for unported viewers, HTML comment stripping, viewer import injection)
  • fga/MIGRATION_NOTES.md — patterns documented for the team to apply to the remaining 78 pages

Conversion patterns validated

Source Target Status
:::note/info/tip/caution/warning/danger <Note>/<Info>/<Tip>/<Warning> Mechanical (regex)
<Tabs groupId> + <TabItem value label> <Tabs> + <Tab title> Mechanical (regex)
<ProductName format={...}/> Static "Auth0 FGA" / "Auth0 Fine Grained Authorization" Mechanical
<ProductConcept section linkName/> Markdown link to /intro/fga-concepts#section Mechanical
<UpdateProductNameInLinks link name/> Plain markdown link Mechanical
Docusaurus frontmatter (sidebar_position, slug) Mintlify (permalink) Mechanical
@site/static/img/foo.svg SVG-as-component <img src="/img/foo.svg"> Mechanical
./assets/foo.png and variants /img/foo.png Mechanical
<RelatedSection relatedLinks={[...]}/> <CardGroup> of <Card> Manual (~5 min/page)
9 SDK viewer types fga/snippets/*.jsx 2/9 ported, 7 placeholders

Known limitations

  1. AuthzModelSnippetViewer renders JSON, not DSL. The original uses @openfga/syntax-transformer for JSON→DSL conversion; bundling that into Mintlify's snippet runtime is a follow-up. Pages that pass syntaxesToShow={[SyntaxFormat.Dsl]} show JSON with a note. The component accepts an optional dsl prop for pre-computed DSL strings.
  2. 7 viewer types are stubbed as <Tip> placeholders: BatchCheckRequestViewer, WriteRequestViewer, ListObjectsRequestViewer, ListUsersRequestViewer, ReadChangesRequestViewer, ExpandRequestViewer, RelationshipTuplesViewer. Porting pattern documented in MIGRATION_NOTES.md.
  3. 71 broken internal links remain — all to pages outside the POC subset (e.g. ./configuration-language, ./parent-child.mdx). They resolve once those pages migrate.

Test plan

  • Run cd fga && mint dev — disable VPN on first run per docs-v2/CLAUDE.md
  • Walk all 10 pages, confirm sidebar matches docs.json (5 groups)
  • Verify <Tabs> switching on getting-started/perform-check and migration-instructions
  • Verify all admonition flavors render (<Note>, <Info>, <Tip>, <Warning>)
  • Confirm images load on getting-started/new-getting-started and inline SVGs render on modeling/getting-started
  • Confirm ported <CheckRequestViewer> shows tabs for all 9 languages with correct generated code on getting-started/perform-check
  • Confirm <AuthzModelSnippetViewer> renders JSON on modeling/direct-access (and shows the JSON-fallback message for DSL views)
  • Test all 5 redirects resolve correctly
  • mint broken-links — already validated locally (0 parse errors, 71 broken links to non-POC pages)

Open items (not blocking POC)

  • Confirm Auth0 orange palette is right or pick an FGA-specific palette
  • auth4genai/mcp/get-started/secure-mcp-server-with-auth0-fga.mdx stays put; cross-link from there to this microsite once live
  • Mintlify project + docs.fga.dev DNS setup is out of scope

10 representative pages converted from atko-cic/fga-docs covering every
Docusaurus-ism (admonitions, Tabs/TabItem, SVG-as-component imports,
asset paths, branding helpers).

- fga/docs.json modeled on auth4genai/docs.json, targeting docs.fga.dev
- Two ported viewer components (CheckRequestViewer, AuthzModelSnippetViewer)
  in fga/snippets/; remaining seven viewers stubbed as <Tip> placeholders
- Two reusable conversion scripts: convert.mjs (regex-based five-pass) and
  cleanup.mjs (idempotent post-process)
- MIGRATION_NOTES.md documenting patterns, limitations, and the path
  to converting the remaining 78 pages

mint broken-links passes with 0 parse errors.
@nick-gagliardi nick-gagliardi requested review from a team as code owners June 18, 2026 14:16
@github-actions

Copy link
Copy Markdown
Contributor

Summary

Status Count
🔍 Total 198
✅ Successful 37
⏳ Timeouts 0
🔀 Redirected 13
👻 Excluded 147
❓ Unknown 0
🚫 Errors 1
⛔ Unsupported 0

Errors per input

Errors in fga/getting-started/new-getting-started.mdx

Redirects per input

Redirects in fga/getting-started/new-getting-started.mdx

Redirects in fga/interacting/managing-user-access.mdx

Redirects in fga/intro/about-auth0-fga.mdx

Redirects in fga/intro/authorization-concepts.mdx

Redirects in fga/intro/fga-concepts.mdx

Redirects in fga/migration-instructions.mdx

Redirects in fga/modeling/direct-access.mdx

Redirects in fga/modeling/getting-started.mdx

Redirects in fga/modeling/user-groups.mdx

@nick-gagliardi nick-gagliardi added the DO NOT MERGE Only the PR author should merge, even if approved. label Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DO NOT MERGE Only the PR author should merge, even if approved.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant