docs(proto): bump sebuf to v0.11.0 and document unified OpenAPI bundle

- Makefile: SEBUF_VERSION v0.7.0 → v0.11.0 (required for bundle support).
- proto/buf.gen.yaml: point bundle_server at https://api.worldmonitor.app.
- CONTRIBUTING.md: new "OpenAPI Output" section covering per-service specs
  vs the unified worldmonitor.openapi.yaml bundle, plus a note that all
  three sebuf plugins must be installed from the pinned version.
- AGENTS.md: clarify that `make generate` also produces the unified spec
  and requires sebuf v0.11.0.
- CHANGELOG.md: Unreleased entry announcing the bundle and version bump.

Also regenerates the bundle with the updated server URL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sebastien Melki
2026-04-23 15:18:05 +03:00
parent 03d1496ade
commit 2906526d02
6 changed files with 18 additions and 4 deletions

View File

@@ -57,7 +57,7 @@ npm run typecheck:api # Typecheck API layer separately
npm run test:data # Run unit/integration tests
npm run test:sidecar # Run sidecar + API handler tests
npm run test:e2e # Run all Playwright E2E tests
make generate # Regenerate proto stubs (requires buf + sebuf plugins)
make generate # Regenerate proto stubs + per-service & unified OpenAPI specs (requires buf + sebuf v0.11.0 plugins)
```
## Architecture Rules

View File

@@ -6,6 +6,7 @@ All notable changes to World Monitor are documented here.
### Added
- **Unified OpenAPI bundle** — `docs/api/worldmonitor.openapi.yaml` is now emitted alongside per-service specs, merging every WorldMonitor RPC into a single OpenAPI 3.1 document (190 operations). Powered by sebuf v0.11.0's origin-level bundle support ([SebastienMelki/sebuf#158](https://github.com/SebastienMelki/sebuf/issues/158)). Bumps `SEBUF_VERSION` in the Makefile from v0.7.0 to v0.11.0 — rerun `make install-plugins` after pulling.
- **Route Explorer**: standalone full-screen modal (CMD+K) for planning shipments between any two countries. Includes Current/Alternatives/Land/Impact tabs, keyboard-first navigation, URL state sharing, strategic-product trade data, dependency flags, and free-tier blur with public route highlight (#2980, #2982, #2994, #2996, #2997, #2998)
- US Treasury customs revenue in Trade Policy panel with monthly data, FYTD year-over-year comparison, and revenue spike highlighting (#1663)
- Security advisories gold standard migration: Railway cron seed fetches 24 government RSS feeds hourly, Vercel reads Redis only (#1637)

View File

@@ -234,6 +234,19 @@ make install-buf # Install buf CLI (requires Go)
make install-plugins # Install sebuf protoc-gen plugins (requires Go)
```
The pinned sebuf version is set by `SEBUF_VERSION` in the `Makefile` (currently **v0.11.0**). All three plugins — `protoc-gen-ts-client`, `protoc-gen-ts-server`, `protoc-gen-openapiv3` — must be installed from the same sebuf release. If you see codegen drift after pulling, rerun `make install-plugins` to resync.
### OpenAPI Output
`make generate` (i.e. `cd proto && buf generate`) produces:
| File | Purpose |
| --- | --- |
| `docs/api/{Service}.openapi.yaml` / `.json` | Per-service specs — referenced individually by Mintlify in `docs/docs.json` |
| `docs/api/worldmonitor.openapi.yaml` | **Unified bundle** spanning every service (sebuf ≥ v0.11.0) — use this for external consumers, API explorers, or anywhere you want a single spec covering all RPCs |
The unified bundle is emitted by a third `protoc-gen-openapiv3` invocation in `proto/buf.gen.yaml` using `bundle=true`, `bundle_only=true`, and `strategy: all`. Regenerate alongside the per-service files; do not edit by hand.
## Adding Data Sources
To add a new data layer to the map:

View File

@@ -14,7 +14,7 @@ GO_INSTALL := $(GO_PROXY) $(GO_PRIVATE) go install
# Required tool versions
BUF_VERSION := v1.64.0
SEBUF_VERSION := v0.7.0
SEBUF_VERSION := v0.11.0
help: ## Show this help message
@echo 'Usage: make [target]'

View File

@@ -7,7 +7,7 @@ info:
email: support@worldmonitor.app
version: 1.0.0
servers:
- url: https://worldmonitor.app
- url: https://api.worldmonitor.app
paths:
/api/aviation/v1/list-airport-delays:
get:

View File

@@ -42,6 +42,6 @@ plugins:
- bundle_title=WorldMonitor API
- bundle_version=1.0.0
- bundle_description=Unified OpenAPI bundle spanning all WorldMonitor services.
- bundle_server=https://worldmonitor.app
- bundle_server=https://api.worldmonitor.app
- bundle_contact_name=WorldMonitor
- bundle_contact_email=support@worldmonitor.app