rearrange

This commit is contained in:
miloschwartz 2025-04-27 22:55:08 -04:00
parent 3057192efe
commit 3221034c95
No known key found for this signature in database
8 changed files with 109 additions and 82 deletions

View file

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

View file

@ -1,4 +1,4 @@
# Auto Provision (Professional) # Auto Provision
:::note :::note

View file

@ -1,4 +1,4 @@
# Integration API (Professional) # Integration API
:::note :::note
@ -22,6 +22,10 @@ Organization API keys can be created by organization admins from the Organizatio
When you create or edit an API key, you can select the permissions that the API key will have. This allows you to create API keys with only the permissions that you need. When you create or edit an API key, you can select the permissions that the API key will have. This allows you to create API keys with only the permissions that you need.
## Swagger Docs
OpenAPI documentation is served via Swagger UI. You can access the documentation at `https://api.example.com/v1/docs`.
## Configure Integration API ## Configure Integration API
The below example shows how to expose the Integration API. It will be accessible at `https://api.example.com/v1`. The below example shows how to expose the Integration API. It will be accessible at `https://api.example.com/v1`.
@ -69,7 +73,3 @@ http:
servers: servers:
- url: "http://pangolin:3003" # Integration API - url: "http://pangolin:3003" # Integration API
``` ```
## Swagger Docs
OpenAPI documentation is served via Swagger UI. You can access the documentation at `https://api.example.com/v1/docs`.

View file

@ -50,17 +50,17 @@ const config: Config = {
blog: { blog: {
showReadingTime: true, showReadingTime: true,
feedOptions: { feedOptions: {
type: ['rss', 'atom'], type: ["rss", "atom"],
xslt: true, xslt: true
}, },
// Please change this to your repo. // Please change this to your repo.
// Remove this to remove the "edit this page" links. // Remove this to remove the "edit this page" links.
// editUrl: // editUrl:
// 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', // 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
// Useful options to enforce blogging best practices // Useful options to enforce blogging best practices
onInlineTags: 'warn', onInlineTags: "warn",
onInlineAuthors: 'warn', onInlineAuthors: "warn",
onUntruncatedBlogPosts: 'warn', onUntruncatedBlogPosts: "warn"
}, },
theme: { theme: {
customCss: "./src/css/custom.css" customCss: "./src/css/custom.css"
@ -102,9 +102,9 @@ const config: Config = {
type: "docSidebar", type: "docSidebar",
sidebarId: "tutorialSidebar", sidebarId: "tutorialSidebar",
position: "left", position: "left",
label: "Docs", label: "Docs"
}, },
{to: '/pricing', label: 'Pricing', position: 'left'}, { to: "/pricing", label: "Pricing", position: "left" },
{ {
href: "https://fossorial.io", href: "https://fossorial.io",
label: "fossorial.io", label: "fossorial.io",
@ -123,9 +123,9 @@ const config: Config = {
}, },
{ {
href: "https://support.fossorial.io", href: "https://support.fossorial.io",
label: "Support Portal (Professional License)", label: "Support Portal",
position: "left" position: "left"
}, }
] ]
}, },
// footer: { // footer: {
@ -198,18 +198,20 @@ const config: Config = {
docsPluginId: "classic", // configured for preset-classic docsPluginId: "classic", // configured for preset-classic
config: { config: {
petstore: { petstore: {
hideSendButton: true,
specPath: "./openapi.yml", specPath: "./openapi.yml",
outputDir: "docs/03-Pangolin/07-API/02-Routes", outputDir: "docs/03-Pangolin/07-API/02-Routes",
sidebarOptions: { sidebarOptions: {
groupPathsBy: "tag", groupPathsBy: "tag",
categoryLinkSource: "tag", categoryLinkSource: "tag",
sidebarCollapsible: true
} }
} satisfies OpenApiPlugin.Options } satisfies OpenApiPlugin.Options
} }
} }
] ]
], ],
themes: ["docusaurus-theme-openapi-docs"], // export theme components themes: ["docusaurus-theme-openapi-docs"] // export theme components
}; };
export default config; export default config;

View file

@ -3,7 +3,7 @@ import { useEffect } from "react";
export default function Home(): JSX.Element { export default function Home(): JSX.Element {
useEffect(() => { useEffect(() => {
// redirect to /overview // redirect to /overview
window.location.href = "/overview"; window.location.href = "/Getting%20Started/overview";
}); });
return <></>; return <></>;

View file

@ -94,6 +94,9 @@ const PricingComponent = () => {
<a href="/supporter-program">Check out the Supporter Program</a> <a href="/supporter-program">Check out the Supporter Program</a>
</li> </li>
</ul> </ul>
<div style={styles.customPricing}>Free</div>
<button <button
style={styles.buttonSecondary} style={styles.buttonSecondary}
onClick={() => onClick={() =>
@ -135,7 +138,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Ticketed support Ticket based support
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -149,7 +152,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Auto Provision IDP Users Auto provision IdP users
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -163,7 +166,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Robust integration APIs for automation Robust integration API for automation
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -177,7 +180,21 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Fossorial Commercial License Future licensed feature access
</li>
<li style={styles.featureItem}>
<svg
style={styles.checkIcon}
fill="currentColor"
viewBox="0 0 20 20"
>
<path
fillRule="evenodd"
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
clipRule="evenodd"
/>
</svg>
<a href="/license.html">Fossorial Commercial License</a>
</li> </li>
</ul> </ul>
@ -249,7 +266,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Tailored Agreements Tailored agreements
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -263,7 +280,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Dedicated Support (Meetings & Calls) Dedicated support (meetings & calls)
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -277,7 +294,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Custom Features Custom features
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -291,7 +308,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Multi-region & HA Deployments Multi-region & HA deployments
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -305,7 +322,7 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Custom Branding (white-labeling) Custom branding (white-labeling)
</li> </li>
<li style={styles.featureItem}> <li style={styles.featureItem}>
<svg <svg
@ -319,12 +336,12 @@ const PricingComponent = () => {
clipRule="evenodd" clipRule="evenodd"
/> />
</svg> </svg>
Deployment References & Assistance Deployment references & assistance
</li> </li>
</ul> </ul>
<div style={styles.customPricing}> <div style={styles.customPricing}>
Custom pricing <span style={styles.pricePeriod}>(1k+/month)</span> Custom pricing <span style={styles.pricePeriod}>($1k+/month)</span>
</div> </div>
<a <a
@ -336,7 +353,7 @@ const PricingComponent = () => {
textAlign: "center" textAlign: "center"
}} }}
> >
Schedule a Meet with Us Schedule a Meeting with Us
</a> </a>
</div> </div>
</div> </div>
@ -391,8 +408,14 @@ const PricingComponent = () => {
Within 48 hours of your purchase you should receive an email invite Within 48 hours of your purchase you should receive an email invite
to our support portal where you can interact with us. to our support portal where you can interact with us.
</p> </p>
<p style={styles.textMuted}>
You can then create support tickets in the{" "}
<a href="https://support.fossorial.io/">support portal</a>.
</p>
<h4>What is the difference between this and the Supporter Program?</h4> <h4>
What is the difference between this and the Supporter Program?
</h4>
<p style={styles.textMuted}> <p style={styles.textMuted}>
The Supporter Program is a way to support the project and remove the The Supporter Program is a way to support the project and remove the
support marks. It is a one time donation. No features are unlocked. support marks. It is a one time donation. No features are unlocked.
@ -419,93 +442,91 @@ const PricingComponent = () => {
const styles = { const styles = {
container: { container: {
display: "flex", display: "flex",
flexDirection: "column", flexDirection: "column" as const,
alignItems: "center", alignItems: "center",
padding: "24px", padding: "24px",
backgroundColor: "var(--ifm-background-color)", backgroundColor: "var(--ifm-background-color)",
minHeight: "100vh", minHeight: "100vh",
fontFamily: "system-ui, -apple-system, sans-serif" fontFamily: "var(--ifm-font-family-base)"
}, },
heading: { heading: {
fontSize: "30px", fontSize: "30px",
fontWeight: "bold", fontWeight: "bold",
marginBottom: "48px", marginBottom: "48px",
color: "#111827" color: "var(--ifm-font-color-base)"
}, },
pricingContainer: { pricingContainer: {
display: "flex", display: "flex",
flexDirection: "row", flexDirection: "row" as const,
justifyContent: "center", justifyContent: "center",
gap: "24px", gap: "24px",
width: "100%", width: "100%",
padding: "24px", padding: "24px",
flexWrap: "wrap" flexWrap: "wrap" as const
}, },
card: { card: {
backgroundColor: "var(--ifm-card-background-color, white)", backgroundColor: "var(--ifm-background-color)",
borderRadius: "8px", borderRadius: "8px",
boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1)", boxShadow: "var(--ifm-global-shadow-lw)",
padding: "24px", padding: "24px",
border: "1px solid var(--ifm-color-emphasis-300, #e5e7eb)", border: "1px solid var(--ifm-color-emphasis-300)",
position: "relative", position: "relative" as const,
overflow: "hidden", overflow: "hidden" as const,
width: "300px", width: "300px",
flex: "1 1 300px", flex: "1 1 300px",
maxWidth: "400px", maxWidth: "400px",
minHeight: "500px", minHeight: "500px",
display: "flex", display: "flex",
flexDirection: "column" flexDirection: "column" as const
}, },
// card that spans the entire width of the container with the same styles as the other cards and spacing on the sides
cardLarge: { cardLarge: {
backgroundColor: "var(--ifm-card-background-color, white)", backgroundColor: "var(--ifm-background-color)",
borderRadius: "8px", borderRadius: "8px",
boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1)", boxShadow: "var(--ifm-global-shadow-lw)",
padding: "24px", padding: "24px",
border: "1px solid var(--ifm-color-emphasis-300, #e5e7eb)", border: "1px solid var(--ifm-color-emphasis-300)",
position: "relative", position: "relative" as const,
overflow: "hidden", overflow: "hidden" as const,
width: "100%", width: "100%",
flex: "1 1 100%", flex: "1 1 100%",
maxWidth: "1250px", maxWidth: "1250px",
minHeight: "500px", minHeight: "500px",
display: "flex", display: "flex",
flexDirection: "column", flexDirection: "column" as const,
// margin: "0 24px",
marginBottom: "24px", marginBottom: "24px",
zIndex: "1" zIndex: "1"
}, },
highlightedCard: { highlightedCard: {
backgroundColor: "var(--ifm-card-background-color, white)", backgroundColor: "var(--ifm-background-color)",
borderRadius: "8px", borderRadius: "8px",
boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1)", boxShadow: "var(--ifm-global-shadow-lw)",
padding: "24px", padding: "24px",
border: "1px solid var(--ifm-color-primary, hsl(24.6, 95%, 53.1%))", border: "1px solid var(--ifm-color-primary)",
position: "relative", position: "relative" as const,
overflow: "hidden", overflow: "hidden" as const,
width: "300px", width: "300px",
flex: "1 1 300px", flex: "1 1 300px",
maxWidth: "400px", maxWidth: "400px",
minHeight: "500px", minHeight: "500px",
display: "flex", display: "flex",
flexDirection: "column", flexDirection: "column" as const,
zIndex: "1" zIndex: "1"
}, },
freeTag: { freeTag: {
position: "absolute", position: "absolute" as const,
top: "0", top: "0",
right: "0", right: "0",
backgroundColor: "var(--ifm-color-emphasis-200, #e5e7eb)", backgroundColor: "var(--ifm-color-emphasis-200)",
padding: "4px 12px", padding: "4px 12px",
fontSize: "12px", fontSize: "12px",
fontWeight: "600" fontWeight: "600"
}, },
popularTag: { popularTag: {
position: "absolute", position: "absolute" as const,
top: "0", top: "0",
right: "0", right: "0",
backgroundColor: "var(--ifm-color-primary, hsl(24.6, 95%, 53.1%))", backgroundColor: "var(--ifm-color-primary)",
color: "var(--ifm-color-white, white)", color: "var(--ifm-color-white)",
padding: "4px 12px", padding: "4px 12px",
fontSize: "12px", fontSize: "12px",
fontWeight: "600" fontWeight: "600"
@ -513,8 +534,8 @@ const styles = {
cardTitle: { cardTitle: {
fontSize: "20px", fontSize: "20px",
fontWeight: "bold", fontWeight: "bold",
marginBottom: "16px" marginBottom: "16px",
// color: 'var(--ifm-heading-color, #111827)' color: "var(--ifm-font-color-base)"
}, },
featureList: { featureList: {
listStyleType: "none", listStyleType: "none",
@ -526,19 +547,20 @@ const styles = {
display: "flex", display: "flex",
alignItems: "center", alignItems: "center",
marginBottom: "8px", marginBottom: "8px",
fontSize: "14px" fontSize: "14px",
color: "var(--ifm-font-color-base)"
}, },
checkIcon: { checkIcon: {
width: "16px", width: "16px",
height: "16px", height: "16px",
marginRight: "8px", marginRight: "8px",
color: "#10b981" color: "var(--ifm-color-primary)"
}, },
buttonSecondary: { buttonSecondary: {
width: "100%", width: "100%",
padding: "8px 16px", padding: "8px 16px",
backgroundColor: "var(--ifm-color-emphasis-200, #e5e7eb)", backgroundColor: "var(--ifm-color-emphasis-200)",
color: "var(--ifm-color-emphasis-900, #111827)", color: "var(--ifm-font-color-base)",
border: "none", border: "none",
borderRadius: "6px", borderRadius: "6px",
fontWeight: "500", fontWeight: "500",
@ -550,8 +572,8 @@ const styles = {
buttonPrimary: { buttonPrimary: {
width: "100%", width: "100%",
padding: "8px 16px", padding: "8px 16px",
backgroundColor: "var(--ifm-color-primary, hsl(24.6, 95%, 53.1%))", backgroundColor: "var(--ifm-color-primary)",
color: "var(--ifm-color-white, white)", color: "var(--ifm-color-white)",
border: "none", border: "none",
borderRadius: "6px", borderRadius: "6px",
fontWeight: "500", fontWeight: "500",
@ -567,7 +589,8 @@ const styles = {
display: "block", display: "block",
marginBottom: "8px", marginBottom: "8px",
fontWeight: "500", fontWeight: "500",
fontSize: "14px" fontSize: "14px",
color: "var(--ifm-font-color-base)"
}, },
counterControls: { counterControls: {
display: "flex", display: "flex",
@ -580,7 +603,7 @@ const styles = {
display: "flex", display: "flex",
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
backgroundColor: "var(--ifm-color-emphasis-200, #f3f4f6)", backgroundColor: "var(--ifm-color-emphasis-200)",
border: "none", border: "none",
borderRadius: "6px", borderRadius: "6px",
cursor: "pointer" cursor: "pointer"
@ -589,35 +612,37 @@ const styles = {
width: "48px", width: "48px",
height: "32px", height: "32px",
margin: "0 8px", margin: "0 8px",
textAlign: "center", textAlign: "center" as const,
border: "1px solid #d1d5db", border: "1px solid var(--ifm-color-emphasis-300)",
borderRadius: "6px" borderRadius: "6px",
backgroundColor: "var(--ifm-background-color)",
color: "var(--ifm-font-color-base)"
}, },
priceDisplay: { priceDisplay: {
fontSize: "24px", fontSize: "24px",
fontWeight: "bold", fontWeight: "bold",
marginBottom: "16px" marginBottom: "16px",
// color: 'var(--ifm-heading-color, #111827)' color: "var(--ifm-font-color-base)"
}, },
pricePeriod: { pricePeriod: {
fontSize: "14px", fontSize: "14px",
fontWeight: "normal", fontWeight: "normal",
color: "var(--ifm-color-emphasis-600, #6b7280)", color: "var(--ifm-color-emphasis-600)",
marginLeft: "4px" marginLeft: "4px"
}, },
priceBreakdown: { priceBreakdown: {
fontSize: "14px", fontSize: "14px",
color: "var(--ifm-color-emphasis-600, #6b7280)", color: "var(--ifm-color-emphasis-600)",
marginBottom: "16px" marginBottom: "16px"
}, },
customPricing: { customPricing: {
fontSize: "20px", fontSize: "20px",
fontWeight: "bold", fontWeight: "bold",
marginBottom: "16px" marginBottom: "16px",
// color: 'var(--ifm-heading-color, #111827)' color: "var(--ifm-font-color-base)"
}, },
textMuted: { textMuted: {
color: "var(--ifm-color-emphasis-600, #6b7280)", color: "var(--ifm-color-emphasis-600)",
fontSize: "14px", fontSize: "14px",
marginBottom: "16px" marginBottom: "16px"
} }