feat: Implement DevPortal Offline Export Job
- Added DevPortalOfflineJob to coordinate bundle construction, manifest signing, and artifact persistence. - Introduced DevPortalOfflineWorkerOptions for configuration of the offline export job. - Enhanced the Worker class to utilize DevPortalOfflineJob and handle execution based on configuration. - Implemented HmacDevPortalOfflineManifestSigner for signing manifests with HMAC SHA256. - Created FileSystemDevPortalOfflineObjectStore for storing artifacts in the file system. - Updated appsettings.json to include configuration options for the DevPortal offline export. - Added unit tests for DevPortalOfflineJob and HmacDevPortalOfflineManifestSigner to ensure functionality. - Refactored existing tests to accommodate changes in method signatures and new dependencies.
This commit is contained in:
@@ -84,7 +84,8 @@ All endpoints require Authority-issued JWT + DPoP tokens with scopes `export:run
|
||||
- Supports optional encryption of `/data` subtree (age/AES-GCM) with key wrapping stored in `provenance.json`.
|
||||
- **DevPortal (`devportal:offline`).**
|
||||
- Packages developer portal static assets, OpenAPI specs, SDK releases, and changelog content into a reproducible archive with manifest/checksum pairs.
|
||||
- Emits `manifest.json`, `checksums.txt`, and helper scripts described in [DevPortal Offline Bundle Specification](devportal-offline.md); signing/DSSE wiring follows the shared Export Center signing service.
|
||||
- Emits `manifest.json`, `checksums.txt`, helper scripts, and a DSSE signature document (`manifest.dsse.json`) as described in [DevPortal Offline Bundle Specification](devportal-offline.md).
|
||||
- Stores artefacts under `<storagePrefix>/<bundleId>/` and signs manifests via the Export Center signing adapter (HMAC-SHA256 v1, tenant scoped).
|
||||
|
||||
Adapters expose structured telemetry events (`adapter.start`, `adapter.chunk`, `adapter.complete`) with record counts and byte totals per chunk. Failures emit `adapter.error` with reason codes.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user