Update an existing SDK
hash-watch.yml, running weekly in the provider’s ownubx-sdk-<name>repo, detects upstream spec drift and opens a PR — automatic, no human step yet.- A person runs
ubx sdk genfromubiquex, against the same pinned or live source the watch detected drift against, and commits the real generated output into the provider repo. Manual. - A person merges that PR — verifying the merge landed by reading the
real file content on
main, not by trusting a green “merged” flag (see Conventions). - A person triggers
publish.yml, which builds the TypeScript package, publishes to npm and PyPI, tags the Go module, and only then commits the version bump — after all three registries have actually succeeded, not after the workflow merely exits zero.
Update the docs
ubx sdk gen --dump-irinubiquex, against the current pinned config, produces a fresh schema dump.- The generator scripts in
ubiquex-docsrun against that dump plusartifacts/<provider>/(see Docs pipeline for what those artifacts are). - Commit and push; Mintlify builds the site, occasionally needing a manual trigger.
Onboard a new provider
Using a real, worked example (DigitalOcean, as the ticket that first wrote this sequence down used):- Confirm the vendor publishes a real, machine-readable spec — one of the four real schema sources this system already knows how to parse, or a fifth one worth adding.
- Add a
[dynamic_providers.<name>]entry tosdk/providers/.ubx/config. - Run
ubx sdk gen --dump-irfor real resource and field counts before committing to anything further — know the real scope before building against it. - Create
ubx-sdk-<provider>with its ownpublish.ymlandhash-watch.yml, matching every other provider’s real repo shape. - Generate bindings; verify
go build,deno check, andpython ast.parseactually pass against the real output, not just that generation itself didn’t error. - Write the real artifacts: descriptions where the vendor spec has none, an intro per resource, categories against the vendor’s own real product names.
- Generate docs pages and nav.
- Publish.

