# pcf-power-pages

Правило подсказывает Copilot, как переносить код-компоненты Power Apps в формы сайта Power Pages и какие API там не работают.

- правило · `type=rule` · GitHub Copilot · ★ 40451
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/instructions/pcf-power-pages.instructions.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/rules/pcf-power-pages

## Что делает

Файл описывает путь код-компонента из Power Apps component framework в веб-форму Power Pages: сначала компонент собирают и пакуют, затем добавляют к полю в форме model-driven app, а после включают на стороне портала. Включить можно двумя способами — через Design Studio, выбрав поле и галочку «Enable custom component», либо через Portals Management app, где создаётся запись Basic Form Metadata с типом Attribute и Control Style «Code Component».

Поддерживаются не все типы полей: Currency, Decimal, Enum, OptionSet, TwoOptions, Whole, часть форматов SingleLine и DateAndTime. Ограничения жёстче, чем в model-driven приложениях. Из API недоступны методы `Device.captureAudio`, `Device.captureImage`, `Device.captureVideo`, `Device.getBarcodeValue`, `Device.getCurrentPosition`, `Device.pickFile` и `Utility`, а элемент `uses-feature` нельзя выставлять в true. Компонент, привязанный к нескольким полям формы, тоже не заработает.

Перед включением нужны права системного администратора в среде, версия сайта Power Pages 9.3.3.x или выше и стартовый пакет сайта 9.2.2103.x или выше. Компонент работает в браузерах с клиентской опцией Web. Если компонент ходит в данные, его можно связать с portal Web API для создания, чтения, обновления и удаления записей.

## Установка

### GitHub Copilot (родная платформа)

**Вручную: положить файлы**
- Файл: `.github/instructions/pcf-power-pages.instructions.md` — Поле applyTo задаёт, к каким файлам применять

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/pcf-power-pages.md` — Поле paths во frontmatter ограничивает файлы: applyTo из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/rules/pcf-power-pages.mdc` — Во frontmatter: description, globs, alwaysApply. applyTo из источника → globs, иначе правило само не подключится

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/pcf-power-pages.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/pcf-power-pages.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/instructions/pcf-power-pages.instructions.md

## Когда брать
- перенести код-компонент из model-driven app на страницу Power Pages
- включить кастомный компонент у поля формы через Design Studio
- добавить компонент к basic form через Portals Management app
- проверить, поддерживается ли нужный тип поля и формат
- связать компонент с portal Web API для работы с записями

## Примеры запросов агенту
- Добавь код-компонент к полю формы в model-driven app и подскажи, как включить его в Power Pages
- Проверь, попадает ли тип поля SingleLine.Email в список поддерживаемых для код-компонентов
- Собери компонент, который через portal Web API читает и обновляет записи Dataverse

## Похожие
- [seo-competitor-pages](https://affpapa.org/nevibecode/skills/seo-competitor-pages.md) — скилл · 7600 установок

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 928 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
