chore: flatten metadata wrapper and extend frontmatter schema#715
chore: flatten metadata wrapper and extend frontmatter schema#715
Conversation
- Promote nested metadata fields to top-level in 99 authenticate/billing pages - Add topics and updated fields to content.config.ts Zod schema - Update contribute guide frontmatter and template - Remove featured/deprecated from template and cursor rule Made-with: Cursor
WalkthroughA schema update adds Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
src/content/docs/contribute/index.mdx (1)
196-197: Use list scaffolding foraudiencein the template example.To better enforce the intended frontmatter shape, make
audiencevisibly array-shaped in the snippet (same style astopics/keywords).Proposed template tweak
-audience: +audiance: + - complexity:🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/content/docs/contribute/index.mdx` around lines 196 - 197, The frontmatter example currently shows "audience:" as a blank scalar; update the template so "audience" is explicitly an array like the existing "topics"/"keywords" scaffolding (e.g., present "audience:" with a list scaffold or empty array placeholder) so consumers see the intended array shape; locate the frontmatter example containing "audience:" and mirror the list style used for "topics"/"keywords".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/content/docs/billing/about-billing/kinde-billing-faqs.mdx`:
- Around line 15-17: Replace the hyphenated frontmatter key "ai-summary" with
the underscored "ai_summary" so the field matches the content schema; locate the
frontmatter block where "ai-summary: >" is declared (the top metadata of this
MDX file) and rename the key to "ai_summary" preserving the multiline value and
indentation.
In `@src/content/docs/billing/manage-plans/create-plans.mdx`:
- Line 221: The image line currently has leading spaces causing it to be treated
as code; remove the indentation before the Markdown image line that contains
""
so it starts at column 0, and ensure there's a blank line above/below if needed
so the image renders as standard Markdown rather than inside a code block.
---
Nitpick comments:
In `@src/content/docs/contribute/index.mdx`:
- Around line 196-197: The frontmatter example currently shows "audience:" as a
blank scalar; update the template so "audience" is explicitly an array like the
existing "topics"/"keywords" scaffolding (e.g., present "audience:" with a list
scaffold or empty array placeholder) so consumers see the intended array shape;
locate the frontmatter example containing "audience:" and mirror the list style
used for "topics"/"keywords".
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 77022421-a949-4b4a-93c6-08cbb54b877a
📒 Files selected for processing (101)
src/content.config.tssrc/content/docs/authenticate/about-auth/about-authentication.mdxsrc/content/docs/authenticate/about-auth/authentication-faq.mdxsrc/content/docs/authenticate/about-auth/authentication-methods.mdxsrc/content/docs/authenticate/about-auth/identity-and-verification.mdxsrc/content/docs/authenticate/about-auth/kinde-authentication-faq.mdxsrc/content/docs/authenticate/about-auth/user-communication.mdxsrc/content/docs/authenticate/auth-guides/enterprise-connections-identity.mdxsrc/content/docs/authenticate/auth-guides/mixed-b2b-b2c.mdxsrc/content/docs/authenticate/auth-guides/pass-params-idp.mdxsrc/content/docs/authenticate/authentication-methods/email-authentication.mdxsrc/content/docs/authenticate/authentication-methods/email-deliverability.mdxsrc/content/docs/authenticate/authentication-methods/password-authentication.mdxsrc/content/docs/authenticate/authentication-methods/passwordless-authentication.mdxsrc/content/docs/authenticate/authentication-methods/phone-authentication.mdxsrc/content/docs/authenticate/authentication-methods/set-up-user-authentication.mdxsrc/content/docs/authenticate/authentication-methods/sms-deliverability.mdxsrc/content/docs/authenticate/authentication-methods/username-authentication.mdxsrc/content/docs/authenticate/authentication-methods/whatsapp-authentication.mdxsrc/content/docs/authenticate/custom-configurations/advanced-organization.mdxsrc/content/docs/authenticate/custom-configurations/authentication-experience.mdxsrc/content/docs/authenticate/custom-configurations/custom-authentication-pages.mdxsrc/content/docs/authenticate/custom-configurations/custom-oauth2-connection.mdxsrc/content/docs/authenticate/custom-configurations/disable-sign-up.mdxsrc/content/docs/authenticate/custom-configurations/prepopulate-identity-sign-in.mdxsrc/content/docs/authenticate/custom-configurations/proxy-your-kinde-auth-pages-through-cloudflare.mdxsrc/content/docs/authenticate/custom-configurations/redirect-users.mdxsrc/content/docs/authenticate/custom-configurations/static-ip.mdxsrc/content/docs/authenticate/enterprise-connections/about-enterprise-connections.mdxsrc/content/docs/authenticate/enterprise-connections/advanced-saml-configurations.mdxsrc/content/docs/authenticate/enterprise-connections/azure.mdxsrc/content/docs/authenticate/enterprise-connections/cloudflare-saml.mdxsrc/content/docs/authenticate/enterprise-connections/custom-saml-google-workspace.mdxsrc/content/docs/authenticate/enterprise-connections/custom-saml.mdxsrc/content/docs/authenticate/enterprise-connections/enterprise-connections-b2b.mdxsrc/content/docs/authenticate/enterprise-connections/entra-id-saml.mdxsrc/content/docs/authenticate/enterprise-connections/home-realm-discovery.mdxsrc/content/docs/authenticate/enterprise-connections/idp-initiated-saml-sso.mdxsrc/content/docs/authenticate/enterprise-connections/lastpass-sso.mdxsrc/content/docs/authenticate/enterprise-connections/mapping-users-enterprise.mdxsrc/content/docs/authenticate/enterprise-connections/okta-saml-connection.mdxsrc/content/docs/authenticate/enterprise-connections/provision-users-enterprise.mdxsrc/content/docs/authenticate/enterprise-connections/refresh-saml-certificate.mdxsrc/content/docs/authenticate/manage-authentication/manage-authentication-applications.mdxsrc/content/docs/authenticate/manage-authentication/navigate-between-organizations.mdxsrc/content/docs/authenticate/manage-authentication/organization-auth-experience.mdxsrc/content/docs/authenticate/manage-authentication/session-management-per-organization.mdxsrc/content/docs/authenticate/manage-authentication/session-management.mdxsrc/content/docs/authenticate/manage-authentication/sign-in-to-last-org.mdxsrc/content/docs/authenticate/manage-authentication/sync-with-kinde.mdxsrc/content/docs/authenticate/manage-authentication/user-auth-applications.mdxsrc/content/docs/authenticate/multi-factor-auth/about-multi-factor-authentication.mdxsrc/content/docs/authenticate/multi-factor-auth/enable-multi-factor-authentication.mdxsrc/content/docs/authenticate/multi-factor-auth/mfa-per-org.mdxsrc/content/docs/authenticate/social-sign-in/add-social-sign-in.mdxsrc/content/docs/authenticate/social-sign-in/apple.mdxsrc/content/docs/authenticate/social-sign-in/bitbucket-sso.mdxsrc/content/docs/authenticate/social-sign-in/clever.mdxsrc/content/docs/authenticate/social-sign-in/discord.mdxsrc/content/docs/authenticate/social-sign-in/facebook.mdxsrc/content/docs/authenticate/social-sign-in/github.mdxsrc/content/docs/authenticate/social-sign-in/gitlab.mdxsrc/content/docs/authenticate/social-sign-in/google.mdxsrc/content/docs/authenticate/social-sign-in/linkedin.mdxsrc/content/docs/authenticate/social-sign-in/microsoft-sso.mdxsrc/content/docs/authenticate/social-sign-in/roblox-sso.mdxsrc/content/docs/authenticate/social-sign-in/slack.mdxsrc/content/docs/authenticate/social-sign-in/twitch.mdxsrc/content/docs/authenticate/social-sign-in/twitter.mdxsrc/content/docs/authenticate/social-sign-in/xero-sso.mdxsrc/content/docs/billing/about-billing/about-billing.mdxsrc/content/docs/billing/about-billing/billing-concepts-terms.mdxsrc/content/docs/billing/about-billing/billing-faq.mdxsrc/content/docs/billing/about-billing/kinde-billing-faqs.mdxsrc/content/docs/billing/about-billing/kinde-billing-model.mdxsrc/content/docs/billing/billing-user-experience/add-billing-to-url-sdk.mdxsrc/content/docs/billing/billing-user-experience/customize-billing-pages.mdxsrc/content/docs/billing/billing-user-experience/free-trials.mdxsrc/content/docs/billing/billing-user-experience/plan-selection.mdxsrc/content/docs/billing/billing-user-experience/pricing-table-display.mdxsrc/content/docs/billing/get-started/add-billing-role.mdxsrc/content/docs/billing/get-started/add-pricing-table.mdxsrc/content/docs/billing/get-started/build-plans.mdxsrc/content/docs/billing/get-started/connect-to-stripe.mdxsrc/content/docs/billing/get-started/default-billing-currency.mdxsrc/content/docs/billing/get-started/publish-plans.mdxsrc/content/docs/billing/get-started/self-serve-portal-setup.mdxsrc/content/docs/billing/get-started/setup-overview.mdxsrc/content/docs/billing/manage-plans/about-plans.mdxsrc/content/docs/billing/manage-plans/add-manage-plan-groups.mdxsrc/content/docs/billing/manage-plans/cancel-plans.mdxsrc/content/docs/billing/manage-plans/create-plans.mdxsrc/content/docs/billing/manage-plans/upgrade-downgrade-plans.mdxsrc/content/docs/billing/manage-subscribers/add-metered-usage.mdxsrc/content/docs/billing/manage-subscribers/manage-customer-activity-webhooks.mdxsrc/content/docs/billing/manage-subscribers/upgrade-downgrade-methods.mdxsrc/content/docs/billing/payment-management/manage-stripe-connection.mdxsrc/content/docs/billing/payment-management/payment-processor.mdxsrc/content/docs/billing/pricing/pricing-models.mdxsrc/content/docs/build/organizations/self-serve-portal-per-org.mdxsrc/content/docs/contribute/index.mdx
Deploying kinde-docs-preview with
|
| Latest commit: |
dd12861
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://84355248.kinde-docs-preview.pages.dev |
| Branch Preview URL: | https://tamal-update-frontmatter-sch.kinde-docs-preview.pages.dev |
Several frontmatter fields (topics, sdk, languages, audience, complexity, keywords, updated) were incorrectly nested under a metadata: block in 99 pages across authenticate/ and billing/. The content schema has no metadata object, so all nested values were silently ignored by Astro's schema parser and never emitted as meta tags.
This PR flattens all those fields to top-level, adds topics and updated to the Zod schema in content.config.ts, and updates the contribution guide template and cursor rule to reflect the correct frontmatter shape going forward.
Promote nested metadata fields to top-level in 99 authenticate/billing pages
Add topics and updated fields to content.config.ts Zod schema
Update contribute guide frontmatter and template
Remove featured/deprecated from template and cursor rule
Closes Fix: Move nested metadata frontmatter fields to top-level across documentation pages #685
Summary by CodeRabbit
New Features
Refactor