Working Backwards from Error Logs: Reverse Engineering the Tableau-to-Fabric OAuth Breakdown

πŸ›‘ The Crime Scene: A Misleading Desktop Failure When modern lakehouse architectures meet desktop analytics clients, authentication breakdowns rarely announce their true root cause. Instead, engineers are handed generic hex codes and deceptive UI prompts. During an enterprise deployment of Microsoft Fabric Warehouse, data analysts attempted to connect Tableau Desktop (2024.2.0) to the Fabric SQL/TDS endpoint (*.datawarehouse.fabric.microsoft.com) using the native Azure SQL Database connector and Microsoft Entra ID modern authentication. ...

October 2, 2026 Β· 9 min Β· 1767 words Β· Joshua Wortz

Modernizing the Academic Knowledge Graph: Canvas Sync Bridge v0.4.0, Hybrid Ingestion, and Official Obsidian Compliance

πŸŽ“ The Academic Knowledge Management Dilemma Modern higher education and enterprise training institutions rely almost universally on Learning Management Systems (LMS) like Instructure Canvas to distribute course syllabi, lecture modules, assignments, student discussions, and grading rubrics. Yet for technical students, researchers, and security practitioners who build their intellectual workflows inside personal knowledge management (PKM) systems like Obsidian, Canvas represents an isolated, walled-off data silo: Ephemerality & Term Expiration: Once an academic semester concludes, student access to Canvas courses is routinely archived or revoked. Syllabi, instructor annotations, curated reading lists, and assignment rubrics vanish behind institutional access gates. Disconnected Knowledge Graphs: Course notes authored in Obsidian remain disconnected from source materials, grading criteria, and module pacing guides living inside the web browser. Administrative Token Gating: Canvas exposes an extensive REST API, but institutional administrators frequently disable personal access tokens (Account > Settings > + New Access Token) for student roles due to enterprise compliance policies. Third-Party Cloud Aggregation Risks: Traditional third-party scrapers and web integrations require routing student session credentials, course documents, and peer discussions through external SaaS servers. For students handling proprietary lab code or education records governed by FERPA and GDPR, third-party cloud aggregation is an unacceptable privacy compromise. Third-Party Cloud Scraper (High Risk): [Canvas LMS] ----(Credentials/Course Data)----> [Cloud Relay / SaaS] ----> [Obsidian Vault] β–² └── Attack Surface & Data Leakage Risk Canvas Sync Bridge v0.4.0 (Hybrid Local-First Architecture): [Canvas LMS REST API] ════(Direct Token / requestUrl)═══════════════════╗ β–Ό [Canvas LMS Web Tab] ════(Session Cookies)════> [Browser Ext] ──(127.0.0.1)──> [Obsidian Vault] To eliminate this friction while upholding strict privacy boundaries and supply-chain integrity, I architected and open-sourced Canvas Sync Bridge v0.4.0β€”a production-grade, hybrid local-first ecosystem split into two dedicated, decoupled open-source GitHub repositories and audited against official Obsidian Community guidelines. ...

September 18, 2026 Β· 10 min Β· 2047 words Β· Joshua Wortz

Bridging the Browser-to-Boundary Gap: From Client-Side SPA State Reconnaissance to Safe Harbor Verification

πŸ” The Modern SPA Testing Paradox For more than two decades, the standard operating procedure for web application security assessments has centered around the interception proxy. Tools like Burp Suite, OWASP ZAP, and Caido position themselves between the browser and the target origin, capturing every HTTP request and response traversing the network socket. In traditional server-rendered architectures (PHP, ASP.NET, Rails), this model was nearly exhaustive: every routing decision, session transition, and authorization challenge occurred strictly across the wire. ...

September 12, 2026 Β· 11 min Β· 2188 words Β· Joshua Wortz

Triage Under Fire: The Lean Team's 48-Hour Hardening Blueprint for September 2026 Patch Tuesday

🚨 The 5:00 PM Firehose It is Tuesday, September 8, 2026, at 5:00 PM. Your vulnerability management dashboard updates, and the room goes silent. Microsoft has just released patches for 973 vulnerabilities in a single monthly update cycleβ€”including 113 rated Critical. By every metric, it is the largest Patch Tuesday in history, shattering previous records. Pagers begin chiming. The compliance team sends an automated Slack notification reminding engineering leads that Critical CVEs must be remediated within 72 hours per enterprise SLA. ...

September 9, 2026 Β· 6 min Β· 1182 words Β· Joshua Wortz

My Teaching Philosophy: Building Accessible AI Security Education

As the father of a college student with autism, my approach to inclusive teaching is both professionally grounded and deeply personal. I see firsthand how traditional, single-mode instructional methods can create unintentional barriers for neurodivergent learners or students balancing non-traditional paths. To foster an environment where every student can succeed regardless of their starting point or learning style, I focus on building multimodal, accessible, and low-cost learning environments across three key areas. ...

August 30, 2026 Β· 3 min Β· 462 words Β· Joshua Wortz

Teaching AI Security: Hands-On LLM Hardening with Docker Desktop and Security Gateways

In August 2026 I delivered a webinar for the NCyTE Center on a question I kept hearing from community college faculty: how do you teach AI security when you don’t have a budget, your IT department locks down what you can install, and API costs for a live LLM are unpredictable? The answer I built β€” and the one this post walks through β€” is a zero-cost, fully local lab that any instructor can drop into their course next week. ...

August 30, 2026 Β· 5 min Β· 1047 words Β· Joshua Wortz