Operational handoff repo for the Weave PartnerStack bridge and audit ledger tooling.
- Reads PartnerStack milestone rows from SFMC Data Extensions.
- Appends observed milestone events to a Google Sheet audit ledger.
- Runs in ledger-only mode by default: it does not POST to PartnerStack and does not replay events.
- Includes historical/backfill tooling used during bridge repair and audit work.
- Cadence: every 30 minutes via launchd.
- Main scheduled script:
scripts/ledger/partnerstack-sfmc-ledger-sync.py. - Audit Sheet ID:
1AXyTvr53Yg2saBMXmvyLXENof3KalyXZlFnQnCD8kh4. - Output artifacts default to
outputs/run-artifacts/unless overridden.
Create secrets/sfmc.md on the runtime machine:
Client ID: ...
Secret: ...
Auth URL: https://...auth.marketingcloudapis.com
REST URL: https://...rest.marketingcloudapis.com
SOAP URL: https://...soap.marketingcloudapis.com
Do not commit .env, secrets/, outputs/, logs/, or state/.
# Dry run ledger sync
scripts/ledger/partnerstack-sfmc-ledger-sync.py --dry-run
# Live ledger append, no PartnerStack POSTs
scripts/ledger/partnerstack-sfmc-ledger-sync.py
# Jan. 1+ ledger-only backfill
scripts/ledger/partnerstack-sfmc-jan1-lookback-ledger.py --dry-run
# LeadSource=PartnerStack ledger-only backfill
scripts/ledger/partnerstack-sfmc-leadsource-jan1-ledger.py --dry-runTemplate lives in launchd/. Replace /ABS/PATH/TO/partnerstack with the absolute repo path, copy to ~/Library/LaunchAgents/, then load:
launchctl bootstrap "gui/$(id -u)" ~/Library/LaunchAgents/com.kyle.partnerstack-sfmc-ledger-sync.plist- The active scheduled job is ledger-only.
- Scripts under
scripts/legacy/include backfill/direct-send tools. Do not execute live send modes without explicit approval. - Raw payload artifacts and historic audit exports are intentionally not committed.