Skip to content

feat: add Foundry project ownership spec - #9441

Open
huimiu wants to merge 2 commits into
mainfrom
azure-ai-project-service-ownership
Open

feat: add Foundry project ownership spec#9441
huimiu wants to merge 2 commits into
mainfrom
azure-ai-project-service-ownership

Conversation

@huimiu

@huimiu huimiu commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds a feature spec for transferring azure.ai.project authoring from azure.ai.agents to azure.ai.projects.
  • Defines the project command, user experience, compatibility path, product impact, and PM decisions.
  • Documentation only; no product behavior changes in this PR.

Why

Issue #9085 is only partially complete. Project provisioning already belongs to azure.ai.projects, but agent initialization still creates and updates the project service. This prevents standalone project setup and leaves ownership split across two extensions.

The spec proposes azd ai project init for direct project setup while keeping azd ai agent init as a one-command experience through an internal handoff. It keeps the current endpoint, deployments, and network contract, avoiding an unnecessary schema migration. Provision and deploy commands remain unchanged.

Details

The spec focuses on greenfield and existing-project flows, non-interactive use, safe repeated initialization, legacy compatibility, user-visible changes, rollout, dependencies, and open product questions.

Relates to #9085.

Copilot AI balanced review requested due to automatic review settings August 5, 2026 12:21
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
22 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

🔗 Linked Issue Required

Thanks for the contribution! Please link a GitHub issue to this PR by adding Fixes #123 to the description or using the sidebar.
No issue yet? Feel free to create one!

@huimiu huimiu changed the title feat: add Foundry project ownership spec doc: add Foundry project ownership spec Aug 5, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Defines the ownership transfer of Foundry project configuration from azure.ai.agents to azure.ai.projects.

Changes:

  • Specifies azd ai project init behavior and compatibility.
  • Designs agent-to-project handoff and error propagation.
  • Documents implementation, testing, telemetry, and release plans.

Comment on lines +449 to +452
"modelFilter": {
"locations": [],
"excludedModels": []
},
Comment on lines +306 to +308
Switching from one existing endpoint to another requires confirmation.
Switching from an existing project to a new project removes `endpoint` only
after confirmation. `--force` permits these two transitions in scripts.
Comment on lines +404 to +407
`projectInitAction.Run` follows this order:

1. Load or create the minimal azd project and active environment.
2. Parse public flags or a delegated init request.
Comment on lines +699 to +707
The projects init span records only low-cardinality values:

```text
invocation_source = direct | azure.ai.agents
project_mode = new | existing_id | existing_endpoint | legacy_migration
mutation = created | updated | noop
model_action = create | reuse | skip
infra_provider = none | bicep | terraform
```
Comment on lines +800 to +805
The projects release must land before or with the agents release that invokes
its init contract. PM and release owners must confirm a coordinated update to
`azure.ai.projects`, the agents dependency in
`cli/azd/extensions/azure.ai.agents/extension.yaml`, and the
`microsoft.foundry` meta-package. The registry must not offer an agents version
whose required projects command is outside its dependency range.
Comment on lines +459 to +460
The projects command writes the result atomically after all requested
mutations succeed:
Copilot AI review requested due to automatic review settings August 5, 2026 12:36
@huimiu huimiu changed the title doc: add Foundry project ownership spec feat: add Foundry project ownership spec Aug 5, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

docs/specs/azure-ai-project-service-ownership/spec.md:140

  • The environment contract is under-specified for the promised compatibility. The current setup also persists AZURE_RESOURCE_GROUP, AZURE_AI_ACCOUNT_NAME, AZURE_AI_PROJECT_NAME, and AZURE_OPENAI_ENDPOINT, plus conditional connection values (init_foundry_resources_helpers.go:376-434). Specify which extension preserves every existing value; listing only the ID and endpoint risks breaking existing init consumers despite the later claim that the same values are stored. (azd-code-reviewer)
The command also saves `AZURE_AI_PROJECT_ID` and
`FOUNDRY_PROJECT_ENDPOINT` in the active azd environment. This gives later
operations the project identity they already expect today.

docs/specs/azure-ai-project-service-ownership/spec.md:329

  • The central handoff has no concrete transport in the current extension API. AzdClient.Extension() exposes only Ready and ReportError (pkg/azdext/extension_grpc.pb.go:34-39), so one extension cannot invoke another custom operation “through the framework” as written. Define whether this requires a new core RPC/capability or a hidden versioned projects command, including request/response and version negotiation, and add any core work to the rollout. (azd-code-reviewer)
Agent init sends the project requirements it discovered to a projects-owned
init operation through the azd extension framework. Projects performs the
selection and update, then returns the project service name and any project
information agents still needs for its own setup.

Comment on lines +368 to +374
The migration ships in three steps:

1. Add project init and project-owned update behavior.
2. Switch agent init to the internal handoff while keeping compatibility
flags.
3. Remove duplicated project setup and IaC code from agents after the
coordinated extensions are available.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants