feat(databases): dedicated-database ecosystem guides + integration entries#3042
feat(databases): dedicated-database ecosystem guides + integration entries#3042abnegate wants to merge 14 commits into
Conversation
…BI guides Guides for connecting external tooling to dedicated databases, grouped in the nav as Connect your stack / Deploy / Analytics & BI: Node.js drivers, Prisma, Drizzle, Auth.js, Better Auth, Laravel, Rails, Django, FastAPI, Spring Boot, EF Core, GORM, Next.js, Vercel, Cloudflare, Metabase, Grafana, Retool, dbt. Grounded in the real connection model: pooled vs direct endpoints, transaction- vs session-mode pooling and its prepared-statement implications, scoped read-only connection users for BI tools, and the HTTP SQL API for edge runtimes. Registers prisma and toml highlight.js aliases so ORM/infra code fences render; the toml alias also fixes a latent unknown-language throw in functions/examples. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds /integrations entries for Prisma, Drizzle (databases) and Next.js, Vercel, Cloudflare (deployments) that link into the dedicated-database guides. Cover and avatar image assets still need to be added before these render in the catalog. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Appwrite WebsiteProject ID: Website (appwrite/website)Project ID: Tip Silent mode disables those chatty PR comments if you prefer peace and quiet |
Adds WebP avatar (448x448) and cover (1200x675) tiles for the Prisma, Drizzle, Next.js, Vercel, and Cloudflare integration entries — official marks (via Simple Icons) on brand-color backgrounds — and points their frontmatter at the .webp assets. Resolves the missing-image pre-merge item on the integration cards. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The website asset pipeline (`bun run optimize`) converts all raster images to AVIF and rewrites references; the assets CI check enforces it. Ran it on the integration logos/covers, so WebP was converted to AVIF, the five entries' image references updated, and the optimize cache refreshed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Greptile SummaryThis PR adds the ecosystem integration layer on top of the dedicated-database foundation: 19 documentation guides under
Confidence Score: 5/5This is a documentation-only PR (Markdoc guides, integration catalog pages, nav layout, image assets) with one small TypeScript change registering two highlight.js language aliases — no application logic, no data migrations, no auth changes. All 19 guides consistently use the correct pooler ports (6432/6033), include DIRECT_URL for migrations, document the prepare: false / pgbouncer=true / PreferSimpleProtocol caveats for transaction-mode pooling, and reference the branch workflow for preview environments. The code.ts alias registration follows the existing HCL/Terraform pattern exactly. The optimize-cache entries follow the established .webp-key convention, and all ten image files are present. No files require special attention. Important Files Changed
Reviews (11): Last reviewed commit: "docs(databases): use tracked Drizzle mig..." | Re-trigger Greptile |
The ecosystem guides told readers to download a CA certificate from the Network page for verify-full, a flow that doesn't exist: the wildcard proxy front presents a certificate signed by a well-known public CA, so full verification works against the trust store the runtime already has. Correct each stack: Node verifies via its built-in store (a custom ca bundle is only for images without a trust store), Go drivers fall back to the system pool, libpq stacks point sslrootcert at system (libpq 16+) or the OS bundle, pgJDBC uses DefaultJavaSSLFactory for the JVM store, and Npgsql and Grafana validate against OS roots with no extra parameter. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The connect-your-stack guides opened with "This guide uses PostgreSQL, to use MySQL or MariaDB swap X" and buried the actual swap in a trailing appendix, leaving non-PostgreSQL readers to translate every snippet themselves. Engine-specific content (connection strings, drivers, dialects, TLS parameters) now lives in tabs so readers pick their engine once per block, like the SDK multicode examples. Also corrects guidance the tab restructuring surfaced: retool, metabase, and fastapi still told readers to download a CA bundle that does not exist (missed by the verify-full fix), the cloudflare Hyperdrive MySQL example carried a ?ssl=true parameter Hyperdrive's connection strings do not accept, and django claimed its ORM does not fully support MySQL/MariaDB when both are officially supported backends. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Addressed the current-head Greptile 4/5 finding in |
|
Follow-up hardening in Validation on the final patch:
The branch was updated by a normal non-force push. |
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Addressed the remaining Greptile summary note in 7aa05a3: the Next.js guide now lists only PostgreSQL, MySQL, and MariaDB, matching its SQL-only examples. Local formatting and Svelte diagnostics pass; new exact-head CI and Greptile review are now required before merge readiness. |
|
Addressed the exact-head Greptile finding in 930e941: the Grafana connection-user REST request now targets |
|
Addressed the remaining exact-head Greptile summary note in 9615d14. The Auth.js guide now uses the production migration workflow from the official Drizzle docs: |


Summary
Adds the ecosystem integration layer on top of the dedicated-database foundation already on
feat-dedicated-db. Targetsfeat-dedicated-db(notmain).19 docs guides under
docs/products/databases/dedicated/, grouped in the nav as:5
/integrationscatalog entries — Prisma, Drizzle (databases), Next.js, Vercel, Cloudflare (deployments).Plus
src/lib/utils/code.ts: registersprisma(→ graphql) andtoml(→ ini) highlight.js aliases so ORM/infra fences render. Thetomlalias also fixes a latent unknown-language throw infunctions/examples(highlight.js throws on unregistered languages).Grounding
Every guide uses the real connection model from the product code: connection string
postgres://appwrite:…@db-<project>-<db>.<region>.appwrite.center:5432/appwrite?sslmode=require, pooler ports 6432/6033, transaction vs session pool modes and their prepared-statement implications, scoped read-only connection users for BI tools, the HTTP SQL API for edge runtimes, and branches for preview/CI. Each agent-authored guide verified its third-party tool's API against the tool's live docs.Validation
prettier --check+eslintclean oncode.tsand+layout.svelte.env, so the dev server 500s on every route (Client.setEndpoint(undefined)in the root layout). CI runs the real build.Before merge (why this is a draft)
static/images/integrations/<slug>/cover.avif+static/images/integrations/avatars/<slug>.avifforprisma,drizzle,nextjs,vercel,cloudflare. Until then the catalog cards show broken images. Brand sources: Prisma/Drizzle/Next.js/Vercel/Cloudflare press kits.Out of scope / follow-ups
appwrite_dedicated_databaseresources) and MCP DB tools are blocked on the public SDKs: bothterraform-provider-appwrite(pinssdk-for-go/v5) andappwrite/mcp(PythonappwriteSDK) consume the generated SDKs, which have no Compute service yet. Unblock path: dedicated-DB API → public spec → regenerate SDKs → then add provider resources / registerappwrite.services.computein the MCP server.prompt.mdsurfaces are future passes.🤖 Generated with Claude Code