@adminide-stack/yantra-help-browser 12.0.16-alpha.6 → 12.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/HelpCenterFooter.d.ts.map +1 -1
- package/lib/components/HelpCenterFooter.js +186 -90
- package/lib/components/HelpCenterFooter.js.map +1 -1
- package/lib/components/HelpCenterHeader.d.ts +1 -5
- package/lib/components/HelpCenterHeader.d.ts.map +1 -1
- package/lib/components/HelpCenterHeader.js +123 -69
- package/lib/components/HelpCenterHeader.js.map +1 -1
- package/lib/components/Icons.d.ts +55 -0
- package/lib/components/Icons.d.ts.map +1 -0
- package/lib/components/Icons.js +186 -0
- package/lib/components/Icons.js.map +1 -0
- package/lib/components/Logo.d.ts +1 -2
- package/lib/components/Logo.d.ts.map +1 -1
- package/lib/components/Logo.js +5 -8
- package/lib/components/Logo.js.map +1 -1
- package/lib/components/PageHero.d.ts +9 -0
- package/lib/components/PageHero.d.ts.map +1 -0
- package/lib/components/PageHero.js +47 -0
- package/lib/components/PageHero.js.map +1 -0
- package/lib/components/SearchBar.d.ts +8 -0
- package/lib/components/SearchBar.d.ts.map +1 -0
- package/lib/components/SearchBar.js +262 -0
- package/lib/components/SearchBar.js.map +1 -0
- package/lib/components/SidebarSearch.d.ts +8 -0
- package/lib/components/SidebarSearch.d.ts.map +1 -0
- package/lib/components/SidebarSearch.js +114 -0
- package/lib/components/SidebarSearch.js.map +1 -0
- package/lib/components/navbar/index.d.ts.map +1 -1
- package/lib/components/navbar/index.js +32 -36
- package/lib/components/navbar/index.js.map +1 -1
- package/lib/compute.d.ts +17 -0
- package/lib/compute.d.ts.map +1 -1
- package/lib/compute.js +111 -3
- package/lib/compute.js.map +1 -1
- package/lib/pages/About/index.d.ts +3 -0
- package/lib/pages/About/index.d.ts.map +1 -0
- package/lib/pages/About/index.js +69 -0
- package/lib/pages/About/index.js.map +1 -0
- package/lib/pages/Blog/index.d.ts +3 -0
- package/lib/pages/Blog/index.d.ts.map +1 -0
- package/lib/pages/Blog/index.js +172 -0
- package/lib/pages/Blog/index.js.map +1 -0
- package/lib/pages/BlogPost/index.d.ts +3 -0
- package/lib/pages/BlogPost/index.d.ts.map +1 -0
- package/lib/pages/BlogPost/index.js +209 -0
- package/lib/pages/BlogPost/index.js.map +1 -0
- package/lib/pages/Careers/index.d.ts +3 -0
- package/lib/pages/Careers/index.d.ts.map +1 -0
- package/lib/pages/Careers/index.js +78 -0
- package/lib/pages/Careers/index.js.map +1 -0
- package/lib/pages/CategoryCollection/index.d.ts.map +1 -1
- package/lib/pages/CategoryCollection/index.js +86 -80
- package/lib/pages/CategoryCollection/index.js.map +1 -1
- package/lib/pages/Community/index.d.ts +3 -0
- package/lib/pages/Community/index.d.ts.map +1 -0
- package/lib/pages/Community/index.js +72 -0
- package/lib/pages/Community/index.js.map +1 -0
- package/lib/pages/Contact/index.d.ts +3 -0
- package/lib/pages/Contact/index.d.ts.map +1 -0
- package/lib/pages/Contact/index.js +128 -0
- package/lib/pages/Contact/index.js.map +1 -0
- package/lib/pages/GetStarted/components/ExampleCard.d.ts.map +1 -1
- package/lib/pages/GetStarted/components/GetStartedHero.d.ts.map +1 -1
- package/lib/pages/GetStarted/components/InfoSection.d.ts.map +1 -1
- package/lib/pages/GetStarted/components/TipCard.d.ts.map +1 -1
- package/lib/pages/GetStarted/components/UseCase.d.ts.map +1 -1
- package/lib/pages/GetStarted/index.d.ts.map +1 -1
- package/lib/pages/GetStarted/index.js +333 -713
- package/lib/pages/GetStarted/index.js.map +1 -1
- package/lib/pages/HelpCenter/components/HelpCategoryCard.d.ts +2 -0
- package/lib/pages/HelpCenter/components/HelpCategoryCard.d.ts.map +1 -1
- package/lib/pages/HelpCenter/components/HelpCategoryCard.js +154 -68
- package/lib/pages/HelpCenter/components/HelpCategoryCard.js.map +1 -1
- package/lib/pages/HelpCenter/components/Icons.d.ts +10 -0
- package/lib/pages/HelpCenter/components/Icons.d.ts.map +1 -1
- package/lib/pages/HelpCenter/components/Icons.js +338 -78
- package/lib/pages/HelpCenter/components/Icons.js.map +1 -1
- package/lib/pages/HelpCenter/components/PopularArticle.d.ts +3 -0
- package/lib/pages/HelpCenter/components/PopularArticle.d.ts.map +1 -1
- package/lib/pages/HelpCenter/components/PopularArticle.js +22 -37
- package/lib/pages/HelpCenter/components/PopularArticle.js.map +1 -1
- package/lib/pages/HelpCenter/index.d.ts.map +1 -1
- package/lib/pages/HelpCenter/index.js +261 -44
- package/lib/pages/HelpCenter/index.js.map +1 -1
- package/lib/pages/HelpCenter/mockData.d.ts +16 -0
- package/lib/pages/HelpCenter/mockData.d.ts.map +1 -1
- package/lib/pages/HelpCenter/mockData.js +83 -12
- package/lib/pages/HelpCenter/mockData.js.map +1 -1
- package/lib/pages/LandingPage/components/ArticleCard.d.ts +2 -2
- package/lib/pages/LandingPage/components/ArticleCard.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/ArticleCard.js +31 -20
- package/lib/pages/LandingPage/components/ArticleCard.js.map +1 -1
- package/lib/pages/LandingPage/components/Assets.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/CategoriesSection.d.ts +2 -1
- package/lib/pages/LandingPage/components/CategoriesSection.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/CategoriesSection.js +33 -23
- package/lib/pages/LandingPage/components/CategoriesSection.js.map +1 -1
- package/lib/pages/LandingPage/components/CategoryCard.d.ts +1 -1
- package/lib/pages/LandingPage/components/CategoryCard.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/CategoryCard.js +35 -13
- package/lib/pages/LandingPage/components/CategoryCard.js.map +1 -1
- package/lib/pages/LandingPage/components/FeaturedSection.d.ts +2 -1
- package/lib/pages/LandingPage/components/FeaturedSection.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/FeaturedSection.js +24 -9
- package/lib/pages/LandingPage/components/FeaturedSection.js.map +1 -1
- package/lib/pages/LandingPage/components/HeroSection.d.ts +1 -7
- package/lib/pages/LandingPage/components/HeroSection.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/HeroSection.js +108 -40
- package/lib/pages/LandingPage/components/HeroSection.js.map +1 -1
- package/lib/pages/LandingPage/components/ResourceCard.d.ts +1 -1
- package/lib/pages/LandingPage/components/ResourceCard.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/ResourceCard.js +24 -19
- package/lib/pages/LandingPage/components/ResourceCard.js.map +1 -1
- package/lib/pages/LandingPage/components/ResourcesSection.d.ts +2 -2
- package/lib/pages/LandingPage/components/ResourcesSection.d.ts.map +1 -1
- package/lib/pages/LandingPage/components/ResourcesSection.js +28 -14
- package/lib/pages/LandingPage/components/ResourcesSection.js.map +1 -1
- package/lib/pages/LandingPage/index.d.ts.map +1 -1
- package/lib/pages/LandingPage/index.js +189 -130
- package/lib/pages/LandingPage/index.js.map +1 -1
- package/lib/pages/Markdown/MarkdownPageLayout.d.ts +3 -0
- package/lib/pages/Markdown/MarkdownPageLayout.d.ts.map +1 -0
- package/lib/pages/Markdown/MarkdownPageLayout.js +318 -0
- package/lib/pages/Markdown/MarkdownPageLayout.js.map +1 -0
- package/lib/pages/Markdown/MarkdownPageWithParams.d.ts +9 -0
- package/lib/pages/Markdown/MarkdownPageWithParams.d.ts.map +1 -0
- package/lib/pages/Markdown/MarkdownPageWithParams.js +65 -0
- package/lib/pages/Markdown/MarkdownPageWithParams.js.map +1 -0
- package/lib/pages/Markdown/index.d.ts +3 -0
- package/lib/pages/Markdown/index.d.ts.map +1 -0
- package/lib/pages/Markdown/index.js +5 -0
- package/lib/pages/Markdown/index.js.map +1 -0
- package/lib/pages/Privacy/index.d.ts +3 -0
- package/lib/pages/Privacy/index.d.ts.map +1 -0
- package/lib/pages/Privacy/index.js +449 -0
- package/lib/pages/Privacy/index.js.map +1 -0
- package/lib/pages/ReleaseNotes/index.d.ts +3 -0
- package/lib/pages/ReleaseNotes/index.d.ts.map +1 -0
- package/lib/pages/ReleaseNotes/index.js +61 -0
- package/lib/pages/ReleaseNotes/index.js.map +1 -0
- package/lib/pages/StatusPage/index.d.ts +3 -0
- package/lib/pages/StatusPage/index.d.ts.map +1 -0
- package/lib/pages/StatusPage/index.js +85 -0
- package/lib/pages/StatusPage/index.js.map +1 -0
- package/lib/pages/Terms/index.d.ts +3 -0
- package/lib/pages/Terms/index.d.ts.map +1 -0
- package/lib/pages/Terms/index.js +60 -0
- package/lib/pages/Terms/index.js.map +1 -0
- package/lib/routes.json +138 -1
- package/lib/templates/content/account-management/account-setup.md +83 -0
- package/lib/templates/content/account-management/delete-account.md +81 -0
- package/lib/templates/content/account-management/preferences.md +98 -0
- package/lib/templates/content/account-management/privacy-settings.md +94 -0
- package/lib/templates/content/account-management/profile-settings.md +78 -0
- package/lib/templates/content/ai-employees/ai-employees-overview.md +97 -0
- package/lib/templates/content/ai-employees/getting-started-ai-employees.md +119 -0
- package/lib/templates/content/ai-employees/how-ai-employees-work.md +123 -0
- package/lib/templates/content/ai-employees/supervised-mode.md +141 -0
- package/lib/templates/content/blog/how-yantra-browser-automates-workflows.md +120 -0
- package/lib/templates/content/blog/introducing-yantra-browser.md +90 -0
- package/lib/templates/content/blog/yantra-browser-productivity-tips.md +98 -0
- package/lib/templates/content/browser-extension/browser-extension-overview.md +60 -0
- package/lib/templates/content/browser-extension/extension-security.md +126 -0
- package/lib/templates/content/browser-extension/getting-started-extension.md +96 -0
- package/lib/templates/content/browser-extension/how-it-works.md +112 -0
- package/lib/templates/content/browser-extension/troubleshooting-extension.md +138 -0
- package/lib/templates/content/browser-extension/use-cases-workflows.md +123 -0
- package/lib/templates/content/content-manifest.json +6245 -0
- package/lib/templates/content/data-privacy/data-collection.md +78 -0
- package/lib/templates/content/data-privacy/privacy-policy.md +100 -0
- package/lib/templates/content/data-subject-privacy/data-access.md +90 -0
- package/lib/templates/content/data-subject-privacy/data-portability.md +97 -0
- package/lib/templates/content/data-subject-privacy/privacy-requests.md +95 -0
- package/lib/templates/content/file-uploads/file-upload-overview.md +93 -0
- package/lib/templates/content/getting-started/getting-started-guide.md +88 -0
- package/lib/templates/content/integrations/crm-integrations.md +130 -0
- package/lib/templates/content/integrations/github-integration.md +95 -0
- package/lib/templates/content/integrations/integrations-overview.md +142 -0
- package/lib/templates/content/integrations/monitoring-integrations.md +109 -0
- package/lib/templates/content/integrations/productivity-integrations.md +129 -0
- package/lib/templates/content/integrations/slack-integration.md +79 -0
- package/lib/templates/content/openclaw/openclaw-architecture.md +202 -0
- package/lib/templates/content/openclaw/openclaw-contribution.md +107 -0
- package/lib/templates/content/openclaw/openclaw-overview.md +152 -0
- package/lib/templates/content/platform-features/always-watching.md +63 -0
- package/lib/templates/content/platform-features/instant-context.md +67 -0
- package/lib/templates/content/platform-features/instant-onboarding.md +80 -0
- package/lib/templates/content/platform-features/platform-overview.md +58 -0
- package/lib/templates/content/platform-features/proactive-alerts.md +88 -0
- package/lib/templates/content/platform-features/smart-escalation.md +93 -0
- package/lib/templates/content/product-features/ai-models.md +89 -0
- package/lib/templates/content/product-features/collaboration-tools.md +88 -0
- package/lib/templates/content/product-features/conversation-features.md +76 -0
- package/lib/templates/content/product-features/export-features.md +87 -0
- package/lib/templates/content/product-features/follow-up-questions.md +82 -0
- package/lib/templates/content/product-features/real-time-search.md +84 -0
- package/lib/templates/content/product-features/saved-searches.md +75 -0
- package/lib/templates/content/product-features/search-features.md +82 -0
- package/lib/templates/content/product-features/search-history.md +86 -0
- package/lib/templates/content/product-features/source-citations.md +100 -0
- package/lib/templates/content/scope-api/api-overview.md +104 -0
- package/lib/templates/content/search-modes/deep-research.md +109 -0
- package/lib/templates/content/search-modes/labs-features.md +81 -0
- package/lib/templates/content/search-modes/pro-search.md +75 -0
- package/lib/templates/content/search-modes/regular-search.md +86 -0
- package/lib/templates/content/security-compliance/audit-trail.md +112 -0
- package/lib/templates/content/security-compliance/compliance.md +120 -0
- package/lib/templates/content/security-compliance/data-encryption.md +94 -0
- package/lib/templates/content/security-compliance/security-overview.md +186 -0
- package/lib/templates/content/security-compliance/vm-isolation.md +126 -0
- package/lib/templates/content/solutions-engineering/bug-tracking-context.md +126 -0
- package/lib/templates/content/solutions-engineering/engineering-overview.md +107 -0
- package/lib/templates/content/solutions-engineering/error-monitoring.md +120 -0
- package/lib/templates/content/solutions-engineering/institutional-memory.md +120 -0
- package/lib/templates/content/solutions-marketing/brand-monitoring.md +135 -0
- package/lib/templates/content/solutions-marketing/content-automation.md +111 -0
- package/lib/templates/content/solutions-marketing/marketing-overview.md +108 -0
- package/lib/templates/content/solutions-marketing/social-media-management.md +108 -0
- package/lib/templates/content/solutions-sales/call-preparation.md +106 -0
- package/lib/templates/content/solutions-sales/crm-automation.md +119 -0
- package/lib/templates/content/solutions-sales/lead-management.md +108 -0
- package/lib/templates/content/solutions-sales/sales-overview.md +120 -0
- package/lib/templates/content/spaces-library/spaces-overview.md +89 -0
- package/lib/templates/content/student-hub/academic-research.md +106 -0
- package/lib/templates/content/student-hub/student-discounts.md +78 -0
- package/lib/templates/content/student-hub/student-overview.md +86 -0
- package/lib/templates/content/student-hub/study-tools.md +121 -0
- package/lib/templates/content/subscription-billing/billing-cycle.md +71 -0
- package/lib/templates/content/subscription-billing/billing-overview.md +72 -0
- package/lib/templates/content/subscription-billing/billing-support.md +74 -0
- package/lib/templates/content/subscription-billing/currency-support.md +57 -0
- package/lib/templates/content/subscription-billing/enterprise-pricing.md +74 -0
- package/lib/templates/content/subscription-billing/invoice-management.md +86 -0
- package/lib/templates/content/subscription-billing/payment-methods.md +77 -0
- package/lib/templates/content/subscription-billing/promotional-offers.md +81 -0
- package/lib/templates/content/subscription-billing/refund-policy.md +80 -0
- package/lib/templates/content/subscription-billing/student-discounts.md +88 -0
- package/lib/templates/content/subscription-billing/tax-information.md +86 -0
- package/lib/templates/content/technical-questions/ai-models-technical.md +87 -0
- package/lib/templates/content/technical-questions/api-technical.md +158 -0
- package/lib/templates/content/technical-questions/data-processing.md +102 -0
- package/lib/templates/content/technical-questions/database-architecture.md +120 -0
- package/lib/templates/content/technical-questions/infrastructure.md +132 -0
- package/lib/templates/content/technical-questions/performance-optimization.md +105 -0
- package/lib/templates/content/technical-questions/search-algorithms.md +105 -0
- package/lib/templates/content/technical-questions/technical-overview.md +107 -0
- package/lib/templates/content/threads/conversation-management.md +103 -0
- package/lib/templates/content/threads/threads-overview.md +92 -0
- package/lib/templates/content/troubleshooting/common-issues.md +115 -0
- package/lib/templates/content/use-cases/engineering-use-cases.md +123 -0
- package/lib/templates/content/use-cases/marketing-use-cases.md +128 -0
- package/lib/templates/content/use-cases/sales-use-cases.md +123 -0
- package/lib/templates/content/use-cases/support-use-cases.md +120 -0
- package/lib/templates/content/use-cases/use-cases-overview.md +115 -0
- package/lib/templates/content/what-is-yantra/getting-started-yantra.md +85 -0
- package/lib/{content → templates/content}/what-is-yantra/how-yantra-works.md +1 -1
- package/lib/{content → templates/content}/what-is-yantra/practical-tips-yantra.md +2 -1
- package/lib/{content → templates/content}/what-is-yantra/what-is-yantra-intro.md +1 -1
- package/lib/{content → templates/content}/what-is-yantra/yantra-discord-community.md +4 -1
- package/lib/{content → templates/content}/yantra-assistant/android-app.md +10 -0
- package/lib/{content → templates/content}/yantra-assistant/ios-app.md +10 -0
- package/lib/{content → templates/content}/yantra-assistant/mobile-app-overview.md +8 -0
- package/lib/{content → templates/content}/yantra-assistant/voice-assistant.md +10 -0
- package/lib/{content → templates/content}/yantra-enterprise/admin-dashboard.md +10 -0
- package/lib/{content → templates/content}/yantra-enterprise/custom-branding.md +10 -0
- package/lib/{content → templates/content}/yantra-enterprise/dedicated-support.md +10 -0
- package/lib/{content → templates/content}/yantra-enterprise/enterprise-overview.md +8 -0
- package/lib/{content → templates/content}/yantra-enterprise/sso-integration.md +10 -0
- package/lib/{content → templates/content}/yantra-enterprise/user-management.md +10 -0
- package/lib/{content → templates/content}/yantra-pro-max/billing-management.md +13 -0
- package/lib/{content → templates/content}/yantra-pro-max/cancellation-refund.md +13 -0
- package/lib/{content → templates/content}/yantra-pro-max/pro-pricing.md +13 -9
- package/lib/{content → templates/content}/yantra-pro-max/subscription-benefits.md +8 -0
- package/lib/{content → templates/content}/yantra-pro-max/upgrade-process.md +13 -0
- package/lib/{content → templates/content}/yantra-pro-max/yantra-max-features.md +8 -8
- package/lib/{content → templates/content}/yantra-pro-max/yantra-pro-overview.md +8 -8
- package/lib/utils/docsNavigation.d.ts +10 -0
- package/lib/utils/docsNavigation.d.ts.map +1 -0
- package/lib/utils/docsNavigation.js +209 -0
- package/lib/utils/docsNavigation.js.map +1 -0
- package/lib/utils/helpCenterUtils.d.ts.map +1 -1
- package/lib/utils/markdownLoader.d.ts +12 -4
- package/lib/utils/markdownLoader.d.ts.map +1 -1
- package/lib/utils/markdownLoader.js +362 -1163
- package/lib/utils/markdownLoader.js.map +1 -1
- package/package.json +23 -6
- package/lib/content/account-management/account-setup.md +0 -74
- package/lib/content/account-management/delete-account.md +0 -74
- package/lib/content/account-management/preferences.md +0 -73
- package/lib/content/account-management/privacy-settings.md +0 -73
- package/lib/content/account-management/profile-settings.md +0 -59
- package/lib/content/data-privacy/data-collection.md +0 -65
- package/lib/content/data-privacy/privacy-policy.md +0 -73
- package/lib/content/data-subject-privacy/data-access.md +0 -88
- package/lib/content/data-subject-privacy/data-portability.md +0 -108
- package/lib/content/data-subject-privacy/privacy-requests.md +0 -80
- package/lib/content/file-uploads/file-upload-overview.md +0 -65
- package/lib/content/getting-started/getting-started-guide.md +0 -65
- package/lib/content/product-features/ai-models.md +0 -84
- package/lib/content/product-features/collaboration-tools.md +0 -59
- package/lib/content/product-features/conversation-features.md +0 -45
- package/lib/content/product-features/export-features.md +0 -59
- package/lib/content/product-features/follow-up-questions.md +0 -59
- package/lib/content/product-features/real-time-search.md +0 -59
- package/lib/content/product-features/saved-searches.md +0 -59
- package/lib/content/product-features/search-features.md +0 -64
- package/lib/content/product-features/search-history.md +0 -59
- package/lib/content/product-features/source-citations.md +0 -59
- package/lib/content/scope-api/api-overview.md +0 -59
- package/lib/content/search-modes/deep-research.md +0 -60
- package/lib/content/search-modes/labs-features.md +0 -73
- package/lib/content/search-modes/pro-search.md +0 -59
- package/lib/content/search-modes/regular-search.md +0 -60
- package/lib/content/spaces-library/spaces-overview.md +0 -60
- package/lib/content/student-hub/academic-research.md +0 -61
- package/lib/content/student-hub/student-discounts.md +0 -74
- package/lib/content/student-hub/student-overview.md +0 -59
- package/lib/content/student-hub/study-tools.md +0 -59
- package/lib/content/subscription-billing/billing-cycle.md +0 -61
- package/lib/content/subscription-billing/billing-overview.md +0 -45
- package/lib/content/subscription-billing/billing-support.md +0 -59
- package/lib/content/subscription-billing/currency-support.md +0 -73
- package/lib/content/subscription-billing/enterprise-pricing.md +0 -60
- package/lib/content/subscription-billing/invoice-management.md +0 -59
- package/lib/content/subscription-billing/payment-methods.md +0 -67
- package/lib/content/subscription-billing/promotional-offers.md +0 -61
- package/lib/content/subscription-billing/refund-policy.md +0 -75
- package/lib/content/subscription-billing/student-discounts.md +0 -74
- package/lib/content/subscription-billing/tax-information.md +0 -59
- package/lib/content/technical-questions/ai-models-technical.md +0 -73
- package/lib/content/technical-questions/api-technical.md +0 -73
- package/lib/content/technical-questions/data-processing.md +0 -73
- package/lib/content/technical-questions/database-architecture.md +0 -73
- package/lib/content/technical-questions/infrastructure.md +0 -73
- package/lib/content/technical-questions/performance-optimization.md +0 -73
- package/lib/content/technical-questions/search-algorithms.md +0 -73
- package/lib/content/technical-questions/technical-overview.md +0 -73
- package/lib/content/threads/conversation-management.md +0 -59
- package/lib/content/threads/threads-overview.md +0 -60
- package/lib/content/troubleshooting/common-issues.md +0 -59
- package/lib/content/what-is-yantra/getting-started-yantra.md +0 -84
- package/lib/pages/ArticlePage/index.d.ts +0 -4
- package/lib/pages/ArticlePage/index.d.ts.map +0 -1
- package/lib/pages/ArticlePage/index.js +0 -190
- package/lib/pages/ArticlePage/index.js.map +0 -1
- package/lib/pages/HelpCenter/components/BookStack.js +0 -36
- package/lib/pages/HelpCenter/components/BookStack.js.map +0 -1
- package/lib/pages/LandingPage/components/Assets.js +0 -14
- package/lib/pages/LandingPage/components/Assets.js.map +0 -1
- package/lib/pages/LandingPage/components/Icons.d.ts +0 -14
- package/lib/pages/LandingPage/components/Icons.d.ts.map +0 -1
- package/lib/pages/LandingPage/components/Icons.js +0 -174
- package/lib/pages/LandingPage/components/Icons.js.map +0 -1
- package/lib/pages/LandingPage/components/SearchBar.d.ts +0 -8
- package/lib/pages/LandingPage/components/SearchBar.d.ts.map +0 -1
- package/lib/pages/LandingPage/components/SearchBar.js +0 -58
- package/lib/pages/LandingPage/components/SearchBar.js.map +0 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Data Processing Pipeline
|
|
2
|
+
|
|
3
|
+
How Yantra ingests, transforms, analyzes, and stores your data — from raw input to search-ready content.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Data Ingestion
|
|
8
|
+
|
|
9
|
+
Yantra supports multiple ingestion pathways to accommodate diverse data sources:
|
|
10
|
+
|
|
11
|
+
| Source | Method | Details |
|
|
12
|
+
| ------------ | ----------------------- | ----------------------------------------------------------------------- |
|
|
13
|
+
| Web content | Automated crawling | Configurable crawl schedules, depth limits, and domain allowlists |
|
|
14
|
+
| APIs | REST/GraphQL connectors | Pre-built connectors for 50+ services (Slack, Notion, Confluence, etc.) |
|
|
15
|
+
| File uploads | Drag-and-drop or API | Supports PDF, DOCX, PPTX, CSV, Markdown, HTML, and plain text |
|
|
16
|
+
| Databases | Direct connectors | PostgreSQL, MySQL, MongoDB read-only connectors with incremental sync |
|
|
17
|
+
|
|
18
|
+
### Ingestion guarantees
|
|
19
|
+
|
|
20
|
+
- **Exactly-once processing** — Deduplication ensures no content is indexed twice.
|
|
21
|
+
- **Incremental updates** — Only new or modified content is re-processed, minimizing compute costs.
|
|
22
|
+
- **Schema validation** — Incoming data is validated against expected schemas before entering the pipeline.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Processing Architecture
|
|
27
|
+
|
|
28
|
+
### Stream processing
|
|
29
|
+
|
|
30
|
+
Yantra uses an event-driven architecture built on **Apache Kafka** for real-time data flow:
|
|
31
|
+
|
|
32
|
+
1. **Producers** publish raw content events to topic partitions.
|
|
33
|
+
2. **Stream processors** (Kafka Streams) consume events, apply transformations, and emit enriched records.
|
|
34
|
+
3. **Consumers** write processed data to the appropriate storage layer (PostgreSQL, Elasticsearch, Redis).
|
|
35
|
+
|
|
36
|
+
### Batch processing
|
|
37
|
+
|
|
38
|
+
For large-volume imports or periodic re-indexing, Yantra runs batch jobs using distributed task queues:
|
|
39
|
+
|
|
40
|
+
- Jobs are broken into chunks of 1,000 records.
|
|
41
|
+
- Each chunk is processed in parallel across worker nodes.
|
|
42
|
+
- Progress is tracked in real-time and visible in the Admin Dashboard.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Content Analysis
|
|
47
|
+
|
|
48
|
+
Every piece of content passes through a multi-stage analysis pipeline:
|
|
49
|
+
|
|
50
|
+
### Text processing
|
|
51
|
+
|
|
52
|
+
- **Language detection** — Automatically identifies 50+ languages.
|
|
53
|
+
- **Tokenization** — Text is split into meaningful tokens using language-specific tokenizers.
|
|
54
|
+
- **Normalization** — Unicode normalization, lowercasing, and stop-word removal.
|
|
55
|
+
|
|
56
|
+
### Semantic analysis
|
|
57
|
+
|
|
58
|
+
- **Embedding generation** — Each document is converted to a high-dimensional vector using state-of-the-art embedding models.
|
|
59
|
+
- **Topic modeling** — Latent topics are extracted using LDA and transformer-based approaches.
|
|
60
|
+
- **Entity recognition** — People, organizations, dates, locations, and custom entities are identified and tagged.
|
|
61
|
+
- **Sentiment analysis** — Content sentiment (positive, negative, neutral) is scored for analytics.
|
|
62
|
+
|
|
63
|
+
### Quality scoring
|
|
64
|
+
|
|
65
|
+
| Signal | Weight | Description |
|
|
66
|
+
| ---------------- | ------ | ------------------------------------------------ |
|
|
67
|
+
| Completeness | 25% | Does the content cover its topic thoroughly? |
|
|
68
|
+
| Freshness | 20% | How recently was the content created or updated? |
|
|
69
|
+
| Source authority | 30% | How trustworthy is the source domain? |
|
|
70
|
+
| Readability | 15% | Flesch-Kincaid score and structural quality |
|
|
71
|
+
| Uniqueness | 10% | Duplicate and near-duplicate detection |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Data Storage
|
|
76
|
+
|
|
77
|
+
### Multi-tier storage architecture
|
|
78
|
+
|
|
79
|
+
| Tier | Technology | Purpose | Retention |
|
|
80
|
+
| ---- | ---------------------------- | ------------------------------------------ | -------------------- |
|
|
81
|
+
| Hot | PostgreSQL + Redis | Active queries, user data, real-time cache | Indefinite |
|
|
82
|
+
| Warm | Elasticsearch | Full-text search index, vector search | Indefinite |
|
|
83
|
+
| Cold | S3-compatible object storage | Archived content, raw uploads, backups | Per retention policy |
|
|
84
|
+
|
|
85
|
+
### Data lifecycle
|
|
86
|
+
|
|
87
|
+
1. **Ingest** — Raw data lands in the processing queue.
|
|
88
|
+
2. **Process** — Content is analyzed, enriched, and indexed.
|
|
89
|
+
3. **Serve** — Processed data is available for search and retrieval.
|
|
90
|
+
4. **Archive** — Older content is compressed and moved to cold storage based on access patterns.
|
|
91
|
+
5. **Delete** — Data past its retention period is securely purged (overwritten + cryptographic erasure).
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Performance & Scalability
|
|
96
|
+
|
|
97
|
+
- **Throughput** — The pipeline processes 10,000+ documents per minute at steady state.
|
|
98
|
+
- **Latency** — End-to-end ingestion-to-searchable time is under 30 seconds for real-time sources.
|
|
99
|
+
- **Horizontal scaling** — Worker nodes auto-scale based on queue depth. During peak loads, the system scales from 4 to 32 workers automatically.
|
|
100
|
+
- **Backpressure handling** — If downstream systems slow down, the pipeline applies backpressure to producers rather than dropping data.
|
|
101
|
+
|
|
102
|
+
> **Enterprise customers** can configure custom processing rules, retention policies, and data routing via the Admin Dashboard.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Database Architecture
|
|
2
|
+
|
|
3
|
+
How Yantra stores, indexes, and retrieves data across multiple database systems optimized for different access patterns.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Database Design Philosophy
|
|
8
|
+
|
|
9
|
+
Yantra follows a **polyglot persistence** strategy — each data type is stored in the database engine best suited for its access pattern:
|
|
10
|
+
|
|
11
|
+
| Data type | Engine | Why |
|
|
12
|
+
| ------------------------------ | --------------------- | ------------------------------------------------------- |
|
|
13
|
+
| User accounts, billing, config | PostgreSQL 16 | ACID transactions, relational integrity, mature tooling |
|
|
14
|
+
| Full-text + vector search | Elasticsearch 8.x | Inverted indexes, BM25 ranking, kNN vector search |
|
|
15
|
+
| Sessions, cache, rate limits | Redis 7 | Sub-millisecond reads, TTL support, pub/sub |
|
|
16
|
+
| File uploads, backups | S3-compatible storage | Virtually unlimited capacity, 11 nines durability |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## PostgreSQL — Primary Database
|
|
21
|
+
|
|
22
|
+
### Schema design principles
|
|
23
|
+
|
|
24
|
+
- **Normalized core tables** — Users, organizations, subscriptions, and permissions follow 3NF to avoid data anomalies.
|
|
25
|
+
- **JSONB for flexibility** — Metadata, user preferences, and integration configs use JSONB columns, combining schema flexibility with indexing support.
|
|
26
|
+
- **Timestamped everything** — Every table includes `created_at` and `updated_at` columns with timezone-aware timestamps.
|
|
27
|
+
- **Soft deletes** — Records are marked as deleted rather than physically removed, enabling audit trails and data recovery.
|
|
28
|
+
|
|
29
|
+
### Indexing strategy
|
|
30
|
+
|
|
31
|
+
| Index type | Use case | Example |
|
|
32
|
+
| ---------- | -------------------------- | -------------------------------------------------- |
|
|
33
|
+
| B-tree | Equality and range queries | `WHERE created_at > '2026-01-01'` |
|
|
34
|
+
| GIN | JSONB containment queries | `WHERE metadata @> '{"type": "pdf"}'` |
|
|
35
|
+
| Partial | Hot data subsets | `WHERE status = 'active'` (index only active rows) |
|
|
36
|
+
| Covering | Avoid table lookups | Include all `SELECT` columns in the index |
|
|
37
|
+
|
|
38
|
+
### High availability
|
|
39
|
+
|
|
40
|
+
- **Streaming replication** — One synchronous standby + two async replicas.
|
|
41
|
+
- **Automatic failover** — Patroni manages leader election; failover completes in < 10 seconds.
|
|
42
|
+
- **Point-in-time recovery** — WAL archiving enables recovery to any second within the retention window (30 days).
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Elasticsearch — Search Index
|
|
47
|
+
|
|
48
|
+
### Index architecture
|
|
49
|
+
|
|
50
|
+
Each content type has its own Elasticsearch index with optimized mappings:
|
|
51
|
+
|
|
52
|
+
- **Text fields** use `text` type with custom analyzers (language-specific stemming, synonym expansion).
|
|
53
|
+
- **Vector fields** use `dense_vector` type for kNN semantic search.
|
|
54
|
+
- **Keyword fields** for exact-match filtering (tags, content type, source).
|
|
55
|
+
- **Date fields** for time-range queries and recency boosting.
|
|
56
|
+
|
|
57
|
+
### Cluster topology
|
|
58
|
+
|
|
59
|
+
- **3 dedicated master nodes** for cluster coordination.
|
|
60
|
+
- **6+ data nodes** with SSD storage for search performance.
|
|
61
|
+
- **2 coordinating nodes** for query routing and result aggregation.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Redis — Cache & Real-Time
|
|
66
|
+
|
|
67
|
+
### Cache patterns
|
|
68
|
+
|
|
69
|
+
| Pattern | Use case | TTL |
|
|
70
|
+
| ------------------- | ---------------------------- | ----------------------- |
|
|
71
|
+
| Query result cache | Identical search queries | 5 minutes |
|
|
72
|
+
| Session store | User authentication sessions | 1 hour |
|
|
73
|
+
| Rate limit counters | API rate limiting | Rolling 1-minute window |
|
|
74
|
+
| Pub/Sub channels | Real-time notifications | N/A (ephemeral) |
|
|
75
|
+
|
|
76
|
+
### Memory management
|
|
77
|
+
|
|
78
|
+
- **Maxmemory policy** set to `allkeys-lru` — least recently used keys are evicted when memory limits are reached.
|
|
79
|
+
- **Key namespacing** — All keys are prefixed by service name to avoid collisions.
|
|
80
|
+
- **Cluster mode** — Redis Cluster with 6 nodes (3 primary + 3 replica) for horizontal scaling.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Data Management
|
|
85
|
+
|
|
86
|
+
### Backup strategy
|
|
87
|
+
|
|
88
|
+
| What | Frequency | Retention | Method |
|
|
89
|
+
| ------------- | --------------------------- | ---------- | ------------------------------- |
|
|
90
|
+
| PostgreSQL | Continuous WAL + daily full | 30 days | pg_basebackup + WAL archiving |
|
|
91
|
+
| Elasticsearch | Daily snapshots | 14 days | Snapshot to S3 |
|
|
92
|
+
| Redis | RDB snapshots + AOF | 7 days | Automated via Redis persistence |
|
|
93
|
+
| File storage | Cross-region replication | Indefinite | S3 cross-region replication |
|
|
94
|
+
|
|
95
|
+
### Data governance
|
|
96
|
+
|
|
97
|
+
- **Encryption at rest** — AES-256 for all database storage volumes.
|
|
98
|
+
- **Encryption in transit** — TLS 1.3 for all database connections.
|
|
99
|
+
- **Access control** — Database credentials are rotated monthly via HashiCorp Vault.
|
|
100
|
+
- **Audit logging** — All schema changes and administrative queries are logged.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Scalability
|
|
105
|
+
|
|
106
|
+
### Current capacity
|
|
107
|
+
|
|
108
|
+
| Metric | Value |
|
|
109
|
+
| --------------------------------- | ------ |
|
|
110
|
+
| Total indexed documents | 500M+ |
|
|
111
|
+
| Database size (PostgreSQL) | 2.4 TB |
|
|
112
|
+
| Search index size (Elasticsearch) | 8.7 TB |
|
|
113
|
+
| Peak queries per second | 12,000 |
|
|
114
|
+
| Average query latency | 45 ms |
|
|
115
|
+
|
|
116
|
+
### Scaling strategy
|
|
117
|
+
|
|
118
|
+
- **Vertical** — Increase instance sizes for immediate capacity (database-level).
|
|
119
|
+
- **Horizontal** — Add read replicas (PostgreSQL), data nodes (Elasticsearch), or shard nodes (Redis) for linear scaling.
|
|
120
|
+
- **Partitioning** — Time-based partitioning for PostgreSQL tables with high write volume.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Infrastructure & Reliability
|
|
2
|
+
|
|
3
|
+
Yantra's cloud infrastructure is designed for high availability, global performance, and security at every layer.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Cloud Architecture
|
|
8
|
+
|
|
9
|
+
### Multi-region deployment
|
|
10
|
+
|
|
11
|
+
Yantra runs across **3 AWS regions** (US East, EU West, AP Southeast) with active-active configuration. User traffic is routed to the nearest region via latency-based DNS routing.
|
|
12
|
+
|
|
13
|
+
### Container orchestration
|
|
14
|
+
|
|
15
|
+
All services run as Docker containers orchestrated by **Kubernetes (EKS)**:
|
|
16
|
+
|
|
17
|
+
- **Namespaces** isolate production, staging, and development environments.
|
|
18
|
+
- **Resource quotas** prevent any single service from consuming excessive cluster resources.
|
|
19
|
+
- **Rolling deployments** ensure zero-downtime updates with automatic rollback on health check failures.
|
|
20
|
+
- **Horizontal Pod Autoscaler** adjusts replica counts based on CPU, memory, and custom metrics.
|
|
21
|
+
|
|
22
|
+
### Service mesh
|
|
23
|
+
|
|
24
|
+
An Istio-based service mesh provides:
|
|
25
|
+
|
|
26
|
+
- **Mutual TLS** between all services (zero-trust networking).
|
|
27
|
+
- **Traffic management** — Canary deployments, circuit breaking, retry policies.
|
|
28
|
+
- **Observability** — Distributed tracing with Jaeger, metrics with Prometheus.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## High Availability
|
|
33
|
+
|
|
34
|
+
### Availability targets
|
|
35
|
+
|
|
36
|
+
| Component | Target SLA | Actual (trailing 12 months) |
|
|
37
|
+
| -------------- | ---------- | --------------------------- |
|
|
38
|
+
| API Gateway | 99.99% | 99.995% |
|
|
39
|
+
| Search Service | 99.95% | 99.98% |
|
|
40
|
+
| AI Service | 99.9% | 99.94% |
|
|
41
|
+
| Data Pipeline | 99.9% | 99.92% |
|
|
42
|
+
|
|
43
|
+
### Redundancy design
|
|
44
|
+
|
|
45
|
+
- **No single point of failure** — Every component has at least 2 replicas across different availability zones.
|
|
46
|
+
- **Database failover** — Automated failover with < 10-second recovery for PostgreSQL and Redis.
|
|
47
|
+
- **Cross-region replication** — Critical data is replicated across regions for disaster recovery.
|
|
48
|
+
- **Graceful degradation** — If the AI service is unavailable, search still returns results without AI-generated summaries.
|
|
49
|
+
|
|
50
|
+
### Disaster recovery
|
|
51
|
+
|
|
52
|
+
| Metric | Target | Actual |
|
|
53
|
+
| ------------------------------ | --------- | ---------- |
|
|
54
|
+
| Recovery Time Objective (RTO) | < 4 hours | 2.1 hours |
|
|
55
|
+
| Recovery Point Objective (RPO) | < 1 hour | 15 minutes |
|
|
56
|
+
| DR test frequency | Quarterly | Monthly |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Monitoring & Observability
|
|
61
|
+
|
|
62
|
+
### The three pillars
|
|
63
|
+
|
|
64
|
+
| Pillar | Tools | Details |
|
|
65
|
+
| ------- | -------------------------------- | ------------------------------------------------ |
|
|
66
|
+
| Metrics | Prometheus + Grafana | 2,000+ custom metrics, 15-second scrape interval |
|
|
67
|
+
| Logs | Fluentd + Elasticsearch + Kibana | Structured JSON logs, 30-day retention |
|
|
68
|
+
| Traces | Jaeger + OpenTelemetry | End-to-end request tracing across all services |
|
|
69
|
+
|
|
70
|
+
### Alerting
|
|
71
|
+
|
|
72
|
+
- **PagerDuty integration** for critical alerts (P1/P2) with automatic escalation.
|
|
73
|
+
- **Slack notifications** for warnings and informational alerts.
|
|
74
|
+
- **Anomaly detection** — ML-based alerting detects unusual patterns before they become incidents.
|
|
75
|
+
- **Runbooks** — Every alert links to a runbook with diagnosis steps and remediation procedures.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Security Infrastructure
|
|
80
|
+
|
|
81
|
+
### Network security
|
|
82
|
+
|
|
83
|
+
- **VPC isolation** — All services run in private subnets with no direct internet access.
|
|
84
|
+
- **WAF (Web Application Firewall)** — Protects against OWASP Top 10 threats.
|
|
85
|
+
- **DDoS protection** — AWS Shield Advanced with automatic traffic scrubbing.
|
|
86
|
+
- **Egress filtering** — Outbound traffic is restricted to known-good destinations.
|
|
87
|
+
|
|
88
|
+
### Secrets management
|
|
89
|
+
|
|
90
|
+
- **HashiCorp Vault** for all secrets, API keys, and database credentials.
|
|
91
|
+
- **Automatic rotation** — Secrets are rotated on configurable schedules (default: 30 days).
|
|
92
|
+
- **Just-in-time access** — Engineers request temporary elevated access via an approval workflow.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## CI/CD Pipeline
|
|
97
|
+
|
|
98
|
+
### Deployment flow
|
|
99
|
+
|
|
100
|
+
1. **Code push** — Developer pushes to a feature branch on GitHub.
|
|
101
|
+
2. **CI checks** — Automated linting, type checking, unit tests, and integration tests run in GitHub Actions.
|
|
102
|
+
3. **Build** — Docker images are built, scanned for vulnerabilities, and pushed to ECR.
|
|
103
|
+
4. **Staging deploy** — ArgoCD deploys to the staging environment automatically.
|
|
104
|
+
5. **QA validation** — Automated end-to-end tests + manual spot checks.
|
|
105
|
+
6. **Production deploy** — Canary deployment to 5% of traffic, then gradual rollout to 100%.
|
|
106
|
+
7. **Post-deploy monitoring** — Automated health checks verify error rates and latency for 30 minutes.
|
|
107
|
+
|
|
108
|
+
### Deployment frequency
|
|
109
|
+
|
|
110
|
+
- **Production deploys** — 8-12 per day across all services.
|
|
111
|
+
- **Rollback time** — Under 60 seconds to previous version.
|
|
112
|
+
- **Feature flags** — LaunchDarkly for gradual feature rollouts and instant kill switches.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Global Performance
|
|
117
|
+
|
|
118
|
+
### Content delivery
|
|
119
|
+
|
|
120
|
+
- **200+ edge locations** via CloudFront CDN.
|
|
121
|
+
- **Edge caching** for static assets with 85%+ cache hit rate.
|
|
122
|
+
- **Dynamic content acceleration** — Optimized TCP connections and HTTP/3 support.
|
|
123
|
+
|
|
124
|
+
### Latency optimization
|
|
125
|
+
|
|
126
|
+
| Region | Average API latency |
|
|
127
|
+
| -------------- | ------------------- |
|
|
128
|
+
| US East | 35 ms |
|
|
129
|
+
| US West | 52 ms |
|
|
130
|
+
| EU West | 41 ms |
|
|
131
|
+
| AP Southeast | 68 ms |
|
|
132
|
+
| Global average | 48 ms |
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Performance Optimization
|
|
2
|
+
|
|
3
|
+
How Yantra achieves sub-second response times at scale — and how you can get the most out of the platform.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## System Performance Targets
|
|
8
|
+
|
|
9
|
+
| Metric | Target | Current |
|
|
10
|
+
| ------------------------- | -------------- | -------------- |
|
|
11
|
+
| Search latency (P50) | < 200 ms | 145 ms |
|
|
12
|
+
| Search latency (P99) | < 1 s | 780 ms |
|
|
13
|
+
| AI response latency (P50) | < 800 ms | 620 ms |
|
|
14
|
+
| API uptime | 99.95% | 99.98% |
|
|
15
|
+
| Throughput | 10,000 req/min | 14,200 req/min |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Caching Strategy
|
|
20
|
+
|
|
21
|
+
Yantra uses a **multi-layer caching architecture** to minimize redundant computation:
|
|
22
|
+
|
|
23
|
+
### Layer 1 — Edge cache (CDN)
|
|
24
|
+
|
|
25
|
+
Static assets and frequently requested API responses are cached at 200+ edge locations worldwide. Cache hit rates typically exceed 85%.
|
|
26
|
+
|
|
27
|
+
### Layer 2 — Application cache (Redis)
|
|
28
|
+
|
|
29
|
+
- **Query result cache** — Identical queries return cached results within 5 ms.
|
|
30
|
+
- **Session cache** — User sessions and preferences are stored in Redis for instant access.
|
|
31
|
+
- **Embedding cache** — Pre-computed embeddings for popular documents avoid redundant inference.
|
|
32
|
+
|
|
33
|
+
### Layer 3 — Database cache
|
|
34
|
+
|
|
35
|
+
- **Connection pooling** — PgBouncer maintains a pool of warm database connections, eliminating connection overhead.
|
|
36
|
+
- **Materialized views** — Complex aggregation queries use pre-computed materialized views refreshed every 5 minutes.
|
|
37
|
+
- **Query plan caching** — PostgreSQL's prepared statements reuse optimized query plans.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Database Optimization
|
|
42
|
+
|
|
43
|
+
### Indexing strategy
|
|
44
|
+
|
|
45
|
+
- **B-tree indexes** on primary keys and frequently filtered columns.
|
|
46
|
+
- **GIN indexes** on JSONB fields for flexible metadata queries.
|
|
47
|
+
- **Partial indexes** on hot data subsets (e.g., active users, recent content).
|
|
48
|
+
- **Covering indexes** that include all queried columns to avoid table lookups.
|
|
49
|
+
|
|
50
|
+
### Query optimization
|
|
51
|
+
|
|
52
|
+
Every query is analyzed for:
|
|
53
|
+
|
|
54
|
+
1. **Execution plan review** — EXPLAIN ANALYZE is run on all new queries during code review.
|
|
55
|
+
2. **N+1 detection** — Automated detection of N+1 query patterns in development.
|
|
56
|
+
3. **Slow query logging** — Queries exceeding 100 ms are logged and reviewed weekly.
|
|
57
|
+
4. **Connection management** — Read replicas handle analytics queries to keep the primary database responsive.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Application-Level Optimization
|
|
62
|
+
|
|
63
|
+
### Frontend performance
|
|
64
|
+
|
|
65
|
+
- **Code splitting** — Routes are lazy-loaded so users only download the JavaScript they need.
|
|
66
|
+
- **Image optimization** — All images are served in WebP/AVIF format with responsive srcsets.
|
|
67
|
+
- **Prefetching** — The most likely next navigation target is prefetched in the background.
|
|
68
|
+
- **Bundle analysis** — We maintain strict bundle size budgets (< 200 KB initial JS, < 50 KB CSS).
|
|
69
|
+
|
|
70
|
+
### Backend performance
|
|
71
|
+
|
|
72
|
+
- **Async I/O** — All I/O-bound operations (database queries, API calls, file reads) are non-blocking.
|
|
73
|
+
- **Worker pools** — CPU-intensive tasks (embedding generation, document parsing) run in dedicated worker processes.
|
|
74
|
+
- **Streaming responses** — AI-generated responses stream token-by-token for perceived instant feedback.
|
|
75
|
+
- **Graceful degradation** — If a dependency is slow, the system returns partial results rather than timing out entirely.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Infrastructure Optimization
|
|
80
|
+
|
|
81
|
+
### Auto-scaling
|
|
82
|
+
|
|
83
|
+
| Component | Scaling metric | Scale range |
|
|
84
|
+
| ---------------------- | ----------------------------- | ------------------ |
|
|
85
|
+
| API servers | Request rate + latency | 4 to 64 pods |
|
|
86
|
+
| AI workers | GPU utilization + queue depth | 2 to 16 nodes |
|
|
87
|
+
| Kafka consumers | Consumer lag | 3 to 24 partitions |
|
|
88
|
+
| Database read replicas | Connection count | 1 to 4 replicas |
|
|
89
|
+
|
|
90
|
+
### Cost optimization
|
|
91
|
+
|
|
92
|
+
- **Spot instances** for batch processing workloads (60% cost savings).
|
|
93
|
+
- **Reserved instances** for always-on services (40% cost savings).
|
|
94
|
+
- **Right-sizing** — Monthly reviews of resource utilization with automated recommendations.
|
|
95
|
+
- **Tiered storage** — Infrequently accessed data is automatically moved to cheaper storage tiers.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Tips for Optimizing Your Experience
|
|
100
|
+
|
|
101
|
+
1. **Use specific queries** — More precise queries return faster, more relevant results.
|
|
102
|
+
2. **Apply filters** — Narrowing by date, source, or content type reduces the search space.
|
|
103
|
+
3. **Enable caching** — For API integrations, respect cache headers to avoid unnecessary requests.
|
|
104
|
+
4. **Use batch endpoints** — Bundle multiple operations into a single batch request.
|
|
105
|
+
5. **Monitor your usage** — The Dashboard shows your API usage patterns and suggests optimizations.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Search Algorithms & Ranking
|
|
2
|
+
|
|
3
|
+
How Yantra finds the most relevant results in milliseconds — the algorithms, ranking signals, and optimizations behind the search experience.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Search Architecture
|
|
8
|
+
|
|
9
|
+
Yantra's search system combines **three complementary approaches** to deliver highly relevant results:
|
|
10
|
+
|
|
11
|
+
### 1. Keyword search (BM25)
|
|
12
|
+
|
|
13
|
+
Traditional lexical matching using the BM25 algorithm. This excels at exact-match queries where the user knows specific terms.
|
|
14
|
+
|
|
15
|
+
- **How it works** — Documents are scored based on term frequency (TF), inverse document frequency (IDF), and document length normalization.
|
|
16
|
+
- **Best for** — Error codes, product names, exact phrases, technical identifiers.
|
|
17
|
+
|
|
18
|
+
### 2. Semantic search (vector similarity)
|
|
19
|
+
|
|
20
|
+
Neural embedding-based search that understands meaning beyond exact words.
|
|
21
|
+
|
|
22
|
+
- **How it works** — Both the query and documents are converted to high-dimensional vectors. Results are ranked by cosine similarity.
|
|
23
|
+
- **Best for** — Natural language questions, conceptual queries, "how do I..." questions.
|
|
24
|
+
|
|
25
|
+
### 3. Hybrid search (default)
|
|
26
|
+
|
|
27
|
+
Combines keyword and semantic results using **Reciprocal Rank Fusion (RRF)**, producing results that are both lexically precise and semantically relevant.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
RRF_score = sum(1 / (k + rank_i)) for each ranking system i
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
This is Yantra's default search mode and performs best for most queries.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Ranking Signals
|
|
38
|
+
|
|
39
|
+
After initial retrieval, results are re-ranked using a learned ranking model that weighs multiple signals:
|
|
40
|
+
|
|
41
|
+
| Signal | Weight | Description |
|
|
42
|
+
| ----------------- | ------ | ---------------------------------------------------- |
|
|
43
|
+
| Text relevance | 35% | BM25 + semantic similarity combined score |
|
|
44
|
+
| Source authority | 20% | Domain reputation, citation count, editorial quality |
|
|
45
|
+
| Content freshness | 15% | Recency of creation or last update |
|
|
46
|
+
| User engagement | 15% | Click-through rate, time-on-page, bookmarks |
|
|
47
|
+
| Personalization | 10% | User's search history, preferred sources, role |
|
|
48
|
+
| Content quality | 5% | Readability score, completeness, structure |
|
|
49
|
+
|
|
50
|
+
### Boosting and suppression
|
|
51
|
+
|
|
52
|
+
- **Recency boost** — Content published in the last 30 days receives a configurable relevance boost.
|
|
53
|
+
- **Source pinning** — Admins can pin trusted sources to always appear in the top results.
|
|
54
|
+
- **Duplicate suppression** — Near-duplicate documents (> 85% similarity) are collapsed, showing only the highest-quality version.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Indexing System
|
|
59
|
+
|
|
60
|
+
### How content gets indexed
|
|
61
|
+
|
|
62
|
+
1. **Document intake** — New or updated content enters the indexing queue via the data pipeline.
|
|
63
|
+
2. **Analysis** — The document is processed through language-specific analyzers (tokenization, stemming, synonym expansion).
|
|
64
|
+
3. **Embedding** — A vector representation is generated using the configured embedding model.
|
|
65
|
+
4. **Storage** — The analyzed text, metadata, and vector are written to Elasticsearch shards.
|
|
66
|
+
5. **Availability** — The document becomes searchable within 1-2 seconds (near real-time).
|
|
67
|
+
|
|
68
|
+
### Index management
|
|
69
|
+
|
|
70
|
+
- **Shard allocation** — Each index is distributed across multiple shards for parallel query execution.
|
|
71
|
+
- **Replica configuration** — Each shard has at least one replica for fault tolerance and read throughput.
|
|
72
|
+
- **Index lifecycle** — Older indexes are automatically merged, force-merged, or moved to warm storage based on access patterns.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Query Processing
|
|
77
|
+
|
|
78
|
+
### What happens when you search
|
|
79
|
+
|
|
80
|
+
1. **Query parsing** — The raw input is tokenized and analyzed using the same pipeline as indexed documents.
|
|
81
|
+
2. **Query expansion** — Synonyms and related terms are added automatically (e.g., "k8s" expands to "kubernetes").
|
|
82
|
+
3. **Spell correction** — Common typos are detected and corrected using edit-distance algorithms.
|
|
83
|
+
4. **Intent detection** — The system classifies whether the user wants a factual answer, a list, a comparison, or a how-to guide.
|
|
84
|
+
5. **Execution** — The query runs against both keyword and vector indexes in parallel.
|
|
85
|
+
6. **Fusion + re-ranking** — Results are merged via RRF, then re-ranked by the learned ranking model.
|
|
86
|
+
7. **Response assembly** — Top results are formatted with highlighted snippets and source metadata.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Performance
|
|
91
|
+
|
|
92
|
+
| Metric | Value |
|
|
93
|
+
| -------------------------- | ----------------------------- |
|
|
94
|
+
| Average search latency | 145 ms |
|
|
95
|
+
| P99 search latency | < 780 ms |
|
|
96
|
+
| Index refresh interval | 1 second |
|
|
97
|
+
| Maximum concurrent queries | 12,000/sec |
|
|
98
|
+
| Index size | 500M+ documents across 8.7 TB |
|
|
99
|
+
|
|
100
|
+
### Optimization techniques
|
|
101
|
+
|
|
102
|
+
- **Query caching** — Identical queries are served from Redis cache (5-minute TTL).
|
|
103
|
+
- **Shard routing** — Queries are routed to the shard most likely to contain relevant results.
|
|
104
|
+
- **Early termination** — If the top results are already confident, remaining shards stop processing.
|
|
105
|
+
- **Parallel execution** — Keyword and vector searches run concurrently, not sequentially.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Technical Architecture Overview
|
|
2
|
+
|
|
3
|
+
A high-level look at Yantra's system design, technology choices, and engineering principles.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## System Architecture
|
|
8
|
+
|
|
9
|
+
Yantra is built as a collection of loosely coupled **microservices** communicating over gRPC and async message queues. This design enables independent scaling, deployment, and fault isolation.
|
|
10
|
+
|
|
11
|
+
### Core components
|
|
12
|
+
|
|
13
|
+
| Component | Responsibility | Technology |
|
|
14
|
+
| -------------------- | ----------------------------------------------------- | -------------------------------- |
|
|
15
|
+
| API Gateway | Request routing, auth, rate limiting | Kong / custom middleware |
|
|
16
|
+
| Search Service | Query processing, ranking, retrieval | Elasticsearch + custom vector DB |
|
|
17
|
+
| AI Service | Model inference, prompt assembly, response generation | Python (FastAPI) + GPU clusters |
|
|
18
|
+
| Data Pipeline | Content ingestion, processing, indexing | Apache Kafka + Kafka Streams |
|
|
19
|
+
| User Service | Authentication, profiles, preferences | Node.js (Express) + PostgreSQL |
|
|
20
|
+
| Notification Service | Real-time alerts, webhooks, emails | Go (Gin) + Redis Pub/Sub |
|
|
21
|
+
|
|
22
|
+
### Communication patterns
|
|
23
|
+
|
|
24
|
+
- **Synchronous** — REST/gRPC for user-facing requests where latency matters.
|
|
25
|
+
- **Asynchronous** — Kafka events for background processing (indexing, analytics, notifications).
|
|
26
|
+
- **Pub/Sub** — Redis for real-time features (live search updates, collaborative cursors).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Technology Stack
|
|
31
|
+
|
|
32
|
+
### Backend
|
|
33
|
+
|
|
34
|
+
| Layer | Technologies |
|
|
35
|
+
| ------------- | ----------------------------------------- |
|
|
36
|
+
| Languages | Python 3.12, Node.js 20, Go 1.22 |
|
|
37
|
+
| Frameworks | FastAPI, Express.js, Gin |
|
|
38
|
+
| Databases | PostgreSQL 16, Redis 7, Elasticsearch 8.x |
|
|
39
|
+
| Message Queue | Apache Kafka 3.7 |
|
|
40
|
+
| ML/AI | PyTorch, vLLM, LangChain |
|
|
41
|
+
|
|
42
|
+
### Frontend
|
|
43
|
+
|
|
44
|
+
| Layer | Technologies |
|
|
45
|
+
| --------- | ---------------------------- |
|
|
46
|
+
| Framework | React 18 + TypeScript 5 |
|
|
47
|
+
| Routing | Remix (SSR) |
|
|
48
|
+
| Styling | Tailwind CSS + shadcn/ui |
|
|
49
|
+
| State | Zustand + React Query |
|
|
50
|
+
| Mobile | React Native (iOS & Android) |
|
|
51
|
+
|
|
52
|
+
### Infrastructure
|
|
53
|
+
|
|
54
|
+
| Layer | Technologies |
|
|
55
|
+
| ----------------- | ----------------------------------- |
|
|
56
|
+
| Container runtime | Docker + Kubernetes (EKS) |
|
|
57
|
+
| CI/CD | GitHub Actions + ArgoCD |
|
|
58
|
+
| Monitoring | Prometheus, Grafana, Sentry |
|
|
59
|
+
| CDN | CloudFront + edge caching |
|
|
60
|
+
| DNS | Route 53 with latency-based routing |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## AI Integration
|
|
65
|
+
|
|
66
|
+
### Multi-model approach
|
|
67
|
+
|
|
68
|
+
Rather than being locked into a single AI provider, Yantra maintains integrations with multiple model providers:
|
|
69
|
+
|
|
70
|
+
- **OpenAI** (GPT-4o, text-embedding-3-large)
|
|
71
|
+
- **Anthropic** (Claude 3.5 Sonnet, Claude 3 Haiku)
|
|
72
|
+
- **Open-source** (Llama 3, Mistral) for on-premise deployments
|
|
73
|
+
|
|
74
|
+
The **Intelligent Router** selects the best model for each request based on task type, latency requirements, and cost constraints.
|
|
75
|
+
|
|
76
|
+
### RAG (Retrieval-Augmented Generation)
|
|
77
|
+
|
|
78
|
+
Yantra's core AI workflow follows the RAG pattern:
|
|
79
|
+
|
|
80
|
+
1. **Retrieve** relevant documents from the vector index based on the user's query.
|
|
81
|
+
2. **Augment** the prompt with retrieved context, conversation history, and system instructions.
|
|
82
|
+
3. **Generate** a grounded response that cites specific sources.
|
|
83
|
+
|
|
84
|
+
This approach ensures responses are factually anchored to your data rather than relying solely on the model's training data.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Security Architecture
|
|
89
|
+
|
|
90
|
+
### Defense in depth
|
|
91
|
+
|
|
92
|
+
| Layer | Measures |
|
|
93
|
+
| ----------- | ---------------------------------------------------------- |
|
|
94
|
+
| Network | VPC isolation, WAF, DDoS protection, private subnets |
|
|
95
|
+
| Application | Input validation, CSRF protection, Content Security Policy |
|
|
96
|
+
| Data | AES-256 encryption at rest, TLS 1.3 in transit |
|
|
97
|
+
| Access | RBAC, MFA, API key rotation, session management |
|
|
98
|
+
| Audit | Immutable audit logs, real-time anomaly detection |
|
|
99
|
+
|
|
100
|
+
### Compliance
|
|
101
|
+
|
|
102
|
+
Yantra maintains the following certifications and compliance standards:
|
|
103
|
+
|
|
104
|
+
- **SOC 2 Type II** — Independently audited annually
|
|
105
|
+
- **GDPR** — Full compliance with EU data protection regulations
|
|
106
|
+
- **ISO 27001** — Information security management certification
|
|
107
|
+
- **HIPAA** — Available for healthcare customers on Enterprise plans
|