Skip to content

Docs: Clarify original Python SDK vs SDK 2.0 and fix broken SDK examples - #604

Merged
kiran1287 merged 8 commits into
mainfrom
docs/589-python-sdk-2-docs-fix
Oct 15, 2026
Merged

kiran1287 merged 8 commits into
mainfrom
docs/589-python-sdk-2-docs-fix

Conversation

@kiran1287

@kiran1287 kiran1287 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Addresses #589. Not marked as closing it because engineering has not yet confirmed the SDK recommendation (see below).

Summary

A customer on 1.13.x could not tell whether to use the original Python SDK or SDK 2.0, and found the SDK 2.0 examples wrong or incomplete. This PR adds the missing guidance and fixes the examples. It applies to v1.13.x, v2.0.x, and v2.1.x-SNAPSHOT.

Guidance added

  • A "Which Python SDK Should I Use?" section: what each SDK is, availability (SDK 2.0 since OpenMetadata 1.10.0), a migration table, and setup differences.
  • An SDK 2.0 quick start (configure() plus create, update, delete), shared through snippets/sdk/.
  • Original client examples are labelled, and the sidebar entry and SDK overview card now say "Original Client and SDK 2.0".
  • api-reference/getting-started.mdx now uses SDK 2.0 in both steps, with a note explaining the split.

Examples fixed
I ran the Python, Java, and Go examples against real servers (2.0.3 and 1.13.6) and fixed what failed:

  • Calls that do not exist were replaced: delete_by_name, votes, profiler helpers, get_client, the Python Topics and MlModelServices classes, fluent Java static methods that don't exist (for example Tables.retrieve), and the Go Rest client. Topics and ML model services now use the original client.
  • configure(host=...) needs a URL ending in /api (Go is the opposite: no /api). authProvider="collate" is invalid and is now "openmetadata".
  • List calls use filters={} and .entities. Wrapped values print with .root.
  • Invalid fields values (owner, domain), wrong profiler paths, vote keys, sample data, observability and data model payloads were corrected.
  • v1.13.x data contracts: Active is not a valid status and is replaced with Approved. The joins startDate uses a placeholder because it must fall within the past 30 days.

How this was checked

  • Python examples: static check against the installed package for each version, plus live runs on 2.0.3 and 1.13.6.
  • Java examples: compiled against the 2.0.3, 1.13.6, and 2.0.5 SDK jars, and run live on 2.0.3. The AI SDK pages compile against their own jar.
  • Go examples: go build and go vet, and run live. There is no 2.0.3 Go tag, so they were checked against the 1.13.0 client.
  • mint broken-links with external, snippet, and redirect checks on the changed files: no broken links.
  • scripts/check-release-consistency.sh: no new CHECK lines compared with main.
  • Doc review checklist: all findings fixed.

Needs follow-up

  • Engineering must confirm "use SDK 2.0 for new code" and "the two SDKs can be mixed". Both live in snippets/sdk/python-sdk-choice.mdx, so changing them is a single-file edit.
  • Dashboard, messaging, and pipeline services import and export pages describe endpoints that return 404. The Java blocks were removed, but the text, Python, and cURL still describe the feature.
  • The create and update pages for stored procedures, API collections, and API endpoints still show a domain body field where the server expects domains.
  • Some SDK limits remain and are worked around in the docs: no Topics or vote/profiler helpers, retrieve returns None for a missing entity, and get_versions returns JSON strings.
  • Existing wording to leave for a separate change: the "we" voice in the sdk/python.mdx tutorial, and the v2.1.x-SNAPSHOT Maven coordinates that still show 2.0.5.

…les (#589)

Add a "Which Python SDK Should I Use?" section and an SDK 2.0 quick start
to the Python SDK pages, and label the original client examples.

Rewrite Python, Java, and Go examples across the API reference and SDK
pages so they use methods that exist and run against real servers:
- replace missing calls (delete_by_name, votes, profiler, get_client,
  Topics, MlModelServices, fluent Java statics, Go Rest client)
- use filters={} and .entities for list calls, .root for wrapped values
- require /api in configure(host=...) and use authProvider="openmetadata"
- fix invalid field names, profiler paths, and payload shapes
- use a valid status in v1.13.x data contracts and a placeholder for the
  joins startDate

Applied to v1.13.x, v2.0.x, and v2.1.x-SNAPSHOT.
@mintlify

mintlify Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
openmetadata 🟢 Ready View Preview Oct 15, 2026, 11:07 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

@kiran1287 kiran1287 changed the title Docs: Clarify original Python SDK vs SDK 2.0 and fix broken SDK examples (#589) Docs: Clarify original Python SDK vs SDK 2.0 and fix broken SDK examples (#604) Oct 14, 2026
@kiran1287 kiran1287 changed the title Docs: Clarify original Python SDK vs SDK 2.0 and fix broken SDK examples (#604) Docs: Clarify original Python SDK vs SDK 2.0 and fix broken SDK examples Oct 14, 2026
- Parse get_versions results with json.loads on all versions pages
- Use .entities and .owners.root in list examples; fix indexes typo
- Use domains and plain data product names across data product pages
- Align test suite examples on basic, logical, and one example FQN
- Use client.topics() in the Topics Java example; explain restore in
  service delete examples; use a valid UUID literal in vote examples
- Reword the getting-started note to cover the Topics pages
- Style fixes: Oxford commas, contractions, headings, parentheticals
@kiran1287 kiran1287 self-assigned this Oct 14, 2026
@kiran1287 kiran1287 added the CS Fix OM Customer support doc gaps label Oct 14, 2026
- Keep the data product domain filter key consistent across examples
- State that data product names are unique across all data products
- Use the full data contract name in create and retrieve responses
- Fix missing or wrong Java imports in the SDK info and lineage pages
- Note that the Java AI SDK builder uses skills instead of abilities
- Expand JWT and OIDC on first use; replace Latin abbreviations
- Align Java and Python fields for service retrieve examples
- Use the full data contract name in by-name examples and responses
- Define the joins startDate placeholder and align dayCount
- Title-case the Go method headings; expand CA on first use
- Use domains in the database services retrieve example
- Align the glossary term Java filter ID with the cURL example
- Add the client setup comment to Java examples that use client
- Add missing imports, intro sentences, and link wording
- Use domains in database retrieve and list field descriptions
- Remove the SLA validation example from v1.13.x contract validation
- Describe the contract SLA fields accurately
- Use the domains array for create and update body fields and responses
- Replace e.g. with for example in API reference text
- Print wrapped values with .root and enum values with .value
- Remove a duplicate client comment; add intro text under headings

@ayush-shah ayush-shah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed commit 28b82b523ace6e64178a3083772397760f069848. No validated P0–P2 defect introduced or materially exposed by this diff was found. The release/runtime verification and any merge conflicts recorded in the review remain outstanding.

…-docs-fix

# Conflicts:
#	v1.13.x/api-reference/data-quality/test-definitions/create.mdx
#	v2.0.x/api-reference/data-quality/test-definitions/create.mdx
#	v2.1.x-SNAPSHOT/api-reference/data-quality/test-definitions/create.mdx
@github-actions

Copy link
Copy Markdown

Review Report

Content type: Documentation
Overall verdict: SKIPPED
Reason: 285 changed files (after collapsing identical version copies) exceed the 50-file limit; automated review skipped.

Reviewed revision: 166239d

Automated review skipped because the PR exceeds the size limit. This is not a pass: no findings were assessed.

View job · skipped: 285 files > 50

@kiran1287
kiran1287 merged commit 6784009 into main Oct 15, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
staging — 166239da Deployed Oct 15, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CS Fix OM Customer support doc gaps

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: Clarify original Python SDK vs SDK 2.0 and align examples

2 participants