Skip to content

Generate & publish OpenAPI spec untuk OpenDK + dokumentasi runbook integrasi #1674

Description

@analisopendesa

Otomatiskan pembuatan OpenAPI (Swagger) untuk semua endpoint publik yang dipakai OpenSID (khususnya endpoint API-key & data submission). Commit spec versied ke repo (openapi/openapi.yaml) dan tambahkan dokumentasi runbook integrasi (docs/integration-testing.md). Ini menjadi sumber kebenaran untuk contract tests dan onboarding.

Ruang lingkup

  • Konfigurasi Scribe (atau generator lain) agar dapat menghasilkan openapi/openapi.yaml dari code.
  • Tambahkan job CI untuk generate & validate spec.
  • Tambahkan docs/integration-testing.md yang menjelaskan cara menjalankan contract/integration/E2E lokal.
  • Tag/versi spec saat release.

Acceptance criteria (terukur)

  • openapi/openapi.yaml exist on master (up-to-date for endpoints yang dipakai OpenSID).
  • php artisan scribe:generate (atau script setara) menghasilkan spec yang valid.
  • CI memiliki job yang menjalankan validation (openapi-validator) dan gagal jika invalid.
  • docs/integration-testing.md tersedia dan menjelaskan langkah lokal untuk: build, run docker-compose test, run tests, men-rotate test API key.

Langkah yang perlu di kerjakan :

  • Konfigurasi Scribe / generator (scribe sudah ada di composer.json) dan tambahkan config scribe.
  • Tambahkan output path openapi/openapi.yaml ke repo (gitignored jika di-generate setiap run? — rekomendasi: commit spec yang representatif dan regen di CI).
  • Tambah job CI "generate-openapi" & "validate-openapi".
  • Tulis docs/integration-testing.md (contoh perintah, env vars, secrets usage).
  • Review & verify dengan Swagger UI (public/swagger-ui/ atau docs).

Harus selesai sebelum Issue #1673 (contract tests) dan Issue #1676 (CI pipeline) dijalankan penuh.

Metadata

Metadata

Assignees

Labels

Tingkat: T3Empat hingga lima hari kerja (satu sprint)Tipe: TeknisPerubahan teknis tanpa merubah tampilan/fungsionalitas

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions