From fa497a945abbe5fc122bc7523fbc193e6cfadfdd Mon Sep 17 00:00:00 2001 From: bnz183 Date: Tue, 9 Jun 2026 12:19:01 +0200 Subject: [PATCH] Demo mode, fixtures, Playwright CI, and release screenshots --- .env.example | 2 + .github/workflows/ci.yml | 29 +++ .gitignore | 2 + README.md | 14 +- apps/studio/e2e/helpers.ts | 35 ++++ apps/studio/e2e/screenshots.spec.ts | 81 +++++++ apps/studio/e2e/smoke.spec.ts | 78 +++++++ apps/studio/package.json | 5 +- apps/studio/playwright.config.ts | 25 +++ apps/studio/server/auth.ts | 68 +++++- apps/studio/server/demo/fixtures/constants.ts | 3 + apps/studio/server/demo/fixtures/media.ts | 33 +++ apps/studio/server/demo/fixtures/posts.ts | 147 +++++++++++++ apps/studio/server/demo/loadFixtures.ts | 30 +++ apps/studio/server/demo/types.ts | 15 ++ apps/studio/server/demoFixtures.test.ts | 127 +++++++++++ apps/studio/server/demoMedia.ts | 197 ++++++++++++++++++ apps/studio/server/demoMode.ts | 31 +++ apps/studio/server/demoPosts.ts | 101 +++++++++ apps/studio/server/demoPublish.ts | 90 ++++++++ apps/studio/server/demoSession.test.ts | 61 ++++++ apps/studio/server/demoStore.ts | 53 +++++ apps/studio/server/index.ts | 85 +++++++- apps/studio/server/posts.ts | 6 +- apps/studio/server/setupHealth.test.ts | 26 +++ apps/studio/server/setupHealth.ts | 189 +++++++++++++++++ apps/studio/src/App.tsx | 35 +++- apps/studio/src/components/DemoBanner.tsx | 16 ++ apps/studio/src/components/LoginScreen.tsx | 73 ++++++- apps/studio/src/components/PublishGate.tsx | 31 ++- apps/studio/src/components/SettingsPanel.tsx | 3 + .../src/components/SetupHealthPanel.tsx | 72 +++++++ apps/studio/src/index.css | 103 +++++++++ apps/studio/src/lib/auth.ts | 39 +++- apps/studio/src/lib/setupHealth.ts | 36 ++++ apps/studio/src/lib/studioConfig.ts | 2 + docs/assets/README.md | 15 +- docs/assets/autosave.png | Bin 0 -> 8780 bytes docs/assets/content-quality.png | Bin 0 -> 15602 bytes docs/assets/editor.png | Bin 0 -> 141935 bytes docs/assets/media-library.png | Bin 0 -> 22844 bytes docs/assets/preview.png | Bin 0 -> 27957 bytes docs/assets/publish-success.png | Bin 0 -> 13709 bytes docs/assets/setup-health.png | Bin 0 -> 48202 bytes docs/assets/studio-overview.png | Bin 0 -> 104795 bytes docs/assets/toolbar.png | Bin 0 -> 4490 bytes docs/demo-mode.md | 80 +++++++ docs/getting-started.md | 45 ++++ docs/manual-acceptance-test.md | 21 +- docs/project-status.md | 18 +- docs/screenshots.md | 82 ++++++-- docs/security.md | 12 ++ package.json | 4 +- pnpm-lock.yaml | 38 ++++ 54 files changed, 2190 insertions(+), 68 deletions(-) create mode 100644 apps/studio/e2e/helpers.ts create mode 100644 apps/studio/e2e/screenshots.spec.ts create mode 100644 apps/studio/e2e/smoke.spec.ts create mode 100644 apps/studio/playwright.config.ts create mode 100644 apps/studio/server/demo/fixtures/constants.ts create mode 100644 apps/studio/server/demo/fixtures/media.ts create mode 100644 apps/studio/server/demo/fixtures/posts.ts create mode 100644 apps/studio/server/demo/loadFixtures.ts create mode 100644 apps/studio/server/demo/types.ts create mode 100644 apps/studio/server/demoFixtures.test.ts create mode 100644 apps/studio/server/demoMedia.ts create mode 100644 apps/studio/server/demoMode.ts create mode 100644 apps/studio/server/demoPosts.ts create mode 100644 apps/studio/server/demoPublish.ts create mode 100644 apps/studio/server/demoSession.test.ts create mode 100644 apps/studio/server/demoStore.ts create mode 100644 apps/studio/server/setupHealth.test.ts create mode 100644 apps/studio/server/setupHealth.ts create mode 100644 apps/studio/src/components/DemoBanner.tsx create mode 100644 apps/studio/src/components/SetupHealthPanel.tsx create mode 100644 apps/studio/src/lib/setupHealth.ts create mode 100644 docs/assets/autosave.png create mode 100644 docs/assets/content-quality.png create mode 100644 docs/assets/editor.png create mode 100644 docs/assets/media-library.png create mode 100644 docs/assets/preview.png create mode 100644 docs/assets/publish-success.png create mode 100644 docs/assets/setup-health.png create mode 100644 docs/assets/studio-overview.png create mode 100644 docs/assets/toolbar.png create mode 100644 docs/demo-mode.md diff --git a/.env.example b/.env.example index 278b68a..81966e7 100644 --- a/.env.example +++ b/.env.example @@ -2,6 +2,8 @@ # Project paths/categories belong in sourcedraft.config.json instead SOURCEDRAFT_ADMIN_PASSWORD= +# Set to true to run Studio in demo mode (no GitHub commits) +SOURCEDRAFT_DEMO_MODE= GITHUB_TOKEN= GITHUB_OWNER= GITHUB_REPO= diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index da33054..67758c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,3 +25,32 @@ jobs: - run: pnpm install --frozen-lockfile - run: pnpm build - run: pnpm test + + studio-e2e: + runs-on: ubuntu-latest + needs: build-and-test + + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + with: + version: 11.1.2 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + + - run: pnpm install --frozen-lockfile + - run: pnpm build + + - name: Install Playwright Chromium + working-directory: apps/studio + run: pnpm exec playwright install --with-deps chromium + + - name: Run Studio smoke tests (demo mode) + working-directory: apps/studio + env: + CI: true + run: pnpm test:e2e diff --git a/.gitignore b/.gitignore index c25819f..28b6776 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ dist .DS_Store .vscode .pnpm-store +apps/studio/test-results +apps/studio/playwright-report diff --git a/README.md b/README.md index 141e1c8..3729ad9 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,13 @@ SourceDraft began as an internal tool for [QuBrite.com](https://qubrite.com) and ## Screenshots -Screenshots are not included in the repository yet. Expected images and capture instructions: [docs/screenshots.md](docs/screenshots.md). +![Studio overview](docs/assets/studio-overview.png) -When added, they will live in `docs/assets/` (overview, editor preview, media upload, publish success). +| | | +|---|---| +| ![Editor](docs/assets/editor.png) | ![Publish simulated in demo mode](docs/assets/publish-success.png) | + +More views (toolbar, autosave, media library, content quality, preview, setup health): [docs/screenshots.md](docs/screenshots.md). Regenerate with `pnpm screenshots:generate`. ## What is SourceDraft? @@ -36,6 +40,8 @@ Your static site — Astro today, others later — still builds and deploys exac - Upload images to GitHub (`mediaDir`) from Studio - Configure paths, adapter, and categories in `sourcedraft.config.json` - Protect Studio with a server-side admin password +- **Demo mode** — explore Studio with sample posts without GitHub credentials +- **Setup health** — Settings panel checks for missing config (no secrets exposed) ## What it does not do yet @@ -90,6 +96,8 @@ pnpm dev Sign in, click **New post**, preview the output, publish. The file lands at `contentDir/.mdx` or `.md` depending on your adapter (default: `src/content/blog/`). +**Try without GitHub:** set `SOURCEDRAFT_DEMO_MODE=true` in `.env`, or leave GitHub vars empty and click **Explore demo mode** on the sign-in screen. Demo content reloads from repository fixtures on each API start. See [docs/demo-mode.md](docs/demo-mode.md). + Full walkthrough: [docs/getting-started.md](docs/getting-started.md) ## Beginner path @@ -137,6 +145,7 @@ Issues and pull requests are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) fo ## Documentation - [Getting started](docs/getting-started.md) +- [Demo mode](docs/demo-mode.md) - [Non-technical overview](docs/non-technical-overview.md) — for writers - [GitHub publishing](docs/github-publishing.md) - [Media uploads](docs/media.md) @@ -146,6 +155,7 @@ Issues and pull requests are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) fo - [Adapters](docs/adapters.md) - [Project status](docs/project-status.md) - [Manual acceptance test](docs/manual-acceptance-test.md) +- [Smoke tests (Playwright)](docs/getting-started.md#smoke-tests-playwright) - [Release checklist](RELEASE_CHECKLIST.md) - [Security](docs/security.md) - [Screenshots guide](docs/screenshots.md) diff --git a/apps/studio/e2e/helpers.ts b/apps/studio/e2e/helpers.ts new file mode 100644 index 0000000..4136a32 --- /dev/null +++ b/apps/studio/e2e/helpers.ts @@ -0,0 +1,35 @@ +import { expect, type Page } from "@playwright/test"; +import { mkdirSync } from "node:fs"; +import { resolve } from "node:path"; + +export const REPO_ROOT = resolve(import.meta.dirname, "../../.."); +export const SCREENSHOT_DIR = resolve(REPO_ROOT, "docs/assets"); + +export const STUDIO_VIEWPORT = { width: 1280, height: 900 }; + +export function attachPageErrorLogging(page: Page): void { + page.on("pageerror", (error) => { + console.error("Page error:", error.message); + }); +} + +export async function waitForStudioRoot(page: Page): Promise { + await page.goto("/"); + await expect(page.locator("#root")).not.toBeEmpty({ timeout: 30_000 }); +} + +export async function enterDemoMode(page: Page): Promise { + attachPageErrorLogging(page); + await waitForStudioRoot(page); + await expect(page.getByRole("heading", { name: "SourceDraft Studio" })).toBeVisible(); + await page.getByRole("button", { name: "Explore demo mode" }).click(); + await expect(page.getByText("Demo mode — no GitHub commits are made")).toBeVisible(); +} + +export function ensureScreenshotDir(): void { + mkdirSync(SCREENSHOT_DIR, { recursive: true }); +} + +export function screenshotPath(filename: string): string { + return resolve(SCREENSHOT_DIR, filename); +} diff --git a/apps/studio/e2e/screenshots.spec.ts b/apps/studio/e2e/screenshots.spec.ts new file mode 100644 index 0000000..2aa4909 --- /dev/null +++ b/apps/studio/e2e/screenshots.spec.ts @@ -0,0 +1,81 @@ +import { expect, test } from "@playwright/test"; +import { + attachPageErrorLogging, + ensureScreenshotDir, + enterDemoMode, + screenshotPath, + STUDIO_VIEWPORT, +} from "./helpers.js"; + +test.describe("release screenshots", () => { + test.describe.configure({ mode: "serial" }); + + test.beforeAll(() => { + ensureScreenshotDir(); + }); + + test.use({ viewport: STUDIO_VIEWPORT }); + + test("generates docs/assets screenshots from demo mode", async ({ page }) => { + test.setTimeout(120_000); + attachPageErrorLogging(page); + + await enterDemoMode(page); + await page.screenshot({ + path: screenshotPath("studio-overview.png"), + fullPage: false, + }); + + await page.getByRole("button", { name: "Getting started with SourceDraft" }).click(); + await expect(page.locator(".writing-canvas__body")).toBeVisible(); + + await page.screenshot({ + path: screenshotPath("editor.png"), + fullPage: false, + }); + + await page.locator(".editor-toolbar-wrap").screenshot({ + path: screenshotPath("toolbar.png"), + }); + + await page.getByPlaceholder("Post title").fill("Screenshot autosave example"); + await expect(page.getByText("Unsaved changes", { exact: false })).toBeVisible({ + timeout: 5000, + }); + await page.locator(".app-bar").screenshot({ + path: screenshotPath("autosave.png"), + }); + + await page.locator(".media-library").screenshot({ + path: screenshotPath("media-library.png"), + }); + + await page.locator(".content-quality").screenshot({ + path: screenshotPath("content-quality.png"), + }); + + await page.locator(".preview-panel").screenshot({ + path: screenshotPath("preview.png"), + }); + + await page.getByRole("button", { name: "New post" }).click(); + await page.getByPlaceholder("Post title").fill("Screenshot publish example"); + await page.getByPlaceholder("Short description or subtitle").fill( + "Summary used for automated publish-success screenshot.", + ); + await page.locator(".writing-canvas__body").fill( + "# Screenshot publish example\n\nBody for release screenshot capture.", + ); + await page.getByRole("button", { name: "Simulate publish" }).click(); + await expect(page.getByText("Publish simulated")).toBeVisible({ timeout: 10_000 }); + await page.locator(".publish-bar").screenshot({ + path: screenshotPath("publish-success.png"), + }); + + await page.getByRole("button", { name: "Settings" }).click(); + await expect(page.getByRole("heading", { name: "Setup health" })).toBeVisible(); + await page.locator(".setup-health").screenshot({ + path: screenshotPath("setup-health.png"), + }); + }); +}); diff --git a/apps/studio/e2e/smoke.spec.ts b/apps/studio/e2e/smoke.spec.ts new file mode 100644 index 0000000..241bd23 --- /dev/null +++ b/apps/studio/e2e/smoke.spec.ts @@ -0,0 +1,78 @@ +import { expect, test } from "@playwright/test"; +import { + attachPageErrorLogging, + enterDemoMode, + waitForStudioRoot, +} from "./helpers.js"; + +test.describe("Studio smoke", () => { + test("login/demo entry renders", async ({ page }) => { + attachPageErrorLogging(page); + await waitForStudioRoot(page); + await expect(page.getByRole("heading", { name: "SourceDraft Studio" })).toBeVisible(); + await expect(page.getByRole("button", { name: "Explore demo mode" })).toBeVisible(); + }); + + test("overview/post list renders in demo mode", async ({ page }) => { + await enterDemoMode(page); + await expect(page.getByRole("heading", { name: "Posts" })).toBeVisible(); + await expect(page.getByText("Getting started with SourceDraft")).toBeVisible(); + }); + + test("new post form and editor accept text", async ({ page }) => { + await enterDemoMode(page); + await page.getByRole("button", { name: "New post" }).click(); + await page.getByPlaceholder("Post title").fill("Smoke test post"); + await page.getByPlaceholder("Short description or subtitle").fill( + "A short summary for the smoke test post.", + ); + const body = page.locator(".writing-canvas__body"); + await body.fill("## Smoke test section\n\nBody text for smoke testing."); + await expect(body).toHaveValue(/Smoke test section/u); + }); + + test("toolbar inserts Markdown", async ({ page }) => { + await enterDemoMode(page); + await page.getByRole("button", { name: "New post" }).click(); + const body = page.locator(".writing-canvas__body"); + await body.fill("Selected text"); + await body.selectText(); + await page.getByRole("button", { name: "Bold" }).click(); + await expect(body).toHaveValue("**Selected text**"); + }); + + test("autosave status appears after edits", async ({ page }) => { + await enterDemoMode(page); + await page.getByRole("button", { name: "New post" }).click(); + await page.getByPlaceholder("Post title").fill("Autosave smoke test"); + await expect(page.getByText("Unsaved changes", { exact: false })).toBeVisible({ + timeout: 5000, + }); + }); + + test("media library and content quality panels render", async ({ page }) => { + await enterDemoMode(page); + await expect(page.getByRole("heading", { name: "Media library" })).toBeVisible(); + await expect(page.getByRole("heading", { name: "Content quality" })).toBeVisible(); + }); + + test("settings setup health renders", async ({ page }) => { + await enterDemoMode(page); + await page.getByRole("button", { name: "Settings" }).click(); + await expect(page.getByRole("heading", { name: "Setup health" })).toBeVisible(); + await expect(page.getByText("Admin password")).toBeVisible(); + await expect(page.getByText("GitHub token (server-side)")).toBeVisible(); + }); + + test("publish success can be simulated in demo mode", async ({ page }) => { + await enterDemoMode(page); + await page.getByRole("button", { name: "New post" }).click(); + await page.getByPlaceholder("Post title").fill("Demo publish smoke test"); + await page.getByPlaceholder("Short description or subtitle").fill( + "Summary for demo publish smoke test.", + ); + await page.locator(".writing-canvas__body").fill("# Demo publish\n\nBody content."); + await page.getByRole("button", { name: "Simulate publish" }).click(); + await expect(page.getByText("Publish simulated")).toBeVisible({ timeout: 10_000 }); + }); +}); diff --git a/apps/studio/package.json b/apps/studio/package.json index 326bd9d..c8cd828 100644 --- a/apps/studio/package.json +++ b/apps/studio/package.json @@ -14,7 +14,9 @@ "start:server": "node dist-server/index.js", "lint": "eslint .", "preview": "vite preview", - "test": "node --import tsx --test src/**/*.test.ts server/**/*.test.ts" + "test": "node --import tsx --test src/**/*.test.ts server/**/*.test.ts", + "test:e2e": "playwright test e2e/smoke.spec.ts", + "screenshots:generate": "playwright test e2e/screenshots.spec.ts" }, "dependencies": { "@fontsource/ibm-plex-mono": "^5.2.7", @@ -33,6 +35,7 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", + "@playwright/test": "^1.55.0", "@types/busboy": "^1.5.4", "@types/express": "^5.0.3", "@types/node": "^24.12.3", diff --git a/apps/studio/playwright.config.ts b/apps/studio/playwright.config.ts new file mode 100644 index 0000000..0a8368c --- /dev/null +++ b/apps/studio/playwright.config.ts @@ -0,0 +1,25 @@ +import { defineConfig } from "@playwright/test"; +import { resolve } from "node:path"; + +const repoRoot = resolve(import.meta.dirname, "../.."); + +export default defineConfig({ + testDir: "./e2e", + fullyParallel: false, + forbidOnly: Boolean(process.env.CI), + retries: process.env.CI ? 1 : 0, + workers: 1, + reporter: "list", + use: { + baseURL: "http://127.0.0.1:5173", + trace: "on-first-retry", + viewport: { width: 1280, height: 900 }, + }, + webServer: { + command: "SOURCEDRAFT_DEMO_MODE=true STUDIO_API_PORT=8787 pnpm --filter studio dev", + cwd: repoRoot, + url: "http://127.0.0.1:5173", + reuseExistingServer: !process.env.CI, + timeout: 180_000, + }, +}); diff --git a/apps/studio/server/auth.ts b/apps/studio/server/auth.ts index 1e87757..8d437ea 100644 --- a/apps/studio/server/auth.ts +++ b/apps/studio/server/auth.ts @@ -1,5 +1,6 @@ import { randomBytes, timingSafeEqual } from "node:crypto"; import type { NextFunction, Request, Response } from "express"; +import { isDemoModeAvailable, isDemoModeForced, isGitHubConfigured } from "./demoMode.js"; const SESSION_COOKIE = "sourcedraft_session"; /** 24 hours — in-memory MVP sessions, not durable account auth. */ @@ -7,6 +8,7 @@ const SESSION_TTL_MS = 24 * 60 * 60 * 1000; type SessionRecord = { expiresAt: number; + demo?: boolean; }; const sessions = new Map(); @@ -116,10 +118,13 @@ export function verifyPassword(password: string): boolean { return timingSafeEqual(provided, target); } -export function createSession(): string { +export function createSession(options?: { demo?: boolean }): string { purgeExpiredSessions(); const token = randomBytes(32).toString("hex"); - sessions.set(token, { expiresAt: Date.now() + SESSION_TTL_MS }); + sessions.set(token, { + expiresAt: Date.now() + SESSION_TTL_MS, + demo: options?.demo === true, + }); return token; } @@ -152,8 +157,41 @@ export function getSessionToken(req: Request): string | null { return readCookie(req, SESSION_COOKIE); } +export function isDemoSession(token: string | null): boolean { + if (!token) { + return false; + } + + purgeExpiredSessions(); + const session = sessions.get(token); + return session?.demo === true; +} + +export function isRequestDemoSession(req: Request): boolean { + if (isDemoModeForced() || !isGitHubConfigured()) { + return true; + } + + return isDemoSession(getSessionToken(req)); +} + +export function isAuthenticatedDemoActive(req: Request): boolean { + const token = getSessionToken(req); + if (!isSessionValid(token)) { + return false; + } + + return isRequestDemoSession(req); +} + export function requireAuth(req: Request, res: Response, next: NextFunction): void { - if (!isAuthConfigured()) { + const token = getSessionToken(req); + if (isSessionValid(token)) { + next(); + return; + } + + if (!isAuthConfigured() && !isDemoModeAvailable()) { res.status(500).json({ ok: false, error: "SOURCEDRAFT_ADMIN_PASSWORD is not configured.", @@ -161,13 +199,7 @@ export function requireAuth(req: Request, res: Response, next: NextFunction): vo return; } - const token = getSessionToken(req); - if (!isSessionValid(token)) { - res.status(401).json({ ok: false, error: "Authentication required." }); - return; - } - - next(); + res.status(401).json({ ok: false, error: "Authentication required." }); } export function login( @@ -188,6 +220,22 @@ export function login( return { ok: true }; } +export function enterDemo( + req: Request, + res: Response, +): { ok: boolean; error?: string } { + if (!isDemoModeAvailable()) { + return { + ok: false, + error: "Demo mode is not available when GitHub is fully configured.", + }; + } + + const token = createSession({ demo: true }); + setSessionCookie(req, res, token); + return { ok: true }; +} + export function logout(req: Request, res: Response): void { destroySession(getSessionToken(req)); clearSessionCookie(req, res); diff --git a/apps/studio/server/demo/fixtures/constants.ts b/apps/studio/server/demo/fixtures/constants.ts new file mode 100644 index 0000000..2c03ccc --- /dev/null +++ b/apps/studio/server/demo/fixtures/constants.ts @@ -0,0 +1,3 @@ +export const DEMO_CONTENT_DIR = "src/content/blog"; +export const DEMO_MEDIA_DIR = "public/images"; +export const DEMO_PUBLIC_MEDIA_PATH = "/images"; diff --git a/apps/studio/server/demo/fixtures/media.ts b/apps/studio/server/demo/fixtures/media.ts new file mode 100644 index 0000000..b45ed04 --- /dev/null +++ b/apps/studio/server/demo/fixtures/media.ts @@ -0,0 +1,33 @@ +import type { DemoFixtureMedia } from "../types.js"; +import { DEMO_MEDIA_DIR, DEMO_PUBLIC_MEDIA_PATH } from "./constants.js"; + +/** + * Stable seed media metadata for demo mode. No binary files are stored in the repo; + * uploads during a session append in-memory entries with simulated public paths. + */ +export const DEMO_MEDIA_FIXTURES: DemoFixtureMedia[] = [ + { + repoPath: `${DEMO_MEDIA_DIR}/sample-cover.png`, + publicPath: `${DEMO_PUBLIC_MEDIA_PATH}/sample-cover.png`, + filename: "sample-cover.png", + extension: "png", + kind: "image", + size: 48_000, + }, + { + repoPath: `${DEMO_MEDIA_DIR}/workflow-diagram.png`, + publicPath: `${DEMO_PUBLIC_MEDIA_PATH}/workflow-diagram.png`, + filename: "workflow-diagram.png", + extension: "png", + kind: "image", + size: 72_500, + }, + { + repoPath: `${DEMO_MEDIA_DIR}/sample-handbook.pdf`, + publicPath: `${DEMO_PUBLIC_MEDIA_PATH}/sample-handbook.pdf`, + filename: "sample-handbook.pdf", + extension: "pdf", + kind: "pdf", + size: 128_000, + }, +]; diff --git a/apps/studio/server/demo/fixtures/posts.ts b/apps/studio/server/demo/fixtures/posts.ts new file mode 100644 index 0000000..351bba9 --- /dev/null +++ b/apps/studio/server/demo/fixtures/posts.ts @@ -0,0 +1,147 @@ +import type { DemoFixturePost } from "../types.js"; +import { DEMO_CONTENT_DIR } from "./constants.js"; + +/** + * Stable seed posts for demo mode. Reloaded from these fixtures on every API start + * and when resetDemoStore() runs. Edits during a session are in-memory only. + */ +export const DEMO_POST_FIXTURES: DemoFixturePost[] = [ + { + summary: { + path: `${DEMO_CONTENT_DIR}/getting-started-with-sourcedraft.mdx`, + title: "Getting started with SourceDraft", + slug: "getting-started-with-sourcedraft", + pubDate: "2026-06-06", + category: "Guides", + draft: false, + }, + content: `--- +title: Getting started with SourceDraft +description: A published guide showing the MDX shape Studio writes to your content folder. +pubDate: 2026-06-06 +category: Guides +tags: + - sourcedraft + - guides +draft: false +--- + +# Getting started with SourceDraft + +This published guide demonstrates how articles look after you validate metadata and body in Studio. + +## What you can try in demo mode + +- Edit title, description, and body locally +- Preview adapter output before a real publish +- Simulate publish without GitHub commits + +## Next steps + +Open other sample posts to see drafts, images, and internal links. +`, + }, + { + summary: { + path: `${DEMO_CONTENT_DIR}/draft-release-notes.mdx`, + title: "Draft release notes", + slug: "draft-release-notes", + pubDate: "2026-06-01", + category: "Notes", + draft: true, + }, + content: `--- +title: Draft release notes +description: A sample draft post for filters, badges, and unpublished workflow. +pubDate: 2026-06-01 +category: Notes +tags: + - draft + - release +draft: true +--- + +# Draft release notes + +This post is marked \`draft: true\` in frontmatter. It appears in the post list with a draft badge. + +Use it to confirm draft filters and publishing gates behave as expected. +`, + }, + { + summary: { + path: `${DEMO_CONTENT_DIR}/publishing-with-images.mdx`, + title: "Publishing with images", + slug: "publishing-with-images", + pubDate: "2026-05-28", + category: "Tutorials", + draft: false, + }, + content: `--- +title: Publishing with images +description: Example post with inline image Markdown and a cover image path. +pubDate: 2026-05-28 +category: Tutorials +tags: + - images + - markdown +heroImage: /images/sample-cover.png +draft: false +--- + +# Publishing with images + +Studio uploads land in your configured media folder. Public paths are inserted into posts. + +![Diagram of the write-preview-publish flow](/images/workflow-diagram.png) + +## Cover images + +Set a hero image in Post details or reference a path from the media library. + +## Inline images + +Use the toolbar or paste Markdown like the example above. +`, + }, + { + summary: { + path: `${DEMO_CONTENT_DIR}/linking-and-outline.mdx`, + title: "Linking and document outline", + slug: "linking-and-outline", + pubDate: "2026-05-20", + category: "Tutorials", + draft: false, + }, + content: `--- +title: Linking and document outline +description: Sample post with headings, internal links, and outline-friendly structure. +pubDate: 2026-05-20 +category: Tutorials +tags: + - links + - outline +draft: false +--- + +# Linking and document outline + +Use headings to structure long articles. The document outline panel lists H1–H3 sections. + +## Internal links + +Link to other demo posts with the Internal toolbar action or Markdown syntax: + +- [Getting started with SourceDraft](/getting-started-with-sourcedraft) +- [Publishing with images](/publishing-with-images) + +## External links + +External URLs work as usual: [Markdown guide](https://www.markdownguide.org/). + +### Subsections + +Smaller headings help readers scan technical content without extra UI chrome. +`, + }, +]; diff --git a/apps/studio/server/demo/loadFixtures.ts b/apps/studio/server/demo/loadFixtures.ts new file mode 100644 index 0000000..236d3de --- /dev/null +++ b/apps/studio/server/demo/loadFixtures.ts @@ -0,0 +1,30 @@ +import type { DemoFixtureMedia, DemoFixturePost } from "./types.js"; +import { DEMO_MEDIA_FIXTURES } from "./fixtures/media.js"; +import { DEMO_POST_FIXTURES } from "./fixtures/posts.js"; + +function clonePost(fixture: DemoFixturePost): DemoFixturePost { + return { + summary: { ...fixture.summary }, + content: fixture.content, + }; +} + +function cloneMedia(fixture: DemoFixtureMedia): DemoFixtureMedia { + return { ...fixture }; +} + +export function loadDemoPostFixtures(): DemoFixturePost[] { + return DEMO_POST_FIXTURES.map(clonePost); +} + +export function loadDemoMediaFixtures(): DemoFixtureMedia[] { + return DEMO_MEDIA_FIXTURES.map(cloneMedia); +} + +export function demoFixturePostCount(): number { + return DEMO_POST_FIXTURES.length; +} + +export function demoFixtureMediaCount(): number { + return DEMO_MEDIA_FIXTURES.length; +} diff --git a/apps/studio/server/demo/types.ts b/apps/studio/server/demo/types.ts new file mode 100644 index 0000000..2372592 --- /dev/null +++ b/apps/studio/server/demo/types.ts @@ -0,0 +1,15 @@ +import type { PostSummary } from "../posts.js"; + +export type DemoFixturePost = { + summary: PostSummary; + content: string; +}; + +export type DemoFixtureMedia = { + repoPath: string; + publicPath: string; + filename: string; + extension: string; + kind: "image" | "pdf"; + size: number; +}; diff --git a/apps/studio/server/demoFixtures.test.ts b/apps/studio/server/demoFixtures.test.ts new file mode 100644 index 0000000..8737417 --- /dev/null +++ b/apps/studio/server/demoFixtures.test.ts @@ -0,0 +1,127 @@ +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import { resolve } from "node:path"; +import { describe, it } from "node:test"; +import { loadPublicConfig } from "./config.js"; +import { + demoFixtureMediaCount, + demoFixturePostCount, + loadDemoMediaFixtures, + loadDemoPostFixtures, +} from "./demo/loadFixtures.js"; +import { listDemoPostsHandler } from "./demoPosts.js"; +import { publishDemoArticle } from "./demoPublish.js"; +import { listDemoPosts, resetDemoStore, upsertDemoPost } from "./demoStore.js"; +import { getSetupHealth } from "./setupHealth.js"; + +describe("demo fixtures", () => { + it("loads stable post fixtures on every call", () => { + const first = loadDemoPostFixtures(); + const second = loadDemoPostFixtures(); + + assert.equal(first.length, demoFixturePostCount()); + assert.equal(second.length, demoFixturePostCount()); + assert.deepEqual( + first.map((post) => post.summary.slug), + second.map((post) => post.summary.slug), + ); + }); + + it("includes a published guide, draft, image post, and linking post", () => { + const posts = loadDemoPostFixtures(); + const slugs = new Set(posts.map((post) => post.summary.slug)); + + assert.ok(slugs.has("getting-started-with-sourcedraft")); + assert.ok(slugs.has("draft-release-notes")); + assert.ok(slugs.has("publishing-with-images")); + assert.ok(slugs.has("linking-and-outline")); + + const draft = posts.find((post) => post.summary.slug === "draft-release-notes"); + const guide = posts.find( + (post) => post.summary.slug === "getting-started-with-sourcedraft", + ); + const images = posts.find((post) => post.summary.slug === "publishing-with-images"); + const links = posts.find((post) => post.summary.slug === "linking-and-outline"); + + assert.equal(draft?.summary.draft, true); + assert.equal(guide?.summary.draft, false); + assert.match(images?.content ?? "", /!\[[^\]]*\]\([^)]+\)/u); + assert.match(links?.content ?? "", /\[Getting started with SourceDraft\]/u); + assert.match(links?.content ?? "", /^## /mu); + }); + + it("loads stable media fixtures with required metadata", () => { + const media = loadDemoMediaFixtures(); + + assert.equal(media.length, demoFixtureMediaCount()); + assert.ok(media.length >= 2); + + for (const file of media) { + assert.ok(file.repoPath.length > 0); + assert.ok(file.publicPath.startsWith("/")); + assert.ok(file.filename.length > 0); + assert.ok(file.extension.length > 0); + assert.ok(file.kind === "image" || file.kind === "pdf"); + assert.ok(file.size > 0); + } + }); + + it("resetDemoStore reloads seed content after in-memory edits", async () => { + resetDemoStore(); + const before = (await listDemoPostsHandler()).body; + assert.equal(before.ok, true); + if (!before.ok) { + return; + } + + const initialCount = before.posts.length; + upsertDemoPost("src/content/blog/temp-demo-post.mdx", "---\ntitle: Temp\n---\n", { + path: "src/content/blog/temp-demo-post.mdx", + title: "Temp", + slug: "temp-demo-post", + pubDate: "2026-06-09", + category: "Notes", + draft: true, + }); + assert.equal(listDemoPosts().length, initialCount + 1); + + resetDemoStore(); + assert.equal(listDemoPosts().length, initialCount); + assert.equal(listDemoPosts().some((post) => post.slug === "temp-demo-post"), false); + }); + + it("demo publish does not use the GitHub publisher module", () => { + const source = readFileSync(resolve(import.meta.dirname, "demoPublish.ts"), "utf8"); + assert.doesNotMatch(source, /@sourcedraft\/github-publisher/u); + }); + + it("simulates publish in demo without GitHub credentials", async () => { + resetDemoStore(); + const runtime = loadPublicConfig(); + const result = await publishDemoArticle( + { + title: "Fixture publish test", + slug: "fixture-publish-test", + description: "Validates demo publish stays local to fixtures store.", + pubDate: "2026-06-08", + category: "Guides", + tags: ["demo"], + draft: false, + body: "# Fixture publish test\n\nNo GitHub commit.", + }, + runtime, + ); + + assert.equal(result.status, 200); + assert.equal(result.body.ok, true); + }); + + it("setup health diagnostics do not expose secrets", () => { + const report = getSetupHealth(); + const serialized = JSON.stringify(report); + + assert.doesNotMatch(serialized, /ghp_/u); + assert.doesNotMatch(serialized, /GITHUB_TOKEN=/u); + assert.doesNotMatch(serialized, /SOURCEDRAFT_ADMIN_PASSWORD=/u); + }); +}); diff --git a/apps/studio/server/demoMedia.ts b/apps/studio/server/demoMedia.ts new file mode 100644 index 0000000..84c462f --- /dev/null +++ b/apps/studio/server/demoMedia.ts @@ -0,0 +1,197 @@ +import { randomBytes } from "node:crypto"; +import type { Request } from "express"; +import Busboy from "busboy"; +import { joinPublicMediaPath } from "@sourcedraft/config"; +import type { PublishEnvConfig } from "./config.js"; +import { addDemoMedia, demoCommitSha, listDemoMedia } from "./demoStore.js"; +import type { ListMediaResponse } from "./listMedia.js"; +import { normalizeMediaDir } from "./mediaPaths.js"; +import { + ALLOWED_MIME_TYPES, + allowedTypesMessage, + extensionForMime, + matchesMediaSignature, + maxBytesForMime, + mediaKindFromMime, + uploadLimitMessage, +} from "./mediaValidation.js"; +import type { MediaUploadResponse } from "./media.js"; + +const MAX_UPLOAD_BYTES = 10 * 1024 * 1024; + +type ParsedUpload = { + buffer: Buffer; + filename: string; + mimeType: string; +}; + +function parseUpload(req: Request): Promise { + return new Promise((resolve, reject) => { + const busboy = Busboy({ + headers: req.headers, + limits: { + files: 1, + fileSize: MAX_UPLOAD_BYTES, + }, + }); + + let upload: ParsedUpload | null = null; + let rejected = false; + + busboy.on("file", (fieldName, stream, info) => { + if (fieldName !== "file") { + stream.resume(); + return; + } + + if (upload !== null) { + stream.resume(); + return; + } + + const chunks: Buffer[] = []; + upload = { + buffer: Buffer.alloc(0), + filename: info.filename, + mimeType: info.mimeType, + }; + + stream.on("data", (chunk: Buffer) => { + chunks.push(chunk); + }); + + stream.on("limit", () => { + rejected = true; + reject(new Error("File exceeds the maximum upload limit.")); + }); + + stream.on("end", () => { + if (upload !== null) { + upload.buffer = Buffer.concat(chunks); + } + }); + }); + + busboy.on("finish", () => { + if (rejected) { + return; + } + + if (upload === null) { + reject(new Error('Upload requires a multipart field named "file".')); + return; + } + + resolve(upload); + }); + + busboy.on("error", (error) => { + reject(error); + }); + + req.pipe(busboy); + }); +} + +export async function listDemoMediaHandler(): Promise<{ + status: number; + body: ListMediaResponse; +}> { + return { + status: 200, + body: { ok: true, files: listDemoMedia() }, + }; +} + +export async function uploadDemoMedia( + req: Request, + env: Omit, +): Promise<{ status: number; body: MediaUploadResponse }> { + const mediaDir = normalizeMediaDir(env.mediaDir); + if (mediaDir.length === 0) { + return { + status: 500, + body: { ok: false, error: "Media directory is not configured." }, + }; + } + + let parsed: ParsedUpload; + try { + parsed = await parseUpload(req); + } catch (error) { + const message = + error instanceof Error ? error.message : "Could not parse upload."; + return { + status: 400, + body: { ok: false, error: message }, + }; + } + + if (parsed.buffer.length === 0) { + return { + status: 400, + body: { ok: false, error: "Uploaded file is empty." }, + }; + } + + if (!ALLOWED_MIME_TYPES.has(parsed.mimeType)) { + return { + status: 400, + body: { ok: false, error: allowedTypesMessage() }, + }; + } + + const kind = mediaKindFromMime(parsed.mimeType); + const maxBytes = maxBytesForMime(parsed.mimeType); + if (kind === null || maxBytes === null) { + return { + status: 400, + body: { ok: false, error: allowedTypesMessage() }, + }; + } + + if (parsed.buffer.length > maxBytes) { + return { + status: 400, + body: { ok: false, error: uploadLimitMessage(parsed.mimeType) }, + }; + } + + if (!matchesMediaSignature(parsed.buffer, parsed.mimeType)) { + return { + status: 400, + body: { + ok: false, + error: "File content does not match the declared file type.", + }, + }; + } + + const extension = extensionForMime(parsed.mimeType) ?? "bin"; + const uniqueSuffix = randomBytes(4).toString("hex"); + const repoFilename = `upload-${uniqueSuffix}.${extension}`; + const repoPath = `${mediaDir}/${repoFilename}`; + const publicPath = joinPublicMediaPath(env.publicMediaPath, repoFilename); + const commitSha = demoCommitSha(); + + addDemoMedia({ + repoPath, + publicPath, + filename: repoFilename, + extension, + kind, + size: parsed.buffer.length, + }); + + return { + status: 200, + body: { + ok: true, + repoPath, + publicPath, + kind, + sha: commitSha, + commitSha, + }, + }; +} diff --git a/apps/studio/server/demoMode.ts b/apps/studio/server/demoMode.ts new file mode 100644 index 0000000..c07f59f --- /dev/null +++ b/apps/studio/server/demoMode.ts @@ -0,0 +1,31 @@ +export function isDemoModeForced(): boolean { + return process.env.SOURCEDRAFT_DEMO_MODE?.trim().toLowerCase() === "true"; +} + +export function isGitHubTokenConfigured(): boolean { + return (process.env.GITHUB_TOKEN?.trim().length ?? 0) > 0; +} + +export function isGitHubOwnerConfigured(): boolean { + return (process.env.GITHUB_OWNER?.trim().length ?? 0) > 0; +} + +export function isGitHubRepoConfigured(): boolean { + return (process.env.GITHUB_REPO?.trim().length ?? 0) > 0; +} + +export function isGitHubConfigured(): boolean { + return ( + isGitHubTokenConfigured() && + isGitHubOwnerConfigured() && + isGitHubRepoConfigured() + ); +} + +export function isDemoModeAvailable(): boolean { + if (isDemoModeForced()) { + return true; + } + + return !isGitHubConfigured(); +} diff --git a/apps/studio/server/demoPosts.ts b/apps/studio/server/demoPosts.ts new file mode 100644 index 0000000..c14cb67 --- /dev/null +++ b/apps/studio/server/demoPosts.ts @@ -0,0 +1,101 @@ +import { + validateArticle, + type ArticleInput, +} from "@sourcedraft/core"; +import type { PublishEnvConfig } from "./config.js"; +import { getDemoPost, listDemoPosts } from "./demoStore.js"; +import { + frontmatterToArticleInput, + splitFrontmatter, + slugFromPath, + type PostLoadResponse, + type PostsListResponse, +} from "./posts.js"; +import { safePostPath } from "./postPaths.js"; + +export async function listDemoPostsHandler(): Promise<{ + status: number; + body: PostsListResponse; +}> { + return { + status: 200, + body: { ok: true, posts: listDemoPosts() }, + }; +} + +export async function loadDemoPost( + path: string, + env: Omit, +): Promise<{ status: number; body: PostLoadResponse }> { + const safe = safePostPath(path, env.contentDir); + if (!safe.ok) { + return { + status: 400, + body: { ok: false, error: safe.error }, + }; + } + + const stored = getDemoPost(safe.path); + if (stored === null) { + return { + status: 404, + body: { ok: false, error: "Post not found in demo content." }, + }; + } + + const parsed = splitFrontmatter(stored.content); + if (parsed === null) { + return { + status: 400, + body: { ok: false, error: "Post frontmatter is missing or invalid." }, + }; + } + + const article = frontmatterToArticleInput( + safe.path, + parsed.frontmatter, + parsed.body, + ); + const validation = validateArticle(article); + if (!validation.valid) { + return { + status: 400, + body: { + ok: false, + error: "Loaded post failed validation.", + issues: validation.issues, + }, + }; + } + + return { + status: 200, + body: { + ok: true, + path: safe.path, + article: { + ...article, + sourcePath: safe.path, + }, + }, + }; +} + +export function summaryFromArticle( + path: string, + article: ArticleInput, +): { + title: string; + slug: string; + pubDate: string; + category: string; + draft: boolean; +} { + return { + title: typeof article.title === "string" ? article.title : slugFromPath(path), + slug: typeof article.slug === "string" ? article.slug : slugFromPath(path), + pubDate: typeof article.pubDate === "string" ? article.pubDate : "", + category: typeof article.category === "string" ? article.category : "", + draft: article.draft === true, + }; +} diff --git a/apps/studio/server/demoPublish.ts b/apps/studio/server/demoPublish.ts new file mode 100644 index 0000000..88257bb --- /dev/null +++ b/apps/studio/server/demoPublish.ts @@ -0,0 +1,90 @@ +import { getAstroMdxPath, toAstroMdx } from "@sourcedraft/adapter-astro-mdx"; +import { getMarkdownPath, toMarkdown } from "@sourcedraft/adapter-markdown"; +import { + normalizeArticle, + validateArticle, + type Article, +} from "@sourcedraft/core"; +import type { PublishEnvConfig } from "./config.js"; +import { summaryFromArticle } from "./demoPosts.js"; +import { demoCommitSha, upsertDemoPost } from "./demoStore.js"; +import { safePostPath } from "./postPaths.js"; +import type { PublishRequestBody, PublishResponse } from "./publish.js"; + +function renderArticle(article: Article, adapter: PublishEnvConfig["adapter"]): string { + if (adapter === "markdown") { + return toMarkdown(article); + } + + return toAstroMdx(article); +} + +function defaultPostPath( + article: Article, + adapter: PublishEnvConfig["adapter"], + contentDir: string, +): string { + if (adapter === "markdown") { + return getMarkdownPath(article, { contentDir }); + } + + return getAstroMdxPath(article, { contentDir }); +} + +export async function publishDemoArticle( + body: PublishRequestBody, + env: Omit, +): Promise<{ status: number; body: PublishResponse }> { + const validation = validateArticle(body); + if (!validation.valid) { + return { + status: 400, + body: { + ok: false, + error: "Article validation failed.", + issues: validation.issues, + }, + }; + } + + const article = normalizeArticle(body); + let path: string; + let created = false; + + if (typeof body.sourcePath === "string" && body.sourcePath.trim().length > 0) { + const safe = safePostPath(body.sourcePath.trim(), env.contentDir); + if (!safe.ok) { + return { + status: 400, + body: { + ok: false, + error: safe.error, + }, + }; + } + + path = safe.path; + } else { + path = defaultPostPath(article, env.adapter, env.contentDir); + created = true; + } + + const content = renderArticle(article, env.adapter); + const commitSha = demoCommitSha(); + + upsertDemoPost(path, content, { + path, + ...summaryFromArticle(path, article), + }); + + return { + status: 200, + body: { + ok: true, + path, + created, + sha: commitSha, + commitSha, + }, + }; +} diff --git a/apps/studio/server/demoSession.test.ts b/apps/studio/server/demoSession.test.ts new file mode 100644 index 0000000..286d308 --- /dev/null +++ b/apps/studio/server/demoSession.test.ts @@ -0,0 +1,61 @@ +import assert from "node:assert/strict"; +import { describe, it, afterEach } from "node:test"; +import type { Request } from "express"; +import { + isAuthenticatedDemoActive, + isRequestDemoSession, +} from "./auth.js"; + +function mockRequest(cookie?: string): Request { + return { + headers: cookie ? { cookie } : {}, + } as Request; +} + +describe("demo session guards", () => { + const originalDemoMode = process.env.SOURCEDRAFT_DEMO_MODE; + const originalToken = process.env.GITHUB_TOKEN; + const originalOwner = process.env.GITHUB_OWNER; + const originalRepo = process.env.GITHUB_REPO; + + afterEach(() => { + if (originalDemoMode === undefined) { + delete process.env.SOURCEDRAFT_DEMO_MODE; + } else { + process.env.SOURCEDRAFT_DEMO_MODE = originalDemoMode; + } + if (originalToken === undefined) { + delete process.env.GITHUB_TOKEN; + } else { + process.env.GITHUB_TOKEN = originalToken; + } + if (originalOwner === undefined) { + delete process.env.GITHUB_OWNER; + } else { + process.env.GITHUB_OWNER = originalOwner; + } + if (originalRepo === undefined) { + delete process.env.GITHUB_REPO; + } else { + process.env.GITHUB_REPO = originalRepo; + } + }); + + it("treats forced demo mode as active for authenticated demo routing", () => { + process.env.SOURCEDRAFT_DEMO_MODE = "true"; + process.env.GITHUB_TOKEN = "ghp_test"; + process.env.GITHUB_OWNER = "owner"; + process.env.GITHUB_REPO = "repo"; + + assert.equal(isRequestDemoSession(mockRequest()), true); + }); + + it("does not report demo active on auth status when unauthenticated", () => { + process.env.SOURCEDRAFT_DEMO_MODE = "true"; + process.env.GITHUB_TOKEN = "ghp_test"; + process.env.GITHUB_OWNER = "owner"; + process.env.GITHUB_REPO = "repo"; + + assert.equal(isAuthenticatedDemoActive(mockRequest()), false); + }); +}); diff --git a/apps/studio/server/demoStore.ts b/apps/studio/server/demoStore.ts new file mode 100644 index 0000000..ad3aa33 --- /dev/null +++ b/apps/studio/server/demoStore.ts @@ -0,0 +1,53 @@ +import { loadDemoMediaFixtures, loadDemoPostFixtures } from "./demo/loadFixtures.js"; +import type { DemoFixtureMedia, DemoFixturePost } from "./demo/types.js"; +import type { PostSummary } from "./posts.js"; +import type { MediaFileSummary } from "./listMedia.js"; + +type StoredPost = DemoFixturePost; + +let posts = new Map(); +let media: DemoFixtureMedia[] = []; + +function loadPostsFromFixtures(): Map { + const next = new Map(); + for (const fixture of loadDemoPostFixtures()) { + next.set(fixture.summary.path, fixture); + } + return next; +} + +export function resetDemoStore(): void { + posts = loadPostsFromFixtures(); + media = loadDemoMediaFixtures(); +} + +resetDemoStore(); + +export function listDemoPosts(): PostSummary[] { + return [...posts.values()] + .map((entry) => ({ ...entry.summary })) + .sort((left, right) => right.pubDate.localeCompare(left.pubDate)); +} + +export function getDemoPost(path: string): StoredPost | null { + return posts.get(path) ?? null; +} + +export function upsertDemoPost(path: string, content: string, summary: PostSummary): void { + posts.set(path, { + summary: { ...summary }, + content, + }); +} + +export function listDemoMedia(): MediaFileSummary[] { + return media.map((file) => ({ ...file })); +} + +export function addDemoMedia(file: MediaFileSummary): void { + media = [file, ...media.filter((entry) => entry.repoPath !== file.repoPath)]; +} + +export function demoCommitSha(): string { + return `demo${Date.now().toString(16).slice(-7)}`; +} diff --git a/apps/studio/server/index.ts b/apps/studio/server/index.ts index 4799ba4..4ca942d 100644 --- a/apps/studio/server/index.ts +++ b/apps/studio/server/index.ts @@ -3,19 +3,27 @@ import { resolve } from "node:path"; import { config as loadDotenv } from "dotenv"; import express from "express"; import { + isAuthenticatedDemoActive, + enterDemo, getSessionToken, isAuthConfigured, + isRequestDemoSession, isSessionValid, login, logout, requireAuth, } from "./auth.js"; import { loadPublicConfig, loadPublishEnv } from "./config.js"; +import { listDemoPostsHandler, loadDemoPost } from "./demoPosts.js"; +import { listDemoMediaHandler, uploadDemoMedia } from "./demoMedia.js"; +import { publishDemoArticle } from "./demoPublish.js"; +import { isDemoModeAvailable, isDemoModeForced } from "./demoMode.js"; import { uploadMedia } from "./media.js"; import { listMedia } from "./listMedia.js"; import { listPosts, loadPost } from "./posts.js"; import { publishArticle, type PublishRequestBody } from "./publish.js"; import { requireSameSiteRequest } from "./requestProtection.js"; +import { getSetupHealth } from "./setupHealth.js"; const envPaths = [ resolve(process.cwd(), ".env"), @@ -36,10 +44,16 @@ const app = express(); app.use(express.json({ limit: "1mb" })); app.get("/api/auth/status", (req, res) => { + const token = getSessionToken(req); + const authenticated = isSessionValid(token); + res.json({ configured: isAuthConfigured(), - authenticated: isSessionValid(getSessionToken(req)), + authenticated, mode: "mvp-local-password", + demoMode: isAuthenticatedDemoActive(req), + demoModeForced: isDemoModeForced(), + demoModeAvailable: isDemoModeAvailable(), }); }); @@ -58,13 +72,25 @@ app.post("/api/auth/login", requireSameSiteRequest, (req, res) => { res.json({ ok: true }); }); +app.post("/api/auth/demo", requireSameSiteRequest, (req, res) => { + const result = enterDemo(req, res); + + if (!result.ok) { + res.status(403).json({ ok: false, error: result.error }); + return; + } + + res.json({ ok: true, demoMode: true }); +}); + app.post("/api/auth/logout", requireSameSiteRequest, (req, res) => { logout(req, res); res.json({ ok: true }); }); -app.get("/api/config", requireAuth, (_req, res) => { +app.get("/api/config", requireAuth, (req, res) => { const runtime = loadPublicConfig(); + const demoMode = isRequestDemoSession(req); res.json({ adapter: runtime.adapter, @@ -73,21 +99,41 @@ app.get("/api/config", requireAuth, (_req, res) => { publicMediaPath: runtime.publicMediaPath, defaultBranch: runtime.branch, categories: runtime.categories, - githubOwner: runtime.owner, - githubRepo: runtime.repo, + githubOwner: demoMode ? "demo" : runtime.owner, + githubRepo: demoMode ? "sample-posts" : runtime.repo, + demoMode, }); }); +app.get("/api/health/setup", requireAuth, (_req, res) => { + res.json(getSetupHealth()); +}); + app.get("/api/posts", requireAuth, async (req, res) => { + const demoMode = isRequestDemoSession(req); + const pathParam = + typeof req.query.path === "string" ? req.query.path.trim() : ""; + + if (demoMode) { + const runtime = loadPublicConfig(); + + if (pathParam.length > 0) { + const result = await loadDemoPost(pathParam, runtime); + res.status(result.status).json(result.body); + return; + } + + const result = await listDemoPostsHandler(); + res.status(result.status).json(result.body); + return; + } + const envResult = loadPublishEnv(); if (!envResult.ok) { res.status(500).json({ ok: false, error: envResult.error }); return; } - const pathParam = - typeof req.query.path === "string" ? req.query.path.trim() : ""; - if (pathParam.length > 0) { const result = await loadPost(pathParam, envResult.config); res.status(result.status).json(result.body); @@ -98,7 +144,13 @@ app.get("/api/posts", requireAuth, async (req, res) => { res.status(result.status).json(result.body); }); -app.get("/api/media", requireAuth, async (_req, res) => { +app.get("/api/media", requireAuth, async (req, res) => { + if (isRequestDemoSession(req)) { + const result = await listDemoMediaHandler(); + res.status(result.status).json(result.body); + return; + } + const envResult = loadPublishEnv(); if (!envResult.ok) { res.status(500).json({ ok: false, error: envResult.error }); @@ -114,6 +166,13 @@ app.post( requireSameSiteRequest, requireAuth, async (req, res) => { + if (isRequestDemoSession(req)) { + const runtime = loadPublicConfig(); + const result = await uploadDemoMedia(req, runtime); + res.status(result.status).json(result.body); + return; + } + const envResult = loadPublishEnv(); if (!envResult.ok) { res.status(500).json({ ok: false, error: envResult.error }); @@ -126,6 +185,16 @@ app.post( ); app.post("/api/publish", requireSameSiteRequest, requireAuth, async (req, res) => { + if (isRequestDemoSession(req)) { + const runtime = loadPublicConfig(); + const result = await publishDemoArticle( + req.body as PublishRequestBody, + runtime, + ); + res.status(result.status).json(result.body); + return; + } + const envResult = loadPublishEnv(); if (!envResult.ok) { res.status(500).json({ ok: false, error: envResult.error }); diff --git a/apps/studio/server/posts.ts b/apps/studio/server/posts.ts index e0b5114..5f15bd6 100644 --- a/apps/studio/server/posts.ts +++ b/apps/studio/server/posts.ts @@ -32,7 +32,7 @@ function createPublisher(env: PublishEnvConfig) { }); } -function slugFromPath(path: string): string { +export function slugFromPath(path: string): string { const filename = path.split("/").pop() ?? ""; return filename.replace(/\.(mdx|md)$/iu, ""); } @@ -125,7 +125,7 @@ function parseFrontmatter(yaml: string): Record { return result; } -function splitFrontmatter( +export function splitFrontmatter( content: string, ): { frontmatter: Record; body: string } | null { if (!content.startsWith("---\n")) { @@ -146,7 +146,7 @@ function splitFrontmatter( }; } -function frontmatterToArticleInput( +export function frontmatterToArticleInput( path: string, frontmatter: Record, body: string, diff --git a/apps/studio/server/setupHealth.test.ts b/apps/studio/server/setupHealth.test.ts new file mode 100644 index 0000000..5bb2315 --- /dev/null +++ b/apps/studio/server/setupHealth.test.ts @@ -0,0 +1,26 @@ +import assert from "node:assert/strict"; +import { describe, it } from "node:test"; +import { getSetupHealth } from "./setupHealth.js"; + +describe("setup health", () => { + it("returns safe diagnostics without secrets", () => { + const report = getSetupHealth(); + + assert.equal(typeof report.adminPasswordConfigured, "boolean"); + assert.equal(typeof report.githubTokenConfigured, "boolean"); + assert.equal(typeof report.demoModeAvailable, "boolean"); + assert.ok(Array.isArray(report.checks)); + assert.ok(report.checks.length >= 8); + + const serialized = JSON.stringify(report); + assert.doesNotMatch(serialized, /ghp_/u); + assert.doesNotMatch(serialized, /GITHUB_TOKEN=/u); + }); + + it("includes a next action when setup is incomplete", () => { + const report = getSetupHealth(); + if (!report.githubReady && !report.demoModeForced) { + assert.ok(report.nextAction); + } + }); +}); diff --git a/apps/studio/server/setupHealth.ts b/apps/studio/server/setupHealth.ts new file mode 100644 index 0000000..aaf6431 --- /dev/null +++ b/apps/studio/server/setupHealth.ts @@ -0,0 +1,189 @@ +import { isAuthConfigured } from "./auth.js"; +import { + loadProjectConfig, + loadPublicConfig, + type SupportedAdapter, +} from "./config.js"; +import { + isDemoModeAvailable, + isDemoModeForced, + isGitHubConfigured, + isGitHubOwnerConfigured, + isGitHubRepoConfigured, + isGitHubTokenConfigured, +} from "./demoMode.js"; + +export type SetupHealthCheck = { + id: string; + label: string; + ok: boolean; + detail: string; +}; + +export type SetupHealthReport = { + ok: boolean; + adminPasswordConfigured: boolean; + githubOwnerConfigured: boolean; + githubRepoConfigured: boolean; + githubTokenConfigured: boolean; + contentDirConfigured: boolean; + mediaDirConfigured: boolean; + publicMediaPathConfigured: boolean; + adapterValid: boolean; + demoModeForced: boolean; + demoModeAvailable: boolean; + githubReady: boolean; + checks: SetupHealthCheck[]; + nextAction: string | null; +}; + +const SUPPORTED_ADAPTERS = new Set(["astro-mdx", "markdown"]); + +function resolveAdapter(rawAdapter: string): SupportedAdapter | null { + if (SUPPORTED_ADAPTERS.has(rawAdapter)) { + return rawAdapter as SupportedAdapter; + } + + return null; +} + +export function getSetupHealth(): SetupHealthReport { + const project = loadProjectConfig(); + const runtime = loadPublicConfig(); + const rawAdapter = process.env.CMS_ADAPTER?.trim() || project.adapter; + const adapter = resolveAdapter(rawAdapter); + const contentDir = runtime.contentDir.trim(); + const mediaDir = runtime.mediaDir.trim(); + const publicMediaPath = runtime.publicMediaPath.trim(); + + const adminPasswordConfigured = isAuthConfigured(); + const githubOwnerConfigured = isGitHubOwnerConfigured(); + const githubRepoConfigured = isGitHubRepoConfigured(); + const githubTokenConfigured = isGitHubTokenConfigured(); + const contentDirConfigured = contentDir.length > 0; + const mediaDirConfigured = mediaDir.length > 0; + const publicMediaPathConfigured = publicMediaPath.length > 0; + const adapterValid = adapter !== null; + const demoModeForced = isDemoModeForced(); + const demoModeAvailable = isDemoModeAvailable(); + const githubReady = + githubOwnerConfigured && + githubRepoConfigured && + githubTokenConfigured && + adapterValid; + + const checks: SetupHealthCheck[] = [ + { + id: "admin-password", + label: "Admin password", + ok: adminPasswordConfigured, + detail: adminPasswordConfigured + ? "SOURCEDRAFT_ADMIN_PASSWORD is set on the server." + : "Set SOURCEDRAFT_ADMIN_PASSWORD in .env for normal sign-in.", + }, + { + id: "github-owner", + label: "GitHub owner", + ok: githubOwnerConfigured, + detail: githubOwnerConfigured + ? "GITHUB_OWNER is configured." + : "Set GITHUB_OWNER in .env.", + }, + { + id: "github-repo", + label: "GitHub repository", + ok: githubRepoConfigured, + detail: githubRepoConfigured + ? "GITHUB_REPO is configured." + : "Set GITHUB_REPO in .env.", + }, + { + id: "github-token", + label: "GitHub token (server-side)", + ok: githubTokenConfigured, + detail: githubTokenConfigured + ? "GITHUB_TOKEN is present on the server. The value is never sent to the browser." + : "Set GITHUB_TOKEN in .env for GitHub publishing.", + }, + { + id: "content-dir", + label: "Content directory", + ok: contentDirConfigured, + detail: contentDirConfigured + ? `contentDir: ${contentDir}` + : "Configure contentDir in sourcedraft.config.json.", + }, + { + id: "media-dir", + label: "Media directory", + ok: mediaDirConfigured, + detail: mediaDirConfigured + ? `mediaDir: ${mediaDir}` + : "Configure mediaDir in sourcedraft.config.json.", + }, + { + id: "public-media-path", + label: "Public media path", + ok: publicMediaPathConfigured, + detail: publicMediaPathConfigured + ? `publicMediaPath: ${publicMediaPath}` + : "Configure publicMediaPath in sourcedraft.config.json or CMS_PUBLIC_MEDIA_PATH.", + }, + { + id: "adapter", + label: "Adapter", + ok: adapterValid, + detail: adapterValid + ? `Using ${adapter} adapter.` + : `Unsupported adapter "${rawAdapter}". Use astro-mdx or markdown.`, + }, + { + id: "demo-mode", + label: "Demo mode", + ok: true, + detail: demoModeForced + ? "SOURCEDRAFT_DEMO_MODE=true — GitHub commits are disabled." + : !isGitHubConfigured() + ? "GitHub is not fully configured — Studio uses demo content and simulated publish." + : "Demo mode is off. GitHub publishing is enabled when credentials are valid.", + }, + ]; + + let nextAction: string | null = null; + + if (demoModeForced) { + nextAction = + "Demo mode is active. Explore Studio locally or configure GitHub and disable SOURCEDRAFT_DEMO_MODE for real publishing."; + } else if (!adminPasswordConfigured && demoModeAvailable) { + nextAction = + "Enter demo mode from the sign-in screen or set SOURCEDRAFT_ADMIN_PASSWORD for password sign-in."; + } else if (!adminPasswordConfigured) { + nextAction = "Set SOURCEDRAFT_ADMIN_PASSWORD in .env and restart the API server."; + } else if (!githubReady) { + nextAction = + "Complete GitHub setup in .env (GITHUB_TOKEN, GITHUB_OWNER, GITHUB_REPO) or use demo mode to explore without GitHub."; + } else { + nextAction = null; + } + + return { + ok: githubReady || demoModeAvailable, + adminPasswordConfigured, + githubOwnerConfigured, + githubRepoConfigured, + githubTokenConfigured, + contentDirConfigured, + mediaDirConfigured, + publicMediaPathConfigured, + adapterValid, + demoModeForced, + demoModeAvailable, + githubReady, + checks, + nextAction, + }; +} + +export function isRequestInDemoMode(sessionDemo: boolean): boolean { + return isDemoModeForced() || !isGitHubConfigured() || sessionDemo; +} diff --git a/apps/studio/src/App.tsx b/apps/studio/src/App.tsx index 4f03cbc..0787545 100644 --- a/apps/studio/src/App.tsx +++ b/apps/studio/src/App.tsx @@ -4,6 +4,7 @@ import { normalizeArticle, validateArticle } from "@sourcedraft/core"; import { useCallback, useEffect, useMemo, useState } from "react"; import { AppBar } from "./components/AppBar"; import { AstroMdxPreview } from "./components/AstroMdxPreview"; +import { DemoBanner } from "./components/DemoBanner"; import { LoginScreen } from "./components/LoginScreen"; import { PostDetailsPanel } from "./components/PostDetailsPanel"; import { PostSidebar } from "./components/PostSidebar"; @@ -13,6 +14,7 @@ import { SettingsPanel } from "./components/SettingsPanel"; import { WritingCanvas } from "./components/WritingCanvas"; import { useDocumentAutosave } from "./hooks/useDocumentAutosave"; import { + enterDemo, fetchAuthStatus, login as loginToStudio, logout as logoutFromStudio, @@ -49,6 +51,9 @@ function App() { const [authChecked, setAuthChecked] = useState(false); const [authenticated, setAuthenticated] = useState(false); const [authConfigured, setAuthConfigured] = useState(false); + const [demoMode, setDemoMode] = useState(false); + const [demoModeForced, setDemoModeForced] = useState(false); + const [demoModeAvailable, setDemoModeAvailable] = useState(false); const [view, setView] = useState("editor"); const [studioConfig, setStudioConfig] = useState( FALLBACK_STUDIO_CONFIG, @@ -97,6 +102,9 @@ function App() { fetchAuthStatus().then((status) => { setAuthConfigured(status.configured); setAuthenticated(status.authenticated); + setDemoMode(status.demoMode === true); + setDemoModeForced(status.demoModeForced === true); + setDemoModeAvailable(status.demoModeAvailable === true); setAuthChecked(true); }); }, []); @@ -108,6 +116,7 @@ function App() { fetchStudioConfig().then((config) => { setStudioConfig(config); + setDemoMode(config.demoMode === true); setForm((current) => { if (current.title.length > 0 || current.body.length > 0) { return current; @@ -318,7 +327,23 @@ function App() { async function handleLogin(password: string) { const result = await loginToStudio(password); if (result.ok) { + const status = await fetchAuthStatus(); setAuthenticated(true); + setDemoMode(status.demoMode === true); + setDemoModeForced(status.demoModeForced === true); + setDemoModeAvailable(status.demoModeAvailable === true); + } + return result; + } + + async function handleEnterDemo() { + const result = await enterDemo(); + if (result.ok) { + const status = await fetchAuthStatus(); + setAuthenticated(true); + setDemoMode(true); + setDemoModeForced(status.demoModeForced === true); + setDemoModeAvailable(status.demoModeAvailable === true); } return result; } @@ -392,12 +417,19 @@ function App() { if (!authenticated) { return ( - + ); } return (
+ {demoMode && } diff --git a/apps/studio/src/components/DemoBanner.tsx b/apps/studio/src/components/DemoBanner.tsx new file mode 100644 index 0000000..a6db8b1 --- /dev/null +++ b/apps/studio/src/components/DemoBanner.tsx @@ -0,0 +1,16 @@ +type DemoBannerProps = { + forced?: boolean; +}; + +export function DemoBanner({ forced = false }: DemoBannerProps) { + return ( +
+

Demo mode — no GitHub commits are made

+

+ {forced + ? "This Studio instance is running with SOURCEDRAFT_DEMO_MODE enabled." + : "You are exploring sample posts locally. Publish and uploads are simulated only."} +

+
+ ); +} diff --git a/apps/studio/src/components/LoginScreen.tsx b/apps/studio/src/components/LoginScreen.tsx index d3df621..9863f11 100644 --- a/apps/studio/src/components/LoginScreen.tsx +++ b/apps/studio/src/components/LoginScreen.tsx @@ -1,16 +1,26 @@ -import { useState } from "react"; +import { useState, type FormEvent } from "react"; type LoginScreenProps = { configured: boolean; + demoAvailable: boolean; + demoForced: boolean; onLogin: (password: string) => Promise<{ ok: boolean; error?: string }>; + onEnterDemo: () => Promise<{ ok: boolean; error?: string }>; }; -export function LoginScreen({ configured, onLogin }: LoginScreenProps) { +export function LoginScreen({ + configured, + demoAvailable, + demoForced, + onLogin, + onEnterDemo, +}: LoginScreenProps) { const [password, setPassword] = useState(""); const [error, setError] = useState(null); const [submitting, setSubmitting] = useState(false); + const [enteringDemo, setEnteringDemo] = useState(false); - async function handleSubmit(event: React.FormEvent) { + async function handleSubmit(event: FormEvent) { event.preventDefault(); setSubmitting(true); setError(null); @@ -26,6 +36,20 @@ export function LoginScreen({ configured, onLogin }: LoginScreenProps) { setSubmitting(false); } + async function handleEnterDemo() { + setEnteringDemo(true); + setError(null); + + const result = await onEnterDemo(); + if (!result.ok) { + setError(result.error ?? "Could not enter demo mode."); + setEnteringDemo(false); + return; + } + + setEnteringDemo(false); + } + return (
@@ -34,13 +58,22 @@ export function LoginScreen({ configured, onLogin }: LoginScreenProps) {

Sign in to write and publish

+ {demoForced && ( +
+

Demo mode enabled

+

+ This instance runs in demo mode. GitHub commits are disabled. +

+
+ )} +

This workspace uses one shared password, checked on the server. It is meant for local or private use.

- {!configured && ( + {!configured && !demoAvailable && (

Password not configured

@@ -50,6 +83,16 @@ export function LoginScreen({ configured, onLogin }: LoginScreenProps) {

)} + {!configured && demoAvailable && ( +
+

GitHub not configured

+

+ You can explore demo mode without GitHub credentials, or configure + a password and GitHub settings for real publishing. +

+
+ )} + @@ -71,11 +114,29 @@ export function LoginScreen({ configured, onLogin }: LoginScreenProps) {
+ + {demoAvailable && ( +
+

+ Explore Studio with sample posts. No GitHub token required. +

+ +
+ )}
); diff --git a/apps/studio/src/components/PublishGate.tsx b/apps/studio/src/components/PublishGate.tsx index 8060faa..57b41b1 100644 --- a/apps/studio/src/components/PublishGate.tsx +++ b/apps/studio/src/components/PublishGate.tsx @@ -4,6 +4,7 @@ type PublishGateProps = { publishError: string | null; publishSuccess: string | null; githubReady: boolean; + demoMode: boolean; onPublish: () => void; }; @@ -11,12 +12,13 @@ function disabledReason( ready: boolean, githubReady: boolean, publishing: boolean, + demoMode: boolean, ): string | null { if (publishing) { return null; } - if (!githubReady) { + if (!githubReady && !demoMode) { return "Set GITHUB_OWNER, GITHUB_REPO, and GITHUB_TOKEN in .env, then check Settings."; } @@ -33,10 +35,11 @@ export function PublishGate({ publishError, publishSuccess, githubReady, + demoMode, onPublish, }: PublishGateProps) { - const canPublish = ready && !publishing && githubReady; - const reason = disabledReason(ready, githubReady, publishing); + const canPublish = ready && !publishing && (githubReady || demoMode); + const reason = disabledReason(ready, githubReady, publishing, demoMode); return (
@@ -47,9 +50,13 @@ export function PublishGate({

{publishing - ? "Saving to GitHub…" + ? demoMode + ? "Simulating publish…" + : "Saving to GitHub…" : ready - ? "Your post will be committed to the repository" + ? demoMode + ? "Demo mode will simulate a successful publish" + : "Your post will be committed to the repository" : "Complete required fields to enable publish"}

@@ -60,7 +67,11 @@ export function PublishGate({ aria-describedby={reason ? "publish-disabled-reason" : undefined} onClick={onPublish} > - {publishing ? "Publishing…" : "Publish to GitHub"} + {publishing + ? "Publishing…" + : demoMode + ? "Simulate publish" + : "Publish to GitHub"} @@ -82,10 +93,14 @@ export function PublishGate({ {publishSuccess && (
-

Published successfully

+

+ {demoMode ? "Publish simulated" : "Published successfully"} +

{publishSuccess}

- Your site build or CI will pick up the file from the repository. + {demoMode + ? "No GitHub commit was made. Configure GitHub in .env for real publishing." + : "Your site build or CI will pick up the file from the repository."}

)} diff --git a/apps/studio/src/components/SettingsPanel.tsx b/apps/studio/src/components/SettingsPanel.tsx index 2aa8aae..294f26b 100644 --- a/apps/studio/src/components/SettingsPanel.tsx +++ b/apps/studio/src/components/SettingsPanel.tsx @@ -1,5 +1,6 @@ import type { StudioConfig } from "../lib/studioConfig"; import { AdapterStatus } from "./AdapterStatus"; +import { SetupHealthPanel } from "./SetupHealthPanel"; type SettingsPanelProps = { config: StudioConfig; @@ -8,6 +9,8 @@ type SettingsPanelProps = { export function SettingsPanel({ config }: SettingsPanelProps) { return (
+ +

Settings

diff --git a/apps/studio/src/components/SetupHealthPanel.tsx b/apps/studio/src/components/SetupHealthPanel.tsx new file mode 100644 index 0000000..16f5fa7 --- /dev/null +++ b/apps/studio/src/components/SetupHealthPanel.tsx @@ -0,0 +1,72 @@ +import { useEffect, useState } from "react"; +import { + fetchSetupHealth, + type SetupHealthReport, +} from "../lib/setupHealth.js"; + +export function SetupHealthPanel() { + const [report, setReport] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + fetchSetupHealth().then((next) => { + setReport(next); + setLoading(false); + }); + }, []); + + return ( +
+
+

+ Setup health +

+

+ Safe server-side checks — tokens and secrets are never shown +

+
+ + {loading && ( +

+ Checking setup… +

+ )} + + {!loading && report === null && ( +

+ Could not load setup health. Confirm the publish API is running. +

+ )} + + {report && ( + <> + {report.nextAction && ( +
+

Next action

+

{report.nextAction}

+
+ )} + +
    + {report.checks.map((check) => ( +
  • + + {check.label} + {check.detail} +
  • + ))} +
+ + )} +
+ ); +} diff --git a/apps/studio/src/index.css b/apps/studio/src/index.css index 1fcae91..024da84 100644 --- a/apps/studio/src/index.css +++ b/apps/studio/src/index.css @@ -1704,6 +1704,109 @@ select.field__input:focus-visible { color: var(--text-dim); } +.login-screen__demo { + display: flex; + flex-direction: column; + gap: 10px; + padding-top: 16px; + border-top: 1px solid var(--border); +} + +.login-screen__demo-copy { + margin: 0; + font-size: var(--text-xs); + color: var(--text-muted); + line-height: 1.45; +} + +.login-screen__demo-button { + align-self: flex-start; +} + +.login-screen__demo-notice { + margin: 0 0 12px; +} + +.demo-banner { + padding: 10px 16px; + border-bottom: 1px solid #e8d4a8; + background: #fff8e8; +} + +.demo-banner__title { + margin: 0; + font-size: var(--text-sm); + font-weight: 600; + color: var(--text); +} + +.demo-banner__body { + margin: 4px 0 0; + font-size: var(--text-xs); + color: var(--text-muted); + line-height: 1.45; +} + +.setup-health__loading, +.setup-health__error { + margin: 0; + font-size: var(--text-xs); + color: var(--text-muted); +} + +.setup-health__next-action { + margin-bottom: 12px; +} + +.setup-health__list { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + gap: 8px; +} + +.setup-health__item { + display: grid; + grid-template-columns: 88px 140px minmax(0, 1fr); + gap: 10px; + align-items: start; + padding: 10px 12px; + border: 1px solid var(--border); + border-radius: 6px; + background: var(--bg); +} + +.setup-health__item--ok { + border-color: #c8e6c9; + background: #f7fff7; +} + +.setup-health__item--warn { + border-color: #e8d4a8; + background: #fffaf0; +} + +.setup-health__status { + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--text-dim); +} + +.setup-health__label { + font-size: var(--text-xs); + font-weight: 600; +} + +.setup-health__detail { + font-size: 11px; + color: var(--text-muted); + line-height: 1.45; +} + .visually-hidden { position: absolute; width: 1px; diff --git a/apps/studio/src/lib/auth.ts b/apps/studio/src/lib/auth.ts index 82dc7ea..9e03b19 100644 --- a/apps/studio/src/lib/auth.ts +++ b/apps/studio/src/lib/auth.ts @@ -2,25 +2,58 @@ export type AuthStatus = { configured: boolean; authenticated: boolean; mode: string; + demoMode?: boolean; + demoModeForced?: boolean; + demoModeAvailable?: boolean; }; +const AUTH_FETCH_TIMEOUT_MS = 5000; + const AUTH_FETCH_OPTIONS: RequestInit = { credentials: "include", }; export async function fetchAuthStatus(): Promise { try { - const response = await fetch("/api/auth/status", AUTH_FETCH_OPTIONS); + const response = await fetch("/api/auth/status", { + ...AUTH_FETCH_OPTIONS, + signal: AbortSignal.timeout(AUTH_FETCH_TIMEOUT_MS), + }); if (!response.ok) { - return { configured: false, authenticated: false, mode: "mvp-local-password" }; + return { + configured: false, + authenticated: false, + mode: "mvp-local-password", + demoModeAvailable: false, + }; } return (await response.json()) as AuthStatus; } catch { - return { configured: false, authenticated: false, mode: "mvp-local-password" }; + return { + configured: false, + authenticated: false, + mode: "mvp-local-password", + demoModeAvailable: false, + }; } } +export async function enterDemo(): Promise<{ ok: boolean; error?: string }> { + const response = await fetch("/api/auth/demo", { + ...AUTH_FETCH_OPTIONS, + method: "POST", + }); + + const data = (await response.json()) as { ok: boolean; error?: string }; + + if (!response.ok || !data.ok) { + return { ok: false, error: data.error ?? "Could not enter demo mode." }; + } + + return { ok: true }; +} + export async function login(password: string): Promise<{ ok: boolean; error?: string }> { const response = await fetch("/api/auth/login", { ...AUTH_FETCH_OPTIONS, diff --git a/apps/studio/src/lib/setupHealth.ts b/apps/studio/src/lib/setupHealth.ts new file mode 100644 index 0000000..52b7138 --- /dev/null +++ b/apps/studio/src/lib/setupHealth.ts @@ -0,0 +1,36 @@ +export type SetupHealthCheck = { + id: string; + label: string; + ok: boolean; + detail: string; +}; + +export type SetupHealthReport = { + ok: boolean; + adminPasswordConfigured: boolean; + githubOwnerConfigured: boolean; + githubRepoConfigured: boolean; + githubTokenConfigured: boolean; + contentDirConfigured: boolean; + mediaDirConfigured: boolean; + publicMediaPathConfigured: boolean; + adapterValid: boolean; + demoModeForced: boolean; + demoModeAvailable: boolean; + githubReady: boolean; + checks: SetupHealthCheck[]; + nextAction: string | null; +}; + +export async function fetchSetupHealth(): Promise { + try { + const response = await fetch("/api/health/setup", { credentials: "include" }); + if (!response.ok) { + return null; + } + + return (await response.json()) as SetupHealthReport; + } catch { + return null; + } +} diff --git a/apps/studio/src/lib/studioConfig.ts b/apps/studio/src/lib/studioConfig.ts index 6a10b0a..225a7e3 100644 --- a/apps/studio/src/lib/studioConfig.ts +++ b/apps/studio/src/lib/studioConfig.ts @@ -7,6 +7,7 @@ export type StudioConfig = { categories: string[]; githubOwner: string; githubRepo: string; + demoMode?: boolean; }; export const FALLBACK_STUDIO_CONFIG: StudioConfig = { @@ -41,6 +42,7 @@ export async function fetchStudioConfig(): Promise { : FALLBACK_STUDIO_CONFIG.categories, githubOwner: data.githubOwner || "", githubRepo: data.githubRepo || "", + demoMode: data.demoMode === true, }; } catch { return FALLBACK_STUDIO_CONFIG; diff --git a/docs/assets/README.md b/docs/assets/README.md index e17166e..905a011 100644 --- a/docs/assets/README.md +++ b/docs/assets/README.md @@ -7,9 +7,16 @@ Static images for SourceDraft documentation (primarily README screenshots). Use lowercase kebab-case PNG files: - `studio-overview.png` -- `editor-preview.png` -- `media-upload.png` +- `editor.png` +- `toolbar.png` +- `autosave.png` +- `media-library.png` +- `content-quality.png` +- `preview.png` - `publish-success.png` +- `setup-health.png` + +Regenerate with `pnpm screenshots:generate` from the repository root (demo mode, no GitHub credentials). Add new screenshots only when they reflect the current Studio UI. @@ -22,7 +29,7 @@ Before committing an image, confirm it does **not** show: - Private repository names you do not want public (use a test repo or blur) - Personal email addresses, internal URLs, or unrelated proprietary content -Studio Settings fields are read-only, but screenshots can still expose owner/repo names and folder paths. Use a dedicated test GitHub repository when possible. +Automated screenshots use demo mode fixtures only. Manual GitHub-mode captures should use a dedicated test repository. ## Usage @@ -32,4 +39,4 @@ Reference images from the root README or docs with relative paths, for example: ![Studio overview](docs/assets/studio-overview.png) ``` -See [screenshots.md](../screenshots.md) for capture instructions. +See [screenshots.md](../screenshots.md) for capture and regeneration instructions. diff --git a/docs/assets/autosave.png b/docs/assets/autosave.png new file mode 100644 index 0000000000000000000000000000000000000000..a93e47a9ffea5ff0a58688948df6ba0b9cd207d7 GIT binary patch literal 8780 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 F{|B~b>(T%K literal 0 HcmV?d00001 diff --git a/docs/assets/content-quality.png b/docs/assets/content-quality.png new file mode 100644 index 0000000000000000000000000000000000000000..3707698ffaa775445e1926b4734c223585d928f1 GIT binary patch literal 15602 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 R!apMbNl`hGav?px{{`}QOyvLo literal 0 HcmV?d00001 diff --git a/docs/assets/editor.png b/docs/assets/editor.png new file mode 100644 index 0000000000000000000000000000000000000000..d8292238870e3af0438766ffdca93ff76743b287 GIT binary patch literal 141935 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 z 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

-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⪯bG0uagJMYQ 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

kS?o-{ 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 literal 0 HcmV?d00001 diff --git a/docs/assets/preview.png b/docs/assets/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2209269dde0ece78e787376e95de9942057026ee GIT binary patch literal 27957 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�Rndn0WBHDh~0A= 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 H4ifxdyAiUM literal 0 HcmV?d00001 diff --git a/docs/assets/publish-success.png b/docs/assets/publish-success.png new file mode 100644 index 0000000000000000000000000000000000000000..30f5f0df822c5e5dff8e7e222aae640a1ae6ad2e GIT binary patch literal 13709 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 `az^; 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 lavL+Sx+OExC2@zT00ztjk{|DS!%cB4Q literal 0 HcmV?d00001 diff --git a/docs/assets/studio-overview.png b/docs/assets/studio-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..dc17936ba767e96c8c708b0f6038913ac9ce96c4 GIT binary patch literal 104795 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 q;4fU=OI z7bG4t+P{Mx+OHNI5gkh$q7s$Ps$WK#_`n{6syf*O!1wjNNiBQDwY^Ak z$63+IVRCf~rT{D5-gKMRA@^Gu#shsrgEAMXe+OmSM!~~|TylZOnIL38(Srp=ok z6_M6t+z$g6wE(Ibf zxGplX?^WD<`Zy-k9Bsr|T5Utsb@cVK$F?K0J&6-eXt)JM(2Ac+U=r{^IQ#8KCZXn%lZQa>48D?ttL2TmQaHSEG?{ss=;cMf5w58>y7vV=QNj$FqG`=(Drn; zJ9=}dJXLg|YmxajK?$NzS~(ph^J-gl{dks&my8p#L6ertY(z%-FL)purgi;mnjkWwrM5FAmo#3k!bMu6`YCQkD z4q6-#LI!t)Zuhet)Ovb8s>uPC@$h-@p8k)vCRq_;O!DtBy2$XxXyxDRnt#lfOs64M zzO~zL*_TZSu$wV0yeGV9tAG0V?o81T=)g5r|hD~1%vy8(jq5CYl z5W}3Dy&p2E%$xm_L;JO3ji}YG#Z=a)U>_()!C%;wU|vT;-l4MD)_c-40s_~B74}!K zcKC`bGbR}!G6g1MoaW-GZbux+g1aU=4s=BAFx1AY|#`TJ^U}c~SPQ;o3s{)=d%Y>Z_=>| z$ONDqpOBD7@6CQ=b>m{;!p$g9CBh;jCdE94^Jj*0j?!}luRb$I#&Cup=`7kXe$R4Ux0kA zab!M8?A>fKN-%6g=`L)reP2i1kP*c9(|l|+sRvYOytx86?9`FQv>?UxZ$ zCTT1jQdcIUZ86Ph)WBv(L(cjN#=22?Zl9|mgN zaUxKXSEY0o?MeCNNb${Uztqm!zRv%XMj4L2U;{HY^^WQbp2J$UbO2^iwu$Cu86KLl z>R?P??{i3?V@(lqlNpb-GrTpt%u|%LHxzOcq>h~-U=!bw3Rb|@?@FL%E)6_dL<9_* zL2;ALJvG6z7OAG5yfgaz#jj)0WQ7JPuRCCD7Vdnj1;jVdzrD7`2TcU( z(N%1l&KPFjd~Flq5z4`B8Ph4qoBmfG2DP^e(VM?r?c)f6x?Cg^%=y=4+2sY8l;A@# zp;~d7yyy6bO`00j%1OT%S#*doE_#DB&ihP&;2lx5*{)?4DV~y6A&4T%p7+179*Q(# z1nZgofokRIjGeOnhK%R}5Nl|s4x~tw5-l=7B|Sl}u3ej6oYe_U5}az50KoxqY%V`l ztUs0YGpzJ_6ayRxR840pUZ3tuL?4P{&b86ZqUK79AN!#r?#O3=+l$n!xI?d+ zUDz{wIGA(FX(1XcUe{X_vhvoZH6YE3srN)nq=MGPs+rej23k*_ghzHmfB3aLH2{~j z(Si)aJvu(FS8nf$N<20lw_9^2DOcg?oSNGwjIxEjZ$>(;I~g|PcGzsCpF5WJ^$Lk6 zE`B)pc~NaR!VkOl-Q8i&-~44FS($HujVif%GYA2=msh1k- zYH#V{d&&O!7k{<*9HYiCF6nd$)P<^){7 zN_hENHXKWcPj1$bfQhO?MCq5?c~#DyOoeaYdbo1ZN3yLmfE=II!^6@MGlj*hR?Md? z$QZyHr_v<+lW#3Q?Q#x-t!=&5m2|=GuLd?@3)&>IiJg7nxkoiRkW>}B z5mtkL4}Vw)=#O#W`+Y<0s2xo(fv&B&$&nD0nL`oe2&5$BB2`~m{wj{<$89X}T*0kA zP>9p%mylt&&Qe~dHcy7IQhwI#n~KrWifKl5|I$1qYJtP=$@BWPI9Q+(_yN3V!1HtN zUt>7b75j3Mj?YG zuAp4&;C3B}%&8unm_vx$ef;1M9?`u>cbro=RJUD$O-m}Qqr!|k=Y?vZ%D;^Vg|~hq zyZbpU=Thq@OO-2l4<0dd7b!Ovs2dg6UfppLsl9yatj7r@>@UqGjy!*m44OrgDpwrk zn@)ls?fP+t-E07Z&g&@tdvT!l4;-h0_mes^-Gy%#*N6>u&d0?BaKx?chdW*Yt-@v& z!?3FgQ{klx$BfIVZqMDpAs}22q*TQw!D9AS7jurq-X|weE3>thbYSP=h+iIm+PKF1 z!})M$uT+fGg~&*VgKs zUXAZAu%37|E?J#j?d&{NpS8{YtN_&+2!G3**l4}R<8m-_pXNGxRF$)&R$mB8tb7$_ zapPN<+k0USEtFqxqSos>U8i%0?{Hl_sKKrNU|6r3-#4kk45#T2CBt#?#|JA^7w?sL zm_gTL8b)E}7rtXuCEa|a`sAr|f=qz%6hR870A>dEo-UXFdD zli+ikyah?`d^bXJ*vzKthjb^cU%x8Q7uD`1Ce~Z$CtAA0764=6*n&r!20Hftf-R^` zrRis)P8#Ot0aLe4<@IXaXvgP@#J+WxaBfQe5TroO>82!TWm`s2SICu{lODZtd-nHc z6MwIS-DMaCs~l<@xFiva+D3wr1B*)TMI|%L$|58?Ffj;Ag)*k#6Po$W@Tw%btwC8d zUzC>pehJ*e@Z!SJv52i(TvY0um&Deh+1I;Tz7hNRiW zooxk2u4{TbfsM!A1!gfzKMXYO#T6)~NQ|m>T0$O1;}JEKHoyjTDWMq9Yrer!meBuK zh070~K51h7?h}ifI?gv%VsEai;NF;3P}u_+YG1%6y?tbAb5XuS8qL{~u!YQLxR<7# zfS8EIp-MnYuF}nh0QuQcjNu9$P5(SkXaewM5io3lv4Kqa{sKMakW#<^nO;<^)_Yr{ zX`JlvTGV1v;t#$S(RGqeCTvrR-gHeRJspX{R)E<`NjWzzQzvQFxxxu_=l(&7v>>C8 z2lB#-`8F*jD~0sWaM-a|e{c-)|Ij1qdi`Fe{$?y8kn}W-}0UH=eS`l;UYL?|YdBksf-s$jdGK++~aMENa1x={?TuVucG^O5axM zO#O72)x21L1D3UkI{+mdxz9=dO1h301QgW|tn)kU(*-tz5)Q0k%)w)T#qW=5d8CB& z^Iu~}Zz6uSc%W~_1opP_ zE00uVTQPFbd%2hT;usQLOk7$#vFf%(`5ZH?RB6L1&l-LXIV%M=ur)iPlivIc3r{u zK6icFn_Rkz@`PC~*2|Duhi{Z&-+Ab9sF_Cub~hser2xgSuhwToXsutIhIH#yq^inM zOL>X)DtWi;vi@(j46Txr_NcGbKMi(lBpmRKhWN5cP{#*~Rlitx)UD%+kiYN#+w4T{$Np zL$^bK%`THW8)sA^A226Hq21Ck*xvMPF47*kAOkIR(ArCk93h*_>$OMTC#@^d% zrmTdFCY#n;_4PAwO`?R12;nYNjo25)T}})iQW0+&`;JAbnM`#h^oRc?6|!uT$-s0vt5?P5~tZ8qY<{K zqkjvy6`c&0jlF~(by@g+p>Re%*;n{R#C@!S<`xb4bh}#BW?mW2e76zt&Rx%xmhO{vI-5E9?P!dl!LqzlpWB6n z&SyL0{%@>@iW=L6)ZL&oO)=vN3M|UK_i*lPMTk$xWjUChVWb}0ytVRTn_9YnI+Et-Dcjkau-q?vnmKVJX4jRL)s=={^J^i$%I{qSuDqzVu&oZxP z4t{QE-0;O?V6lLgR7KnA-r^d2{A|wuDYJK6bkjJhY8Jq1jJz^&yvwYZrc=tJ-t|?J zzw7JBpjQLY35e2BsSg;FxK#Rsq}A*%h)b>0ctP@QR_|r(`-nwPB1Xf12+N7S3*7-; zX)w4~hGV?MUAyQOJ`^qdaJ*Yx*IhR;E$IF25J&p7a`0?4kUEmfKz;y98D7W;dh3h` zBljF^Brh$MP-uK8tg(~v#r-)+E5+RqIWUJGr7tAqI((d4!8xOf7#Oz8Rdafc1iN}; z@+e4hZJy?)OYUhM{VQ^}hpi8#8c*k3sQ4H7BhoI9=c!F3hdulNmFG{S5?&vkpxr`) zf`YCI#|Cs;KZrd3D6{bC$T3$|$&PjiAY26_PrjwS_jlGcLgu4AzR{3Y9b>UKxsn8ai1P)$9t`P_^lYRP~B+$bTZL!DBIZVeR!K}o8fR;xoU8D zqs}jI%*#O5H)X<`l+TZSR7UAvi`}xeci0_2e~uc>ZHFXjQcDBs%c7H>iynP9et_;q z|EVd%IVix=tyxdMy4=-y`e?#NF%RB_8uJJ=@%C>y!EjI#`FE#HQcd!Bl!|M*rMUC!Yz(IEI69gp>8_ zsie{0Ht`=x*fl%a&yohE)bl+ z`3qX~e=?MroQv+f8LJZ$r%$N<$T{vC)&u1zDko-LmE$yk(lO)7KbUenB(OB`2@swY!F^OGq+7n0DYang6HwO8f7#(Dl=(EXAy z*X^ed7s}u@1Ltl+0sYLyd*LV3r&}&T92xCHE2%|i2*9>Y6eLKDJKKuoa>rXilh z@ae9!K0~=T8a$)?+bI}~uBVhvY0)W%=LdMwqqT0BPZO|2wp>clh#@HT-k3mxj%GGF zVlF4@z19{Jz7vwsm%f+5tl#hjWP~f>sdJ&Jy z5}0)P+pLC$ohdqe1oE5<)gNKI0gSWXs>s}pJ}K_H{+UcJQ4`p$r|^PsN8P$Q&qohV zQBV_p0uX%txn>`{47@{2=yP5naS$K z5eVp~VUI)3%!hN5on~jz(zh~)igkolF6y>etjG`Qq2*<9jW&4K16UEfy+8|Tqty`2 zGf%_Wc7f%a_XHx=N>`+Z0A=q>?H9V;x5i6JRs>_&e2U+GGvXf1f7=`{jN}DJWl~#o zjsnW5B41LXB;wN9=*RA8*iz)y$ciWn?uwAG%~WRvMtszWFSkpEjg1S3IOw^0k7OTm zJc^bYB-}h4mMiVT4wh1FZ{QA8)i}z4i#|%1L?O{+!sQOjsb5vbE8fGEz;ND?nER-d z<3IC`-ld?g{-1eAVXyTXvUBC8ZjP-}fC3MS3N_vG;E`E$c~OsQc(=yweapZpF+~Fx zJcd{#RQOi$(Oxq4-R}?ogKwx-H)}J)g>d2*lmO-@Y2B^WzHG{>ULi-6Rc=+dzvJkZ z$#6#BZxoT7K+iW=*m}eIUKQj!Dcm4ta+TdRu8ez@Aurns)Wkl5rT5=2toI= z@85)==F-0rf+Xga8{kmD*fl=iUE#l8ChFnxjyi5;Iqn)C1R{HXw-{XME_>I13A?34 z81R_|3jYDsrwH6r3Z3Ci=)3IhnF$b~lewH3KcLgk}tZ47$28=5RwB+HO#tf0I})Z9>hR5jmz zUm09!ntXm+3zUYms~f zX?M@F3wC`ws37fk+a2;#2|NCd7Dr%wQ;yRk*%VTh`6{m5l zshnck@7SAqFMh~RfP+OlYuh0#+i4_7zfeL{Wh3NBesI|KLXZ7F`b4LU=+GBNH>w!`9by<=H@xvl#_ zIAj0g{G~b<5hvRMeH8;7eF(1b`79IX&6FgrePZHS7vHxq30i_E4r3hXC$+h(*C9IP z9dL3BQTEDYc2SU@t?6XswjQP6{f+Oz`z0AMc43`(Si5 zLHqhhjF5MWPd}wyW;sPNnPg$np*Tycv1h4}J98180i9!}Eg2RFu?$r2c8A(q!&twKVxjdYJgp(h&#^a;~HhUzvw zzMrYgPWv|H^NM?7tx4=|O$p_)RHV`HSFUw9EpnIuf1vw4L-M^yl0lp%wvT_9&t~nF zI`QWn7t91b6WKthSOVkDKoQX<)}7VaUFf%SkCg1pO)7>w_kVm zgKY9j5+4mDfGK?9D){P*BbMSsWxmzaK|%j7&B8?E`m^3&+@tx7#qlv`77k)JQWeiATF23llk*Q1}h z+^-YoUtv90LDquj&Ak|ez}I9@rEB8?ef*yVg!Xqs$i85>l!2S58c!{g9s8-fQrAP=rtxboC z-hE^q51aBM)eFp_v)u3-q2?0(Vb|4=cAmEAC%6fhue zvT6p_`aIQSTYyXddCP+A0Y$`sg5n+{!T<@LtVY?{weBSg`m^GxTFm zL`fg%WMsTUrz22JSI;(m;N@ZQ52nAGY`5C%JmZJRFWvdvJ1b2R01+e)3^-ougKv~m znXT80$n|x)Mr84!vT}p#`1SNnd_%)O>P>FXJ z!VI*R47^k(qSS3i;LhN>98x5n3}3;+=T{7midPU0RV{Ao`yP6<#;GdoxcRX%3#NpM z49&{QbWq2k&FNyuF-~s@?FmFX*2X6Q5VJq<>MIRNC+5kNHwjiZI?|ClF+t1L2$dH7 z?y_`WF1ob98Felq{#sX8?=pe=n<4*50V2DwDTwAL6bo@Mo&1HQxEY~zZHME%qDe3H z%$Dp?v^vmgk7-G&AC=4_#P(iV%NXw5Pzs%qA%j~>B{xO zMXfc|C1hQ2$;;RxLv8hG)5g&c$-ca^Pv|+>?1hPhFC1;Y#20|y?XFLhiClSp%1MWV znQb3V)A$OpA*yn;+UbN}OcP(mldw=ObmjeEKh{Mq<;zlAfs_e=(`f{;7Sp-fR3+*1 z!T2O>!3cyorS=16tv+JPQjp6bx^&xB^-9VNN%5yPCK#ltj8pY#BV52Frd)twJIg@_ zc^he{U0!Q%h4lda)L<7cDdiX4HH4;Tucd6QgS@5l`0CQ)%C%ep+kOa@fg1QYYH&=lDthAYqSb%VQAf3EvdA zH_MnqILwGo)KDRIuCZHhcyh{msCUOj8VTL8)-7~=!#Jnxyxx54^8FLJdW~yyQ;m>x zBCss8yl6V`LE`;${79y)EuvNn=p59yKLU`Q@I=56qRo4mHt`T+{FhE(U`rfPuJN-J z0GC`EMZpatI6Y>UycFgF>n*TTUEH6z>a-nyJ`=S|^_nZ;;BXFGk`&qd=@`(e+*VK^XKqc zh+BvS^?`YmW z=0g88to_Mn0ggx$)}XO>m4KB(5SprAv+!Uj;R+?l<;NnRMH7!3Yx5GlJQx17Q$g3K zu$gs?Ix;NZx({R=WhdY+&gvDNo;p1F!t#C4aVc9?WCHA3n7>)MTW>ZwJ$T_gFGw~h;IiRlF%bd7ltFPm#RfH~~OwNloiV9IhK%2S0TYUdQ3 z9VDETz@${+5>B_LO(&7tyV>(K>cBW{z{i~pqQiaeC&r-?r@xW3xbgClMb@A;^UCN( zK*e5<0qc7M=WesmuGlZV5ERUGIdxt(GA_}3> zdv~Ed`-Ve8I_|>yXb+szjlD`-*w@cs%pAcxbe@7gvXUWu+oGiDycE2K^`X@iAj*5n zz5XX!H(%Fic@PaT$jH-**;uDv{FJZT{BjU`>xR9yN^Bdi@@p}53?6YA&(lyR#u}F7 z&}|GrGo6{mL8fq8_yN4h_Ul}#&AZsOkQuGKH02{vX2Y!@M|2!WRLSRp#-9ahY^BRd zr9>7zft&0l0gaM*P-FkSDvZ3p(|nVwK)h$ouHk+b4jL=(3?QjXTDKh2Av0QSSoQI z4CpqH%ubKk&XC&>;d?J&T*dY$5qJ8~i`3<^+eTvvZFFv@dIK9l=&A^V3VP-@6m#LN zI=q0Ve3(?FTNutunv9;02i)QF8+e5Pd>E)b6IxYUxU2D#L7399)T}0sB&MW+tmvL35yJNpl#(6@Y|4PvNY$_6R;^-{? zO;$qL6i4giJ6FjZ?_X@-9i$HwYBfRAZ0fsCOvk&A4J>e#SjlAt8$$k2p#Bkc@&9WK zIpF^E-U*BirMk_3drC{26V=r=#_-@l-O(-1%OCSJNoY-(!b`~<90B3v=VXJTLlXDx zrU=iR@96}HdJPc!?RddKOJnJl)KWuus-@xjmHu=kjS)=n=Wy8TN0tRTzxVuIoIuht z?h*^u@G1li5y709Aee(goHGHourQVDPWM;)rcCDw_QP+(-!V)dB5cFiHak0#p{qjz zn9oUP1JRKR{*t&qd*Y?M6|{w$LWj<`=ka+`St;{ZEy`aB-K?KKjXJ`fBEg|c-NaUh zQ;uqXi&!#h=7FD9-ugCLY6<=oKq<++xShWaHlnQ zQ#floT8<-QjfE*F(DFk*XmDA(Wd6>;r-VAWxJ+nPGG)G-OZ))6&>lTmPLK5;@=I0R zp)uZ(m)CNd4`w#{I`jZiu%`Ma**7!8f4x-BtOY&Q_1jYVComPvLP&?f<6;;Z)9x!? zON!#|CR1FtT$uZ?S3lbXx7}N`-S1;<4d;hhz}G4DUxtuu6H;egYhmnKStSVdm&Fgr z)j2&(YkAKOk=3Gxr(dT}e%{?*5QEC#f+RKh6403J6^t_q%F0F*KvhL`?Ts9q#Ab$D<7?<_|uqfc_Hh-{r&=!5qOGYIruJ*gl!>=9LPmo zTNBcUM;BUGw!Ho9+IxJgre0aK%xTo+DcvzY3D$oZ{OcMK`WG6Og2vW&W>dK1U5^jU zZQaXt>pECC^HD$7N)>K{8*3`(j?fUgKkW+S`_oo}k8)*~2yB!KsJhM9%B(-HY<295 z1!bnJHEQ|nX37~9zL0LI@-;U4syYi<#fjr#uC6gI?l(~(RjhQtdUtxt3CJe9%y`uZ zqyMIc>iRYNW20x#)Q4gr0bS8|@4NJ8cjn`?keP7@*%Ve67jV;Vs|G2>pp?iTR#l6X zM6cp`ZDnT-3nOcJ95*+!T@*i2S&xBO`dHJ@Yj16izScsOP_Pa8am$HZb`j2YmwznB9bwb*(%2*l zE(+P&+@WkpXAsgqi2W#I0xh7OJ#i{Fq63KvRh2pyv|?R29hT#Q3XIV(lt7G%dlbMX z`{pRX`M1$sw;x~n0*q>mY^kP&oq8B`c5*y43qNJAzjHL(9z>Uq8hy@T z8^gtk3HEwad>qUCC-}$1=cC#$pDk~wC~}rpC#(9#Y$l^1B)#k`za@KMGj2IVnKuH3 zZt(v8t9)c<2VZD(9?KOf+PQY~@L`*qD}$+s?MEv>`zEXx-gLXI24D~8jP;&4kdhY1 zQRKN97F_n?9!LGo=#`&XF1U-ktFz@p^#kK1pE@@jjy1_#5JIeF9^XN<`Y5sUBVCWd zPx%~_sBvE(t_r7Gm~%$y5Bm7id|=;Jt(Y_xX_nO3(=!3m=jYK|T=Rm6CcAy=^4e&Y zSuB{+lK>^(f0slEN5w91@kL$TnIv4P0o#>SDGiQtTnt0TYSL0Bp?iBc*QE^-tA4n(~0O*CCqSFTfp5m55HJjx<(#*SV0G#c(d z;>58;SHYwD0hbuL2-{1y?ewF=QCYhBKrHePj;+c0t}esh(yGT8gTE_ZNW~=~QDU_& z_cU(f$5Eqi%_eE+n^e)Dso*iv&l>EI*^IAs$vP;FvP$8b!|hFr7xpeD9MZDm zukB2|J5x(<7j>N6`dO+^Syk_biS@zj5~S#jt(z5=606}kZeX4Eri4r(pnxK0Zj90K zBG;9$?qW*wfN`_p+YFsO_p7cYx;2I=Rh?5^=R%yuAv);-EzF8neMc2XrHPuo9@x?@ z`=fC^k)&p#`CBl@q86;CmevFT@0Aatz`3Cn`nia!I>+HC zqQ5KDH%&ty^e;N2!b9~nM%3@%+J9pwvif%>qR65v9i=*2xh*GHb_OXn>U9gJi~x?5 zS~2XpXmupY3N^|3`j8c_au?%TniQ;`@L{br!Y-JxcDoeLYnjv+B__m>68#()e}vJq@s_tqE*O)TzEA<|;V0Fz&IjFuUG1pM9t7ezWH=`crE)`Apk4W_K$c zJCN$j)CqsOK>gv05Gl^HoR(VnX!N@^OyKXWM}QYY^a4fZFty1Nsi(8(u=98|4@P)* z*wbaulm9q@?WnC+?%#pS8Q`!BLe!WjjbAiR!C3Qav)t9|o6p%0Kia`e$GCC@7~<+y z-IGykcpqUNbFQh=i!v8Tp%SzD*PKNpS-{J^UBV6%Vrf4R zLEX|L!B7MyseO$@h15bfUAi}K;#es=+L})11n5v8>OYmrG@?!F;-mIj@XYR3KRh1z z_C`%A#0=H-IN-T!aV~+BN6_eG=?3yJ?Gu!g6rSu6%`SwQ-s550Eq_mFOlmrq2 zenqRCFQ^5AWsn>lXAcUc)i?N@v+9oy!7HfXCx`>h-J5917Pln_X9qm~G`EZsFG(GB zk(^ihLCs*^Ys>RtmeMs_7C^p$`||c<^aN)uNa@E>1#FYcA*oW0ZKF#Z^Ut7}dgDRe z2M6M+t$7XK*qUC<*aAp^ z=S8XA9?&<^c|j^wrN`bI{T3SR7W&Ym?Xu zj+<$7Z4BqObEnCS*4IwkP@40cF;?+LtYnfto|}H58mvvl?JdVBaL)W5@@SC5>5c2v zCPksAi~#@O&O@HYpyx(vxWVYkCFHlJgOl)B5uYB5p4kTb`A|BxniL2{I!~jv@B@n3 z&dhOkaJ$ToI?1Pl(T&}{jp`hoVkQkP=yB4l@q)n@p)ubIPMXa6>RrdF%zh{At!a0~ zQTS7;R~4ECxYRfRVjg~(>c5-~#ZOa$xd6~+5(%JaeZj+4TTsf?;r&AaL)2>1au@y@ z(yD;5jmwY6Y6ofwjOTUbhij3SioTfo$$AZ^rWkqEUMp`IXwKmsY@@ysr4H_UBOjmL z$1@w=**qOLj5AlvHm-K}hc=fQJg$nXW2QqnxfLdna@M)v=Blt_i>^5;+GxQTP9f7U z`0T+H+WGQ{ut3F|`62%~KzdeZACV8{P7XbS^gEva^T3lqLtVlIUpxusrk=z&Ft+6Uic5aezKk+Qdr3Ia4Y#LNg4ks{72NW$^J~$ktWcjHn_-(vd zg40xa2;emB4F4`Pi^^rqs`61IyO-d!T?1;y_=VP*Z4Wa(ZVeJwlV1Bmztay&y{azB zS>hpAZO`0xATUj^r5hpY zK@Uo|UH74zXDw6=&k^wXYb_x6c$Lum*C?;MV{_GyxgWL(&Z9mOHI(UG;pz&sQIG5E z%jOY>M^ZGcZXWjMe>mKZH6Irnugs~?Y+W@ln;K34;FNC|Xh-*sW#u1p&|7xq2qlcY zrFJ=gh|k7vG+HeKnK5eMCn5qLds&oCYE~Wt*Nat5cCm&V@i~PD+GAw9SFro~1PM{$ z6M(yMaXl1XcT_|@+GN63AE*|pjyuRWfyOnj>j}HF#jpfp9D0LnBFBP!pys)YErwbk z^lQsCGA1h7>vF)p+z_E{rnz|}xbXZ4nMtiQ<;z%Z7O)hel5ldQ=x+Pvn9>bbOs~Cx zKEZB5bvKYYvGyu=vKz)S;AWy^A?oyXo1z+#FORFewA~=i+eu;0Owe`nI%W5#N^se! zn8}Ug+O(!y;v=XzLP7pLhKCtpx{plR_Qd5Xt?W{?CqiU~{xjN_cSjV~+^scy;Tv1w zKjt9AhUW*8_&phOC_QYt*!A1fDvO+MpEGTR3JdD=oK;i~4t^+z8&eaXRom1ddf`>W1%H@hWOSi8=GE27 zmRL#bXnm-JvqLxpFOufPn|g^v3gXkVD%1ys`Kkj8j2uk^lrom+Odwif+@hl*wWH<@ zsX_;J!ATS_Ttlw+VKGu`WfLZ?rCR3ga<+{RA4@HW7kV{WXYw-#->K!;YJmg!%cSwD zu4aUKKr%8Yu`fy)19^D???2kOV;W`)+bLh0jK@D$(I974HPTT_VisZMu2v4qQ7otF05BE?mA(Gb+9& z(EcMvKN4{uzkFPI3!i0|p(cnQ#w=Y9OK_RCyy-^4gx{j&7{GJKWjx z;B86&EqmTN+*jy8`CwH_6=H+=;Hw>J9cd9#^b9<_PA+nAsdgeE*`17@_9(4+GY78! z+1z2y2`zye_E=}$&Y=F;taflNL&CwlSL*$TZ2GSU5JBpHp1ChP)J9M{GRB~%Xt=w5 z5w2y;@*@yDG$u_j=r!!5rwV$k%f1x}-GmpjxhAeh2OB#{Z-if=5L+D~C2>fsHg4xo z^iF*Gkrbi2iB+l{jozN>W+H_jZ|&gfmhQV4556e*ShB7h=V6r~JGq*}dbufOgsY}% zybm)I5{a&h%93I-$Cqzv&tB zGp$XCdVXZ*H_LBnH_67L+tZ$P(IYU&W4VP+7AN4)dK=epwx3{Ek67S%`JVcM^0-xF z_lkM(JZ{;&eoC{~etD=p=(itBO#t-#jsU{^Y9<3NSlqFxRYmN63pdjIPuPqUGlF(I zJLFv+XWk-wc^VMod>T#`0{=tZ{=OLhEZ(31DN{Dd7bUhrNJi(U^>6#}>-CJnypDD5 zsfG-Y&7wgJvHmcZCcCDRiqT-L2*aDVUtV4x!BuK5DE)M#wwNz^|6NEG0paMw@55#O zrwr#%HVq4H7om6KzNYIFFVPQ=+@%RMd`ihh2#mEE8AxI9or@RQcOq& z6(aKb;7n+J?g}~=tLNgPy8Gl;5|~}qjT_wIh?}7Ho!N4>3C1Ne|3AoVS~A^X&eh-& zOrntdxQLmZN2YyjF!{3b6w#$OOT+m3UW&SUMR@s3e*g36qB$?^rBwT0G*3SLp32EX{~b>5Fq9@b5l2r{d695F{Oiu=EC5OTone%`Lp6x@PY zG@?>zCX}t0atCT<5sPk++Q6=xcsfROn}xW~;|mXQtszyD@2DG|{jC1bZh9gvbyF8) zZZ=H5C)l1@Yg?Ol# zF~HXei`XtRJm7#3^2<<|=aSA9sD}nCq4)I@5KOV`*`YRr*D!#{L?z>2Ts39Xc&uiK^ylHhSH~|>;)Y-vqw3r_W?)(D^M9cP{ zZK@An8S>waoRu!BrCJZS?-s(dZhAP}a{ZeFJUq1GL-Yu`(<8>jrs!q-a(dzl+bFLVS zLjDieTD#Qo!GvhUowODs7|{cl;q8)KL>s9TaN&yCj1riQ2LEp9MZDG()7I=q1g9I54~1A7OB+pP|y58+VcR?*HUIO z{xZN<&V~#J#4mAoQ)HY>7Q&s+$-wwOQkFaL;!#S$wiZ)&7o!d$UWy2TRN(eF0+jjz zNmdww0~}j?d#}K_fJjeTY;rV+dZ-z(DHHla5i739e0iSHM3k% zETxbm`F!!30n(cu^Q>%=hLH1G(d5;2%uhy_P3i<-l`WIbR(*Ts?)dwGT?3;btsYAk=B&JUb1KA;y}G71+U0 zokEt@#&>4vcqX468C4j?uu^@yUoS8cM=F<=?0VUn&F6$mJToPVq;xVA@R25AVj?h` zoR0GO+AwG4)n|1>TLQM%_WM`w%4>9)3I^dlQaiJCwZ7Bv&=C7-c1-gOp6$u;aGU!U zm+?NXiL6)yqo(B~r%XpH;GU$NvB3N){g9dX~U z?tj8-`<2>ZdHUAbNmZ>Vrr-3Uo$D6=a73+N#&UfE)k1Qnca^`(0U|9FG_Dd@uSC{3f5%hZMmr;#A#H$(Hj4nmVOthd#+b=1JNT;oyV9Eb1* z!6gW>eL&br>$EK5&ePaiI5prD7ji}RZC3jkDe?7H;OeuFF6MJ>#Q6FT_MbJq%31t% zeIC)$V9$fiPa9i8*~|R;X60Phv8}t6x^8Bl!3hYnbqGY%t2Erod0u?vwJN~rb|J?_ zTn3%E)U2X~ajc!UZn=X;{Fq!mi&I-Lw1_hiTebp2auy|M7da!casx(9%YUAEI_H#P z89^MSSJtUlBW8bWi$Old2O5 zt~utUl1i(mRKC>Di0KMq&`Jk|*YWjEhB&;o+jC=|msEWZvfaocQQJOQj)?A#32^5w zawsHfUK&;}x$K_7ZCMz6Ab>sXTAQ);NnF^>atj)$p%#Fiu{F^PJfF;V zD1yQZ2-M%g$;-++{OD0(qsu?UNpC_${;hG6u%hf8vdajb$U(AmRAVs9G{eU(fW!Ky zK|C8YBZDl4p1LjK+o8lUhGs8atwT0u-#OtOt6cK#ans#a;6Af(h!x>YX-&D)kf?Qb zR_pO#c3X{2Og!vYX-;0qHnF+5qS)cN78>!zb(6jVs;=!>>O}c_4KKhcRK^}xgRHNP zO?OQ#sBv~$ZgGGh=4V~jyG;@XRslBS=PwI4{p0j1-zcxzFRTUG01w-nX$^Ijccb|Lb*VgWtn(6LUtE*OB zmsJGseiu>ct$V043q^XJ#Lh-~eTERSY1MW+a4@j9_k-y}Wu4^!!NvB))XIKW=8Bdw z9`j%eHvG)_HnU&&C6b5R$uB9CZTaV!m4>Co07$&{EDswKWHcIc*4_0&gF=Ad$L|HnBj3CJ#)JUJr8?bkHRw zP2=B%B-Rru2~72+Z?kIFz#w_zFb4})6@@YkS`WJaZ~>Wpq)Q_>EhXkv--P{QgCFLa z8`>OLmW`15p?utL%VusjV{tjzpr04#nh0a@!R*S8`B7a#$*IBPcD{flB~%Z`D5&sI zNb&ty7BN>}F|SkZEx-FrottjhC3bO(}cW)q}3jycuSJ3sTAa?a955=2H z@+@z@>Jo3p`B7b&m45$Sp3#=%q>6_nE7cz&Oq$@Z2%A1X|HtNyr7RL6PpbC7h$WA_ z%J39ueK+<~Tz)PeFvm2b5;}h0lcjIGn5pX>v7tjufX9wTHP`*M3XO zLw~q~^GIr&rbQH_m9^8K(ZngLd)opAGJHC@O7zO(SDk%LzArP}=hP~6Snk(9vt%Xl zw*1mXB{69dh@=R0mNoU*=3#BF)!y@|-rn%b$_uA$%yM^ZB*(5!wrGW-Ko^Tnu;a z9=qJE;~eB6hsuq6$fj||jP5*7G)@d#^N~1rouIjVvrB3A<_HB#_yMC|BMuxPC}*$7b7tK8 zYwe=OQcqmzu`;DENdB%(sj{Un{+y(@zXB!9{B{czC!vrymIFY)+1Rz3&+?kHXcsjF zaHJO()A1D#akFZuxbhBhxRxaTPDn!cbH6KE)PFSO z&_l*E+y=FFSCh8%t{jZkn6kJ1eZ=Ux$K6ii(o7pX^jzu$R49}I&gCTj&nJjfTOvo8 zh*4Ki3B%Ln3_`dU+&ghylwlqIhtJatO#rJ}p0otG_lX;pD8i7Mb&?Befe@Kb!Ku3V zgSU<&&(tvyA9g?r;BG?6JP|V7CKjBEvgLXuRDj=Ic^aaldA1}qS5g7X=@As8Tt`YO z?bWWl9_ZC<49VMZQxzR#fE2K3K1aq|`RY#;7|7+~D>3_}$dFz;uLX>sPL0D$T4WLy1Rppl#OkBRI&AB zhFJN3LS6)$p4f9ie?wkAMueOw&`rJhGg&r&T1(!3znfA9iDz~1&11s9cj|pi$&0$7 ziFT>AvTr}{p51x<8RU8O;0Gjh?r}+=++M)2Xm6c^*qdq7E;mS+EWaHbK4^jz{&bTR z5n4W!d2jv+7ei^XdYn#jdhX0iOMQCkOcPkgcv|j;i?V#$^P!K5XSR<_-{>aWL#ca> z#O>xXwc&RWS9%WfxTdkg5@u8~RbzRW0%}zl=d!vpefIBT|3i3x$eD2{M|@o$hWiFrvj1(De0m#DOd*GkLfi2D*77^eWH$ zt^zIO3oXv1Q4a`D8-vlej{F$4tefL#i8gDOtJ&AQEjC7y=L<5YC&3TLf1+`RL02v= zxAV@mW!Hbs4DU0Z-FkFltR1~}tTGnYWDyy7cnpqO`%BDvT^v$x`0H5g@0%h(r>@_v ziH)YVCuImO&W?FJ?$l}iSk4o!8<3fmN8uz zIaP%`7H?cFAdM=f!hVflcaX7x-O01ntEao$%V0ne^d&%1^l@_!o(uWUkNc%m82do% z^(iixVkPy(hWnd2c560zBZwpa7S{2uL81(p(WJ2}H(D$X3yG$GvT^kKjXj=Ff4P?k z{;Jhw5!lPv=;`&Hip%(|HJS76CoP&AG`wA`_4LP+8wE1SR_K$eJg33m{^!d=cZd?O z{cQxLPseT-lWUSwYFDD6vJ2_r)r%(K_n8s^U~1KSAXav=tbg$B$R1m$h-*T(p2HcH z!=_6Uy=Miy6tc3Pzg;&=3DY#`d}fFy8UINplF{By+5UMLNswg6vx&y9;W`y?rCPT+ zF*x-%#U&DNZKNj0m2X})`%|~gd8g8@^Np^LXI^ZRao#7-u~>0xTbt_enxl4P%)Yke z93+j}kL6oMD|3|~i-lE&DUt0+XEdw^UV`w)V*=!Qv3UME+^R8;y0WhYr#+&w%{Hkh zQOQp#VcR!4Q*#_DO>x)KW$^`S6dGJ^^^XFBQo@M(5cLB?_g1DT^hVoWKip%G<%gq| zMURrQV~dwK|1WJXzWsd%hVkEwC9l1d9S$K~(iWo<#k#Zde+0|f(^7cOAx5W~?TH*y zyk4HBufKc!6!U>@=r?%Z0fPm8U9>M6UaxlS6F!br61OQ!b3MJj$PYHR;yN# z9L^Ub&0W-EhLg=VYtEn+e!X!!ttXCO^e)aN19yZ=H7-3Y(Jo-;ixXrTd{f5_P)1nWtB1hK-KNps=_?M()KI>m??QZIB zbSI$q;vQf3l`*7%QTv{EHm=HCRbw}I|=BTx{-OsXw*t^X2v$nv; zCGrMW28}*5DOU=Kqph#?`O}79)n5_`8yFUO0|7MJKJQi1U$ui()n>qWNoKF>YtE-P zPNiaIYUk_k#jxm;KNXHWmL2z$bhBAIQc_WwTL+6s#?QppeATizUII!R9OZhh3gLhsO|7%`Bg)(O0|A#*)tS+kkrB3~VYg{# zg4<_TdKwX-dmvAiSQYP78p%HeOeb@>{ecXA2>90D*3&&|O~GnDTgejOANbwH?WV8E zY?0vGE?Ku?hIVW!7-{UTRF{``dSJ7w#240nMF+36MVNjM?v?^Ue^f z%Ag(fu|UV;?vZ^;B(1VUwW|Ha$`**-GQCH{X+et6jT^)j_Jn;QA^7b#21nl7^Xrv* zv0;j>+lr}JEF$;K43?kj=t3fFppEX~hWlHtYU~Q2PC+}D7 zWGWyahu%q`_vtRzC70+g9>P2?-P`+l$(W-3=!g3~Q^r0+^q+RRh1jWG zjL)|o!pQ{{5nAA&J8cx*Lq~q{l?{xkFV{~{lL?UWa{>Xc^=l_f014ZrYG4qmJbYc0 z=!~Y_c(ys=DY}AHthzg^NfnZPvtjEec0mBsQx8vZ*aM`voFVx;)7D2^030#w{GrcRQ)azg(SCjutgq?k7Hg zL+4kGM3&%i*DhdBk?TEgS%^mI+~@nzXC1?vu`l{vTd=rzD>$DKNJ{!toTUQX^KaBN zFY`e9k0Ox$3=^$Ky$?*gl1ZhZxwJoiUN%guF^9EIJG9ViRfB^m;;v?5sN7f2@`P<6 z0>J#{=Oa%o3>2r-+!gVn5^gIO!ERft+tJcb&XW33ocBOlSY-5WPG;UA*uWyVIfmr& z%)We&>v7{6oFU{=8i`&ly?lkakRDpwTA^};b4XQLMS<>)ACApdJ9#ah$1jD=?K&#J z{=i%k(W$$Lm2g=Iu5%}f-iP4tO^l1WzN?Ro_+bzJRZ7fF-?!2ifuU|Ox5C>zSBpeU zTKevKdk|%*?(s{pyCLZPw1Y*J&KT`wSc1rwT469f0tcH%*fksNTqYQ4YvYz){h_0i zkmkM0#%k!A<_t5{A!*5MIg!P~jNvAwjYD;BKUC9eNG7?YhIsOJzn)s_1F#V9N z7}hc_X?IpxywWG5XPtd6|}(D*v&_iUF=oqfnxdG=eyk+kNVI* zSMiVNgAiF%kaofWhH>NFUe>~r+)_X&;0z%J=B4cJmA=$6fByO&7j$|T<7xd?>sHv= zWf8t_DNtiQE0AqCSIsOa=lUxPzLkMZ^jADrh;v2T*zoQ8io3u%$jYO+jesd}(Ds+5 z<76@ST=ZyIN<_-p8WH|D8h4sMIuFH%G^gVhtOLw&K5~nJj&K%JZjRD6&&9b7#}-}w z>+DCdwpg8?$CLNx%OOOz2||vgQP1Vt&q!;lym$wFS93{9EohO6vfH;024grS;L#06 z^r{TcWG7C#i*~AwsZS$K@akeqrl?Y7Jkbkd8J~KDZ!DL=I2?ikT0HRzwWdO+mdWJ5 z9*EYe9#V9wK3TRAkAAZ=+i99uEUc}nGFbRA9E!)@ zkBVDR2eG)jvv!HF{;FOdtf+bZ#I8aYnTP#5>l?dl*N@29UtI6^Gb$@x1h7<_J)RoH zXSa`z1YgED%5FU^8fPeh8T1VeQyq=cHaL8!q{O0lv0%utB}sMvaZf2NX=fs)nQ>s) zU+a1EX}VEC4({IQZK7rEj;sG@Xkg$u`w^??;9FNGEhP2(>@(U5BdDMCJ;knki@y0W zs-o>VC*<4)c&X0l+7fr($Ih!#rAS0NTKNY_W&Mo!+BP-|T`2w)<~-2}6gwD+<>b-I zNOnD46;9*NZpK?l{%`tbXDGC<%|X}{O`q@!ba?vz$?2vg0uU#L!I;uE5w+V#rp`d( zLO=jX0pE4B#OfYnjK*;0&{)H^xL{ zycFZ3;RgrfP|*V1VPs`G0*4Ds+zQy{0peUuVVu&W?SwkAZe3;7e=1D1`ymLH|DfN9 zL{Olx8-&GnE*ixzN<<|n;8HQ05Bp}r$wL@-nCi-mo}FZCVq`IsBgE_>D$Y+D<4IZd z2XW5RWqI=MYc{cwmSL;Bn2dU>r@(TST!Gj_?Jg&8gJ~+0bOV$bx`^Q+sOk5#K7QQB3IxJx%J*-l|K^39VbSUG2?@><6OO z2pPPSdEllKpHz6i{y~A%5XC)4&66>Qa|&75{3Zi13onP?yESg+#*?9BJ?w87*bR26 zf0T?;o3AiRp6QH^die=2zT|xL7}88WTz0h>%YDEOoEVyIidhTd+jb;>5NiswfQeEi4O z`qObMZ>iSi=`KyV$C12+l~bZFlpuF%#RyfL`^!RWirlWxUGJ=f25wNCxNX6ipWT|_ zO=zji&%&;^aLpJ_Tt7Dd&XbMh#MS6GcbW5EZ5ryD|I>BA;+J*e+Ez)!3*qmp%3nvq4pl=Fbt~&c{N(5*Yf?yLYsmF$vlNX^7OQniSo;3b?9qdX;JGE|4@WMee;FxljK*X zaLvW$rztyV;GQ^M$eRWYk*GF?qZ@^$!mOZ|P=Z_w3M(w_e$h+is%2A4q)<~YFU*NV z)HzvYH8m-Hzr|3Ta^u1Fw4xwaH9CcdX)qEk{QSPHsU`3&;`8O&0g29 z?KSM*dtX+J-=3VWw1^_xucni7LMH$6E@>IMpb{*ms3$(3tUN&%s^&ljufZ)O0eoEFtRt=z#>?zG~ns zWR9RD2f^P}sR6E!lhF{U6w8~3N~C&Ms3r1zuqoDHB8Z7F)(v;{BQf{kIHD(niH>fV ziTO*_y2S6F*4LQP&c8*e9}$?!!m$O3UQ37@m^)FqR__~8M$c>aMSf+%+4`MdT>L&* zkQOhzebEJKd}Y2uuX@o8Sev!u$4zU7JA%Dh-(WEzlZC|-9Zap!CRf(V3N~uSHKsL!<%;vbkev83@dgZQOB6M&mYV0sq z^_S2MWU^8>RO~liT^k4xHV@;-J#tFM&7Qw3N z$9D;xbYr9RbtovdnfJzPdtb!YGLu zNq|hwc6kDVVI4DkXaJR574?zTO*$+fy-YW|MHPD^Yq#YMfcQ{fDM_1i--8L`l zIcH4LEQdF^!?586_zrV|ZJMKiDp5O7f-?AfzxRKhEX1`lxEQYHj!@mX30H7OjW;bH z{#NG%z=o?}#-<-B>A{I<(MfG!|DhDfO^=~U>Q)X-QQ{_@a?;g{lkBT!SVXji%S~vD z8-)`JHviRNJSBxuA+_FvVozqy#1s-2cwzd^+j>uLVcEp{KIuqSSMT`Y!*@ti=)s`1 z6D}T~V2H)EbzdPo%a<;ucL;zbkayg@plSQww4zvxiQ!#@`}q2*Sls|om)2vS*=c4> zLsL@dPGBFqPy|1Hg6=-2q6dp|AGcf{d_R+xf?oA+LQMK;Ik;9+M!#85pZ;(zVgB9E zGp%nP{(24y5cBqmFdvR*;zl)SQSBmAlFyTVA$ z*JdWuZM)_YBZ_d}n}tt!ej0>S)F_O!G8uY7+Y22cF>V1>S3XEQTph75FZZGYjSVSk zc^ZJ{nZ#juESLLv-Y#b2uFuZ0!9c-M(bK!$ZZO7%GQlD-c7_sg&-V7ZEY~w3BZmSH zf4dKpKlQFx4}PuC_Q060whItdf&=wz1C6uM8-m;A7Fu3e*$6y2EEDcmg_R`|zK!F+ zi1}2l3Y5D{R!W#8F=@iFChr$UE5iFO6`=GsjbWe~nR8vuz8P9-A zM^^&WK5p_Lhywwgj_Xyf*lhIzU3<4%CKKj*LbsE8c%*{yfN)$K%tj9hqvyCg-3f;s zP$>kkzSubH!ji-9&SfhG5?~|O%ekhua6!o%$m3&FU4FLop2miPq8&N@9RG#gumORw zJwQoCg#;^DneF8lLF-2^&pRV=%wPm8Y&`B@C2A{Ge)^c| z2R$AIocq5;wUNvc&tcVSG1($M8Gh1f&-eXTC}-Mupyiv`MH{Dde+v4M zpdT|5)Ry$$HCTII&k4G`kknO6$fo5mZaTbB7j2I@&{%Hc1i~e)Da9=n6z0mz6;Q_g z$ytuDZz=a=QUTJvN3@eXGR&iqL+o~Ha-o;|@Rm~5#l=kZDw$R4HA29>?e(ts`L^8! zFXhP2vin-HxxA@7;1YG(1^aMdOMP%06OsZ8gB6NK#CD&tGU8Y^eS76lWW+*e1!@Rd(WbMzqECrP-SKM z8>|;QwU_smzQF=fUKc0}n(FLN6?LY>>xZM7x?Ki!D`X$e$2HlG`rVG9p|4!hGHe$_ z8%TqXXRYap$VPURYY<`zV}>J2^GqonY8 zVyEt9ty~c=$b9ti0X;e0SI;a!pwA+fZ4WNhM2f#ktq|IBxZ6usAo-H-7%?cY&RUfA z>!;@YU3v$*?hNfxtIDE?txi{koSe#j|Doa`hp;ZD+PTsStn<$BQq-w4g_iND@xyHL za0ERdc^@M!LzNwWpdYiR_=2vv~8e7aIx^5kqujZF;>ZU;H7Kmo}z&588N9*)gk+g;mIWU-?gTp6Ig3XMHL4RGpXa|m9(TpoS#A! zWS(Jcoi39s8~+6J#~IW7U9*~aOK3qUYWxqvqf*L^l*v>5-IJcKyrr)33>wj{#X)#z z+x*DY2>k3ZFUwvwLI`b1$!n|7R-M;4|2#Hm6?~8cTie`1=2|NST2*S?d@7bWJe8*d ze=D%T`Pb*@p9)hBN*joenMS)7i^-8=P8dxWRGY1WvLpZD0y3>c_ZJ_l*)OKz`_$vw z1NQ4VoiP0@r|b%+_*UY(obVam1-MNYJvbNnoJkf|Pe;RI2-+ln%S4Z_PChJi$4>2& zx8gb_1(A0oe6U6rP;jRuNy58nmZB8Ye#KPqW;Py=-4fMHrmV8^p762X)Fyt+RV_)i zs6}XM5s-WXW>v2YHb<~B`35e#WpWCE6)<`0XE)gjo*W(ZRN4p%UTK#?v!SR)v{@<5 zd<#T?9-b~!z290barXJS%@HmAdPq)P{rXRr4lSPEYaH$BapOfb)y3pw{NiFt8XB5+ zM)<%6GLGr+SY-;Ay=CdRvE0e5!I5l=p3 z{J`|QA3ETXV1>iSM=t-ORbG!04|ve{^x=ID*6VX~TDUB^E4{Bd%LUi(hE?x2X<@X_ zUZy1%?Mki0*4@KHe&9c}@kvX!qmmY`uJF(;6V~on?JFz=KrFVl*ZY&+P&_(13rouv zH&Gi$+g3ZL5>C*x5ozUxe-tq=Kz`^29%rHYTDF?3EZCPzAP24~-WMC1KUSOt`$?!5m)YH3-B7iy6fLJn~9_EshF|m`jzu15TizS#CgDWzl zx4T_{zg>VfSeuo-h;{?$i(wZi?X=vPOBSRJ+!ZLVFrg_+geo6#q;Ixx=adtxtKJP- zIL`4-tV3pt5&&e!)qZIZN~{~ez3s-ci-m@3IR7!GuF9*o+R;VD#XA4<8UGF=RMkHU zf&c;tRL1In!P)s2`llx?TE)JSaAUmtPV(s(bB%N?73)c9Men8ka&bx@I4IwlADcY^ zfrNw_5V$c9S}L-q$h*@vLpB0X%MC>vd{k>o5mL>mWU)w-XwG3dITTdZZ}4!eQ(J%B z1TS{#YV^6F42$;ztYGD&O%OelDAkX!(>zZOM`lM#% z6H{AYl^miy@`oxkqGX)v?Icy(Bk*STSev*rF|o0%!19`{=x8n^#u=Z7+vY*4j$FIR zYG?QHVg$3!GojL)ZR*DWd>>vyNX^MoH?EYsg0Q~u>`yobk+LHXPmwO^hk(L1$;PyI zE5b_)i&tb?$Nfcl1MagTYpbMV z&>#wx*TYb-U)El=RuS1lz(rM{nSxA_jwPBj?k|R9t>v-!YtIXbqzMwe_w7CoG;6n` zE+>aqc6V?~AhjDmO5?dmkEZApUfb&qxNwm}KJH5Q9XTT+F|f;HT{Jw|!GJegjqq%V z8-1Tk$6G5pa?Z3ih-{?j?=zWnj~<_5m^MM12_W^9Pilem?wVJmI~Wo}=}LbryM7p2 z)*~2jGAzSR$b?qdG+`~!!hPVxzwpsd1ttqxxatWR4XWLiHEp4KBV;>f=KVYSi#tH< z2t~_y-Px}J{eCy@b~gwe7yg1~o0@fp7i3}+9fu%j?3DwseDSXclSlm`VR9gy*(y;4 z@olek!XbcUr9lzjH)FxChif;{GZUTZcVe-0Z?I6Gk~rNxHGf6EdCX-92~RE_lMkf@ zNAKnl@hE0UvkVyu^$AJX?w|Um^R#)YxyYncUPiH3QmK|mBkq={v5yt0{k}y_2>y#r zzqHw7w>$RB6V&wGY)_x2yE`sAFRK9 zHLPyt`4mW;>dxy--`07b=fh4-lIlU@4BZy1CHv<*N6dkGlV)hmu2~YJ-t_mikctc-G^qx18YYPX@%0-?t6Rt3DIbQpFw< zw|~@K9AuZQ{mtnp&9W<-r=NS3H z*XH@TS8t`joRldEmy?L_#6xR$XG+cBF3X>m zhIK=I)e&A666bk77{gx@V-xc@IiOV?_|l`(5&l^M{d?%b|(Tj4j0 zc$+2?yfgVaCP-QB?WIAc`7O*WHsaELWAoFz>P@{y9odtj{#r@$^-76R37!G(ptQ=- z9C+U|K}%x)IA!EBxF?6WxWB!2Z%z;!B%$pu9TBuRO`)I%@y; zeuAQ!fZE+>ejZm8-=hSiEyjJxxa`ruW?j1~4)w!mn6h+IasI_yDCv(~U;|3kv z4$W-u+tb6Bvt4-cK9*y`8qrNoJ^yG9;su@!@ik4q$Eo{K>tE9c?wL5LBsql~w=mpf zKVEH-P~Ys|3j2^?jbIJ5E?xGzYFR>#2IoN#PO6gZF2B>0Ps9$KL{^KnMnk#BaMago ztqn1!vYL{2=if);th&d7pN?!)K*tv5_I6Woqp2m**C*LV`BjhiA%#j5jh8K173Z>a zNf-;$z?JzCh^}LkMyJrs#G#l*%?(~rL?BZ5?_(WWMNX@`FgifSEM5%*K;`wwAnSMH z{Gow{e1^ti+L8I##H*^w@9$}!k{TM02qcFFgO1=bqBNX)v1CVbDBfv}zZRfVkEmAW z7b%L_rssQei;9d3%&T6|DjnX{Fe|V}?R~5FV{>ue?cs>kcUxXAQP2Od6h4e!hV1vk*z$$u+``eb! zfuuI&(6CS;ABT(Qwphew+Zr76+83te#3>8SHX`>6>F}OY=};RR;6?(kbX>1L#lrxm z7#q~nJQt-V(R*S^W6KZx_>qg#ITnvoFZdT6zmm~T ztd!y&G`C(q0E2^s-ekx=3a;|uM!#J-68}e^8 zA=>uIC4fxxC_RxmC!2xXp|=SY8W%F(p7BD3t=J5GVdG+3^B&0P39v z1d_UbAzEJEX$Jym)C(D-1HidZPz3aILM5}m{}*msm{(Tod;xjGO^MD{RVIOd35Ik4 zoeu6O4M^+hY7>9bCXN*>$0xXp{X-3K7Z;_D*5wqte*c`2cDHUWYEqH{E9=!a)^Gjh zaSL4NuqXR0Zvaflgz#skXz-I;4D@i((Hiou#_=|(_7ve?Hv3E8;2<@CU=zO6(lixM zR7X984b|xEdL-b)e}A)#hau?f(#Xb2B_>9*w8Z_UozX~7Zv?=qr>46tBe^aAWk^Ew z#di-54tgJjwd-{Na6f<^-%FVYmnCObv^Y8%YoM1514N{}*ui?00}Ag21p)^n7{JMJ zP~iXC5jb1u5Ziyh1#q7a&;jFrEjW$n6*{ZP`j5}?^7p^D%KJZDOse>-0F?Ge41>;J zE&n>%v=OQ+r8Al&P~&xg7uQtJQDqhWpF0=`)DaW^3YBi9*B9pCgbjQ{4bWM@5!=78 zFflk71oed|dJv1>a(^8AC(03jpVZ8JKLf{E>Mkk?3gm zYDFZCmt*Jx<>dPqL(~+^So(h7R+jHCCoU#e81R=m)~RUNF?^#Wrlyk%A9zJ_;rJ_e z1JWFQ+^WXQqOtHh`l%ikTJ&|xGuU=YuPtVvIwuEEozo>V;M`5fB_eXUWj9#MVqWoM zA`vA0;-iuL5XM{4*33{I-a|SNYlM2-m<$gP5nuD`#%d zqc!Ai_xXdv5AUFu@Yk_l#BH^*BRN|?xUD^?OIm#+})>ExZ9GsG+==V&km-b(Nx*bVQbXT%UE^R zxevcnfN_iQ^5G#9lTP)y0|AiNs6O<86+6;|Cy{WQXQ;Dluj1M`LqF%*p{Tt$K$@Azw; zTxwgC2zk+TsoiX8sO=H&oXGzN!`Vr5u^i-Jz7vRTyVxo_f7DFa>#<91UT3g-?5<5Y zZ>CE#ii4wb0#d!SE&c?tNAbWNX7b_{A{&_@yYktUd(~;Ltaai~?>U+CD1W@V7#xX! zBP&ZHBR&rjm8k2MM}52<{BcJC;=MJu{rP*qK@Ry^bFBvvxz5!kUHU=&X7;2JSE|Ez ztTi13mw4<^b$EuzDe(LtJiudM@T~MOtA6xxsIe!R&$S#)h_r=} z_MrhN{vvE@dA>*($ewYVS_(r$vx$dKN*hUIk{FGZS{AKnMLFjnQ1l@>(UdF-s;JOz zQci9LLonJl#;9C%L6I0+;_U_cBJCCH8=w6FAz% z`TnN}|3kjLf!k@rHLI^BBXOZFV5G2xk)UJ6kW+S_zC`}4j1VfX5WDk$r@5AHdHu02q-Y_Cd?cAjr97iv759MkOM~7Ej2s*x*3{U)Uk2+>wWo0o6rK-gY9^H8)s-!oM|0YM~wJ9IZz@#zO9*oCWt#tf(lpDjaRfP4;$I z^NM~hFfCiTvy+imUd7`I9doE`iVRW>*eWeOr$#2By{PediM-H9A(_pFy<-`p_)Y2Q z2|x911Iq8zO?acqCMqj8UB2$?E3qt78h<&Q^i7hrqe*mFvY@1sL0n$>0c+4Eo?mH~ z!>nPt@D~TN4;j`JTm=`7D&@zkD0plAE={l$$d=HgQHt_r)uPWw?Q6Tb_9uEiUcug# zaMZpB+1&cDeKg$&%I-lERV~SWKpN0KRXKZATU}i(RKQ)QOs;U9fQUjZA9dBTW+_Kw zdbwn2MoA?bO!NmG2M@a}+?Z;vTw2paNQg=c4ZLip+BhdiOMDO=x0^QAM)P8RabJM+ z+4n8!OYS2Ho;^BLlChkM8!lMQ`;=-p?%Ip zENQM3CWsG7o9AvMS)->b=emu_1DzUOab+6o?Bj!q;`tK_YHW|ZY9H4{M; zm2*Z(owz*w>VokWwvMkm*T4R?e%oghTkL6fEa_d9mlrQhd+r=G&gz`j5`U9GUwMWy ztX@vKsFH9$V5Vh58HDCXr##UY4x=b^lNtkgsLs{BAQl!Tr^OYugo}hx;r=+3fcnQO)^t&$s|e8eMaBcL6gpq=+{tM)Q&=Z1L@< zSMo#=_Q6`29LcFVP1~$(j4WwsFXka3Jb^_@_kBR_{9>%KIyyZVu#MS>)@^Z>=j4%0 zqkJ|QIlu#BZa;X@I?y{x9wnS#Lq7m0R<~LC7KrFR7ln_VIroE#hAZO>LlbMwj#rfkskV^msY@xmB+Xy)VX9L5c zo$>3`WxWm1nRpDYe+9Kp__rTi7QeANGh^eIv5r;N`W*B{ zd+gudUg2nO1N=5+kS{*4K|qUdmtR?%Yi?eQ0M*`d1_6E#ff(U`-T_{`ep&Bfq1M7f UtDc<`|6zVb1SJJZ`L%ui59{>LNB{r; literal 0 HcmV?d00001 diff --git a/docs/assets/toolbar.png b/docs/assets/toolbar.png new file mode 100644 index 0000000000000000000000000000000000000000..eb747e79933dcd2a86a410e723eb8a8b6a5c0200 GIT binary patch literal 4490 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 literal 0 HcmV?d00001 diff --git a/docs/demo-mode.md b/docs/demo-mode.md new file mode 100644 index 0000000..a2df330 --- /dev/null +++ b/docs/demo-mode.md @@ -0,0 +1,80 @@ +# Demo mode + +Demo mode lets you explore SourceDraft Studio without GitHub credentials. It is intended for onboarding, smoke tests, screenshots, and local evaluation — not production publishing. + +## How to enable + +1. **Environment flag:** set `SOURCEDRAFT_DEMO_MODE=true` in `.env` and restart the API, or +2. **Opt-in:** leave `GITHUB_TOKEN`, `GITHUB_OWNER`, and `GITHUB_REPO` unset and click **Explore demo mode** on the sign-in screen. + +Start Studio with: + +```bash +pnpm dev +``` + +Use `pnpm dev` from the repository root so both the Vite UI and publish API run together. + +## What demo mode does + +- Loads **stable seed content** from fixture files in the repository +- Lets you open, edit, and preview sample posts in the browser +- Simulates media upload paths and publish success +- Shows a banner: **Demo mode — no GitHub commits are made** +- Never calls the GitHub API for posts or media, even if credentials exist while `SOURCEDRAFT_DEMO_MODE=true` + +## Seed content (fixtures) + +Fixture files live under: + +- `apps/studio/server/demo/fixtures/posts.ts` — sample MDX posts +- `apps/studio/server/demo/fixtures/media.ts` — sample media metadata + +The seed set includes: + +| Post | Purpose | +|------|---------| +| Getting started with SourceDraft | Published guide | +| Draft release notes | Draft badge and filters | +| Publishing with images | Inline image Markdown and hero image path | +| Linking and document outline | Headings and internal link examples | + +Media fixtures include PNG and PDF metadata with `repoPath`, `publicPath`, `filename`, `extension`, `kind`, and `size`. No binary files are stored in the repo for demo media. + +## Session behavior vs API restart + +| Event | What happens | +|-------|----------------| +| **API starts** | Demo store reloads from fixture files — same seed every time | +| **During a session** | Edits, simulated publish, and uploads update in-memory state only | +| **API restarts** | In-memory edits are discarded; fixtures load again | +| **GitHub** | No commits are made in demo mode | + +Demo edits are **temporary for the running API process**. This is expected. Persisting demo changes across restarts is not a goal for v0.1. + +## Security notes + +- GitHub tokens and admin passwords stay server-side in `.env` +- `GET /api/health/setup` returns booleans only — never secret values +- Demo mode is not a substitute for production auth hardening + +**MVP password auth is intended for local/private use.** Do not expose Studio on the public internet without HTTPS, stronger auth, and deployment hardening. + +## Related docs + +- [getting-started.md](getting-started.md) — install and first run +- [manual-acceptance-test.md](manual-acceptance-test.md) — release checklist +- [screenshots.md](screenshots.md) — capture guide using demo mode +- [security.md](security.md) — secrets and request protection + +## Smoke tests and screenshots + +Playwright smoke tests and screenshot generation run against demo mode: + +```bash +pnpm exec playwright install chromium # first time only +pnpm test:e2e +pnpm screenshots:generate # writes docs/assets/*.png +``` + +CI runs `pnpm test:e2e` on every push/PR to `main`. diff --git a/docs/getting-started.md b/docs/getting-started.md index d95f558..2f2504d 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -28,6 +28,8 @@ cp .env.example .env ```env SOURCEDRAFT_ADMIN_PASSWORD=your-local-studio-password +# Optional: force demo mode (no GitHub commits) +# SOURCEDRAFT_DEMO_MODE=true GITHUB_TOKEN=ghp_... GITHUB_OWNER=your-username-or-org GITHUB_REPO=your-site-repo @@ -57,6 +59,23 @@ Sign in with `SOURCEDRAFT_ADMIN_PASSWORD`. **MVP password auth is intended for local/private use.** Do not expose Studio on the public internet without extra hardening. +## Demo mode (no GitHub required) + +Use demo mode to explore Studio before connecting a repository: + +1. **Environment flag:** set `SOURCEDRAFT_DEMO_MODE=true` in `.env` and restart the API, or +2. **Opt-in:** leave `GITHUB_TOKEN`, `GITHUB_OWNER`, and `GITHUB_REPO` unset and click **Explore demo mode** on the sign-in screen. + +Demo mode provides sample posts from repository fixtures, local editing, simulated media upload paths, and simulated publish success. A banner reads: **Demo mode — no GitHub commits are made**. Session edits are temporary; restarting the API reloads the same seed content. See [demo-mode.md](demo-mode.md). + +Demo mode never sends your GitHub token to the browser and never commits to GitHub, even if credentials are present while `SOURCEDRAFT_DEMO_MODE=true`. + +## Setup health + +Open **Settings** in Studio. The **Setup health** section shows booleans for admin password, GitHub owner/repo, server-side token presence (never the value), content/media paths, adapter, and demo mode status. It suggests a next action when setup is incomplete. + +The publish API also exposes `GET /api/health/setup` (authenticated) with the same safe diagnostics. + ## 5. Write and publish 1. **Posts** sidebar — open an existing post, or click **New post** @@ -68,6 +87,31 @@ SourceDraft validates, builds the file with your adapter, and commits to `conten How that commit works: [github-publishing.md](github-publishing.md) +## Smoke tests (Playwright) + +Browser smoke tests run against demo mode — no live GitHub credentials required: + +```bash +pnpm exec playwright install chromium # first time only +pnpm test:e2e +``` + +From `apps/studio`, use the same commands. CI runs `pnpm test:e2e` after build and unit tests on every push/PR to `main`. + +These tests cover sign-in/demo entry, post list, editor, toolbar, autosave status, media library, content quality, setup health, and simulated publish. + +Regenerate README screenshots (writes to `docs/assets/`): + +```bash +pnpm screenshots:generate +``` + +Unit tests (default): + +```bash +pnpm test +``` + ## 6. Verify Open your site repo on GitHub and confirm the new file (and any uploaded images in `mediaDir`). Run your usual site build or wait for CI. @@ -86,5 +130,6 @@ Open your site repo on GitHub and confirm the new file (and any uploaded images | Wrong file path | `contentDir` in config | | Upload rejected | File type or 5 MB limit; see [media.md](media.md) | | Empty post list | Wrong repo in `.env` or no `.md`/`.mdx` in `contentDir` | +| Demo only | GitHub not configured or `SOURCEDRAFT_DEMO_MODE=true` — expected; configure GitHub for real publish | Plain-language intro: [non-technical-overview.md](non-technical-overview.md) diff --git a/docs/manual-acceptance-test.md b/docs/manual-acceptance-test.md index 08d54b7..e1e6812 100644 --- a/docs/manual-acceptance-test.md +++ b/docs/manual-acceptance-test.md @@ -7,13 +7,31 @@ Run this checklist before promoting SourceDraft v0.1. Use a **test** GitHub repo - [ ] `pnpm install` - [ ] `pnpm build` — exit 0 - [ ] `pnpm test` — exit 0 +- [ ] `pnpm test:e2e` — exit 0 (Playwright smoke tests, demo mode) ```bash -pnpm install --lockfile-only +pnpm install --frozen-lockfile pnpm build pnpm test +pnpm exec playwright install chromium # first time only +CI=true pnpm test:e2e ``` +Optional: regenerate README screenshots before release if UI changed: + +```bash +pnpm screenshots:generate +``` + +## Demo mode checklist + +- [ ] With GitHub unset or `SOURCEDRAFT_DEMO_MODE=true`, **Explore demo mode** appears on sign-in +- [ ] Demo banner reads **Demo mode — no GitHub commits are made** +- [ ] Sample posts load in the **Posts** sidebar +- [ ] Opening and editing a sample post works +- [ ] **Simulate publish** succeeds without a GitHub commit +- [ ] Settings → **Setup health** shows check statuses (no token values) + ## Setup - [ ] Copy `sourcedraft.config.example.json` → `sourcedraft.config.json` and adjust paths @@ -29,6 +47,7 @@ pnpm test - [ ] After login, the **Posts** sidebar and center editor workspace load (not a blank page) - [ ] Open **Settings** in the top bar and confirm adapter, `contentDir`, `mediaDir`, and `publicMediaPath` match your config +- [ ] **Setup health** lists admin password, GitHub, paths, adapter, and demo mode status - [ ] Click **Back to editor** to return to the writing workspace ## Create and preview diff --git a/docs/project-status.md b/docs/project-status.md index 2c55a8e..3b0073c 100644 --- a/docs/project-status.md +++ b/docs/project-status.md @@ -13,7 +13,10 @@ Early open-source MVP — usable for single-editor writing and GitHub publishing - Image upload from Studio (PNG, JPEG, GIF, WebP; 5 MB max) with configurable `publicMediaPath` - `sourcedraft.config.json` + `.env` configuration - Server-side password auth for Studio and API -- CI: build and unit tests on push/PR +- **Demo mode** with sample posts and simulated publish/upload (no GitHub writes) +- **Setup health** checks in Settings and `GET /api/health/setup` +- CI: build, unit tests, and Playwright smoke tests (demo mode) on push/PR +- Release screenshots in `docs/assets/` (regenerate with `pnpm screenshots:generate`) ## What does not work yet @@ -27,6 +30,19 @@ Early open-source MVP — usable for single-editor writing and GitHub publishing | Adapters | `astro-mdx` and `markdown` only | | Media | GitHub repo uploads only; no Cloudinary/S3/R2 | | Teams | No roles, review workflow, or multi-editor accounts | +| Demo mode | Fixture-backed seed content; session edits are temporary; not a hosted demo SaaS | + +## Demo mode (fixtures) + +Demo mode loads stable seed posts and media metadata from `apps/studio/server/demo/fixtures/`. On every API restart, the same fixtures are loaded again. Edits and simulated publishes during a session stay in memory only and are discarded when the process restarts. No GitHub commits are made. + +Details: [demo-mode.md](demo-mode.md) + +## Known limitations (demo mode) + +- Session edits and simulated uploads are in-memory only — restarting the API reloads fixtures. +- `SOURCEDRAFT_DEMO_MODE=true` disables all GitHub writes even if a token is configured. +- Demo mode is for exploration, smoke tests, and screenshots — not production publishing. ## Known MVP limitations (GitHub) diff --git a/docs/screenshots.md b/docs/screenshots.md index 40fdd10..8372de6 100644 --- a/docs/screenshots.md +++ b/docs/screenshots.md @@ -1,34 +1,78 @@ # Screenshots -Screenshots help first-time visitors understand SourceDraft without running the project locally. They are optional for development but useful for the README and release notes. +Screenshots help first-time visitors understand SourceDraft without running the project locally. They live in `docs/assets/` and are referenced from the root README. -## Expected screenshots +## Automated generation (demo mode) -Maintainers can add these under `docs/assets/` when captured from a real local session: +Regenerate all release screenshots from Playwright using deterministic demo fixtures — no GitHub credentials required: -| File | What to show | -|------|----------------| -| `studio-overview.png` | **Posts** view — post list or empty state with publishing setup visible | -| `editor-preview.png` | Editor workspace — center canvas, **Post details** panel, and MDX/Markdown preview | -| `media-upload.png` | Cover image upload area with accepted formats noted | -| `publish-success.png` | Publish confirmation after a successful commit | +```bash +pnpm screenshots:generate +``` -Do not commit placeholder or generated fake screenshots. +From `apps/studio` only: -## How to capture locally +```bash +pnpm exec playwright install chromium +pnpm screenshots:generate +``` -1. Start Studio: `pnpm dev` from the repository root. -2. Sign in with your local admin password. -3. Use a **test repository** or sanitized config — not production secrets. -4. Open the view you want (editor workspace, Settings). -5. Capture the browser window at a readable width (about 1280px works well). -6. Save as PNG with the filenames above into `docs/assets/`. -7. Review the image: crop out tokens, private repo names, personal paths, or email addresses if needed. +This writes nine PNG files under `docs/assets/` at 1280×900. Commit updated images when Studio UI changes. -On Linux, many desktops support **Print Screen** or a region capture tool. Browser dev tools device toolbar is optional; full-window captures are fine. +Smoke tests (no file writes) run separately: + +```bash +pnpm test:e2e +``` + +CI runs `pnpm test:e2e` on every push/PR to `main` after build and unit tests. + +## Required screenshots checklist + +These files are maintained under `docs/assets/`: + +| File | What to show | Mode | +|------|----------------|------| +| `studio-overview.png` | **Posts** sidebar with list or empty state; app bar visible | Demo or GitHub | +| `editor.png` | Center writing canvas with title, description, and body | Demo or GitHub | +| `toolbar.png` | Markdown toolbar above the body field | Demo or GitHub | +| `autosave.png` | Document status in the app bar (e.g. “Unsaved changes” or “Saved locally”) | Demo or GitHub | +| `media-library.png` | Media library section in **Post details** | Demo or GitHub | +| `content-quality.png` | Content quality panel with word count / warnings | Demo or GitHub | +| `preview.png` | MDX/Markdown preview panel with output path | Demo or GitHub | +| `publish-success.png` | Publish confirmation (GitHub or **Publish simulated** in demo) | Demo or GitHub | +| `setup-health.png` | Settings → **Setup health** with check rows | Demo or GitHub | + +## Manual capture (optional) + +### GitHub mode + +1. Configure `.env` with a **test repository** (not production secrets). +2. Start Studio: `pnpm dev` from the repository root. +3. Sign in with your admin password. +4. Create or open a post, capture the views above. + +### Demo mode (no GitHub) + +1. Set `SOURCEDRAFT_DEMO_MODE=true` in `.env`, or leave GitHub vars empty. +2. Start Studio: `pnpm dev`. +3. Click **Explore demo mode** on the sign-in screen. +4. Capture the same views using sample posts and **Simulate publish**. + +### General tips + +- Use a readable browser width (about 1280px). +- Crop out tokens, private repo names, personal paths, or email addresses. +- On Linux, use **Print Screen** or a region capture tool. ## Before committing Read [assets/README.md](assets/README.md) for naming and privacy rules. If screenshots are not ready yet, the root README links here instead of showing broken images. + +## Related testing + +- Unit tests: `pnpm test` +- Playwright smoke tests (demo mode): `pnpm test:e2e` — see [getting-started.md](getting-started.md) +- Screenshot regeneration: `pnpm screenshots:generate` diff --git a/docs/security.md b/docs/security.md index d4ecc00..27c518c 100644 --- a/docs/security.md +++ b/docs/security.md @@ -7,6 +7,17 @@ Studio stores a session cookie after login. It does not store the GitHub token or admin password in the browser. +## Demo mode + +When `SOURCEDRAFT_DEMO_MODE=true` or GitHub is not fully configured: + +- Studio serves sample posts from server memory — not your repository. +- `POST /api/publish` and `POST /api/media/upload` simulate success and **never call the GitHub API**. +- Forced demo mode (`SOURCEDRAFT_DEMO_MODE=true`) blocks GitHub writes even if `GITHUB_TOKEN` is set. +- Demo sessions use the same HttpOnly cookie as password login; no secrets are stored in the browser. + +Use demo mode for local exploration and smoke tests only. **MVP password auth is still intended for local/private use.** + ## Session cookies (MVP) After login, the server sets an in-memory session cookie: @@ -51,6 +62,7 @@ All GitHub API calls run in `apps/studio/server`: | `POST /api/publish` | Create or update post files | | `GET /api/posts` | List and load posts from `contentDir` | | `POST /api/media/upload` | Commit image files to `mediaDir` | +| `GET /api/health/setup` | Safe setup diagnostics (authenticated; no secrets) | The client sends article JSON, post path queries, or multipart uploads. The server attaches credentials from `.env`. diff --git a/package.json b/package.json index a6b50af..d2b746b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "build": "pnpm -r build", "check": "pnpm -r check", "lint": "pnpm -r lint", - "test": "pnpm --filter @sourcedraft/core --filter @sourcedraft/adapter-astro-mdx --filter @sourcedraft/adapter-markdown --filter @sourcedraft/github-publisher --filter studio test" + "test": "pnpm --filter @sourcedraft/core --filter @sourcedraft/adapter-astro-mdx --filter @sourcedraft/adapter-markdown --filter @sourcedraft/github-publisher --filter studio test", + "test:e2e": "pnpm --filter studio test:e2e", + "screenshots:generate": "pnpm --filter studio screenshots:generate" }, "devDependencies": { "tsx": "^4.20.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 57e1dc0..d1bfc34 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,6 +57,9 @@ importers: '@eslint/js': specifier: ^10.0.1 version: 10.0.1(eslint@10.4.1) + '@playwright/test': + specifier: ^1.55.0 + version: 1.60.0 '@types/busboy': specifier: ^1.5.4 version: 1.5.4 @@ -486,6 +489,11 @@ packages: '@oxc-project/types@0.133.0': resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} + '@playwright/test@1.60.0': + resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==} + engines: {node: '>=18'} + hasBin: true + '@rolldown/binding-android-arm64@1.0.3': resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1003,6 +1011,11 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1300,6 +1313,16 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} + playwright-core@1.60.0: + resolution: {integrity: sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.60.0: + resolution: {integrity: sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==} + engines: {node: '>=18'} + hasBin: true + postcss@8.5.15: resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} @@ -1876,6 +1899,10 @@ snapshots: '@oxc-project/types@0.133.0': {} + '@playwright/test@1.60.0': + dependencies: + playwright: 1.60.0 + '@rolldown/binding-android-arm64@1.0.3': optional: true @@ -2433,6 +2460,9 @@ snapshots: fresh@2.0.0: {} + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -2659,6 +2689,14 @@ snapshots: picomatch@4.0.4: {} + playwright-core@1.60.0: {} + + playwright@1.60.0: + dependencies: + playwright-core: 1.60.0 + optionalDependencies: + fsevents: 2.3.2 + postcss@8.5.15: dependencies: nanoid: 3.3.12