Files
git.stella-ops.org/docs/implplan/SPRINT_0208_0001_0001_sdk.md
StellaOps Bot 7c39058386
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled
Symbols Server CI / symbols-smoke (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
up
2025-11-24 20:57:49 +02:00

11 KiB
Raw Blame History

Sprint 0208 · Experience & SDKs

Topic & Scope

  • Build a reproducible SDK generator toolchain and shared post-processing layer that stays air-gap safe.
  • Ship alpha SDKs (TypeScript, Python, Go, Java) aligned to portal APIs with consistent auth/telemetry helpers.
  • Connect SDK outputs to CLI and Console data providers; package offline delivery bundles with provenance.
  • Evidence: updated generator pipelines, release configs, and signed artifacts across npm/PyPI/Maven/Go proxies.
  • Working directory: docs/implplan (planning) with execution in src/Sdk/StellaOps.Sdk.*.

Dependencies & Concurrency

  • Upstream sprints: Sprint 120.A (AirGap), 130.A (Scanner), 150.A (Orchestrator), 170.A (Notifier) for API and events readiness.
  • Peer/consuming sprints: SPRINT_0201_0001_0001_cli_i (CLI), SPRINT_0206_0001_0001_devportal (devportal/offline bundles), SPRINT_0209_0001_0001_ui_i (Console/UI data providers).
  • Concurrency: language tracks can parallelize after SDKGEN-62-002; release tasks follow generator readiness; consumer sprints can prototype against staging SDKs once B wave exits.

Documentation Prerequisites

  • docs/README.md; docs/07_HIGH_LEVEL_ARCHITECTURE.md; docs/modules/platform/architecture-overview.md.
  • docs/modules/cli/architecture.md; docs/modules/ui/architecture.md.
  • API/OAS governance specs referenced by APIG0101 and portal contracts (DEVL0101) once published.

Delivery Tracker

# Task ID Status Key dependency / next step Owners Task Definition
1 SDKGEN-62-001 DONE (2025-11-24) Toolchain, template layout, and reproducibility spec pinned. SDK Generator Guild · src/Sdk/StellaOps.Sdk.Generator Choose/pin generator toolchain, set up language template pipeline, and enforce reproducible builds.
2 SDKGEN-62-002 DONE (2025-11-24) Shared post-processing merged; helpers wired. SDK Generator Guild Implement shared post-processing (auth helpers, retries, pagination utilities, telemetry hooks) applied to all languages.
3 SDKGEN-63-001 DOING Shared layer ready; TS generator script + fixture + packaging templates added; awaiting frozen OAS to generate. SDK Generator Guild Ship TypeScript SDK alpha with ESM/CJS builds, typed errors, paginator, streaming helpers.
4 SDKGEN-63-002 DOING Scaffold added; waiting on frozen OAS to generate alpha. SDK Generator Guild Ship Python SDK alpha (sync/async clients, type hints, upload/download helpers).
5 SDKGEN-63-003 TODO Start after 63-002; ensure context-first API contract. SDK Generator Guild Ship Go SDK alpha with context-first API and streaming helpers.
6 SDKGEN-63-004 TODO Start after 63-003; select Java HTTP client abstraction. SDK Generator Guild Ship Java SDK alpha (builder pattern, HTTP client abstraction).
7 SDKGEN-64-001 TODO Depends on 63-004; map CLI surfaces to SDK calls. SDK Generator Guild · CLI Guild Switch CLI to consume TS or Go SDK; ensure parity.
8 SDKGEN-64-002 TODO Depends on 64-001; define Console data provider contracts. SDK Generator Guild · Console Guild Integrate SDKs into Console data providers where feasible.
9 SDKREL-63-001 TODO Set up signing keys/provenance; stage CI pipelines across registries. SDK Release Guild · src/Sdk/StellaOps.Sdk.Release Configure CI pipelines for npm, PyPI, Maven Central staging, and Go proxies with signing and provenance attestations.
10 SDKREL-63-002 TODO Requires 63-001; connect OAS diff feed. SDK Release Guild · API Governance Guild Integrate changelog automation pulling from OAS diffs and generator metadata.
11 SDKREL-64-001 TODO Wait for 63-002; design Notifications Studio channel scopes. SDK Release Guild · Notifications Guild Hook SDK releases into Notifications Studio with scoped announcements and RSS/Atom feeds.
12 SDKREL-64-002 TODO Requires 64-001; define offline bundle manifest. SDK Release Guild · Export Center Guild Add devportal --offline bundle job packaging docs, specs, SDK artifacts for air-gapped users.

Wave Coordination

  • Single wave covering generator and release work; language tracks branch after SDKGEN-62-002.

Wave Detail Snapshots

Wave Window (UTC) Scope Exit criteria Owners Status
A: Generator foundation 2025-11-25 → 2025-12-02 SDKGEN-62-001..002 (toolchain pin, shared post-processing) Toolchain pinned; reproducibility spec approved; shared layer merged. SDK Generator Guild Planned
B: Language alphas 2025-12-03 → 2025-12-22 SDKGEN-63-001..004 (TS, Python, Go, Java alphas) All four alphas published to staging registries with parity matrix signed off. SDK Generator Guild Planned
C: Release & offline 2025-12-08 → 2025-12-29 SDKREL-63-001..64-002 (CI, changelog, notifications, offline bundle) CI pipelines green in staging; changelog automation live; notifications wired; offline bundle produced. SDK Release Guild · Export Center Guild Planned

Interlocks

  • API governance: APIG0101 outputs for stable schemas; required before Wave A exit.
  • Portal contracts: DEVL0101 (auth/session) inform shared post-processing; consume before Wave A design review.
  • Devportal/offline: SPRINT_0206_0001_0001_devportal must expose bundle manifest format for SDKREL-64-002.
  • CLI adoption: SPRINT_0201_0001_0001_cli_i aligns surfaces for SDKGEN-64-001; needs Wave B artifacts.
  • Console data providers: SPRINT_0209_0001_0001_ui_i depends on SDKGEN-64-002; needs parity matrix from Wave B.
  • Notifications/Export: Notifications Studio and Export Center pipelines must be live before Wave C release window (tasks 1112).

Upcoming Checkpoints

  • 2025-11-25: Toolchain decision review (SDKGEN-62-001) — decide generator + template pin set.
  • 2025-12-02: Shared post-processing design review (SDKGEN-62-002) — approve auth/retry/pagination/telemetry hooks.
  • 2025-12-05: TS alpha staging drop (SDKGEN-63-001) — verify packaging and typed errors.
  • 2025-12-15: Multi-language alpha readiness check (SDKGEN-63-002..004) — parity matrix sign-off.
  • 2025-12-16: Deliver parity matrix and SDK drop to UI/Console data providers (feeds SPRINT_0209_0001_0001_ui_i).
  • 2025-12-22: Release automation demo (SDKREL-63/64) — staging publishes with signatures and offline bundle.

Action Tracker

# Action Owner Due (UTC) Status
1 Confirm registry signing keys and provenance workflow per language SDK Release Guild 2025-11-29 Open
2 Publish SDK language support matrix to CLI/UI guilds SDK Generator Guild 2025-12-03 Open
3 Align CLI adoption scope with SPRINT_0201_0001_0001_cli_i and schedule SDK drop integration SDK Generator Guild · CLI Guild 2025-12-10 Open
4 Define devportal offline bundle manifest with Export Center per SPRINT_0206_0001_0001_devportal SDK Release Guild · Export Center Guild 2025-12-12 Open
5 Deliver parity matrix and SDK drop to UI data providers per SPRINT_0209_0001_0001_ui_i SDK Generator Guild · UI Guild 2025-12-16 Open

Decisions & Risks

  • Toolchain pinned (OpenAPI Generator 7.4.0, JDK 21) and recorded in repo (TOOLCHAIN.md, toolchain.lock.yaml); downstream tracks must honor lock file for determinism.
  • Dependencies on upstream API/portal contracts may delay generator pinning; mitigation: align with APIG0101 / DEVL0101 milestones.
  • Release automation requires registry credentials and signing infra; mitigation: reuse sovereign crypto enablement (SPRINT_0514_0001_0001_sovereign_crypto_enablement.md) practices and block releases until keys are validated.
  • Offline bundle job (SDKREL-64-002) depends on Export Center artifacts; track alongside Export Center sprints.
  • Shared postprocess helpers copy only when CI sets STELLA_POSTPROCESS_ROOT and STELLA_POSTPROCESS_LANG; ensure generation jobs export these to keep helpers present in artifacts.

Risk Register

Risk Impact Mitigation Owner Status
Upstream APIs change after generator pin Rework across four SDKs Freeze spec version before SDKGEN-63-x; gate via API governance sign-off SDK Generator Guild Open
Registry signing not provisioned Cannot ship to npm/PyPI/Maven/Go Coordinate with sovereign crypto enablement; dry-run staging before prod SDK Release Guild Open
Offline bundle inputs unavailable Air-gapped delivery slips Pull docs/specs from devportal cache; coordinate with Export Center SDK Release Guild Open

Execution Log

Date (UTC) Update Owner
2025-11-22 Normalised sprint to standard template; renamed file to SPRINT_0208_0001_0001_sdk.md; no status changes. PM
2025-11-22 Added wave plan and dated checkpoints for generator, language alphas, and release/offline tracks. PM
2025-11-22 Added explicit interlocks to CLI/UI/Devportal sprints and new alignment actions. PM
2025-11-22 Added UI parity-matrix delivery action to keep data provider integration on track. PM
2025-11-24 Pinned generator toolchain (OpenAPI Generator CLI 7.4.0, JDK 21), template layout, and reproducibility rules; captured in src/Sdk/StellaOps.Sdk.Generator/TOOLCHAIN.md + toolchain.lock.yaml. SDK Generator Guild
2025-11-24 Started SDKGEN-62-002: added shared post-process scaffold (postprocess/), LF/whitespace normalizer script, and README for language hooks. SDK Generator Guild
2025-11-24 Completed SDKGEN-62-002: postprocess now copies auth/retry/pagination/telemetry helpers for TS/Python/Go/Java, wires TS/Python exports, and adds smoke tests. SDK Generator Guild
2025-11-24 Began SDKGEN-63-001: added TypeScript generator config (ts/config.yaml), deterministic driver script (ts/generate-ts.sh), and README; waiting on frozen OAS spec to produce alpha artifact. SDK Generator Guild
2025-11-24 Added fixture OpenAPI (ts/fixtures/ping.yaml) and smoke test (ts/test_generate_ts.sh) to validate TypeScript pipeline locally; skips if generator jar absent. SDK Generator Guild
2025-11-24 Vendored tools/openapi-generator-cli-7.4.0.jar and tools/jdk-21.0.1.tar.gz with SHA recorded in toolchain.lock.yaml; adjusted TS script to ensure helper copy post-run and verified generation against fixture. SDK Generator Guild
2025-11-24 Ran ts/test_generate_ts.sh with vendored JDK/JAR and fixture spec; smoke test passes (helpers present). SDK Generator Guild
2025-11-24 Added deterministic TS packaging templates (package.json, tsconfig base/cjs/esm, README, sdk-error) copied via postprocess; updated helper exports and lock hash. SDK Generator Guild
2025-11-24 Began SDKGEN-63-002: added Python generator config/script/README + smoke test (reuses ping fixture); awaiting frozen OAS to emit alpha. SDK Generator Guild