Spring til indholdet

SharePoint Framework: fra annonceringen i 2016 til Heft og Copilot-komponenter

Hvad SharePoint Framework er, hvem der godkender og udruller løsningerne, hvordan tilladelserne gives, og hvad der er udfaset siden annonceringen i maj 2016.

Opdateret SharePoint OnlineTilpasningUdfasning 11 min. læsning

SharePoint Framework (SPFx) er den model, Microsoft annoncerede 4. maj 2016 til udvikling af klientside web parts i SharePoint Online. Extensions kom senere, i 2017. Det er den model, Microsoft selv byggede de nye dokumentbiblioteker, lister og den nye mobilapp med (Office-bloggen, 4. maj 2016, Wayback), og den er i dag den anbefalede udvidelsesmodel for udviklere (Learn, Overview of the SharePoint Framework). For en administrator er det ikke koden, der er det vigtige, men hvad en SPFx-løsning må, hvor dens kode ligger, hvem der godkender den, og hvilke dele af modellen der er blevet lukket undervejs.

Status 17. oktober 2026: Ifølge Learn er SPFx den anbefalede udvidelsesmodel for SharePoint og den eneste mulighed for at udvide Viva Connections, og afviklingen af SharePoint add-ins berører ikke SPFx (Learn, Overview of the SharePoint Framework). Seneste udgivne version i kompatibilitetstabellen er 1.23.2 med Node.js 22 (Learn, Compatibility). Version 1.24 med React 18 og komponenter, der vises i Microsoft 365 Copilot (Copilot UX components), er i release candidate fra 2. oktober 2026, og Learn angiver, at målet er generel tilgængelighed til produktion i oktober (Learn, SPFx 1.24). Copilot-komponenterne er i public preview, og licenskravene til generel tilgængelighed er endnu ikke afgjort (Developer-bloggen, SPFx roadmap update, september 2026).

Tegning af en SharePoint Framework-løsning. En .sppkg-pakke med manifest og en URL ligger i app catalog og godkendes af en administrator. URL’en peger på koden, som kan ligge i pakken, i Microsoft 365 CDN, i Azure Storage eller på en egen webserver. Koden kører i browseren med den indloggede brugers rettigheder. Adgang til Microsoft Graph og andre API’er godkendes særskilt på siden API access.

Hvad der blev annonceret i 2016#

Annonceringen kom samme dag som The Future of SharePoint. SPFx blev beskrevet som en »page and part model« til fuldt understøttet klientside-udvikling med åbent værktøj som Yeoman og Gulp og let adgang til Microsoft Graph. Microsoft skrev, at de nye oplevelser i SharePoint Online og OneDrive for Business, herunder det nye dokumentbibliotek, listerne og den nye mobilapp, var bygget med rammen, og at klientside web parts skulle kunne ligge på eksisterende sider. Det blev lovet som First Release om sommeren 2016 (Office-bloggen, 4. maj 2016, Wayback).

Det første offentlige developer preview kom 17. august 2016 (Developer-bloggen). Generel tilgængelighed kom 22.–23. februar 2017. Learns udgivelsesnoter for 1.0.0 er dateret 22. februar, og Office-bloggens indlæg er dateret 23. februar. Udrulningen skete i trin, først til serverne og derefter til tenants, og en tenant kunne se, om den var med, ved at app catalog meldte en uploadet pakke gyldig (Learn, SPFx 1.0.0, Office-bloggen, Wayback).

Pakken og koden er to ting#

En SPFx-løsning består af to dele: koden (komponentens bundle), der ligger på en URL, og en .sppkg-pakke, der indeholder komponentens manifest og en URL til koden. Koden kan ligge hvor som helst, hvor brugerne kan nå den: i Microsoft 365 CDN, i Azure Storage eller på en webserver, organisationen selv driver (Learn, Governance considerations). Siden SPFx 1.4 i december 2017 kan koden og andre ressourcer ligge i selve .sppkg-filen, og SharePoint hoster dem så automatisk (Learn, SPFx 1.4, CDN-noten). Learn kalder automatisk hosting for en af modellens fordele (Learn, Overview of the SharePoint Framework).

Det har en følge for den, der godkender pakker. Koden kører i browseren som en del af siden og med den indloggede brugers rettigheder. Learn skriver, at der ikke er noget særskilt rettighedsområde som ved add-ins, og at administratorer derfor bør behandle SPFx-løsninger som løsninger med høj tillid, på samme måde som farm solutions i en lokal installation. Det samme gælder eksterne scripts, som en løsning henter fra en URL, fordi de kører på samme vilkår (Learn, Governance considerations). Learn råder til en plan for, hvem der må udrulle og godkende pakker, og til at pakkens indhold og de scripts, den henviser til, gennemgås, før den godkendes.

Ifølge Learn er moderne sites tænkt med no-script-indstillingen slået til, så scripts ikke kan indlejres eller injiceres, og SPFx er derfor den eneste måde at tilpasse dem på (Learn, Governance considerations). Custom scripting og klassiske publiceringswebsteder beskriver, hvordan custom scripting og no-script virker på klassiske publiceringswebsteder.

Hvor løsningerne udrulles#

Løsninger udrulles centralt gennem app catalog. Et site collection app catalog, der blev meldt klar til tenants sammen med SPFx 1.4 (Developer-bloggen, 7. december 2017), kan i stedet målrette en enkelt site collection (Learn, Site collection app catalog).

Det er en tenant-administrator, der aktiverer et site collection app catalog på et bestemt site, og først derefter kan administratorerne af den site collection udrulle løsninger til det. Kontoen, der opretter det, skal være site collection administrator både for tenantens app catalog og for målsitet. Løsninger i et site collection app catalog kan kun installeres i den site collection, men de kan potentielt tilgå ressourcer på andre sites i tenanten. Markeringen af, at en tenant-scoped løsning skal være tilgængelig for alle sites, gælder i et site collection app catalog kun for den site collection, hvor kataloget ligger (Learn, Site collection app catalog).

Udrulningen kan være tenant-scoped, så løsningens komponenter er tilgængelige på alle sites uden en installation pr. site. Det styres af skipFeatureDeployment i package-solution.json. Er den true, får administratoren ved upload en markering, Enable this app and add it to all sites, som er slået til som standard. Løsninger udrullet på den måde vises ikke i listen over apps, der kan føjes til et enkelt site (Learn, Tenant-scoped deployment). Developer-bloggen meldte tenant-scoped deployment generelt tilgængelig 9. august 2017, mens Learn knytter modellen til SPFx 1.4. Fra SPFx 1.14 er skipFeatureDeployment som standard true i nye projekter (Learn, Yeoman generator).

For extensions findes der en liste, Tenant Wide Extensions, i app catalog-sitet. Poster i den aktiverer en Application Customizer eller et List View Command Set på tværs af tenanten eller efter site- eller listeskabelon. SPFx 1.6 gjorde det til en del af den automatik, løsningspakken kan indeholde. Det kan tage op til 20 minutter, før funktionen virker, efter første post er tilføjet (Learn, Tenant-wide deployment of extensions). Extensions blev generelt tilgængelige med SPFx 1.3.0 den 25. september 2017 (Learn, SPFx 1.3.0).

Løsninger, der skal bruges i Teams, skal være tenant-scoped for at kunne udgives i Marketplace (Learn, Publish to Marketplace checklist). Learns vejledning i at bygge en Teams-tab bruger tenant-scoped udrulning og nævner, at løsningen i stedet kan udrulles pr. site, hvis den er udrullet på det site, der ligger bag teamet (Learn, Build Microsoft Teams tab using SharePoint Framework).

Tilladelser til API’er#

En SPFx-løsning kan bede om adgang til Microsoft Graph og andre API’er, der er sikret med Entra ID. Anmodningerne står i webApiPermissionRequests i pakken, og når pakken lægges i app catalog, opstår der anmodninger, som en administrator godkender eller afviser. Godkendes en anmodning, gælder tilladelsen for hele tenanten og ikke kun for den løsning, der bad om den. Tilladelserne er af typen delegated (Learn, Manage access to Entra ID-secured APIs), og for Microsoft Graph betyder det, at løsningen handler på vegne af den indloggede bruger og ikke kan få adgang til mere, end brugeren selv har adgang til (Learn, Overview of Microsoft Graph permissions). Hvis løsningen fjernes, bliver tilladelsen stående, og et tilbagekaldt token er stadig gyldigt, til det udløber. Afvises en anmodning, kan løsningen stadig udrulles og bruges, så en løsning kan ikke forudsætte, at tilladelsen er givet (Learn, Connect to Entra ID-secured APIs).

Godkendelsen sker på siden API access i SharePoint admin center eller med Get-SPOTenantServicePrincipalPermissionRequests, Approve-SPOTenantServicePrincipalPermissionRequest, Deny-SPOTenantServicePrincipalPermissionRequest og Revoke-SPOTenantServicePrincipalPermission. Rollen afhænger af API’et. Application administrator er nok til tredjeparts-API’er, mens tilladelser til Microsoft Graph og andre Microsoft-API’er kræver Global Administrator (Learn, Manage access to Entra ID-secured APIs). Vil en organisation ikke have, at løsninger kan bede om API-adgang, kan tjenesteprincipalen slås fra med Disable-SPOTenantServicePrincipal (Learn, Connect to Entra ID-secured APIs).

Fra anden uge af marts 2025 begyndte Microsoft at flytte SPFx’ tilladelser fra applikationen SharePoint Online Client Extensibility Web Application Principal til SharePoint Online Web Client Extensibility. Eksisterende tilladelser blev kopieret. Løsninger med Sites.Selected skal have den tilladelse givet igen af en global administrator eller en app med Sites.FullControl.All, og tilladelser kan ikke længere gives direkte i Entra-portalen, så Microsoft udgav et eksempelscript. Indlægget lover en opdatering, når udrulningen er afsluttet, men der er ikke føjet en sådan til. Kommentarerne til indlægget citerer et Message Center-opslag om, at udrulningen var ventet færdig i begyndelsen af maj 2025, og beskriver tenants, hvor API access-siden og tokenet brugte forskellige principaler (Developer-bloggen, 10. marts 2025). Learns side om API access nævner stadig det gamle navn. Hvordan Sites.Selected virker, står i Sites.Selected til adgang til enkelte websteder.

Lukket eller udfaset#

  • Domain isolated web parts. De kom som developer preview i SPFx 1.7 og lod en web part køre i et iframe på et eget domæne med egne tilladelser. Ifølge Learn slås de fra for nyoprettede tenants 2. april 2025 og for eksisterende tenants 2. april 2026, uden mulighed for forlængelse, og et web part, der stadig bruger funktionen, viser en fejl. Microsoft råder til at sætte isDomainIsolated til false, hæve versionen, udrulle igen og sikre, at de tilladelser, der stod under Isolated på API access-siden, nu er givet som Organization-wide (Learn, Retiring domain isolated web parts, Learn, SPFx 1.7.0).
  • Den lokale workbench. Den blev fjernet i SPFx 1.13 i oktober 2021, sammen med understøttelsen af Node 10, så den hostede workbench blev den eneste måde at afprøve på (Learn, SPFx 1.13.0). Den hostede workbench er nu selv udfaset. SPFx 1.23.0 fra 13. maj 2026 er den sidste udgave, der indeholder støtte til den hostede workbench, og den stopper 1. december 2026. Afløseren er SPFx Debug Toolbar (Learn, SPFx 1.23.0).
  • Geolocation i Adaptive Card Extensions, der bruges til at udvide Viva Connections, udgår fra SharePoint Online samme dag, 1. december 2026 (Learn, SPFx 1.23.0).
  • Gulp. SPFx 1.22 fra 10. december 2025 afløste det Gulp-baserede byggeværktøj med Heft, som bygger videre på webpack, og scaffoldede projekter har ingen npm audit-fund. Opgradering af projekter fra 1.21.1 og ældre kræver ændringer i pakkeversioner, buildkonfiguration og værktøjskæde, og Learn henviser til m365 spfx project upgrade fra CLI for Microsoft 365 til at finde ændringerne (Learn, SPFx 1.22.0). I 1.23.0 kom en første preview af en ny kommandolinje, SPFx CLI, der skal afløse Yeoman-generatoren (Learn, SPFx 1.23.0). Køreplanen fra 30. september 2026 placerer generel tilgængelighed i SPFx 1.25, december 2026 eller januar 2027 (Developer-bloggen, SPFx roadmap update, september 2026).
  • SharePoint add-ins. SharePoint add-ins udgik 2. april 2026, og Learn kalder SPFx den anbefalede afløser (Learn, SharePoint Add-ins). Forløbet står i Azure ACS og SharePoint add-ins udgår.
  • Field Customizers. Message Center-opslaget MC1094051 fra 13. juni 2025 sagde, at Microsoft overvejede at udfase Field Customizers i lister og biblioteker til fordel for kolonneformatering. Opslaget blev ændret 22. september 2025: der er ikke længere planer om at udfase dem (MC1094051).

SharePoint Online bruger altid den nyeste version af SPFx. Lokale servere understøtter kun ældre: SharePoint Server 2016 med Feature Pack 2 version 1.0–1.1, SharePoint Server 2019 version 1.0–1.4.1 og Subscription Edition version 1.0–1.5 (Learn, Compatibility). Den udvidede support for SharePoint Server 2016 og 2019 sluttede i juli 2026 (Learn, SharePoint Server 2016, Learn, SharePoint Server 2019). Fra SPFx 1.13 kan generatoren kun oprette projekter til SharePoint Online (Learn, Yeoman generator).

Tidslinjen#

  1. Meddelelse

    SPFx annonceres sammen med The Future of SharePoint (Office-bloggen, Wayback)

  2. Udrulning

    Første offentlige developer preview (Developer-bloggen)

  3. Udrulning

    SPFx 1.0 er generelt tilgængelig (Learn)

  4. Udrulning

    Tenant-scoped deployment meldes generelt tilgængelig (Developer-bloggen)

  5. Udrulning

    SPFx 1.3.0: extensions er generelt tilgængelige (Learn)

  6. Udrulning

    SPFx 1.4: ressourcer i .sppkg (Learn), og site collection app catalogs meldes klar til tenants (Developer-bloggen)

  7. Ny funktion

    SPFx 1.5 (Learn). Udrulning af extensions på tværs af tenanten varslet som eksperimentel i maj (Developer-bloggen)

  8. Meddelelse

    Microsoft kalder SPFx den eneste model til at udvide moderne SharePoint (Developer-bloggen)

  9. Ny funktion, udfasning

    SPFx 1.13: Adaptive Card Extensions til Viva Connections, den lokale workbench fjernet (Learn)

  10. Meddelelse

    Domain isolated web parts varsles udfaset (MC792601)

  11. Ændring

    Tilladelser flyttes til en ny applikationsprincipal i Entra ID (Developer-bloggen)

  12. Frist

    Domain isolated web parts slås fra for nyoprettede tenants (Learn)

  13. Ændring

    SPFx 1.22: Heft afløser Gulp (Learn)

  14. Frist

    Domain isolated web parts stopper for eksisterende tenants (Learn), og SharePoint add-ins udgik samme dag (Learn)

  15. Udfasning

    SPFx 1.23.0: gruppering af List View Command Sets, preview af SPFx CLI, hostet workbench og geolocation varsles udgået (Learn)

  16. Frist

    Den hostede workbench stopper, og geolocation i Adaptive Card Extensions udgår

I månedsnoterne#

SPFx står som egen række i de fleste månedsnoter fra maj 2016. Annonceringen står i maj 2016, og de enkelte udgaver, forhåndsversioner og udfasninger står i disse måneder:

2016: maj, juni, juli, august, september, oktober, november, december

2017: januar, februar, april, maj, juni, juli, august, september, oktober, november, december

2018: januar, februar, april, maj, juni, august, september, oktober, november, december

2019: januar, marts, april, maj, juni, juli, august, september, oktober, november, december

2020: januar, juni, juli, september

2021: januar, marts, april, maj, juli, august, september, oktober, november, december

2022: januar, februar, marts, april, maj, juni, august, oktober, november, december

2023: januar, februar, marts, april, maj, juni, juli, august, september, november

2024: januar, februar, marts, april, maj, august, september

2025: marts, april, maj, juni, september, oktober, november, december

2026: januar, februar, marts, april, maj, juni, juli, august, september