Skip to content

Adapt Mocktioneer to edgezero v0.0.4 (extensible CLI, typed config, introspection routes) #115

Description

@aram356

Summary

Adapt Mocktioneer to the released edgezero v0.0.4, which lands the extensible CLI (stackpop/edgezero#269) and the pluggable introspection routes (stackpop/edgezero#300). These are breaking changes: the adapter run_app signature drops its manifest argument, app config moves to a typed, store-backed blob, and the Spin adapter must move to spin-sdk 6 / wasm32-wasip2.

Follows #107 (strict-clippy gate + edgezero PR #257 API), which shipped via PR #108.

Scope

  • Compat
    • Pin the six edgezero-* git deps to the immutable tag v0.0.4.
    • Drop the include_str!(manifest) argument from every adapter run_app.
    • Migrate the Spin adapter to spin-sdk ~6.0 / wasm32-wasip2 (Fastly stays wasm32-wasip1).
  • Typed config
    • Add a validated MocktioneerConfig (bid_cpm, range(exclusive_min = 0.0)).
    • Add gitignored mocktioneer.toml + committed mocktioneer.toml.example template.
    • Add a mocktioneer-cli crate mirroring edgezero's generated <name>-cli (config validate/diff/push, auth/build/deploy/provision/serve; no new).
  • Runtime (fail-loud)
    • OpenRTB (/openrtb2/auction) and APS (/e/dtb/bid) read bid_cpm via the typed AppConfig extractor. A fresh deploy must config push once before those endpoints serve — until then they return 503 config_out_of_date. FIXED_BID_CPM = 0.20 is the shipped default value, not a runtime fallback.
  • Introspection
    • Mount the framework-supplied /_mocktioneer/{manifest,config,routes} routes from edgezero_core::introspection.
  • Plumbing
    • [stores.config] in the manifest + Spin runtime-config.toml.
    • Dockerfile seeds the default config blob and binds 0.0.0.0.
    • Docs: wasip2, fail-loud typed config, introspection, edgezero-cli vs mocktioneer-cli.
    • CI: config validate --strict --app-config mocktioneer.toml.example gate + Docker build/smoke gate.
    • Config-seeded auction contract tests through the Fastly and Cloudflare adapters.

Out of scope (tracked separately)

Done when

  • All CI gates pass: fmt, clippy -D warnings, cargo test --workspace, cargo check --features "fastly cloudflare", config validate --strict, Docker build + smoke, adapter wasm tests, Playwright, docs ESLint/Prettier.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions