## Context
Adds a pnpm command `api:codegen:prod` to generate API types off prod to
work with the `verify-production-types` GHA. Just uses the existing
logic in `verify-production-types.mjs` to fetch the OpenAPI specs, and
writes it into the local API types files
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* API types can now be generated from the production API specifications
when a local API environment is unavailable.
* **Bug Fixes**
* Resending invitations and updating project-scoped roles now handle
roles without a base role ID more reliably.
* **Documentation**
* Updated guidance clarifies that API or schema changes must be deployed
before relying on updated types.
* Production is the source of truth for merge checks. Type verification
should pass after deployment, and production-generated types are
expected to pass verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Problem
The production API types check reports mismatched filenames without
showing which declarations differ, making drift difficult to diagnose.
## Fix
<img width="1771" height="1012" alt="Shotbase
Capture-AB6E5CC9-905B-46E3-AD7B-A2DE868D9E95"
src="https://github.com/user-attachments/assets/81666e89-b79f-4456-a187-43af16ce2bec"
/>
Print a unified diff for each mismatched file with line numbers and
committed/production labels. Append escaped, bounded previews to the
GitHub Actions summary, with full diffs in the step logs, while
preserving the failing check.
## How to test
- Run `node --test
packages/api-types/scripts/verify-production-types.test.mjs` (all six
tests pass).
- Tests cover diff direction and line numbers, multiple files, summary
appending and escaping, preview truncation, local logging without an
Actions summary, and diff command failures.
- Both changed files were formatted with the repository Prettier
configuration.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added detailed difference reporting when generated production types do
not match committed types.
* CI logs now include readable unified diffs, with large outputs safely
truncated and escaped.
* GitHub Actions summaries can include mismatched type files and their
differences while preserving existing summary content.
* **Bug Fixes**
* Improved diagnostics for missing type files and type verification
failures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Problem
platform, v1 and v2 have been already completely migrated and introduced
some changes.
Some types have been renamed, some outputs and inputs updated.
## Solution
- Update the API types
- Fix the TS errors
## Update
Taking this over to unblock #50134, which needs the new scoped token
permission ids from the regenerated types.
- Merged `master`.
- Regenerated `api-v2.d.ts` from the production spec. The previous files
came from a local API that exposed a webhook events endpoint production
doesn't have yet. Production has since added standardized 400 error
responses on the v2 organization endpoints. `api-v1.d.ts` and
`platform.d.ts` already matched production.
- Fixed `verify-production-types`. It formatted the regenerated files in
a temp directory outside the repository, so Prettier fell back to its
defaults and the comparison could never match the committed files. It
now passes the repository config explicitly. `pnpm api:verify-types`
passes on this branch.
- Verified locally: `pnpm typecheck`, `pnpm api:verify-types`, Studio
unit tests.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Preserved descriptions when saving, sharing, moving, or unsharing
notebooks, reports, SQL snippets, and saved queries.
* Improved handling of empty or null values across notebook
descriptions, billing usage, pooler settings, and infrastructure fields.
* Improved read-replica connection handling, including read-only
connection strings.
* Updated storage configuration and capability handling to match current
settings.
* **API and Compatibility**
* Updated organization, project, storage, OAuth, billing, and
infrastructure data handling to match current API responses.
* OAuth app creation and updates now require scopes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Alaister Young <10985857+alaister@users.noreply.github.com>