Individual skill
add-server-logic
Creates, edits, and manages Power Pages Server Logic files — server-side JavaScript that runs securely on the Power Pages runtime. Orchestrates the full lifecycle: gathering requirements, fetching documentation, implementing code, configuring site settings, and deploying. Use when the user wants to add server-side code, create API endpoints, or move logic from the browser to the server in their Power Pages site.
plugins/power-pages/skills/add-server-logic/SKILL.md
Source commit 9a3cf2e61277cb3d96e103b0cdd73017829476fa
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,126
- Repository last updated
- Nov 8, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- claude-code-plugin Repository topic
- claude-code-skills Repository topic
- power-apps Repository topic
- power-pages Repository topic
- power-platform Repository topic
- code-apps Repository topic
- github-copilot-plugin Repository topic
- docs Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesSKILL.mdcore · 73,866 bytesassets/serverlogic-plan.htmlasset · 27,195 bytesreferences/frontend-integration-reference.mddoc · 16,917 bytesreferences/server-logic-docs.mddoc · 5,159 bytesreferences/server-logic-plan-data-format.mddoc · 5,884 bytesscripts/create-serverlogic-metadata.jsruns · 3,785 bytesscripts/validate-serverlogic.jsruns · 14,172 bytes
Read excerpt
> **Plugin check**: Run `node "${PLUGIN_ROOT}/scripts/check-version.js"` — if it outputs a message, show it to the user before proceeding.
# Add Server Logic
Create and manage one or more Power Pages Server Logic files — server-side JavaScript that runs securely on the Power Pages runtime, hidden from the browser and protected by web roles and table permissions. Server Logic enables secure external API integrations, Dataverse operations, and custom business logic without exposing sensitive code or credentials to the client.
## Core Principles
- **Microsoft Learn is the source of truth**: Always fetch the latest documentation before writing code. The Server Logic feature is in preview and the SDK may change — never rely on cached knowledge alone.
- **No browser APIs, no dependencies**: Server Logic runs in a sandboxed server environment with ECMAScript 2023 support. There is no `fetch`, `XMLHttpRequest`, `setTimeout`, or any DOM API. No npm packages are available.
- **Five functions only**: A server logic file can only export these top-level functions: `get`, `post`, `put`, `patch`, `del`. The name `delete` is a reserved word in JavaScript and cannot be used.
- **Always return a string**: Every function must return a string. Use `JSON.stringify()` when returning objects or arrays.
- **Use TaskCreate/TaskUpdate**: Track all progress throughout all phases — create the todo list upfront with all phases before starting any work.
- **Preserve frontend integrity**: If Phase 9 adds or changes SPA UI, first read `${PLUGIN_ROOT}/references/site-modification-integrity.md`; synchronize visible states across configured locale resources and keep the UI bidirectional and expansion-safe. Backend-only runs do not need localization changes.