Problem
The deployment plan currently has one top-level deployStrategy, even though a project can contain application services with different deployment channels, such as Static Web Apps, Azure Functions Flex Consumption, App Service, and container hosts. Generic language-level Oryx guidance can consequently be applied to Flex Functions, where settings such as SCM_DO_BUILD_DURING_DEPLOYMENT and ENABLE_ORYX_BUILD are invalid.
Proposed work
- Add
deployStrategy to each PlannedService.
- Introduce explicit channel-oriented values, for example:
functions-flex-package
appservice-oryx
appservice-startup-install
container-image
static-content
- Retain the current top-level strategy temporarily as a deprecated compatibility fallback for older plan artifacts.
- Update scaffold/deploy agents to consume each service's strategy and apply legacy Oryx settings only to compatible App Service targets.
- Add hard validation that rejects Oryx/SCM build settings for Flex Consumption.
- Update fixtures and documentation to remove ambiguous descriptions such as labeling a Flex package flow
oryx-auto.
Likely implementation surfaces include:
resources/agents/azure-deploy/prepare/references/prepare-schemas.ts
resources/agents/azure-deploy/prepare/references/deploy-strategy.md
resources/agents/azure-deploy/scaffold/references/bicep-functions-flex.md
resources/agents/azure-deploy/deploy/references/code-deployment-functions-flex.md
test/testProjects/copilotOnRails/scrapbook/prepare-plan.json
Acceptance criteria
- Every application service can carry its own deployment strategy.
- Mixed-hosting projects use the correct strategy for each service.
- Flex Consumption plans reject Oryx and SCM remote-build settings before provisioning.
- Existing plan artifacts with only the top-level strategy remain readable during the compatibility period.
- Newly generated plans use service-level strategies.
- Tests cover mixed-service plans, legacy fallback, and invalid Flex settings.
Problem
The deployment plan currently has one top-level
deployStrategy, even though a project can contain application services with different deployment channels, such as Static Web Apps, Azure Functions Flex Consumption, App Service, and container hosts. Generic language-level Oryx guidance can consequently be applied to Flex Functions, where settings such asSCM_DO_BUILD_DURING_DEPLOYMENTandENABLE_ORYX_BUILDare invalid.Proposed work
deployStrategyto eachPlannedService.functions-flex-packageappservice-oryxappservice-startup-installcontainer-imagestatic-contentoryx-auto.Likely implementation surfaces include:
resources/agents/azure-deploy/prepare/references/prepare-schemas.tsresources/agents/azure-deploy/prepare/references/deploy-strategy.mdresources/agents/azure-deploy/scaffold/references/bicep-functions-flex.mdresources/agents/azure-deploy/deploy/references/code-deployment-functions-flex.mdtest/testProjects/copilotOnRails/scrapbook/prepare-plan.jsonAcceptance criteria