| name | onenote-upgrade-migration |
| description | Migrate OneNote integrations across Graph SDK versions, auth deprecations, and API changes.
Use when upgrading Graph SDK, migrating from app-only to delegated auth, or handling deprecated endpoints.
Trigger with "onenote upgrade", "onenote migration", "graph sdk upgrade", "onenote breaking changes".
|
| allowed-tools | Read, Write, Edit, Bash(npm:*), Bash(pip:*), Grep |
| version | 1.6.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","onenote","microsoft"] |
| compatibility | Designed for Claude Code |
OneNote Upgrade & Migration
Overview
Microsoft shipped three breaking changes to OneNote integrations in under two years: webhook decommissioning (June 2023), search endpoint deprecation (April 2024), and app-only auth deprecation (March 2025). The Graph SDK itself had breaking changes between v5 and v6. This skill provides exact migration diffs, verification steps, and rollback strategies for each breaking change.
Prerequisites
- Existing OneNote integration using Graph API
- Node.js 18+ (TypeScript SDK) or Python 3.10+ (Python SDK)
- Git for branch-based migration with rollback capability
- Azure portal access for app registration changes (auth migration)
Instructions
Breaking Changes Timeline
| Date | Change | Impact |
|---|
| June 16, 2023 | Webhooks decommissioned | Subscription notifications stop |
| April 2024 | Search endpoint deprecated | /pages?search= returns 404 |
| March 31, 2025 | App-only auth deprecated | ClientSecretCredential returns 403 |
Migration 1: App-Only to Delegated Auth
Before (broken after March 2025):
import { ClientSecretCredential } from "@azure/identity";
const credential = new ClientSecretCredential(TENANT_ID, CLIENT_ID, CLIENT_SECRET);
const authProvider = new TokenCredentialAuthenticationProvider(credential, {
scopes: ["https://graph.microsoft.com/.default"],
});
After:
import { } ;
credential = ({
: , : ,
:
.(),
});
authProvider = (credential, {
: [, ],
});
client = .({ authProvider });