@knowcode/doc-builder 1.9.29 → 1.9.31
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/assets/js/main.js +7 -0
- package/lib/core-builder.js +18 -1
- package/package.json +12 -2
- package/.claude/settings.local.json +0 -56
- package/CACHE-BUSTING-GUIDE.md +0 -82
- package/CLAUDE.md +0 -86
- package/CONTRIBUTING.md +0 -148
- package/GITHUB_SETUP.md +0 -203
- package/RELEASE-NOTES-1.7.5.md +0 -64
- package/Screenshot 2025-07-22 at 19.51.21.png +0 -0
- package/Screenshot 2025-07-26 at 17.06.49.png +0 -0
- package/add-user-clive.sql +0 -35
- package/add-user-lindsay-fixed.sql +0 -85
- package/add-user-lindsay.sql +0 -68
- package/add-user-pmorgan.sql +0 -35
- package/add-user-robbie.sql +0 -35
- package/add-wru-users.sql +0 -105
- package/debug-login.sql +0 -30
- package/doc-builder.config.js +0 -126
- package/doc-builder.config.js.backup.1753793768283 +0 -47
- package/doc-builder.config.js.backup.1753803964423 +0 -114
- package/doc-builder.config.js.backup.1753945707032 +0 -115
- package/doc-builder.config.js.backup.1754059241330 +0 -115
- package/doc-builder.config.js.backup.1754119567787 +0 -123
- package/doc-builder.config.js.backup.1754120048862 +0 -124
- package/doc-builder.config.js.backup.1754120529913 +0 -124
- package/doc-builder.config.js.backup.1754218469785 +0 -124
- package/doc-builder.config.js.backup.1754384764054 +0 -124
- package/doc-builder.config.js.backup.1754567425847 +0 -124
- package/doc-builder.config.js.backup.1754568137859 +0 -126
- package/doc-builder.config.js.backup.1754569388252 +0 -126
- package/doc-builder.config.js.backup.1754576694123 +0 -126
- package/doc-builder.config.js.backup.1755031374829 +0 -126
- package/doc-builder.config.js.backup.1755034500990 +0 -126
- package/grant-access.sql +0 -15
- package/html/11.png +0 -0
- package/html/404.html +0 -115
- package/html/README.html +0 -522
- package/html/Screenshot 2025-08-12 at 21.35.07.png +0 -0
- package/html/about-doc-builder.html +0 -491
- package/html/auth.js +0 -157
- package/html/claude-workflow-guide.html +0 -525
- package/html/css/notion-style.css +0 -2502
- package/html/documentation-index.html +0 -471
- package/html/guides/authentication-default-change.html +0 -370
- package/html/guides/authentication-guide.html +0 -509
- package/html/guides/cache-control-anti-pattern.html +0 -361
- package/html/guides/claude-workflow-guide.html +0 -1074
- package/html/guides/configuration-guide.html +0 -472
- package/html/guides/document-standards.html +0 -518
- package/html/guides/documentation-standards.html +0 -694
- package/html/guides/html-embedding-guide.html +0 -461
- package/html/guides/image-modal-guide.html +0 -515
- package/html/guides/next-steps-walkthrough.html +0 -638
- package/html/guides/phosphor-icons-guide.html +0 -584
- package/html/guides/private-directory-authentication-troubleshooting.html +0 -555
- package/html/guides/private-directory-authentication.html +0 -541
- package/html/guides/public-site-deployment.html +0 -431
- package/html/guides/search-engine-verification-guide.html +0 -542
- package/html/guides/seo-guide.html +0 -661
- package/html/guides/seo-optimization-guide.html +0 -887
- package/html/guides/supabase-auth-implementation-plan.html +0 -543
- package/html/guides/supabase-auth-integration-plan.html +0 -671
- package/html/guides/supabase-auth-setup-guide.html +0 -498
- package/html/guides/supabase-authentication-complete-guide.html +0 -866
- package/html/guides/troubleshooting-guide.html +0 -633
- package/html/guides/vercel-deployment-auth-setup.html +0 -337
- package/html/guides/windows-setup-guide.html +0 -859
- package/html/image-modal-test.html +0 -318
- package/html/index.html +0 -522
- package/html/js/auth.js +0 -157
- package/html/js/main.js +0 -1747
- package/html/launch/README.html +0 -297
- package/html/launch/bubble-plugin-specification.html +0 -933
- package/html/launch/go-to-market-strategy.html +0 -663
- package/html/launch/launch-announcements.html +0 -593
- package/html/login.html +0 -102
- package/html/logout.html +0 -18
- package/html/private/cache-control-anti-pattern.html +0 -429
- package/html/private/launch/README.html +0 -371
- package/html/private/launch/auth-cleanup-summary.html +0 -361
- package/html/private/launch/bubble-plugin-specification.html +0 -1007
- package/html/private/launch/go-to-market-strategy.html +0 -737
- package/html/private/launch/launch-announcements.html +0 -667
- package/html/private/launch/vercel-deployment-auth-setup.html +0 -417
- package/html/private/next-steps-walkthrough.html +0 -679
- package/html/private/supabase-auth-implementation-completed.html +0 -454
- package/html/private/supabase-auth-implementation-plan.html +0 -594
- package/html/private/supabase-auth-integration-plan.html +0 -704
- package/html/private/supabase-auth-setup-guide.html +0 -555
- package/html/private/test-private-doc.html +0 -302
- package/html/private/user-management-tooling.html +0 -601
- package/html/prompts/Screenshot 2025-08-02 at 08.49.55.png +0 -0
- package/html/prompts/beautiful-documentation-design.html +0 -784
- package/html/prompts/markdown-document-standards.html +0 -422
- package/html/prompts/project-rename-strategy-sasha-publish.html +0 -530
- package/html/robots.txt +0 -9
- package/html/sitemap.xml +0 -357
- package/html/test-questions/how-does-it-work%3F.html +0 -294
- package/html/test-questions/step-1%3A%20getting-started.html +0 -289
- package/html/test-questions/what-is-the-purpose.html +0 -293
- package/html/test-status.html +0 -281
- package/html/vercel-cli-setup-guide.html +0 -495
- package/html/vercel-first-time-setup-guide.html +0 -454
- package/html/vercel.json +0 -29
- package/html-static/11.png +0 -0
- package/html-static/404.html +0 -115
- package/html-static/README.html +0 -599
- package/html-static/Screenshot 2025-08-12 at 21.35.07.png +0 -0
- package/html-static/about-doc-builder.html +0 -568
- package/html-static/css/notion-style.css +0 -2502
- package/html-static/documentation-index.html +0 -548
- package/html-static/guides/authentication-default-change.html +0 -447
- package/html-static/guides/authentication-guide.html +0 -586
- package/html-static/guides/claude-workflow-guide.html +0 -1151
- package/html-static/guides/configuration-guide.html +0 -549
- package/html-static/guides/documentation-standards.html +0 -771
- package/html-static/guides/html-embedding-guide.html +0 -538
- package/html-static/guides/image-modal-guide.html +0 -592
- package/html-static/guides/phosphor-icons-guide.html +0 -661
- package/html-static/guides/private-directory-authentication-troubleshooting.html +0 -632
- package/html-static/guides/private-directory-authentication.html +0 -618
- package/html-static/guides/public-site-deployment.html +0 -508
- package/html-static/guides/search-engine-verification-guide.html +0 -619
- package/html-static/guides/seo-guide.html +0 -738
- package/html-static/guides/seo-optimization-guide.html +0 -964
- package/html-static/guides/supabase-authentication-complete-guide.html +0 -943
- package/html-static/guides/troubleshooting-guide.html +0 -710
- package/html-static/guides/windows-setup-guide.html +0 -936
- package/html-static/image-modal-test.html +0 -395
- package/html-static/index.html +0 -599
- package/html-static/js/main.js +0 -1747
- package/html-static/prompts/Screenshot 2025-08-02 at 08.49.55.png +0 -0
- package/html-static/prompts/beautiful-documentation-design.html +0 -861
- package/html-static/prompts/markdown-document-standards.html +0 -499
- package/html-static/prompts/project-rename-strategy-sasha-publish.html +0 -607
- package/html-static/robots.txt +0 -5
- package/html-static/sitemap.xml +0 -195
- package/html-static/test-questions/how-does-it-work%3F.html +0 -371
- package/html-static/test-questions/step-1%3A%20getting-started.html +0 -366
- package/html-static/test-questions/what-is-the-purpose.html +0 -370
- package/html-static/vercel-cli-setup-guide.html +0 -572
- package/html-static/vercel-first-time-setup-guide.html +0 -531
- package/manage-users.sql +0 -191
- package/migrate-to-domain-auth.sql +0 -47
- package/package/CACHE-BUSTING-GUIDE.md +0 -82
- package/package/CHANGELOG.md +0 -902
- package/package/README.md +0 -248
- package/package/assets/css/notion-style.css +0 -2211
- package/package/assets/js/auth.js +0 -67
- package/package/assets/js/main.js +0 -1565
- package/package/cli.js +0 -764
- package/package/index.js +0 -38
- package/package/knowcode-doc-builder-1.3.15.tgz +0 -0
- package/package/lib/builder.js +0 -32
- package/package/lib/config.js +0 -278
- package/package/lib/core-builder.js +0 -957
- package/package/lib/deploy.js +0 -497
- package/package/lib/dev-server.js +0 -96
- package/package/package.json +0 -34
- package/package/scripts/npx-runner.js +0 -27
- package/package/scripts/setup.js +0 -56
- package/package/test-cache-bust.sh +0 -43
- package/public-config.js +0 -22
- package/public-html/404.html +0 -115
- package/public-html/README.html +0 -149
- package/public-html/css/notion-style.css +0 -2036
- package/public-html/index.html +0 -149
- package/public-html/js/auth.js +0 -67
- package/public-html/js/main.js +0 -1485
- package/quick-test-commands.md +0 -40
- package/recordings/Screenshot 2025-07-24 at 18.22.01.png +0 -0
- package/recordings/mh-ls-22jul.txt +0 -2305
- package/screenshot.png +0 -0
- package/scripts/Screenshot 2025-07-23 at 15.39.41.png +0 -0
- package/setup-database-v2.sql +0 -53
- package/setup-database.sql +0 -41
- package/test-auth-config.js +0 -17
- package/test-cache-bust.sh +0 -43
- package/test-docs/README.md +0 -39
- package/test-html/404.html +0 -115
- package/test-html/README.html +0 -172
- package/test-html/auth.js +0 -97
- package/test-html/css/notion-style.css +0 -2036
- package/test-html/index.html +0 -172
- package/test-html/js/auth.js +0 -97
- package/test-html/js/main.js +0 -1485
- package/test-html/login.html +0 -102
- package/test-html/logout.html +0 -18
- package/update-domain.sql +0 -9
- package/user-access-view.sql +0 -49
- package/user-management/README.md +0 -301
- package/user-management/add-users.sh +0 -776
- package/user-management/create-user.js +0 -65
- package/user-management/users.txt +0 -15
- package/view-all-users.sql +0 -40
- package/wru-auth-config.js +0 -17
|
@@ -1,704 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<meta name="description" content="Transform @knowcode/doc-builder from basic client-side authentication to a sophisticated, centralized authentication system powered by Supabase that enables:">
|
|
7
|
-
<title>Supabase Authentication Integration Plan for @k...</title>
|
|
8
|
-
|
|
9
|
-
<meta name="generator" content="@knowcode/doc-builder by Knowcode Ltd">
|
|
10
|
-
<meta name="author" content="Lindsay Smith">
|
|
11
|
-
<meta name="keywords" content="documentation, markdown, static site generator, vercel, notion-style, authentication, security">
|
|
12
|
-
<meta name="robots" content="index, follow">
|
|
13
|
-
<link rel="canonical" href="https://doc-builder-delta.vercel.app/private/supabase-auth-integration-plan.html">
|
|
14
|
-
|
|
15
|
-
<!-- Open Graph / Facebook -->
|
|
16
|
-
<meta property="og:type" content="article">
|
|
17
|
-
<meta property="og:url" content="https://doc-builder-delta.vercel.app/private/supabase-auth-integration-plan.html">
|
|
18
|
-
<meta property="og:title" content="Supabase Authentication Integration Plan for @k...">
|
|
19
|
-
<meta property="og:description" content="Transform @knowcode/doc-builder from basic client-side authentication to a sophisticated, centralized authentication system powered by Supabase that enables:">
|
|
20
|
-
<meta property="og:image" content="https://doc-builder-delta.vercel.app/og-default.png">
|
|
21
|
-
<meta property="og:site_name" content="@knowcode/doc-builder">
|
|
22
|
-
<meta property="og:locale" content="en_US">
|
|
23
|
-
|
|
24
|
-
<!-- Twitter Card -->
|
|
25
|
-
<meta name="twitter:card" content="summary_large_image">
|
|
26
|
-
<meta name="twitter:site" content="@planbbackups">
|
|
27
|
-
<meta name="twitter:creator" content="@planbbackups">
|
|
28
|
-
<meta name="twitter:title" content="Supabase Authentication Integration Plan for @k...">
|
|
29
|
-
<meta name="twitter:description" content="Transform @knowcode/doc-builder from basic client-side authentication to a sophisticated, centralized authentication system powered by Supabase that enables:">
|
|
30
|
-
<meta name="twitter:image" content="https://doc-builder-delta.vercel.app/og-default.png">
|
|
31
|
-
|
|
32
|
-
<!-- Custom Meta Tags -->
|
|
33
|
-
<meta name="google-site-verification" content="FtzcDTf5BQ9K5EfnGazQkgU2U4FiN3ITzM7gHwqUAqQ">
|
|
34
|
-
<meta name="msvalidate.01" content="B2D8C4C12C530D47AA962B24CAA09630">
|
|
35
|
-
|
|
36
|
-
<!-- Fonts -->
|
|
37
|
-
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
38
|
-
|
|
39
|
-
<!-- Icons -->
|
|
40
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
41
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@phosphor-icons/web@2.1.1/src/regular/style.css">
|
|
42
|
-
|
|
43
|
-
<!-- Mermaid -->
|
|
44
|
-
<script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
|
|
45
|
-
|
|
46
|
-
<!-- Styles -->
|
|
47
|
-
<link rel="stylesheet" href="/css/notion-style.css">
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
<!-- Hide content until auth check -->
|
|
53
|
-
<style>
|
|
54
|
-
body {
|
|
55
|
-
visibility: hidden;
|
|
56
|
-
opacity: 0;
|
|
57
|
-
transition: opacity 0.3s ease;
|
|
58
|
-
}
|
|
59
|
-
body.authenticated {
|
|
60
|
-
visibility: visible;
|
|
61
|
-
opacity: 1;
|
|
62
|
-
}
|
|
63
|
-
/* Show login/logout pages immediately */
|
|
64
|
-
body.auth-page {
|
|
65
|
-
visibility: visible;
|
|
66
|
-
opacity: 1;
|
|
67
|
-
}
|
|
68
|
-
/* Style auth button consistently */
|
|
69
|
-
.auth-btn {
|
|
70
|
-
background: none;
|
|
71
|
-
border: none;
|
|
72
|
-
color: var(--text-secondary);
|
|
73
|
-
cursor: pointer;
|
|
74
|
-
padding: 0.5rem;
|
|
75
|
-
border-radius: 0.5rem;
|
|
76
|
-
transition: all 0.2s;
|
|
77
|
-
font-size: 1.1rem;
|
|
78
|
-
}
|
|
79
|
-
.auth-btn:hover {
|
|
80
|
-
background: var(--bg-secondary);
|
|
81
|
-
color: var(--text-primary);
|
|
82
|
-
}
|
|
83
|
-
</style>
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
<!-- Favicon -->
|
|
87
|
-
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>✨</text></svg>">
|
|
88
|
-
|
|
89
|
-
<script type="application/ld+json">
|
|
90
|
-
{
|
|
91
|
-
"@context": "https://schema.org",
|
|
92
|
-
"@type": "TechArticle",
|
|
93
|
-
"headline": "Supabase Authentication Integration Plan for @knowcode/doc-builder",
|
|
94
|
-
"description": "Transform @knowcode/doc-builder from basic client-side authentication to a sophisticated, centralized authentication system powered by Supabase that enables:",
|
|
95
|
-
"author": {
|
|
96
|
-
"@type": "Person",
|
|
97
|
-
"name": "Lindsay Smith"
|
|
98
|
-
},
|
|
99
|
-
"publisher": {
|
|
100
|
-
"@type": "Organization",
|
|
101
|
-
"name": "Knowcode Ltd",
|
|
102
|
-
"url": "https://knowcode.tech"
|
|
103
|
-
},
|
|
104
|
-
"datePublished": "2025-08-12T21:35:01.184Z",
|
|
105
|
-
"dateModified": "2025-08-12T21:35:01.184Z",
|
|
106
|
-
"mainEntityOfPage": {
|
|
107
|
-
"@type": "WebPage",
|
|
108
|
-
"@id": "https://doc-builder-delta.vercel.app/private/supabase-auth-integration-plan.html"
|
|
109
|
-
},
|
|
110
|
-
"breadcrumb": {
|
|
111
|
-
"@type": "BreadcrumbList",
|
|
112
|
-
"itemListElement": [
|
|
113
|
-
{
|
|
114
|
-
"@type": "ListItem",
|
|
115
|
-
"position": 1,
|
|
116
|
-
"name": "@knowcode/doc-builder",
|
|
117
|
-
"item": "https://doc-builder-delta.vercel.app"
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"@type": "ListItem",
|
|
121
|
-
"position": 2,
|
|
122
|
-
"name": "Private",
|
|
123
|
-
"item": "https://doc-builder-delta.vercel.app/private/"
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"@type": "ListItem",
|
|
127
|
-
"position": 3,
|
|
128
|
-
"name": "Supabase Auth Integration Plan",
|
|
129
|
-
"item": "https://doc-builder-delta.vercel.app/private/supabase-auth-integration-plan.html"
|
|
130
|
-
}
|
|
131
|
-
]
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
</script>
|
|
135
|
-
</head>
|
|
136
|
-
<body>
|
|
137
|
-
|
|
138
|
-
<!-- Header -->
|
|
139
|
-
<header class="header">
|
|
140
|
-
<div class="header-content">
|
|
141
|
-
<a href="/index.html" class="logo">@knowcode/doc-builder</a>
|
|
142
|
-
|
|
143
|
-
<div class="header-actions">
|
|
144
|
-
<div class="deployment-info">
|
|
145
|
-
<span class="deployment-date" title="Built with doc-builder v1.9.28">Last updated: Aug 12, 2025, 09:35 PM UTC</span>
|
|
146
|
-
</div>
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
<a href="../../login.html" class="auth-btn" title="Login/Logout">
|
|
150
|
-
<i class="fas fa-sign-in-alt"></i>
|
|
151
|
-
</a>
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle theme">
|
|
155
|
-
<i class="fas fa-moon"></i>
|
|
156
|
-
</button>
|
|
157
|
-
|
|
158
|
-
<button id="menu-toggle" class="menu-toggle" aria-label="Toggle menu">
|
|
159
|
-
<i class="fas fa-bars"></i>
|
|
160
|
-
</button>
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
</header>
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
<!-- Breadcrumbs -->
|
|
169
|
-
<nav class="breadcrumbs " id="breadcrumbs" >
|
|
170
|
-
<!-- Breadcrumbs will be generated by JavaScript -->
|
|
171
|
-
</nav>
|
|
172
|
-
|
|
173
|
-
<!-- Main Content -->
|
|
174
|
-
<div class="main-wrapper">
|
|
175
|
-
<!-- Sidebar -->
|
|
176
|
-
<aside class="sidebar">
|
|
177
|
-
<div class="sidebar-header">
|
|
178
|
-
<div class="filter-box">
|
|
179
|
-
<input type="text" placeholder="Search menu..." class="filter-input" id="nav-filter">
|
|
180
|
-
<i class="fas fa-search filter-icon"></i>
|
|
181
|
-
</div>
|
|
182
|
-
</div>
|
|
183
|
-
<nav class="navigation">
|
|
184
|
-
|
|
185
|
-
<div class="nav-section" data-level="0">
|
|
186
|
-
<a class="nav-title toggle-all-nav expanded" href="#" id="nav-toggle-all" title="Collapse/Expand All">
|
|
187
|
-
<i class="ph ph-caret-down" id="toggle-all-icon"></i> Documentation
|
|
188
|
-
</a>
|
|
189
|
-
<div class="nav-content">
|
|
190
|
-
<a href="/README.html" class="nav-item" data-tooltip="@knowcode/doc-builder."><i class="ph ph-file-text"></i> Overview</a>
|
|
191
|
-
<a href="/about-doc-builder.html" class="nav-item" data-tooltip="About @knowcode/doc-builder."><i class="ph ph-check-circle" style="color: #059669;"></i> About Doc Builder</a>
|
|
192
|
-
<a href="/documentation-index.html" class="nav-item" data-tooltip="This directory contains additional documentation for the @knowcode/doc-builder project, organized by topic and purpose."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Documentation Index</a>
|
|
193
|
-
<a href="/image-modal-test.html" class="nav-item" data-tooltip="This document tests the new image modal functionality in doc-builder."><i class="ph ph-file-text"></i> Image Modal Test</a>
|
|
194
|
-
<a href="/vercel-cli-setup-guide.html" class="nav-item" data-tooltip="This guide provides comprehensive instructions for installing the Vercel CLI across different operating systems."><i class="ph ph-check-circle" style="color: #059669;"></i> Vercel Cli Setup Guide</a>
|
|
195
|
-
<a href="/vercel-first-time-setup-guide.html" class="nav-item" data-tooltip="This guide walks you through the Vercel deployment process when using ."><i class="ph ph-check-circle" style="color: #059669;"></i> Vercel First Time Setup Guide</a></div></div>
|
|
196
|
-
<div class="nav-section" data-level="1">
|
|
197
|
-
<a class="nav-title collapsible" href="#" data-target="nav-guides-1" >
|
|
198
|
-
<i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-book"></i> Guides
|
|
199
|
-
</a>
|
|
200
|
-
<div class="nav-content collapsed" id="nav-guides-1">
|
|
201
|
-
<a href="/guides/authentication-default-change.html" class="nav-item" data-tooltip="Starting from version 1.7.4, @knowcode/doc-builder now defaults to no authentication for all documentation sites."><i class="ph ph-file-text"></i> Authentication Default Change</a>
|
|
202
|
-
<a href="/guides/authentication-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder supports enterprise-grade authentication through Supabase - a secure, scalable authentication platform."><i class="ph ph-check-circle" style="color: #059669;"></i> Authentication Guide</a>
|
|
203
|
-
<a href="/guides/claude-workflow-guide.html" class="nav-item" data-tooltip="This guide demonstrates an efficient workflow for using Claude Code with a refined CLAUDE.md file to create high-quality documentation and deploy it..."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Claude Workflow Guide</a>
|
|
204
|
-
<a href="/guides/configuration-guide.html" class="nav-item" data-tooltip="This guide explains how @knowcode/doc-builder handles configuration files and settings."><i class="ph ph-check-circle" style="color: #059669;"></i> Configuration Guide</a>
|
|
205
|
-
<a href="/guides/documentation-standards.html" class="nav-item" data-tooltip="This document defines the documentation standards and conventions for the @knowcode/doc-builder project."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Documentation Standards</a>
|
|
206
|
-
<a href="/guides/html-embedding-guide.html" class="nav-item" data-tooltip="Starting from version 1.9.2, doc-builder treats HTML files ( and ) as attachments that are automatically copied to your output directory during the..."><i class="ph ph-check-circle" style="color: #059669;"></i> Html Embedding Guide</a>
|
|
207
|
-
<a href="/guides/image-modal-guide.html" class="nav-item" data-tooltip="When users click on any image in your generated documentation, it opens in a professional modal overlay with: Full-screen viewing experience Smooth..."><i class="ph ph-check-circle" style="color: #059669;"></i> Image Modal Guide</a>
|
|
208
|
-
<a href="/guides/phosphor-icons-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder automatically converts Unicode emojis in your markdown files to beautiful Phosphor icons in the generated HTML."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Phosphor Icons Guide</a>
|
|
209
|
-
<a href="/guides/private-directory-authentication.html" class="nav-item" data-tooltip="The @knowcode/doc-builder provides flexible authentication options to protect your documentation."><i class="ph ph-check-circle" style="color: #059669;"></i> Private Directory Authentication</a>
|
|
210
|
-
<a href="/guides/private-directory-authentication-troubleshooting.html" class="nav-item" data-tooltip="Private Directory Authentication Troubleshooting."><i class="ph ph-check-circle" style="color: #059669;"></i> Private Directory Authentication Troubleshooting</a>
|
|
211
|
-
<a href="/guides/public-site-deployment.html" class="nav-item" data-tooltip="The @knowcode/doc-builder now supports deploying public documentation sites without authentication."><i class="ph ph-check-circle" style="color: #059669;"></i> Public Site Deployment</a>
|
|
212
|
-
<a href="/guides/search-engine-verification-guide.html" class="nav-item" data-tooltip="Search engine verification provides access to powerful webmaster tools:."><i class="ph ph-check-circle" style="color: #059669;"></i> Search Engine Verification Guide</a>
|
|
213
|
-
<a href="/guides/seo-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder includes comprehensive SEO (Search Engine Optimization) features to help your documentation rank better in search results and..."><i class="ph ph-check-circle" style="color: #059669;"></i> Seo Guide</a>
|
|
214
|
-
<a href="/guides/seo-optimization-guide.html" class="nav-item" data-tooltip="Comprehensive guide to optimizing documentation for search engines. Learn SEO best practices, use built-in features, and improve your rankings."><i class="ph ph-check-circle" style="color: #059669;"></i> SEO Optimization Guide for @knowcode/doc-builder</a>
|
|
215
|
-
<a href="/guides/supabase-authentication-complete-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder includes built-in Supabase authentication that provides enterprise-grade security with zero configuration."><i class="ph ph-check-circle" style="color: #059669;"></i> Supabase Authentication Complete Guide</a>
|
|
216
|
-
<a href="/guides/troubleshooting-guide.html" class="nav-item" data-tooltip="This guide helps you resolve common issues when using @knowcode/doc-builder."><i class="ph ph-check-circle" style="color: #059669;"></i> Troubleshooting Guide</a>
|
|
217
|
-
<a href="/guides/windows-setup-guide.html" class="nav-item" data-tooltip="This guide helps Windows users set up the complete AI-powered documentation workflow using Claude Code, @knowcode/doc-builder, and Vercel."><i class="ph ph-check-circle" style="color: #059669;"></i> Windows Setup Guide</a></div></div>
|
|
218
|
-
<div class="nav-section private-nav" data-level="1">
|
|
219
|
-
<a class="nav-title collapsible expanded" href="#" data-target="nav-private-1" >
|
|
220
|
-
<i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-lock"></i> Private
|
|
221
|
-
</a>
|
|
222
|
-
<div class="nav-content" id="nav-private-1">
|
|
223
|
-
<a href="/private/cache-control-anti-pattern.html" class="nav-item" data-tooltip="Cache Control Anti-Pattern: Why Aggressive Cache-Busting is Bad for Documentation Sites."><i class="ph ph-check-circle" style="color: #059669;"></i> Cache Control Anti Pattern</a>
|
|
224
|
-
<a href="/private/next-steps-walkthrough.html" class="nav-item" data-tooltip="Now that we've implemented Supabase authentication, let's walk through testing the implementation and preparing for deployment."><i class="ph ph-check-circle" style="color: #059669;"></i> Next Steps Walkthrough</a>
|
|
225
|
-
<a href="/private/supabase-auth-implementation-completed.html" class="nav-item" data-tooltip="This document records the successful implementation of Supabase authentication in @knowcode/doc-builder v1.7.5+."><i class="ph ph-check-circle" style="color: #059669;"></i> Supabase Auth Implementation Completed</a>
|
|
226
|
-
<a href="/private/supabase-auth-implementation-plan.html" class="nav-item" data-tooltip="Supabase Auth Implementation Plan for @knowcode/doc-builder."><i class="ph ph-check-circle" style="color: #059669;"></i> Supabase Auth Implementation Plan</a>
|
|
227
|
-
<a href="/private/supabase-auth-integration-plan.html" class="nav-item active" data-tooltip="Supabase Authentication Integration Plan for @knowcode/doc-builder."><i class="ph ph-check-circle" style="color: #059669;"></i> Supabase Auth Integration Plan</a>
|
|
228
|
-
<a href="/private/supabase-auth-setup-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder supports enterprise-grade authentication through Supabase."><i class="ph ph-check-circle" style="color: #059669;"></i> Supabase Auth Setup Guide</a>
|
|
229
|
-
<a href="/private/test-private-doc.html" class="nav-item" data-tooltip="Test Private Document."><i class="ph ph-file-text"></i> Test Private Doc</a>
|
|
230
|
-
<a href="/private/user-management-tooling.html" class="nav-item" data-tooltip="The user management system is a set of tools designed to manage user access to Supabase-authenticated documentation sites built with."><i class="ph ph-check-circle" style="color: #059669;"></i> User Management Tooling</a></div></div>
|
|
231
|
-
<div class="nav-section private-nav" data-level="2">
|
|
232
|
-
<a class="nav-title collapsible" href="/private/launch/README.html" data-target="nav-private-launch-2" >
|
|
233
|
-
<i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-rocket-launch"></i> Launch
|
|
234
|
-
</a>
|
|
235
|
-
<div class="nav-content collapsed" id="nav-private-launch-2">
|
|
236
|
-
<a href="/private/launch/README.html" class="nav-item" data-tooltip="This directory contains all documentation related to the commercial launch of @knowcode/doc-builder, including go-to-market strategy, platform..."><i class="ph ph-check-circle" style="color: #059669;"></i> Launch Overview</a>
|
|
237
|
-
<a href="/private/launch/auth-cleanup-summary.html" class="nav-item" data-tooltip="All references to the old client-side authentication system have been removed from @knowcode/doc-builder."><i class="ph ph-check-circle" style="color: #059669;"></i> Auth Cleanup Summary</a>
|
|
238
|
-
<a href="/private/launch/bubble-plugin-specification.html" class="nav-item" data-tooltip="This document outlines the technical specification for creating a Bubble.io plugin that integrates @knowcode/doc-builder, enabling Bubble developers..."><i class="ph ph-x-circle" style="color: #dc2626;"></i> Bubble Plugin Specification</a>
|
|
239
|
-
<a href="/private/launch/go-to-market-strategy.html" class="nav-item" data-tooltip="Go-to-Market Strategy & Product Launch Plan."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Go To Market Strategy</a>
|
|
240
|
-
<a href="/private/launch/launch-announcements.html" class="nav-item" data-tooltip="This document contains ready-to-use announcement templates for launching @knowcode/doc-builder across various platforms and channels."><i class="ph ph-check-circle" style="color: #059669;"></i> Launch Announcements</a>
|
|
241
|
-
<a href="/private/launch/vercel-deployment-auth-setup.html" class="nav-item" data-tooltip="Vercel Deployment Authentication Setup Guide."><i class="ph ph-check-circle" style="color: #059669;"></i> Vercel Deployment Auth Setup</a></div></div>
|
|
242
|
-
<div class="nav-section" data-level="1">
|
|
243
|
-
<a class="nav-title collapsible" href="#" data-target="nav-prompts-1" >
|
|
244
|
-
<i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-chat-circle-dots"></i> Prompts
|
|
245
|
-
</a>
|
|
246
|
-
<div class="nav-content collapsed" id="nav-prompts-1">
|
|
247
|
-
<a href="/prompts/beautiful-documentation-design.html" class="nav-item" data-tooltip="🎨 Beautiful Documentation Design Guide."><i class="ph ph-check-circle" style="color: #059669;"></i> Beautiful Documentation Design</a>
|
|
248
|
-
<a href="/prompts/markdown-document-standards.html" class="nav-item" data-tooltip="Detailed introduction to the topic..."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Markdown Document Standards</a>
|
|
249
|
-
<a href="/prompts/project-rename-strategy-sasha-publish.html" class="nav-item" data-tooltip="This document outlines the comprehensive strategy for renaming the @knowcode/doc-builder project to "sasha-publish", including all package references,..."><i class="ph ph-x-circle" style="color: #dc2626;"></i> Project Rename Strategy Sasha Publish</a></div></div>
|
|
250
|
-
<div class="nav-section" data-level="1">
|
|
251
|
-
<a class="nav-title collapsible" href="#" data-target="nav-test-questions-1" >
|
|
252
|
-
<i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-folder"></i> Test Questions
|
|
253
|
-
</a>
|
|
254
|
-
<div class="nav-content collapsed" id="nav-test-questions-1">
|
|
255
|
-
<a href="/test-questions/how-does-it-work%3F.html" class="nav-item" data-tooltip="This is a test file to verify that question marks work properly in filenames."><i class="ph ph-file-text"></i> How Does It Work?</a>
|
|
256
|
-
<a href="/test-questions/step-1%3A%20getting-started.html" class="nav-item" data-tooltip="Step 1: Getting Started."><i class="ph ph-file-text"></i> Step 1: Getting Started</a>
|
|
257
|
-
<a href="/test-questions/what-is-the-purpose.html" class="nav-item" data-tooltip="Understanding the purpose of our documentation system"><i class="ph ph-file-text"></i> What Is The Purpose?</a></div></div>
|
|
258
|
-
</nav>
|
|
259
|
-
<div class="resize-handle"></div>
|
|
260
|
-
</aside>
|
|
261
|
-
|
|
262
|
-
<!-- Content Area -->
|
|
263
|
-
<main class="content">
|
|
264
|
-
<div class="content-inner">
|
|
265
|
-
<h1>Supabase Authentication Integration Plan for @knowcode/doc-builder</h1>
|
|
266
|
-
<h2>Vision</h2>
|
|
267
|
-
<p>Transform @knowcode/doc-builder from basic client-side authentication to a sophisticated, centralized authentication system powered by Supabase that enables:</p>
|
|
268
|
-
<ul>
|
|
269
|
-
<li><strong>Single Sign-On (SSO)</strong> across all deployed documentation sites</li>
|
|
270
|
-
<li><strong>Multi-tenant support</strong> with fine-grained access control</li>
|
|
271
|
-
<li><strong>Enterprise-grade security</strong> with JWT tokens and Row Level Security</li>
|
|
272
|
-
<li><strong>Scalable user management</strong> for teams of any size</li>
|
|
273
|
-
<li><strong>Audit logging</strong> for compliance and security</li>
|
|
274
|
-
</ul>
|
|
275
|
-
<h2>Architecture Overview</h2>
|
|
276
|
-
<div class="mermaid-wrapper">
|
|
277
|
-
<div class="mermaid">graph TB
|
|
278
|
-
subgraph "Supabase Cloud"
|
|
279
|
-
DB[(PostgreSQL)]
|
|
280
|
-
AUTH[Auth Service]
|
|
281
|
-
RLS[Row Level Security]
|
|
282
|
-
|
|
283
|
-
DB --> |Protected by| RLS
|
|
284
|
-
AUTH --> |Issues| JWT[JWT Tokens]
|
|
285
|
-
end
|
|
286
|
-
|
|
287
|
-
subgraph "Documentation Sites"
|
|
288
|
-
Site1[docs.company1.com]
|
|
289
|
-
Site2[docs.company2.com]
|
|
290
|
-
Site3[internal.docs.com]
|
|
291
|
-
end
|
|
292
|
-
|
|
293
|
-
subgraph "Client Browser"
|
|
294
|
-
SDK[Supabase JS SDK]
|
|
295
|
-
Cookie[Secure Cookie]
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
AUTH --> SDK
|
|
299
|
-
SDK --> Cookie
|
|
300
|
-
Cookie --> Site1
|
|
301
|
-
Cookie --> Site2
|
|
302
|
-
Cookie --> Site3
|
|
303
|
-
|
|
304
|
-
style AUTH fill:#4ade80
|
|
305
|
-
style DB fill:#60a5fa
|
|
306
|
-
style RLS fill:#f87171</div>
|
|
307
|
-
</div>
|
|
308
|
-
<h2>Database Schema</h2>
|
|
309
|
-
<h3>Simplified Domain-Based Design</h3>
|
|
310
|
-
<pre><code class="language-sql">-- Single table for user access control
|
|
311
|
-
CREATE TABLE docbuilder_access (
|
|
312
|
-
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
|
|
313
|
-
domain TEXT NOT NULL,
|
|
314
|
-
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
315
|
-
PRIMARY KEY (user_id, domain)
|
|
316
|
-
);
|
|
317
|
-
|
|
318
|
-
-- Create index for faster lookups
|
|
319
|
-
CREATE INDEX idx_docbuilder_access_domain ON docbuilder_access(domain);
|
|
320
|
-
|
|
321
|
-
-- Optional: Access logs for audit trail
|
|
322
|
-
CREATE TABLE access_logs (
|
|
323
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
324
|
-
user_id UUID REFERENCES auth.users(id),
|
|
325
|
-
domain TEXT NOT NULL,
|
|
326
|
-
action TEXT NOT NULL,
|
|
327
|
-
metadata JSONB DEFAULT '{}'::jsonb,
|
|
328
|
-
ip_address INET,
|
|
329
|
-
user_agent TEXT,
|
|
330
|
-
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
331
|
-
);
|
|
332
|
-
</code></pre>
|
|
333
|
-
<h3>Row Level Security Policies</h3>
|
|
334
|
-
<pre><code class="language-sql">-- Enable RLS on tables
|
|
335
|
-
ALTER TABLE docbuilder_access ENABLE ROW LEVEL SECURITY;
|
|
336
|
-
ALTER TABLE access_logs ENABLE ROW LEVEL SECURITY;
|
|
337
|
-
|
|
338
|
-
-- Users can only see their own access records
|
|
339
|
-
CREATE POLICY "Users see own access" ON docbuilder_access
|
|
340
|
-
FOR SELECT USING (user_id = auth.uid());
|
|
341
|
-
|
|
342
|
-
-- Access logs are append-only by authenticated users
|
|
343
|
-
CREATE POLICY "Insert access logs" ON access_logs
|
|
344
|
-
FOR INSERT WITH CHECK (user_id = auth.uid());
|
|
345
|
-
|
|
346
|
-
-- Users can view their own access logs
|
|
347
|
-
CREATE POLICY "View own access logs" ON access_logs
|
|
348
|
-
FOR SELECT USING (user_id = auth.uid());
|
|
349
|
-
</code></pre>
|
|
350
|
-
<h2>Implementation Architecture</h2>
|
|
351
|
-
<h3>1. Authentication Flow</h3>
|
|
352
|
-
<div class="mermaid-wrapper">
|
|
353
|
-
<div class="mermaid">sequenceDiagram
|
|
354
|
-
participant User
|
|
355
|
-
participant DocSite
|
|
356
|
-
participant SupabaseSDK
|
|
357
|
-
participant SupabaseAuth
|
|
358
|
-
participant Database
|
|
359
|
-
|
|
360
|
-
User->>DocSite: Visit protected page
|
|
361
|
-
DocSite->>SupabaseSDK: Check session
|
|
362
|
-
|
|
363
|
-
alt No valid session
|
|
364
|
-
SupabaseSDK-->>DocSite: No session
|
|
365
|
-
DocSite->>User: Redirect to login
|
|
366
|
-
User->>DocSite: Enter credentials
|
|
367
|
-
DocSite->>SupabaseAuth: signInWithPassword()
|
|
368
|
-
SupabaseAuth->>Database: Verify credentials
|
|
369
|
-
Database-->>SupabaseAuth: User data + access
|
|
370
|
-
SupabaseAuth-->>DocSite: JWT token
|
|
371
|
-
DocSite->>DocSite: Store in secure cookie
|
|
372
|
-
end
|
|
373
|
-
|
|
374
|
-
DocSite->>Database: Check site access
|
|
375
|
-
Database-->>DocSite: Access granted/denied
|
|
376
|
-
|
|
377
|
-
alt Access granted
|
|
378
|
-
DocSite->>User: Show documentation
|
|
379
|
-
DocSite->>Database: Log access
|
|
380
|
-
else Access denied
|
|
381
|
-
DocSite->>User: Show 403 error
|
|
382
|
-
end</div>
|
|
383
|
-
</div>
|
|
384
|
-
<h3>2. Client-Side Implementation</h3>
|
|
385
|
-
<pre><code class="language-javascript">// lib/supabase-auth.js
|
|
386
|
-
import { createClient } from '@supabase/supabase-js';
|
|
387
|
-
|
|
388
|
-
class SupabaseAuthManager {
|
|
389
|
-
constructor(config) {
|
|
390
|
-
this.supabase = createClient(
|
|
391
|
-
config.supabaseUrl,
|
|
392
|
-
config.supabaseAnonKey,
|
|
393
|
-
{
|
|
394
|
-
auth: {
|
|
395
|
-
persistSession: true,
|
|
396
|
-
autoRefreshToken: true,
|
|
397
|
-
detectSessionInUrl: true
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
);
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
async checkAccess() {
|
|
404
|
-
const { data: { user } } = await this.supabase.auth.getUser();
|
|
405
|
-
if (!user) return false;
|
|
406
|
-
|
|
407
|
-
// Use current domain for access check
|
|
408
|
-
const domain = window.location.host;
|
|
409
|
-
|
|
410
|
-
const { data, error } = await this.supabase
|
|
411
|
-
.from('docbuilder_access')
|
|
412
|
-
.select('created_at')
|
|
413
|
-
.eq('user_id', user.id)
|
|
414
|
-
.eq('domain', domain)
|
|
415
|
-
.single();
|
|
416
|
-
|
|
417
|
-
if (error || !data) return false;
|
|
418
|
-
if (data.expires_at && new Date(data.expires_at) < new Date()) return false;
|
|
419
|
-
|
|
420
|
-
// Log access
|
|
421
|
-
await this.logAccess('page_view');
|
|
422
|
-
|
|
423
|
-
return data;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
async signIn(email, password) {
|
|
427
|
-
const { data, error } = await this.supabase.auth.signInWithPassword({
|
|
428
|
-
email,
|
|
429
|
-
password
|
|
430
|
-
});
|
|
431
|
-
|
|
432
|
-
if (error) throw error;
|
|
433
|
-
|
|
434
|
-
// Check if user has access to this site
|
|
435
|
-
const access = await this.checkAccess();
|
|
436
|
-
if (!access) {
|
|
437
|
-
await this.supabase.auth.signOut();
|
|
438
|
-
throw new Error('You do not have access to this documentation site');
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
return data;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
async signInWithMagicLink(email) {
|
|
445
|
-
const { error } = await this.supabase.auth.signInWithOtp({
|
|
446
|
-
email,
|
|
447
|
-
options: {
|
|
448
|
-
emailRedirectTo: window.location.origin
|
|
449
|
-
}
|
|
450
|
-
});
|
|
451
|
-
|
|
452
|
-
if (error) throw error;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
async logAccess(action, metadata = {}) {
|
|
456
|
-
await this.supabase.from('access_logs').insert({
|
|
457
|
-
domain: window.location.host,
|
|
458
|
-
action,
|
|
459
|
-
metadata,
|
|
460
|
-
ip_address: await this.getClientIP(),
|
|
461
|
-
user_agent: navigator.userAgent
|
|
462
|
-
});
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
</code></pre>
|
|
466
|
-
<h3>3. Build-Time Integration</h3>
|
|
467
|
-
<pre><code class="language-javascript">// lib/core-builder.js modifications
|
|
468
|
-
async function buildWithSupabaseAuth(config) {
|
|
469
|
-
if (config.features.authentication === 'supabase') {
|
|
470
|
-
// Inject Supabase configuration
|
|
471
|
-
const supabaseConfig = {
|
|
472
|
-
supabaseUrl: config.auth.supabaseUrl,
|
|
473
|
-
supabaseAnonKey: config.auth.supabaseAnonKey
|
|
474
|
-
// Domain is detected automatically from window.location.host
|
|
475
|
-
};
|
|
476
|
-
|
|
477
|
-
// Create enhanced auth.js with Supabase integration
|
|
478
|
-
const authScript = generateSupabaseAuthScript(supabaseConfig);
|
|
479
|
-
await fs.writeFile(
|
|
480
|
-
path.join(outputDir, 'js', 'auth.js'),
|
|
481
|
-
authScript
|
|
482
|
-
);
|
|
483
|
-
|
|
484
|
-
// Create login page with Supabase UI
|
|
485
|
-
const loginPage = generateSupabaseLoginPage(config);
|
|
486
|
-
await fs.writeFile(
|
|
487
|
-
path.join(outputDir, 'login.html'),
|
|
488
|
-
loginPage
|
|
489
|
-
);
|
|
490
|
-
|
|
491
|
-
// Add Supabase SDK to dependencies
|
|
492
|
-
await injectSupabaseSDK(outputDir);
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
</code></pre>
|
|
496
|
-
<h2>Configuration Options</h2>
|
|
497
|
-
<h3>Enhanced doc-builder.config.js</h3>
|
|
498
|
-
<pre><code class="language-javascript">module.exports = {
|
|
499
|
-
siteName: 'Internal Documentation',
|
|
500
|
-
|
|
501
|
-
features: {
|
|
502
|
-
authentication: 'supabase', // 'basic' | 'supabase' | false
|
|
503
|
-
},
|
|
504
|
-
|
|
505
|
-
auth: {
|
|
506
|
-
// Supabase configuration
|
|
507
|
-
supabaseUrl: process.env.SUPABASE_URL,
|
|
508
|
-
supabaseAnonKey: process.env.SUPABASE_ANON_KEY
|
|
509
|
-
// Domain-based authentication - no siteId needed
|
|
510
|
-
|
|
511
|
-
// Optional: Custom login page styling
|
|
512
|
-
loginTheme: {
|
|
513
|
-
logo: '/assets/logo.png',
|
|
514
|
-
primaryColor: '#4F46E5',
|
|
515
|
-
backgroundImage: '/assets/login-bg.jpg'
|
|
516
|
-
},
|
|
517
|
-
|
|
518
|
-
// Optional: Authentication providers
|
|
519
|
-
providers: ['email', 'google', 'github'],
|
|
520
|
-
|
|
521
|
-
// Optional: Custom redirect after login
|
|
522
|
-
redirectUrl: '/',
|
|
523
|
-
|
|
524
|
-
// Optional: Require email verification
|
|
525
|
-
requireEmailVerification: false,
|
|
526
|
-
|
|
527
|
-
// Optional: Session timeout (minutes)
|
|
528
|
-
sessionTimeout: 1440, // 24 hours
|
|
529
|
-
|
|
530
|
-
// Optional: Enable SSO
|
|
531
|
-
sso: {
|
|
532
|
-
enabled: true,
|
|
533
|
-
domain: 'company.com'
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
};
|
|
537
|
-
</code></pre>
|
|
538
|
-
<h2>Migration Strategy</h2>
|
|
539
|
-
<h3>Phase 1: Backward Compatibility (Week 1-2)</h3>
|
|
540
|
-
<ol>
|
|
541
|
-
<li>Add Supabase as optional authentication method</li>
|
|
542
|
-
<li>Keep existing basic auth as default</li>
|
|
543
|
-
<li>Allow configuration to choose auth type</li>
|
|
544
|
-
<li>No breaking changes to existing deployments</li>
|
|
545
|
-
</ol>
|
|
546
|
-
<h3>Phase 2: Feature Parity (Week 3-4)</h3>
|
|
547
|
-
<ol>
|
|
548
|
-
<li>Implement core Supabase authentication</li>
|
|
549
|
-
<li>Add login/logout pages with Supabase UI</li>
|
|
550
|
-
<li>Implement access checking</li>
|
|
551
|
-
<li>Add basic user management CLI commands</li>
|
|
552
|
-
</ol>
|
|
553
|
-
<h3>Phase 3: Advanced Features (Week 5-6)</h3>
|
|
554
|
-
<ol>
|
|
555
|
-
<li>Multi-site SSO support</li>
|
|
556
|
-
<li>Role-based access control</li>
|
|
557
|
-
<li>Invitation system</li>
|
|
558
|
-
<li>Audit logging</li>
|
|
559
|
-
<li>Admin dashboard</li>
|
|
560
|
-
</ol>
|
|
561
|
-
<h3>Phase 4: Migration Tools (Week 7-8)</h3>
|
|
562
|
-
<ol>
|
|
563
|
-
<li>Migration script from basic auth to Supabase</li>
|
|
564
|
-
<li>Bulk user import</li>
|
|
565
|
-
<li>Documentation and guides</li>
|
|
566
|
-
<li>Deprecation notices for basic auth</li>
|
|
567
|
-
</ol>
|
|
568
|
-
<h2>CLI Commands</h2>
|
|
569
|
-
<h3>New Authentication Commands</h3>
|
|
570
|
-
<pre><code class="language-bash"># Initialize Supabase auth for a project
|
|
571
|
-
npx @knowcode/doc-builder auth init
|
|
572
|
-
|
|
573
|
-
# Add a user to documentation site
|
|
574
|
-
npx @knowcode/doc-builder auth add-user email@example.com --role editor
|
|
575
|
-
|
|
576
|
-
# Generate invitation link
|
|
577
|
-
npx @knowcode/doc-builder auth invite email@example.com --expires 7d
|
|
578
|
-
|
|
579
|
-
# List users with access
|
|
580
|
-
npx @knowcode/doc-builder auth list-users
|
|
581
|
-
|
|
582
|
-
# Revoke access
|
|
583
|
-
npx @knowcode/doc-builder auth revoke email@example.com
|
|
584
|
-
|
|
585
|
-
# View access logs
|
|
586
|
-
npx @knowcode/doc-builder auth logs --days 30
|
|
587
|
-
</code></pre>
|
|
588
|
-
<h2>Security Benefits</h2>
|
|
589
|
-
<h3>Current Basic Auth Vulnerabilities</h3>
|
|
590
|
-
<ul>
|
|
591
|
-
<li><i style="font-size: 1.2em" class="ph ph-x-circle" aria-label="error"></i> Credentials visible in browser</li>
|
|
592
|
-
<li><i style="font-size: 1.2em" class="ph ph-x-circle" aria-label="error"></i> No password hashing</li>
|
|
593
|
-
<li><i style="font-size: 1.2em" class="ph ph-x-circle" aria-label="error"></i> No session management</li>
|
|
594
|
-
<li><i style="font-size: 1.2em" class="ph ph-x-circle" aria-label="error"></i> No audit trail</li>
|
|
595
|
-
<li><i style="font-size: 1.2em" class="ph ph-x-circle" aria-label="error"></i> Single shared password</li>
|
|
596
|
-
</ul>
|
|
597
|
-
<h3>Supabase Auth Security</h3>
|
|
598
|
-
<ul>
|
|
599
|
-
<li><i style="font-size: 1.2em" class="ph ph-check-circle" aria-label="checked"></i> Server-side authentication</li>
|
|
600
|
-
<li><i style="font-size: 1.2em" class="ph ph-check-circle" aria-label="checked"></i> Bcrypt password hashing</li>
|
|
601
|
-
<li><i style="font-size: 1.2em" class="ph ph-check-circle" aria-label="checked"></i> JWT tokens with expiration</li>
|
|
602
|
-
<li><i style="font-size: 1.2em" class="ph ph-check-circle" aria-label="checked"></i> Row Level Security</li>
|
|
603
|
-
<li><i style="font-size: 1.2em" class="ph ph-check-circle" aria-label="checked"></i> Comprehensive audit logs</li>
|
|
604
|
-
<li><i style="font-size: 1.2em" class="ph ph-check-circle" aria-label="checked"></i> Multi-factor authentication support</li>
|
|
605
|
-
<li><i style="font-size: 1.2em" class="ph ph-check-circle" aria-label="checked"></i> OAuth provider support</li>
|
|
606
|
-
</ul>
|
|
607
|
-
<h2>Cost Analysis</h2>
|
|
608
|
-
<h3>Supabase Free Tier</h3>
|
|
609
|
-
<ul>
|
|
610
|
-
<li>50,000 Monthly Active Users</li>
|
|
611
|
-
<li>Unlimited authentication providers</li>
|
|
612
|
-
<li>Row Level Security</li>
|
|
613
|
-
<li>Real-time subscriptions</li>
|
|
614
|
-
</ul>
|
|
615
|
-
<h3>Estimated Usage</h3>
|
|
616
|
-
<ul>
|
|
617
|
-
<li>Small teams (< 100 users): <strong>Free</strong></li>
|
|
618
|
-
<li>Medium organizations (< 5,000 users): <strong>Free</strong></li>
|
|
619
|
-
<li>Large enterprises (< 50,000 users): <strong>Free</strong></li>
|
|
620
|
-
<li>Very large (> 50,000 users): <strong>$25/month</strong> Pro tier</li>
|
|
621
|
-
</ul>
|
|
622
|
-
<h2>Implementation Timeline</h2>
|
|
623
|
-
<h3>Week 1-2: Foundation</h3>
|
|
624
|
-
<ul>
|
|
625
|
-
<li><input disabled="" type="checkbox"> Add Supabase SDK integration</li>
|
|
626
|
-
<li><input disabled="" type="checkbox"> Create database schema</li>
|
|
627
|
-
<li><input disabled="" type="checkbox"> Implement basic auth flow</li>
|
|
628
|
-
<li><input disabled="" type="checkbox"> Update configuration system</li>
|
|
629
|
-
</ul>
|
|
630
|
-
<h3>Week 3-4: Core Features</h3>
|
|
631
|
-
<ul>
|
|
632
|
-
<li><input disabled="" type="checkbox"> Build login/logout pages</li>
|
|
633
|
-
<li><input disabled="" type="checkbox"> Implement access checking</li>
|
|
634
|
-
<li><input disabled="" type="checkbox"> Add session management</li>
|
|
635
|
-
<li><input disabled="" type="checkbox"> Create CLI commands</li>
|
|
636
|
-
</ul>
|
|
637
|
-
<h3>Week 5-6: Advanced Features</h3>
|
|
638
|
-
<ul>
|
|
639
|
-
<li><input disabled="" type="checkbox"> Multi-site SSO</li>
|
|
640
|
-
<li><input disabled="" type="checkbox"> Role management</li>
|
|
641
|
-
<li><input disabled="" type="checkbox"> Invitation system</li>
|
|
642
|
-
<li><input disabled="" type="checkbox"> Audit logging</li>
|
|
643
|
-
</ul>
|
|
644
|
-
<h3>Week 7-8: Polish & Migration</h3>
|
|
645
|
-
<ul>
|
|
646
|
-
<li><input disabled="" type="checkbox"> Migration tools</li>
|
|
647
|
-
<li><input disabled="" type="checkbox"> Documentation</li>
|
|
648
|
-
<li><input disabled="" type="checkbox"> Testing & QA</li>
|
|
649
|
-
<li><input disabled="" type="checkbox"> Release preparation</li>
|
|
650
|
-
</ul>
|
|
651
|
-
<h2>Benefits Summary</h2>
|
|
652
|
-
<h3>For End Users</h3>
|
|
653
|
-
<ul>
|
|
654
|
-
<li><strong>Single Sign-On</strong>: One account for all documentation</li>
|
|
655
|
-
<li><strong>Better Security</strong>: Enterprise-grade authentication</li>
|
|
656
|
-
<li><strong>Password Recovery</strong>: Self-service password reset</li>
|
|
657
|
-
<li><strong>OAuth Login</strong>: Sign in with Google/GitHub</li>
|
|
658
|
-
</ul>
|
|
659
|
-
<h3>For Administrators</h3>
|
|
660
|
-
<ul>
|
|
661
|
-
<li><strong>User Management</strong>: Add/remove users easily</li>
|
|
662
|
-
<li><strong>Access Control</strong>: Fine-grained permissions</li>
|
|
663
|
-
<li><strong>Audit Trail</strong>: Complete access history</li>
|
|
664
|
-
<li><strong>Compliance</strong>: Meet security requirements</li>
|
|
665
|
-
</ul>
|
|
666
|
-
<h3>For Developers</h3>
|
|
667
|
-
<ul>
|
|
668
|
-
<li><strong>Easy Integration</strong>: Simple configuration</li>
|
|
669
|
-
<li><strong>Extensible</strong>: Add custom auth logic</li>
|
|
670
|
-
<li><strong>Well-Documented</strong>: Comprehensive guides</li>
|
|
671
|
-
<li><strong>Open Source</strong>: Fully transparent</li>
|
|
672
|
-
</ul>
|
|
673
|
-
<h2>Next Steps</h2>
|
|
674
|
-
<ol>
|
|
675
|
-
<li><strong>Validate Architecture</strong>: Review with team</li>
|
|
676
|
-
<li><strong>Create Prototype</strong>: Build proof of concept</li>
|
|
677
|
-
<li><strong>Security Review</strong>: Audit implementation</li>
|
|
678
|
-
<li><strong>Documentation</strong>: Write integration guides</li>
|
|
679
|
-
<li><strong>Beta Testing</strong>: Deploy to test sites</li>
|
|
680
|
-
<li><strong>Release</strong>: Publish new version</li>
|
|
681
|
-
</ol>
|
|
682
|
-
<h2>Conclusion</h2>
|
|
683
|
-
<p>This Supabase integration transforms @knowcode/doc-builder from a basic documentation generator into an enterprise-ready documentation platform with professional authentication and access control. The centralized auth approach enables organizations to manage documentation access across multiple sites while maintaining security and compliance.</p>
|
|
684
|
-
|
|
685
|
-
</div>
|
|
686
|
-
</main>
|
|
687
|
-
</div>
|
|
688
|
-
|
|
689
|
-
<!-- Scripts -->
|
|
690
|
-
<script>
|
|
691
|
-
// Pass configuration to frontend
|
|
692
|
-
window.docBuilderConfig = {
|
|
693
|
-
features: {
|
|
694
|
-
showPdfDownload: true,
|
|
695
|
-
menuDefaultOpen: false,
|
|
696
|
-
mermaidEnhanced: true
|
|
697
|
-
}
|
|
698
|
-
};
|
|
699
|
-
</script>
|
|
700
|
-
<script src="/js/main.js"></script>
|
|
701
|
-
<script src="https://unpkg.com/@supabase/supabase-js@2"></script>
|
|
702
|
-
<script src="/js/auth.js"></script>
|
|
703
|
-
</body>
|
|
704
|
-
</html>
|