Skip to content

v0.9.29 — plugin OAuth wizard + Meta account_id & STATE.json fixes

Choose a tag to compare

@hyoshi hyoshi released this 10 Jun 17:42
8b3f4de

Plugin OAuth onboarding plus two credential/state correctness fixes surfaced while integrating the multi-account / agency layering.

Added

  • Generic per-account OAuth (authorization-code) wizard for plugins (#201) — a third-party provider whose per-account secret is obtained via the OAuth2 authorization-code grant (Yahoo! JAPAN Ads first) can declare an AccountOAuthConfig. mureo configure then offers an Authenticate button that runs the browser consent flow, exchanges the code at the provider's token endpoint, and saves the refresh_token into the named field — instead of the operator pasting it by hand. Same "OSS = mechanism, plugin = values" split as #186; a parallel, library-agnostic flow that reuses the bridge / callback-server / status-poll machinery without touching the Google/Meta onboarding path. Secrets are never logged, the exchange is https-only, and the callback enforces the host + state guards before any exchange. Providers without account_oauth keep manual entry.

Fixed

  • Meta per-account override silently ignored (#202) — the Meta adapter declared its per-account field as ad_account_id, but load_meta_ads_credentials reads account_id (and the wizard persists account_id). The mismatch dropped a per-account override and connected to the wrong ad account. The declared key is now account_id, so the declaration, wizard output, and loader all agree.
  • STATE.json renders clients as inactive after campaign upsertmureo_state_upsert_campaign only wrote the legacy v1 flat campaigns list and never stamped last_synced_at, leaving the v2 platforms section (with its required account_id) empty. The tool now requires platform + account_id, populates platforms[platform], stamps last_synced_at, and keeps the v1 flat list in lockstep.

Full changelog: https://github.com/logly/mureo/blob/main/CHANGELOG.md