#!/usr/bin/env bash # apm-wo-analysis local drop-folder uploader (optional zero-touch ingestion). # # Mirrors the stampli-drop-folder pattern. When deployed, BOTH this script and # the watched folder must live OUTSIDE ~/Documents (macOS TCC sandbox — see the # macos-tcc-launchd memory). Suggested install locations: # script: ~/Library/Application Support/seahaven/apm-wo-drop/upload.sh # folder: ~/APM-WO-Drop # # Triggered by the launchd agent (scripts/com.seahaven.apm-wo-drop.plist) on a # WatchPaths change. Uploads each new export to the raw/ prefix, then moves it to # a local processed/ subfolder. Uses a least-privilege local AWS profile scoped # to s3:PutObject on raw/ only. The classifier Lambda is S3-triggered from there. set -euo pipefail DROP_DIR="${APM_WO_DROP_DIR:-$HOME/APM-WO-Drop}" PROCESSED_DIR="$DROP_DIR/processed" BUCKET="apm-wo-analysis-exports-328440206208" PROFILE="${APM_WO_AWS_PROFILE:-apm-wo-drop}" mkdir -p "$PROCESSED_DIR" shopt -s nullglob for f in "$DROP_DIR"/*.xlsx "$DROP_DIR"/*.csv; do [ -e "$f" ] || continue name="$(basename "$f")" aws --profile "$PROFILE" s3 cp "$f" "s3://${BUCKET}/raw/${name}" mv "$f" "$PROCESSED_DIR/$name" done