SAIFPIPELINES001: Pipeline Generation API is Experimental¶
Cause¶
You are using a type or member from the SAIF pipeline generation API that is marked as experimental.
Rule Description¶
The pipeline generation APIs in SAIF.Platform.Aspire.Hosting.Generation.Pipelines are currently in preview and may change in future releases. These APIs generate Azure DevOps pipeline YAML and variable files in .azdo/ when you run aspire publish. They allow you to:
- Customize API pipeline variables such as the API tier and OpenAPI file name
- Customize event service pipeline variables such as the OpenAPI file name
- Mark project resources with the pipeline role they play (API, web frontend, event service, or subscription)
- Run the pipeline publishing step and Bicep artifact cleanup from custom tooling or tests
AddSaifEnvironment() registers the pipeline resource and Bicep cleanup automatically, so most AppHosts only touch the options types. See Aspire Publish for usage.
How to Fix¶
The compiler reports SAIFPIPELINES001 as an error by default. If you want to use these experimental APIs, suppress the diagnostic:
Option 1: Suppress in code¶
#pragma warning disable SAIFPIPELINES001
var api = builder.AddApiService<Projects.MyApp_Api>("myapp",
new ApiPipelineOptions { Type = ApiType.Process });
#pragma warning restore SAIFPIPELINES001
Option 2: Suppress in project file¶
Affected APIs¶
| Type | Description |
|---|---|
ApiPipelineOptions |
API pipeline options that map to .azdo/vars/api.yml |
ApiType |
API tier classification: Experience, Process, System, or None |
EventServicePipelineOptions |
Event service pipeline options that map to .azdo/vars/event-service.yml |
PipelineProjectRole |
Role a project plays in pipeline generation |
PipelineProjectAnnotation |
Annotation that marks a project resource with its PipelineProjectRole |
PipelineResource |
Resource that owns the publish step for Azure DevOps pipeline files |
PipelineResourceExtensions |
Extension methods for adding the pipeline resource |
SaifPipelinePublishingContext |
Context that writes pipeline YAML and variable files from the application model |
BicepCleanup |
Utilities that remove Aspire-generated Bicep artifacts from the publish output |
When Will This Be Stable?¶
These APIs are being introduced as experimental in Forge 3.3. We are gathering feedback on:
- Pipeline options and the variables they expose
- Project role detection across API, frontend, event service, and subscription resources
- Generated pipeline and variable file layout in
.azdo/ - Bicep artifact cleanup behavior after publish
Once we have sufficient feedback and the API design has stabilized, we will remove the experimental designation in a future release.
Please provide feedback via the Forge repository.