@knowcode/doc-builder 1.8.2 → 1.8.3

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/README.md +4 -4
  3. package/cli.js +9 -40
  4. package/html/README.html +3 -3
  5. package/html/auth.js +1 -1
  6. package/html/documentation-index.html +3 -3
  7. package/html/guides/authentication-default-change.html +3 -3
  8. package/html/guides/authentication-guide.html +34 -45
  9. package/html/guides/claude-workflow-guide.html +3 -3
  10. package/html/guides/documentation-standards.html +3 -3
  11. package/html/guides/phosphor-icons-guide.html +3 -3
  12. package/html/guides/private-directory-authentication.html +35 -17
  13. package/html/guides/public-site-deployment.html +8 -9
  14. package/html/guides/search-engine-verification-guide.html +3 -3
  15. package/html/guides/seo-guide.html +3 -3
  16. package/html/guides/seo-optimization-guide.html +3 -3
  17. package/html/guides/troubleshooting-guide.html +3 -3
  18. package/html/guides/windows-setup-guide.html +3 -3
  19. package/html/index.html +3 -3
  20. package/html/js/auth.js +1 -1
  21. package/html/login.html +1 -1
  22. package/html/private/cache-control-anti-pattern.html +3 -3
  23. package/html/private/launch/README.html +3 -3
  24. package/html/private/launch/auth-cleanup-summary.html +3 -3
  25. package/html/private/launch/bubble-plugin-specification.html +3 -3
  26. package/html/private/launch/go-to-market-strategy.html +3 -3
  27. package/html/private/launch/launch-announcements.html +3 -3
  28. package/html/private/launch/vercel-deployment-auth-setup.html +25 -19
  29. package/html/private/next-steps-walkthrough.html +16 -43
  30. package/html/private/supabase-auth-implementation-completed.html +6 -6
  31. package/html/private/supabase-auth-implementation-plan.html +14 -31
  32. package/html/private/supabase-auth-integration-plan.html +32 -67
  33. package/html/private/supabase-auth-setup-guide.html +71 -82
  34. package/html/private/test-private-doc.html +3 -3
  35. package/html/private/user-management-tooling.html +7 -13
  36. package/html/sitemap.xml +44 -44
  37. package/html/vercel-cli-setup-guide.html +3 -3
  38. package/html/vercel-first-time-setup-guide.html +3 -3
  39. package/lib/config.js +3 -11
  40. package/lib/core-builder.js +1 -2
  41. package/lib/shared-auth-config.js +2 -10
  42. package/lib/supabase-auth.js +5 -11
  43. package/package.json +1 -1
  44. package/setup-database-v2.sql +53 -0
  45. package/user-management/README.md +9 -18
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:41.997Z",
102
- "dateModified": "2025-07-26T10:38:41.997Z",
101
+ "datePublished": "2025-07-26T11:11:45.898Z",
102
+ "dateModified": "2025-07-26T11:11:45.898Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/guides/troubleshooting-guide.html"
@@ -138,7 +138,7 @@
138
138
 
139
139
  <div class="header-actions">
140
140
  <div class="deployment-info">
141
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
141
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
142
142
  </div>
143
143
 
144
144
 
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.002Z",
102
- "dateModified": "2025-07-26T10:38:42.002Z",
101
+ "datePublished": "2025-07-26T11:11:45.902Z",
102
+ "dateModified": "2025-07-26T11:11:45.902Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/guides/windows-setup-guide.html"
@@ -138,7 +138,7 @@
138
138
 
139
139
  <div class="header-actions">
140
140
  <div class="deployment-info">
141
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
141
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
142
142
  </div>
143
143
 
144
144
 
package/html/index.html CHANGED
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:41.951Z",
102
- "dateModified": "2025-07-26T10:38:41.951Z",
101
+ "datePublished": "2025-07-26T11:11:45.854Z",
102
+ "dateModified": "2025-07-26T11:11:45.854Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/README.html"
@@ -132,7 +132,7 @@
132
132
 
133
133
  <div class="header-actions">
134
134
  <div class="deployment-info">
135
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
135
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
136
136
  </div>
137
137
 
138
138
 
package/html/js/auth.js CHANGED
@@ -51,7 +51,7 @@
51
51
  .from('docbuilder_access')
52
52
  .select('*')
53
53
  .eq('user_id', user.id)
54
- .eq('site_id', '-knowcode-doc-builder-1753526321904-eivutk')
54
+ .eq('site_id', '-knowcode-doc-builder-1753528305501-qlqnmw')
55
55
  .single();
56
56
 
57
57
  if (accessError || !access) {
package/html/login.html CHANGED
@@ -56,7 +56,7 @@
56
56
  .from('docbuilder_access')
57
57
  .select('*')
58
58
  .eq('user_id', data.user.id)
59
- .eq('site_id', '-knowcode-doc-builder-1753526321904-eivutk')
59
+ .eq('site_id', '-knowcode-doc-builder-1753528305501-qlqnmw')
60
60
  .single();
61
61
 
62
62
  if (accessError || !access) {
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.005Z",
102
- "dateModified": "2025-07-26T10:38:42.005Z",
101
+ "datePublished": "2025-07-26T11:11:45.904Z",
102
+ "dateModified": "2025-07-26T11:11:45.904Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/cache-control-anti-pattern.html"
@@ -138,7 +138,7 @@
138
138
 
139
139
  <div class="header-actions">
140
140
  <div class="deployment-info">
141
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
141
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
142
142
  </div>
143
143
 
144
144
 
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.007Z",
102
- "dateModified": "2025-07-26T10:38:42.007Z",
101
+ "datePublished": "2025-07-26T11:11:45.906Z",
102
+ "dateModified": "2025-07-26T11:11:45.906Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/launch/README.html"
@@ -144,7 +144,7 @@
144
144
 
145
145
  <div class="header-actions">
146
146
  <div class="deployment-info">
147
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
147
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
148
148
  </div>
149
149
 
150
150
 
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.009Z",
102
- "dateModified": "2025-07-26T10:38:42.009Z",
101
+ "datePublished": "2025-07-26T11:11:45.907Z",
102
+ "dateModified": "2025-07-26T11:11:45.907Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/launch/auth-cleanup-summary.html"
@@ -144,7 +144,7 @@
144
144
 
145
145
  <div class="header-actions">
146
146
  <div class="deployment-info">
147
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
147
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
148
148
  </div>
149
149
 
150
150
 
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.011Z",
102
- "dateModified": "2025-07-26T10:38:42.011Z",
101
+ "datePublished": "2025-07-26T11:11:45.909Z",
102
+ "dateModified": "2025-07-26T11:11:45.909Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/launch/bubble-plugin-specification.html"
@@ -144,7 +144,7 @@
144
144
 
145
145
  <div class="header-actions">
146
146
  <div class="deployment-info">
147
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
147
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
148
148
  </div>
149
149
 
150
150
 
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.014Z",
102
- "dateModified": "2025-07-26T10:38:42.014Z",
101
+ "datePublished": "2025-07-26T11:11:45.912Z",
102
+ "dateModified": "2025-07-26T11:11:45.912Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/launch/go-to-market-strategy.html"
@@ -144,7 +144,7 @@
144
144
 
145
145
  <div class="header-actions">
146
146
  <div class="deployment-info">
147
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
147
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
148
148
  </div>
149
149
 
150
150
 
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.018Z",
102
- "dateModified": "2025-07-26T10:38:42.018Z",
101
+ "datePublished": "2025-07-26T11:11:45.915Z",
102
+ "dateModified": "2025-07-26T11:11:45.915Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/launch/launch-announcements.html"
@@ -144,7 +144,7 @@
144
144
 
145
145
  <div class="header-actions">
146
146
  <div class="deployment-info">
147
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
147
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
148
148
  </div>
149
149
 
150
150
 
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.020Z",
102
- "dateModified": "2025-07-26T10:38:42.020Z",
101
+ "datePublished": "2025-07-26T11:11:45.917Z",
102
+ "dateModified": "2025-07-26T11:11:45.917Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/launch/vercel-deployment-auth-setup.html"
@@ -144,7 +144,7 @@
144
144
 
145
145
  <div class="header-actions">
146
146
  <div class="deployment-info">
147
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
147
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
148
148
  </div>
149
149
 
150
150
 
@@ -255,16 +255,19 @@
255
255
  <ul>
256
256
  <li><strong>URL</strong>: <a href="https://doc-builder-2znroyb5z-lindsay-1340s-projects.vercel.app">https://doc-builder-2znroyb5z-lindsay-1340s-projects.vercel.app</a></li>
257
257
  </ul>
258
- <h2>Step 1: Update Supabase Database</h2>
259
- <p>You need to update the domain in your Supabase database to allow authentication from the Vercel domain.</p>
258
+ <h2>Step 1: Grant User Access for Vercel Domain</h2>
259
+ <p>Since we now use domain-based authentication, you need to grant users access to the Vercel domain.</p>
260
260
  <h3>Option A: Using Supabase Dashboard (Recommended)</h3>
261
261
  <ol>
262
262
  <li>Go to your Supabase project: <a href="https://supabase.com/dashboard/project/xcihhnfcitjrwbynxmka">https://supabase.com/dashboard/project/xcihhnfcitjrwbynxmka</a></li>
263
263
  <li>Click on <strong>Table Editor</strong> in the left sidebar</li>
264
- <li>Select the <code>docbuilder_sites</code> table</li>
265
- <li>Find the row with ID <code>4d8a53bf-dcdd-48c0-98e0-cd1451518735</code></li>
266
- <li>Click the edit icon (pencil)</li>
267
- <li>Change the <code>domain</code> field from <code>localhost:3000</code> to <code>doc-builder-2znroyb5z-lindsay-1340s-projects.vercel.app</code></li>
264
+ <li>Select the <code>docbuilder_access</code> table</li>
265
+ <li>Click <strong>Insert row</strong></li>
266
+ <li>Add:<ul>
267
+ <li><code>user_id</code>: Select the test user from dropdown</li>
268
+ <li><code>domain</code>: <code>doc-builder-2znroyb5z-lindsay-1340s-projects.vercel.app</code></li>
269
+ </ul>
270
+ </li>
268
271
  <li>Click <strong>Save</strong></li>
269
272
  </ol>
270
273
  <h3>Option B: Using SQL Editor</h3>
@@ -273,15 +276,18 @@
273
276
  <li>Click on <strong>SQL Editor</strong> in the left sidebar</li>
274
277
  <li>Run this SQL command:</li>
275
278
  </ol>
276
- <pre><code class="language-sql">-- Update domain for Vercel deployment
277
- UPDATE docbuilder_sites
278
- SET domain = &#39;doc-builder-2znroyb5z-lindsay-1340s-projects.vercel.app&#39;
279
- WHERE id = &#39;4d8a53bf-dcdd-48c0-98e0-cd1451518735&#39;;
279
+ <pre><code class="language-sql">-- Grant user access to Vercel deployment domain
280
+ INSERT INTO docbuilder_access (user_id, domain)
281
+ VALUES (
282
+ (SELECT id FROM auth.users WHERE email = &#39;testuser@example.com&#39;),
283
+ &#39;doc-builder-2znroyb5z-lindsay-1340s-projects.vercel.app&#39;
284
+ );
280
285
 
281
- -- Verify the update
282
- SELECT id, domain, name
283
- FROM docbuilder_sites
284
- WHERE id = &#39;4d8a53bf-dcdd-48c0-98e0-cd1451518735&#39;;
286
+ -- Verify the access
287
+ SELECT u.email, da.domain, da.created_at
288
+ FROM docbuilder_access da
289
+ JOIN auth.users u ON u.id = da.user_id
290
+ WHERE da.domain = &#39;doc-builder-2znroyb5z-lindsay-1340s-projects.vercel.app&#39;;
285
291
  </code></pre>
286
292
  <h2>Step 2: Test Authentication Flow</h2>
287
293
  <p>Once the database is updated, test the authentication:</p>
@@ -348,8 +354,8 @@ npx @knowcode/doc-builder auth:add-user production-email@example.com
348
354
  </li>
349
355
  <li><p><strong>Deploy Multiple Sites</strong>:</p>
350
356
  <ul>
351
- <li>Each site gets unique site_id</li>
352
- <li>Users can have access to multiple sites</li>
357
+ <li>Each site uses its domain for authentication</li>
358
+ <li>Users can have access to multiple domains</li>
353
359
  <li>Central authentication system</li>
354
360
  </ul>
355
361
  </li>
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.022Z",
102
- "dateModified": "2025-07-26T10:38:42.022Z",
101
+ "datePublished": "2025-07-26T11:11:45.920Z",
102
+ "dateModified": "2025-07-26T11:11:45.920Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/next-steps-walkthrough.html"
@@ -138,7 +138,7 @@
138
138
 
139
139
  <div class="header-actions">
140
140
  <div class="deployment-info">
141
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
141
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
142
142
  </div>
143
143
 
144
144
 
@@ -268,37 +268,21 @@ npm install
268
268
  <li><strong>Go to SQL Editor</strong> in Supabase dashboard</li>
269
269
  <li><strong>Run this SQL</strong> to create the required tables:</li>
270
270
  </ol>
271
- <pre><code class="language-sql">-- Table 1: Documentation sites
272
- CREATE TABLE docbuilder_sites (
273
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
274
- domain TEXT UNIQUE NOT NULL,
275
- name TEXT NOT NULL,
276
- created_at TIMESTAMPTZ DEFAULT NOW()
277
- );
278
-
279
- -- Table 2: User access mapping
271
+ <pre><code class="language-sql">-- Single table for user access control (simplified!)
280
272
  CREATE TABLE docbuilder_access (
281
273
  user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
282
- site_id UUID REFERENCES docbuilder_sites(id) ON DELETE CASCADE,
274
+ domain TEXT NOT NULL,
283
275
  created_at TIMESTAMPTZ DEFAULT NOW(),
284
- PRIMARY KEY (user_id, site_id)
276
+ PRIMARY KEY (user_id, domain)
285
277
  );
286
278
 
279
+ -- Create index for faster lookups
280
+ CREATE INDEX idx_docbuilder_access_domain ON docbuilder_access(domain);
281
+
287
282
  -- Enable Row Level Security
288
- ALTER TABLE docbuilder_sites ENABLE ROW LEVEL SECURITY;
289
283
  ALTER TABLE docbuilder_access ENABLE ROW LEVEL SECURITY;
290
284
 
291
- -- RLS Policy: Users can only see sites they have access to
292
- CREATE POLICY &quot;Users see accessible sites&quot; ON docbuilder_sites
293
- FOR SELECT USING (
294
- EXISTS (
295
- SELECT 1 FROM docbuilder_access
296
- WHERE site_id = docbuilder_sites.id
297
- AND user_id = auth.uid()
298
- )
299
- );
300
-
301
- -- RLS Policy: Users can see their own access
285
+ -- RLS Policy: Users can only see their own access
302
286
  CREATE POLICY &quot;Users see own access&quot; ON docbuilder_access
303
287
  FOR SELECT USING (user_id = auth.uid());
304
288
  </code></pre>
@@ -325,9 +309,8 @@ module.exports = {
325
309
  },
326
310
 
327
311
  auth: {
328
- supabaseUrl: &#39;YOUR_SUPABASE_URL_HERE&#39;,
329
- supabaseAnonKey: &#39;YOUR_ANON_KEY_HERE&#39;,
330
- siteId: &#39;&#39; // Will be filled in next step
312
+ supabaseUrl: &#39;YOUR_SUPABASE_URL_HERE&#39;, // Optional - has defaults
313
+ supabaseAnonKey: &#39;YOUR_ANON_KEY_HERE&#39; // Optional - has defaults
331
314
  }
332
315
  };
333
316
  EOF
@@ -343,18 +326,8 @@ EOF
343
326
  </code></pre>
344
327
  <p>This should prompt you for Supabase credentials and create/update the config.</p>
345
328
  <ol start="2">
346
- <li><strong>Add a test site to database</strong>:</li>
329
+ <li><strong>No site registration needed!</strong> The new system uses domains automatically.</li>
347
330
  </ol>
348
- <pre><code class="language-sql">-- Run in Supabase SQL Editor
349
- INSERT INTO docbuilder_sites (domain, name)
350
- VALUES (&#39;localhost:3000&#39;, &#39;Test Site&#39;)
351
- RETURNING id;
352
- </code></pre>
353
- <ol start="3">
354
- <li><strong>Copy the returned site ID</strong> and update your <code>test-config.js</code>:</li>
355
- </ol>
356
- <pre><code class="language-javascript">siteId: &#39;the-uuid-returned-from-above&#39;
357
- </code></pre>
358
331
  <h3>Step 7: Create Test Documentation</h3>
359
332
  <ol>
360
333
  <li><strong>Create test docs folder</strong>:</li>
@@ -422,9 +395,9 @@ If you can see this page, authentication is working!&quot; &gt; test-docs/README
422
395
  </ol>
423
396
  <h3>Step 11: Grant Access to Test User</h3>
424
397
  <pre><code class="language-sql">-- Run in Supabase SQL Editor
425
- -- Replace with actual user ID and site ID
426
- INSERT INTO docbuilder_access (user_id, site_id)
427
- VALUES (&#39;USER_ID_FROM_STEP_10&#39;, &#39;SITE_ID_FROM_STEP_6&#39;);
398
+ -- Replace with actual user ID from step 10
399
+ INSERT INTO docbuilder_access (user_id, domain)
400
+ VALUES (&#39;USER_ID_FROM_STEP_10&#39;, &#39;localhost:3001&#39;);
428
401
  </code></pre>
429
402
  <h3>Step 12: Test Complete Flow</h3>
430
403
  <ol>
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.025Z",
102
- "dateModified": "2025-07-26T10:38:42.025Z",
101
+ "datePublished": "2025-07-26T11:11:45.921Z",
102
+ "dateModified": "2025-07-26T11:11:45.921Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/supabase-auth-implementation-completed.html"
@@ -138,7 +138,7 @@
138
138
 
139
139
  <div class="header-actions">
140
140
  <div class="deployment-info">
141
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
141
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
142
142
  </div>
143
143
 
144
144
 
@@ -294,9 +294,9 @@
294
294
  authentication: &#39;supabase&#39; // Must explicitly enable
295
295
  },
296
296
  auth: {
297
- supabaseUrl: &#39;https://xxx.supabase.co&#39;,
298
- supabaseAnonKey: &#39;your-anon-key&#39;,
299
- siteId: &#39;your-site-id&#39;
297
+ supabaseUrl: &#39;https://xxx.supabase.co&#39;, // Optional - has defaults
298
+ supabaseAnonKey: &#39;your-anon-key&#39; // Optional - has defaults
299
+ // No siteId needed - uses domain automatically!
300
300
  }
301
301
  };
302
302
  </code></pre>
@@ -98,8 +98,8 @@
98
98
  "name": "Knowcode Ltd",
99
99
  "url": "https://knowcode.tech"
100
100
  },
101
- "datePublished": "2025-07-26T10:38:42.030Z",
102
- "dateModified": "2025-07-26T10:38:42.030Z",
101
+ "datePublished": "2025-07-26T11:11:45.924Z",
102
+ "dateModified": "2025-07-26T11:11:45.924Z",
103
103
  "mainEntityOfPage": {
104
104
  "@type": "WebPage",
105
105
  "@id": "https://doc-builder-delta.vercel.app/private/supabase-auth-implementation-plan.html"
@@ -138,7 +138,7 @@
138
138
 
139
139
  <div class="header-actions">
140
140
  <div class="deployment-info">
141
- <span class="deployment-date" title="Built with doc-builder v1.8.1">Last updated: Jul 26, 2025, 10:38 AM UTC</span>
141
+ <span class="deployment-date" title="Built with doc-builder v1.8.2">Last updated: Jul 26, 2025, 11:11 AM UTC</span>
142
142
  </div>
143
143
 
144
144
 
@@ -278,43 +278,26 @@
278
278
 
279
279
  subgraph "Supabase"
280
280
  AuthUsers[auth.users]
281
- DocSites[docbuilder_sites]
282
- DocAccess[docbuilder_access]
281
+ DocAccess[docbuilder_access with domain]
283
282
  AuthUsers -.-> DocAccess
284
- DocAccess -.-> DocSites
285
283
  end</div>
286
284
  </div>
287
285
  <h2>Database Schema</h2>
288
- <pre><code class="language-sql">-- Table 1: Documentation sites
289
- CREATE TABLE docbuilder_sites (
290
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
291
- domain TEXT UNIQUE NOT NULL,
292
- name TEXT NOT NULL,
293
- created_at TIMESTAMPTZ DEFAULT NOW()
294
- );
295
-
296
- -- Table 2: User access mapping
286
+ <pre><code class="language-sql">-- Single table for user access control (simplified!)
297
287
  CREATE TABLE docbuilder_access (
298
288
  user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
299
- site_id UUID REFERENCES docbuilder_sites(id) ON DELETE CASCADE,
289
+ domain TEXT NOT NULL,
300
290
  created_at TIMESTAMPTZ DEFAULT NOW(),
301
- PRIMARY KEY (user_id, site_id)
291
+ PRIMARY KEY (user_id, domain)
302
292
  );
303
293
 
294
+ -- Create index for faster lookups
295
+ CREATE INDEX idx_docbuilder_access_domain ON docbuilder_access(domain);
296
+
304
297
  -- Enable Row Level Security
305
- ALTER TABLE docbuilder_sites ENABLE ROW LEVEL SECURITY;
306
298
  ALTER TABLE docbuilder_access ENABLE ROW LEVEL SECURITY;
307
299
 
308
- -- RLS Policies
309
- CREATE POLICY &quot;Users see accessible sites&quot; ON docbuilder_sites
310
- FOR SELECT USING (
311
- EXISTS (
312
- SELECT 1 FROM docbuilder_access
313
- WHERE site_id = docbuilder_sites.id
314
- AND user_id = auth.uid()
315
- )
316
- );
317
-
300
+ -- RLS Policy: Users can only see their own access
318
301
  CREATE POLICY &quot;Users see own access&quot; ON docbuilder_access
319
302
  FOR SELECT USING (user_id = auth.uid());
320
303
  </code></pre>
@@ -329,10 +312,10 @@ CREATE POLICY &quot;Users see own access&quot; ON docbuilder_access
329
312
  <p><strong>File</strong>: <code>lib/config.js</code></p>
330
313
  <pre><code class="language-javascript">// Updated auth configuration - REMOVE basic auth fields
331
314
  auth: {
332
- // Only Supabase fields remain
315
+ // Only Supabase fields remain (domain-based, no siteId!)
333
316
  supabaseUrl: &#39;&#39;,
334
- supabaseAnonKey: &#39;&#39;,
335
- siteId: &#39;&#39;
317
+ supabaseAnonKey: &#39;&#39;
318
+ // Domain is detected automatically from window.location.host
336
319
  }
337
320
  </code></pre>
338
321
  <h4>1.2 Create Supabase Auth Module</h4>