Documentation refresh#5
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR refreshes the documentation site by adding first-party product docs (notably the Flow Pipeline API), restructuring the docs information architecture into product sidebars, and removing the Docusaurus template blog/tutorial content. It also introduces a custom landing page and custom navbar/sidebar UI components for the site.
Changes:
- Added new Flow Pipeline API documentation and refreshed Flow docs (overview/quickstart/concepts, processors/consumers references, pricing).
- Added new Lake and Nodes documentation sections and reorganized navigation via new product sidebars.
- Removed template blog + tutorial docs and disabled the blog plugin; introduced a custom landing page and top navigation UI.
Reviewed changes
Copilot reviewed 44 out of 47 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
src/theme/Navbar/index.js |
Overrides the theme navbar to render the custom ObsrvrTopNav. |
src/components/ObsrvrTopNav/index.js |
Adds a custom top navigation bar with an in-page search modal. |
src/theme/DocSidebar/Desktop/Content/index.js |
Custom desktop doc sidebar content with a product switcher. |
src/theme/DocSidebar/Desktop/Content/styles.module.css |
Desktop sidebar/product switcher styles. |
src/theme/DocSidebar/Mobile/index.js |
Custom mobile doc sidebar secondary menu + product switcher. |
src/theme/DocSidebar/Mobile/styles.module.css |
Mobile sidebar/product switcher styles. |
src/pages/index.js |
Replaces the homepage with a custom landing page experience and quickstart content. |
sidebars.js |
Replaces the autogenerated sidebar with explicit product sidebars (Gateway/Flow/Lake/Nodes) + intro. |
docusaurus.config.js |
Disables the blog and updates theme defaults (light mode + navbar title/labels). |
docs/flow/api.md |
New Pipeline API doc page (YAML format, endpoints, CI/CD usage). |
docs/flow/overview.md |
Updates Flow overview positioning and references the Pipeline API. |
docs/flow/getting-started/quickstart.md |
Updates Flow quickstart to YAML + API-driven workflow (validate/apply/start/stop/export). |
docs/flow/concepts/pipelines.md |
Refreshes pipeline concepts around YAML/spec, lifecycle, registry, billing, API patterns. |
docs/flow/processors/index.md |
Replaces long-form processor docs with a processor registry/reference-focused page. |
docs/flow/consumers/index.md |
Replaces long-form consumer docs with a consumer registry/reference-focused page. |
docs/flow/consumers/postgresql.md |
Updates PostgreSQL consumer docs to reflect specialized consumer IDs and config shapes. |
docs/flow/pricing.md |
Replaces Flow-only pricing page with broader platform pricing content. |
docs/lake/overview.md |
Adds Lake overview and positioning for the medallion model + common endpoints. |
docs/lake/getting-started/quickstart.md |
Adds a Lake quickstart with runnable curl examples. |
docs/lake/guides/query-examples.md |
Adds copy/paste Lake query examples for common analysis tasks. |
docs/lake/architecture/overview.md |
Adds Lake architecture overview (components, flow, storage tiers). |
docs/lake/api/overview.md |
Adds a Lake API overview (base URL, auth, endpoints, pagination, errors). |
docs/nodes/overview.md |
Adds Nodes overview page. |
docs/nodes/getting-started/quickstart.md |
Adds Nodes quickstart page. |
docs/nodes/guides/asset-whitelisting.md |
Adds asset whitelisting guide. |
docs/intro.md |
Rewrites intro into a product map + “start with Lake” narrative. |
docs/gateway/overview.md |
Refreshes Gateway overview to the new gateway URL structure and positioning vs Lake. |
docs/products/index.md |
Removes the Docusaurus template “Hello from Docusaurus” page. |
docs/tutorial-basics/_category_.json |
Removes Docusaurus tutorial category metadata. |
docs/tutorial-basics/create-a-page.md |
Removes Docusaurus tutorial page. |
docs/tutorial-basics/create-a-document.md |
Removes Docusaurus tutorial page. |
docs/tutorial-basics/create-a-blog-post.md |
Removes Docusaurus tutorial page. |
docs/tutorial-basics/markdown-features.mdx |
Removes Docusaurus tutorial page. |
docs/tutorial-basics/deploy-your-site.md |
Removes Docusaurus tutorial page. |
docs/tutorial-basics/congratulations.md |
Removes Docusaurus tutorial page. |
docs/tutorial-extras/_category_.json |
Removes Docusaurus tutorial extras category metadata. |
docs/tutorial-extras/manage-docs-versions.md |
Removes Docusaurus tutorial extras page. |
docs/tutorial-extras/translate-your-site.md |
Removes Docusaurus tutorial extras page. |
blog/authors.yml |
Removes template blog author metadata. |
blog/2021-08-26-welcome/index.md |
Removes template blog post. |
blog/2021-08-01-mdx-blog-post.mdx |
Removes template blog post. |
blog/2019-05-29-long-blog-post.md |
Removes template blog post. |
blog/2019-05-28-first-blog-post.md |
Removes template blog post. |
Comments suppressed due to low confidence (1)
docs/lake/api/overview.md:156
- The “Understand Lake architecture” link points to
/docs/lake/overview, but the architecture page in this PR is/docs/lake/architecture/overview. Update the link so it lands on the architecture content.
## Next steps
- [Run the Lake quickstart](/docs/lake/getting-started/quickstart)
- [Copy query examples](/docs/lake/guides/query-examples)
- [Understand Lake architecture](/docs/lake/overview)
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+21
to
+25
| .productSwitcher { | ||
| margin-top: auto; | ||
| padding-top: 1rem; | ||
| border-top: 1px solid rgba(255, 255, 255, 0.08); | ||
| } |
Comment on lines
+2
to
+6
| .productSwitcher { | ||
| margin-top: 1rem; | ||
| padding-top: 1rem; | ||
| border-top: 1px solid rgba(255, 255, 255, 0.08); | ||
| } |
| const [lang, setLang] = useState('curl'); | ||
| const [copied, setCopied] = useState(false); | ||
| const active = LANGS[lang]; | ||
| const copy = () => { navigator.clipboard?.writeText(active.code); setCopied(true); setTimeout(() => setCopied(false), 1200); }; |
Comment on lines
+110
to
112
| function ByRole() { | ||
| return <section className="dl-section"><div className="head"><span className="eyebrow">Start by role</span><h2>Pick the path that fits what you're building</h2></div><div className="dl-roles">{roles.map(([cls, Icon, title, desc, bullets]) => <a key={title} className={'dl-role ' + cls} href="#"><div className="glyph"><Icon w={20} /></div><h3>{title}</h3><p>{desc}</p><ul>{bullets.map((b) => <li key={b}><span className="check"><IL.check w={14} /></span>{b}</li>)}</ul><span className="start">{title} guide <IL.arrowR w={13} /></span></a>)}</div></section>; | ||
| } |
Comment on lines
+127
to
+129
| function Help() { | ||
| return <section className="dl-help"><div><h3>Stuck or need higher limits?</h3><p>Talk to a Stellar engineer at Obsrvr — same person who'd answer in production support.</p></div><div className="actions"><a href="#"><IL.msg w={14} />Chat with us</a><a href="#" className="primary">Contact sales <IL.arrowR w={14} /></a></div></section>; | ||
| } |
Comment on lines
+8
to
13
| This page lists the consumer IDs currently exposed by the Flow registry. Use these IDs in `spec.consumers[].type` when creating pipelines through the API. | ||
|
|
||
| ## Available Consumers | ||
|
|
||
| ### Database Storage - PostgreSQL | ||
|
|
||
| #### [PostgreSQL (Generic)](./postgresql.md) | ||
| General-purpose PostgreSQL consumer for ledger data with flexible JSON format. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: postgres | ||
| config: | ||
| connection_string: "postgresql://user:pass@host:5432/database" | ||
| batch_size: 50 | ||
| ``` | ||
|
|
||
| **Use Cases:** Analytics databases, application backends, historical data storage | ||
|
|
||
| --- | ||
|
|
||
| #### PostgreSQL Bronze | ||
| Bronze layer data ingestion to PostgreSQL for data lakehouse architecture. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: postgres_bronze | ||
| config: | ||
| host: "localhost" | ||
| database: "bronze" | ||
| username: "user" | ||
| password: "password" | ||
| ``` | ||
|
|
||
| **Use Cases:** Raw data layer storage, medallion architecture | ||
|
|
||
| --- | ||
|
|
||
| #### Buffered PostgreSQL | ||
| Buffered batch inserts with retry logic for high-throughput scenarios. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: buffered_postgres | ||
| config: | ||
| buffer_size: 1000 | ||
| flush_interval_ms: 5000 | ||
| max_retries: 3 | ||
| ``` | ||
|
|
||
| **Use Cases:** High-volume data ingestion with batching | ||
|
|
||
| --- | ||
|
|
||
| #### Account Data PostgreSQL | ||
| Stores Stellar account data with full metadata. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: account_data_postgres | ||
| config: | ||
| host: "localhost" | ||
| port: 5432 | ||
| database: "accounts" | ||
| max_open_conns: 20 | ||
| ``` | ||
|
|
||
| **Use Cases:** Account state tracking and historical analysis | ||
|
|
||
| --- | ||
|
|
||
| #### Asset PostgreSQL | ||
| Stores asset/ticker information with batching. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: asset_postgres | ||
| config: | ||
| batch_size: 100 | ||
| connection_string: "postgresql://user:pass@host:5432/assets" | ||
| ``` | ||
|
|
||
| **Use Cases:** Asset catalog and enrichment data storage | ||
|
|
||
| --- | ||
|
|
||
| #### Asset Enrichment PostgreSQL | ||
| Updates asset enrichment data (TOML, auth flags). | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: asset_enrichment | ||
| config: | ||
| connection_string: "postgresql://user:pass@host:5432/assets" | ||
| ``` | ||
|
|
||
| **Use Cases:** Asset metadata enrichment from stellar.toml | ||
|
|
||
| --- | ||
|
|
||
| #### Payments PostgreSQL | ||
| Batched payment transaction storage. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: payments_postgres | ||
| config: | ||
| batch_size: 1000 | ||
| connection_string: "postgresql://user:pass@host:5432/payments" | ||
| ``` | ||
|
|
||
| **Use Cases:** Payment history and analytics | ||
|
|
||
| --- | ||
|
|
||
| #### Event Payment PostgreSQL | ||
| Event-based payment storage with account relationships. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: event_payment_postgres | ||
| config: | ||
| host: "localhost" | ||
| database: "payments" | ||
| max_open_conns: 20 | ||
| ``` | ||
|
|
||
| **Use Cases:** Event-driven payment tracking with foreign keys | ||
|
|
||
| --- | ||
|
|
||
| #### Contract Events PostgreSQL | ||
| Soroban contract events storage. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: contract_events_postgres | ||
| config: | ||
| host: "localhost" | ||
| database: "soroban_events" | ||
| ``` | ||
|
|
||
| **Use Cases:** Smart contract event logging and analysis | ||
|
|
||
| --- | ||
|
|
||
| #### Contract Invocations PostgreSQL | ||
| Contract invocations with dual XDR/decoded format, diagnostic events, state changes. | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: contract_invocations_postgres | ||
| config: | ||
| host: "localhost" | ||
| database: "contract_invocations" | ||
| ``` | ||
|
|
||
| **Use Cases:** Complete contract execution tracking | ||
|
|
||
| --- | ||
|
|
||
| #### Extracted Contract Invocations PostgreSQL | ||
| Business-logic extracted contract data (funder, recipient, amount, project_id). | ||
|
|
||
| **Configuration:** | ||
| ```yaml | ||
| type: extracted_contract_invocations_postgres | ||
| config: | ||
| host: "localhost" | ||
| database: "business_data" | ||
| ```bash | ||
| curl -H "Authorization: Api-Key $API_KEY" \ | ||
| "$CONSOLE/api/v1/flow/registry/consumers/" | ||
| ``` |
Comment on lines
+58
to
+61
| port: 23548 | ||
| connect_timeout: 30 | ||
| database: defaultdb | ||
| username: avnadmin |
Comment on lines
131
to
136
| function CmdK({open, onClose}) { | ||
| const inputRef = useRef(null); | ||
| useEffect(() => { if (open) inputRef.current?.focus(); }, [open]); | ||
| if (!open) return null; | ||
| return <div className="cmdk-overlay open" onClick={(e) => { if (e.target.classList.contains('cmdk-overlay')) onClose(); }}><div className="cmdk"><div className="cmdk-input-wrap"><IL.search /><input ref={inputRef} placeholder="Search docs, ask AI, or jump to an endpoint…" /><span className="kbd">Esc</span></div><div className="cmdk-results"><div className="cmdk-section"><h6>Ask AI</h6><div className="cmdk-item active"><span className="ico"><IL.ai /></span><span>How do I subscribe to live transactions?</span><span className="meta">↵</span></div></div><div className="cmdk-section"><h6>Quickstart</h6><div className="cmdk-item"><span className="ico"><IL.rocket /></span><span>Get started in 60 seconds</span></div><div className="cmdk-item"><span className="ico"><IL.key /></span><span>Create your first API key</span></div></div></div><div className="cmdk-foot"><span><span className="kbd">↑</span><span className="kbd">↓</span> Navigate</span><span><span className="kbd">↵</span> Select</span><span style={{marginLeft: 'auto'}}>Powered by Obsrvr AI</span></div></div></div>; | ||
| } |
Comment on lines
+77
to
+81
| <div className="cmdk-input-wrap"> | ||
| {icons.search({})} | ||
| <input ref={inputRef} value={query} onChange={(e) => setQuery(e.target.value)} placeholder="Search docs…" /> | ||
| <span className="kbd">Esc</span> | ||
| </div> |
Comment on lines
+1
to
+4
| import React, {useEffect, useRef, useState} from 'react'; | ||
| import Layout from '@theme/Layout'; | ||
| import Link from '@docusaurus/Link'; | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new documentation page for the Flow Pipeline API and removes all example blog posts and author metadata from the repository. The main focus is on providing comprehensive API documentation for managing Flow pipelines via YAML, while cleaning up unused or example content from the blog directory.
Documentation additions:
Pipeline APIdocumentation page atdocs/flow/api.mdwith detailed instructions, example YAML, endpoint descriptions, usage patterns, and security warnings.Blog and metadata cleanup:
first-blog-post.md,long-blog-post.md,mdx-blog-post.mdx, andwelcome/index.md, to remove placeholder or sample content. [1] [2] [3] [4]authors.ymlfile, eliminating all blog author metadata from the repository.