mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-13 03:08:40 -04:00
8fd830374b
# Description of Changes Following discussions about having our Inkeep's API key being public, I added a comment to all the places where we use it saying that this is OK and a link to the documentation. As per Inkeep's documentation: > When you embed your AI assistant in websites where the user is not authenticated, like in your public docs, help center, or marketing site, the web browser is considered a "public client". Since many of these clients often don't have a backend, the most practical way to use the AI assistant is for UI components to talk directly to the Inkeep service. While it is up to your company's own policies and best practices, in these scenarios, the Inkeep API key is generally ok to be included in the source code of your web page that is exposed in the browser. This is similar to how [Algolia's search service](https://support.algolia.com/hc/en-us/articles/18966776061329-Can-the-search-API-key-be-public) or [Sentry's error logging](https://forum.sentry.io/t/how-does-sentry-prevent-spammers/8188) works. https://docs.inkeep.com/cloud/ui-components/public-api-keys#public-clients # API and ABI breaking changes None # Expected complexity level and risk 1 # Testing Ran the docs locally to ensure that the comment isn't visible on the markdown pages
206 lines
5.1 KiB
TypeScript
206 lines
5.1 KiB
TypeScript
import type { Config } from '@docusaurus/types';
|
|
import type * as Preset from '@docusaurus/preset-classic';
|
|
import rehypeShiki, { RehypeShikiOptions } from '@shikijs/rehype';
|
|
import bash from 'shiki/langs/bash.mjs';
|
|
import c from 'shiki/langs/c.mjs';
|
|
import csharp from 'shiki/langs/csharp.mjs';
|
|
import fsharp from 'shiki/langs/fsharp.mjs';
|
|
import json from 'shiki/langs/json.mjs';
|
|
import markdown from 'shiki/langs/markdown.mjs';
|
|
import protobuf from 'shiki/langs/proto.mjs';
|
|
import python from 'shiki/langs/python.mjs';
|
|
import rust from 'shiki/langs/rust.mjs';
|
|
import sql from 'shiki/langs/sql.mjs';
|
|
import toml from 'shiki/langs/toml.mjs';
|
|
import typescript from 'shiki/langs/typescript.mjs';
|
|
import tsx from 'shiki/langs/tsx.mjs';
|
|
import css from 'shiki/langs/css.mjs';
|
|
import nginx from 'shiki/langs/nginx.mjs';
|
|
import systemd from 'shiki/langs/systemd.mjs';
|
|
import ogTheme from 'shiki/themes/dracula.mjs';
|
|
import cpp from 'shiki/langs/cpp.mjs';
|
|
import { InkeepConfig } from '@inkeep/cxkit-docusaurus';
|
|
|
|
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
|
|
|
const shikiTheme = {
|
|
...ogTheme,
|
|
name: 'spacetime-dark',
|
|
};
|
|
shikiTheme.colors!['editor.background'] =
|
|
'var(--clockworklabs-code-background-color)';
|
|
|
|
const inkeepConfig: Partial<InkeepConfig> = {
|
|
baseSettings: {
|
|
// This API key is public, it's okay to have it in client code, https://docs.inkeep.com/cloud/ui-components/public-api-keys#public-clients
|
|
apiKey: '13504c49fb56b7c09a5ea0bcd68c2b55857661be4d6d311b',
|
|
organizationDisplayName: 'SpacetimeDB',
|
|
primaryBrandColor: '#4cf490',
|
|
colorMode: {
|
|
forcedColorMode: 'dark',
|
|
},
|
|
},
|
|
};
|
|
|
|
const config: Config = {
|
|
title: 'SpacetimeDB docs',
|
|
tagline: 'SpacetimeDB',
|
|
favicon: 'https://spacetimedb.com/favicon-32x32.png',
|
|
|
|
url: 'https://spacetimedb.com',
|
|
baseUrl: '/docs/',
|
|
|
|
onBrokenLinks: 'throw',
|
|
onBrokenAnchors: 'throw',
|
|
markdown: {
|
|
hooks: {
|
|
onBrokenMarkdownImages: 'throw',
|
|
onBrokenMarkdownLinks: 'throw',
|
|
},
|
|
},
|
|
|
|
i18n: {
|
|
defaultLocale: 'en',
|
|
locales: ['en'],
|
|
},
|
|
|
|
clientModules: [require.resolve('./src/client-modules/fonts')],
|
|
|
|
headTags: [
|
|
{
|
|
tagName: 'link',
|
|
attributes: {
|
|
rel: 'preload',
|
|
as: 'font',
|
|
type: 'font/woff2',
|
|
href: '/docs/fonts/inter-latin-wght-normal.woff2',
|
|
crossorigin: 'anonymous',
|
|
},
|
|
},
|
|
{
|
|
tagName: 'link',
|
|
attributes: {
|
|
rel: 'preload',
|
|
as: 'font',
|
|
type: 'font/woff2',
|
|
href: '/docs/fonts/source-code-pro-latin-wght-normal.woff2',
|
|
crossorigin: 'anonymous',
|
|
},
|
|
},
|
|
],
|
|
|
|
presets: [
|
|
[
|
|
'classic',
|
|
{
|
|
docs: {
|
|
editUrl:
|
|
'https://github.com/clockworklabs/SpacetimeDB/edit/master/docs/',
|
|
routeBasePath: '/',
|
|
sidebarPath: './sidebars.ts',
|
|
sidebarCollapsed: false,
|
|
beforeDefaultRehypePlugins: [
|
|
[
|
|
rehypeShiki,
|
|
{
|
|
theme: shikiTheme,
|
|
langs: [
|
|
sql,
|
|
rust,
|
|
csharp,
|
|
markdown,
|
|
typescript,
|
|
bash,
|
|
json,
|
|
toml,
|
|
python,
|
|
c,
|
|
cpp,
|
|
protobuf,
|
|
fsharp,
|
|
systemd,
|
|
tsx,
|
|
css,
|
|
nginx,
|
|
],
|
|
} satisfies RehypeShikiOptions,
|
|
],
|
|
],
|
|
},
|
|
blog: false,
|
|
theme: {
|
|
customCss: './src/css/custom.css',
|
|
},
|
|
} satisfies Preset.Options,
|
|
],
|
|
],
|
|
|
|
themeConfig: {
|
|
navbar: {
|
|
logo: {
|
|
alt: 'SpacetimeDB Logo',
|
|
src: 'https://spacetimedb.com/images/brand.png',
|
|
href: 'https://spacetimedb.com',
|
|
target: '_self',
|
|
},
|
|
hideOnScroll: false,
|
|
items: [
|
|
{ type: 'search', position: 'left' },
|
|
{
|
|
href: 'https://spacetimedb.com/install',
|
|
label: 'Install',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://spacetimedb.com/pricing',
|
|
label: 'Pricing',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://spacetimedb.com/maincloud',
|
|
label: 'Maincloud',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://spacetimedb.com/blog',
|
|
label: 'Blog',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://spacetimedb.com/community',
|
|
label: 'Community',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://spacetimedb.com/login',
|
|
label: 'Login',
|
|
position: 'right',
|
|
className: 'navbar__button',
|
|
},
|
|
],
|
|
},
|
|
footer: {},
|
|
prism: {},
|
|
colorMode: {
|
|
disableSwitch: true,
|
|
defaultMode: 'light',
|
|
},
|
|
} satisfies Preset.ThemeConfig,
|
|
|
|
plugins: [
|
|
[
|
|
'@inkeep/cxkit-docusaurus',
|
|
{
|
|
SearchBar: {
|
|
...inkeepConfig,
|
|
},
|
|
ChatButton: {
|
|
...inkeepConfig,
|
|
},
|
|
},
|
|
],
|
|
],
|
|
};
|
|
|
|
export default config;
|