Skip to content

docs: add Elementary Public API (beta) reference - #2329

Merged
MikaKerman merged 7 commits into
docsfrom
public-api-docs
Aug 20, 2026
Merged

docs: add Elementary Public API (beta) reference#2329
MikaKerman merged 7 commits into
docsfrom
public-api-docs

Conversation

@MikaKerman

Copy link
Copy Markdown
Contributor

Summary

Adds an API Reference tab to the docs site for the beta Elementary Public API, rendered from a committed OpenAPI snapshot.

  • Guides (docs/api/*.mdx): introduction, authentication, pagination, incremental sync, rate limits, errors, versioning.
  • Endpoints (docs/api/reference/**, bound to docs/api-reference/beta/openapi.json):
    • Environments — list
    • Assets — list/get, typed table + BI endpoints, asset lineage edges
    • Columns — list/get, column lineage edges
  • Nav (docs/docs.json): one new tab inserted between Python SDK and Elementary OSS (49-line insertion, no other changes). Branding (pink #FF20B8, mint theme) is inherited automatically.

How it was produced

The OpenAPI snapshot is a one-time manual copy from elementary-internal, generated by apps/api/scripts/generate_external_openapi.py. Verified byte-identical to a fresh regeneration from the API branch tip (11 operations, title "Elementary Public API", version "beta").

Follow-up (not in this PR)

Automate keeping the snapshot fresh: an elementary-internal CI job regenerates openapi.json and opens a cross-repo bot PR into this repo, gated on the beta API deploy so beta docs go live only when the API ships. Until then the snapshot must be regenerated manually when the beta surface changes (a --check drift guard already exists on the API side).

Validation

  • mint openapi-check / pre-commit Mintlify validate: spec valid ✔
  • All 11 endpoint stubs resolve to real spec operations (no missing/orphans) ✔
  • docs.json parses; tab order correct ✔

Test plan

  • cd docs && mint dev — confirm the API Reference tab renders, guides load, and endpoint pages populate (not just titles)
  • Confirm no new broken links (mint broken-links)

Made with Cursor

Adds a new "API Reference" tab to the docs site covering the beta
Elementary Public API:

- Guides: introduction, authentication, pagination, incremental sync,
  rate limits, errors, versioning.
- Endpoints: auto-rendered from a committed OpenAPI snapshot
  (api-reference/beta/openapi.json) — Environments, Assets (incl. typed
  table/BI endpoints and asset lineage), Columns (incl. column lineage).

The OpenAPI snapshot is a one-time manual copy from elementary-internal
(generated by apps/api/scripts/generate_external_openapi.py). A follow-up
will automate keeping it in sync via a cross-repo bot PR gated on the
beta API deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6d7579f0-c7a0-47e9-b16f-7419d16762d7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

The API Reference tab bound the OpenAPI spec at the tab level
("openapi": ...), which makes Mintlify auto-generate a page per
operation (grouped by tag) *in addition to* the curated stub pages —
so every endpoint showed up twice in the nav.

Remove the tab-level binding and instead resolve each endpoint from its
MDX stub's frontmatter, qualified with the spec file path
(openapi: api-reference/beta/openapi.json <method> <path>). This keeps
the curated structure (asset lineage under Assets, column lineage under
Columns) with no auto-generated duplicates.

Co-authored-by: Cursor <cursoragent@cursor.com>
@linear

linear Bot commented Aug 20, 2026

Copy link
Copy Markdown

APP-1546

MikaKerman and others added 5 commits August 20, 2026 14:10
The root .gitignore's `env*/` rule (for Python virtualenvs) also matched
docs/api/reference/environments/, so list-environments.mdx was silently
excluded from the commits even though docs.json references it — the page
would 404 on deploy. Force-add the file so it ships with the PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
The intro only had a soft note ("shape may change") and the versioning
page actively encouraged building against beta. Neither said the API is
in active development and not meant for production.

- Intro: promote the beta note to a Warning stating the API is in active
  development, not intended for production, may have breaking changes,
  and has no availability/stability/support guarantees.
- Versioning: reword the recommendation to frame beta as pre-production
  rather than nudging production adoption.

Co-authored-by: Cursor <cursoragent@cursor.com>
The base URL advertised the web-app host (app.elementary-data.com/api),
but the API is served by the FastAPI backend at prod.api.elementary-data.com
(verified: every dataset returns 200 at
https://prod.api.elementary-data.com/public/beta). Fix the OpenAPI
`servers` snapshot and the guide URLs (introduction + authentication).

Co-authored-by: Cursor <cursoragent@cursor.com>
The auth page said personal/account tokens are "accepted" but never
explained how to create one or the difference between them. Add a
"Creating a token" section linking to User → Personal Tokens and
Account → Account Tokens, describing the scope of each and the
show-once / secret-handling guidance.

Co-authored-by: Cursor <cursoragent@cursor.com>
The token cards described each type's scope but the "when to choose"
tradeoff was only implicit. Add a short section contrasting personal
tokens (interactive, tied to your account lifecycle) with account
tokens (long-lived/shared, survive team changes) so the API docs are
self-sufficient.

Co-authored-by: Cursor <cursoragent@cursor.com>
@MikaKerman
MikaKerman merged commit ab43531 into docs Aug 20, 2026
5 of 6 checks passed
@MikaKerman
MikaKerman deleted the public-api-docs branch August 20, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant