diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index b6b40e24f..d91bd9c67 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -136,6 +136,7 @@ jobs:
with:
name: binlog-${{ matrix.name }}-${{ matrix.os }}
path: "**/*.binlog"
+ continue-on-error: true
- name: Upload test results artifact
if: always()
diff --git a/.gitignore b/.gitignore
index ccf1022b7..2ab88c06c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,10 @@ target
node_modules
**/.modules/
**/*.AppHost.TypeScript/nuget.config
+tsconfig.apphost.json
+.ngrok
+bun.lock
+pnpm-lock.yaml
+yarn.lock
+solr-data
+*.lscache
diff --git a/Directory.Build.props b/Directory.Build.props
index 3712834b7..55ec86eb8 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -16,7 +16,6 @@
-preview.1.26170.3
9.0.0
10.0.5
- 1.12.0
4.8.1
10.0.0
10.0.0
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 668a4938a..94d0ec33a 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -53,13 +53,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -129,5 +129,7 @@
+
+
diff --git a/eng/testing/validate-typescript-apphost.ps1 b/eng/testing/validate-typescript-apphost.ps1
index 53414139e..5438e8203 100644
--- a/eng/testing/validate-typescript-apphost.ps1
+++ b/eng/testing/validate-typescript-apphost.ps1
@@ -19,11 +19,37 @@ param(
[ValidateSet("healthy", "up", "down")]
[string]$WaitStatus = "healthy",
- [int]$WaitTimeoutSeconds = 180
+ [int]$WaitTimeoutSeconds = 180,
+
+ [string[]]$Secrets = @()
)
$ErrorActionPreference = "Stop"
+function Resolve-ExternalCommandPath {
+ param(
+ [Parameter(Mandatory = $true)]
+ [string]$FilePath
+ )
+
+ if ([System.IO.Path]::IsPathRooted($FilePath) -or
+ $FilePath.Contains([System.IO.Path]::DirectorySeparatorChar) -or
+ $FilePath.Contains([System.IO.Path]::AltDirectorySeparatorChar)) {
+ return $FilePath
+ }
+
+ $commandCandidates = @(Get-Command $FilePath -All -ErrorAction Stop)
+ $preferredCandidate = $commandCandidates |
+ Where-Object { $_.CommandType -eq [System.Management.Automation.CommandTypes]::Application } |
+ Select-Object -First 1
+
+ if ($null -ne $preferredCandidate) {
+ return $preferredCandidate.Source
+ }
+
+ return $commandCandidates[0].Source
+}
+
function Invoke-ExternalCommand {
param(
[Parameter(Mandatory = $true)]
@@ -33,7 +59,9 @@ function Invoke-ExternalCommand {
[string[]]$Arguments
)
- & $FilePath @Arguments
+ $resolvedFilePath = Resolve-ExternalCommandPath $FilePath
+
+ & $resolvedFilePath @Arguments
if ($LASTEXITCODE -ne 0) {
$joinedArguments = [string]::Join(" ", $Arguments)
throw "Command failed with exit code ${LASTEXITCODE}: $FilePath $joinedArguments"
@@ -86,6 +114,25 @@ if ([string]::IsNullOrWhiteSpace($PackageVersion)) {
$PackageVersion = "$versionPrefix-polyglot.local"
}
+# Discover local CommunityToolkit project references that also need packing
+$localDependencies = @()
+$projRefJson = (& dotnet msbuild $resolvedPackageProjectPath -nologo -v:q -getItem:ProjectReference) | Out-String
+$projRefData = $projRefJson | ConvertFrom-Json
+$projRefs = @($projRefData.Items.ProjectReference)
+foreach ($ref in $projRefs) {
+ if ($ref.Filename -like "CommunityToolkit.*") {
+ $localDependencies += @{
+ Name = $ref.Filename
+ FullPath = $ref.FullPath
+ }
+ }
+}
+
+if ($localDependencies.Count -gt 0) {
+ $depNames = ($localDependencies | ForEach-Object { $_.Name }) -join ", "
+ Write-Host "Discovered local dependencies to pack: $depNames"
+}
+
if ($WaitForResources.Count -eq 1 -and -not [string]::IsNullOrWhiteSpace($WaitForResources[0])) {
$splitOptions = [System.StringSplitOptions]::RemoveEmptyEntries -bor [System.StringSplitOptions]::TrimEntries
$WaitForResources = $WaitForResources[0].Split(",", $splitOptions)
@@ -102,6 +149,27 @@ foreach ($commandName in $RequiredCommands) {
}
}
+if ($Secrets.Count -eq 1 -and -not [string]::IsNullOrWhiteSpace($Secrets[0])) {
+ $splitOptions = [System.StringSplitOptions]::RemoveEmptyEntries -bor [System.StringSplitOptions]::TrimEntries
+ $Secrets = $Secrets[0].Split(",", $splitOptions)
+}
+
+$parsedSecrets = [System.Collections.Generic.List[string[]]]::new()
+foreach ($secret in $Secrets) {
+ if ([string]::IsNullOrWhiteSpace($secret)) {
+ continue
+ }
+
+ $eqIndex = $secret.IndexOf('=')
+ if ($eqIndex -le 0) {
+ throw "Invalid secret format '$secret'. Expected 'key=value'."
+ }
+
+ $key = $secret.Substring(0, $eqIndex)
+ $value = $secret.Substring($eqIndex + 1)
+ $parsedSecrets.Add(@($key, $value))
+}
+
try {
$originalConfig = Get-Content -Path $configPath -Raw
New-Item -ItemType Directory -Path $localSource -Force | Out-Null
@@ -114,12 +182,25 @@ try {
"-o", $localSource
)
+ foreach ($dep in $localDependencies) {
+ Invoke-ExternalCommand "dotnet" @(
+ "pack",
+ $dep.FullPath,
+ "-c", "Debug",
+ "-p:PackageVersion=$PackageVersion",
+ "-o", $localSource
+ )
+ }
+
$config = $originalConfig | ConvertFrom-Json -AsHashtable
if ($null -eq $config["packages"]) {
$config["packages"] = [ordered]@{}
}
$config["packages"][$PackageName] = $PackageVersion
+ foreach ($dep in $localDependencies) {
+ $config["packages"][$dep.Name] = $PackageVersion
+ }
$config | ConvertTo-Json -Depth 10 | Set-Content -Path $configPath -NoNewline
@"
@@ -145,6 +226,15 @@ try {
Pop-Location
}
+ foreach ($secretPair in $parsedSecrets) {
+ Invoke-ExternalCommand "aspire" @(
+ "secret", "set",
+ $secretPair[0], $secretPair[1],
+ "--apphost", $resolvedAppHostPath,
+ "--non-interactive"
+ )
+ }
+
Push-Location $appHostDirectory
try {
Invoke-ExternalCommand "aspire" @(
@@ -152,7 +242,8 @@ try {
"--apphost", $resolvedAppHostPath,
"--isolated",
"--format", "Json",
- "--non-interactive"
+ "--non-interactive",
+ "--debug"
)
$appStarted = $true
@@ -162,14 +253,16 @@ try {
$resource,
"--status", $WaitStatus,
"--apphost", $resolvedAppHostPath,
- "--timeout", $WaitTimeoutSeconds
+ "--timeout", $WaitTimeoutSeconds,
+ "--debug"
)
}
Invoke-ExternalCommand "aspire" @(
"describe",
"--apphost", $resolvedAppHostPath,
- "--format", "Json"
+ "--format", "Json",
+ "--debug"
)
}
finally {
@@ -212,6 +305,17 @@ finally {
}
}
} -Failures $cleanupFailures
+
+ Invoke-CleanupStep -Description "remove secrets" -Action {
+ foreach ($secretPair in $parsedSecrets) {
+ Invoke-ExternalCommand "aspire" @(
+ "secret", "delete",
+ $secretPair[0],
+ "--apphost", $resolvedAppHostPath,
+ "--non-interactive"
+ )
+ }
+ } -Failures $cleanupFailures
}
if ($cleanupFailures.Count -gt 0) {
@@ -226,4 +330,4 @@ if ($cleanupFailures.Count -gt 0) {
if ($null -ne $primaryError) {
throw $primaryError
-}
\ No newline at end of file
+}
diff --git a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.TypeScript/aspire.config.json b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.TypeScript/aspire.config.json
index 612bd8bf9..9ae33abe8 100644
--- a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.TypeScript/aspire.config.json
+++ b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.ActiveMQ": ""
+ "CommunityToolkit.Aspire.Hosting.ActiveMQ": "../../../src/CommunityToolkit.Aspire.Hosting.ActiveMQ/CommunityToolkit.Aspire.Hosting.ActiveMQ.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.TypeScript/aspire.config.json b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.TypeScript/aspire.config.json
index 062536776..4d2593612 100644
--- a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.TypeScript/aspire.config.json
+++ b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Adminer": ""
+ "CommunityToolkit.Aspire.Hosting.Adminer": "../../../src/CommunityToolkit.Aspire.Hosting.Adminer/CommunityToolkit.Aspire.Hosting.Adminer.csproj"
}
}
diff --git a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost.TypeScript/aspire.config.json b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost.TypeScript/aspire.config.json
index 7451196bb..f39c57ddd 100644
--- a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost.TypeScript/aspire.config.json
+++ b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost.TypeScript/aspire.config.json
@@ -3,6 +3,10 @@
"path": "apphost.ts",
"language": "typescript/nodejs"
},
+ "sdk": {
+ "version": "13.2.2"
+ },
+ "channel": "stable",
"profiles": {
"https": {
"applicationUrl": "https://localhost:29750;http://localhost:28931",
@@ -13,6 +17,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Bun": ""
+ "CommunityToolkit.Aspire.Hosting.Bun": "../../../src/CommunityToolkit.Aspire.Hosting.Bun/CommunityToolkit.Aspire.Hosting.Bun.csproj"
}
-}
+}
\ No newline at end of file
diff --git a/examples/bun/api/bun.lockb b/examples/bun/api/bun.lockb
index b576e8951..d21c6f9f0 100755
Binary files a/examples/bun/api/bun.lockb and b/examples/bun/api/bun.lockb differ
diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.TypeScript/aspire.config.json b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.TypeScript/aspire.config.json
index 5e02b2b00..a28071193 100644
--- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.TypeScript/aspire.config.json
+++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder": ""
+ "CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder": "../../../src/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.TypeScript/aspire.config.json b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.TypeScript/aspire.config.json
index 32e005ff5..daeb71a18 100644
--- a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.TypeScript/aspire.config.json
+++ b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.DbGate": ""
+ "CommunityToolkit.Aspire.Hosting.DbGate": "../../../src/CommunityToolkit.Aspire.Hosting.DbGate/CommunityToolkit.Aspire.Hosting.DbGate.csproj"
}
}
diff --git a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost.TypeScript/aspire.config.json b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost.TypeScript/aspire.config.json
index 675f8c3da..94493adf1 100644
--- a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost.TypeScript/aspire.config.json
+++ b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Deno": ""
+ "CommunityToolkit.Aspire.Hosting.Deno": "../../../src/CommunityToolkit.Aspire.Hosting.Deno/CommunityToolkit.Aspire.Hosting.Deno.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.TypeScript/aspire.config.json b/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.TypeScript/aspire.config.json
index ad8c44b42..35fd0c483 100644
--- a/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.TypeScript/aspire.config.json b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.TypeScript/aspire.config.json
index 0876a15ef..38025bd0e 100644
--- a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.TypeScript/aspire.config.json
+++ b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Flagd": ""
+ "CommunityToolkit.Aspire.Hosting.Flagd": "../../../src/CommunityToolkit.Aspire.Hosting.Flagd/CommunityToolkit.Aspire.Hosting.Flagd.csproj"
}
}
diff --git a/examples/flyway/CommunityToolkit.Aspire.Hosting.Flyway.AppHost.TypeScript/aspire.config.json b/examples/flyway/CommunityToolkit.Aspire.Hosting.Flyway.AppHost.TypeScript/aspire.config.json
index 824f8ff5c..21db43158 100644
--- a/examples/flyway/CommunityToolkit.Aspire.Hosting.Flyway.AppHost.TypeScript/aspire.config.json
+++ b/examples/flyway/CommunityToolkit.Aspire.Hosting.Flyway.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Flyway": ""
+ "CommunityToolkit.Aspire.Hosting.Flyway": "../../../src/CommunityToolkit.Aspire.Hosting.Flyway/CommunityToolkit.Aspire.Hosting.Flyway.csproj"
}
}
diff --git a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.TypeScript/aspire.config.json b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.TypeScript/aspire.config.json
index 5db0afa9a..0bc3bbcdc 100644
--- a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.TypeScript/aspire.config.json
+++ b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.GoFeatureFlag": ""
+ "CommunityToolkit.Aspire.Hosting.GoFeatureFlag": "../../../src/CommunityToolkit.Aspire.Hosting.GoFeatureFlag/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.csproj"
}
}
diff --git a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost.TypeScript/aspire.config.json b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost.TypeScript/aspire.config.json
index 1160abdf9..9de0d163d 100644
--- a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost.TypeScript/aspire.config.json
+++ b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Golang": ""
+ "CommunityToolkit.Aspire.Hosting.Golang": "../../../src/CommunityToolkit.Aspire.Hosting.Golang/CommunityToolkit.Aspire.Hosting.Golang.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost.TypeScript/aspire.config.json b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost.TypeScript/aspire.config.json
index ace8a88a1..44584326e 100644
--- a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost.TypeScript/aspire.config.json
+++ b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Java": ""
+ "CommunityToolkit.Aspire.Hosting.Java": "../../../src/CommunityToolkit.Aspire.Hosting.Java/CommunityToolkit.Aspire.Hosting.Java.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.TypeScript/aspire.config.json b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.TypeScript/aspire.config.json
index e2f525642..100e79893 100644
--- a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.JavaScript.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.JavaScript.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost.TypeScript/aspire.config.json b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost.TypeScript/aspire.config.json
index af29b6af4..b8f14388e 100644
--- a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost.TypeScript/aspire.config.json
+++ b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.k6": ""
+ "CommunityToolkit.Aspire.Hosting.k6": "../../../src/CommunityToolkit.Aspire.Hosting.k6/CommunityToolkit.Aspire.Hosting.k6.csproj"
}
}
diff --git a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.TypeScript/aspire.config.json b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.TypeScript/aspire.config.json
index c4c489607..7a3dd97f5 100644
--- a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Keycloak.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.Keycloak.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.TypeScript/aspire.config.json b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.TypeScript/aspire.config.json
index bc1f6ca32..8606b8b22 100644
--- a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.TypeScript/aspire.config.json
+++ b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.KurrentDB": ""
+ "CommunityToolkit.Aspire.Hosting.KurrentDB": "../../../src/CommunityToolkit.Aspire.Hosting.KurrentDB/CommunityToolkit.Aspire.Hosting.KurrentDB.csproj"
}
}
diff --git a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.TypeScript/aspire.config.json b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.TypeScript/aspire.config.json
index 4225ba1d7..cce9b8509 100644
--- a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.TypeScript/aspire.config.json
+++ b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.LavinMQ": ""
+ "CommunityToolkit.Aspire.Hosting.LavinMQ": "../../../src/CommunityToolkit.Aspire.Hosting.LavinMQ/CommunityToolkit.Aspire.Hosting.LavinMQ.csproj"
}
}
diff --git a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.TypeScript/aspire.config.json b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.TypeScript/aspire.config.json
index 40f71b819..2467eb973 100644
--- a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.TypeScript/aspire.config.json
+++ b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.MailPit": ""
+ "CommunityToolkit.Aspire.Hosting.MailPit": "../../../src/CommunityToolkit.Aspire.Hosting.MailPit/CommunityToolkit.Aspire.Hosting.MailPit.csproj"
}
}
diff --git a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/apphost.ts b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/apphost.ts
index 926775e5d..f26ac0b17 100644
--- a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/apphost.ts
+++ b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/apphost.ts
@@ -1,4 +1,4 @@
-import { createBuilder, McpTransportType } from './.modules/aspire.js';
+import { createBuilder, McpTransportType } from "./.modules/aspire.js";
const builder = await createBuilder();
@@ -15,34 +15,38 @@ const secondaryServer = await builder
const inspectorDefault = await builder.addMcpInspector("inspector-default");
await inspectorDefault.withInspectedMcpServer(inspectedServer);
-const inspectorConfigured = await builder.addMcpInspector("inspector-configured", {
- clientPort: 6284,
- serverPort: 6287,
- inspectorVersion: "0.17.2",
- proxyToken
-});
+const inspectorConfigured = await builder.addMcpInspector(
+ "inspector-configured",
+ {
+ clientPort: 6284,
+ serverPort: 6287,
+ inspectorVersion: "0.17.2",
+ proxyToken,
+ },
+);
await inspectorConfigured.withInspectedMcpServer(secondaryServer, {
- isDefault: false,
+ isDefault: true,
transportType: McpTransportType.StreamableHttp,
- path: "/custom-mcp"
+ path: "/custom-mcp",
});
const inspectorYarn = await builder.addMcpInspector("inspector-yarn", {
clientPort: 6294,
- serverPort: 6297
+ serverPort: 6297,
});
await inspectorYarn.withYarn();
const inspectorPnpm = await builder.addMcpInspector("inspector-pnpm", {
clientPort: 6304,
- serverPort: 6307
+ serverPort: 6307,
});
await inspectorPnpm.withPnpm();
const inspectorBun = await builder.addMcpInspector("inspector-bun", {
clientPort: 6314,
- serverPort: 6317
+ serverPort: 6317,
});
await inspectorBun.withBun();
await builder.build().run();
+
diff --git a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/aspire.config.json b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/aspire.config.json
index 7f403a27f..2feb3b822 100644
--- a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/aspire.config.json
+++ b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.McpInspector": ""
+ "CommunityToolkit.Aspire.Hosting.McpInspector": "../../../src/CommunityToolkit.Aspire.Hosting.McpInspector/CommunityToolkit.Aspire.Hosting.McpInspector.csproj"
}
}
diff --git a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.TypeScript/aspire.config.json b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.TypeScript/aspire.config.json
index c757477b9..d0c9fc521 100644
--- a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.TypeScript/aspire.config.json
+++ b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Meilisearch": ""
+ "CommunityToolkit.Aspire.Hosting.Meilisearch": "../../../src/CommunityToolkit.Aspire.Hosting.Meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.csproj"
}
}
diff --git a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost.TypeScript/aspire.config.json b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost.TypeScript/aspire.config.json
index f8491c815..6750abcb0 100644
--- a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost.TypeScript/aspire.config.json
+++ b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Minio": ""
+ "CommunityToolkit.Aspire.Hosting.Minio": "../../../src/CommunityToolkit.Aspire.Hosting.Minio/CommunityToolkit.Aspire.Hosting.Minio.csproj"
}
}
diff --git a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.TypeScript/aspire.config.json b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.TypeScript/aspire.config.json
index f3b3b79ca..ea85f1321 100644
--- a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.MongoDB.Extensions": "13.2.1-polyglot.local"
+ "CommunityToolkit.Aspire.Hosting.MongoDB.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.TypeScript/aspire.config.json b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.TypeScript/aspire.config.json
index aca62cd4c..f2704f28a 100644
--- a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.TypeScript/aspire.config.json
@@ -14,6 +14,6 @@
},
"packages": {
"Aspire.Hosting.MySql": "",
- "CommunityToolkit.Aspire.Hosting.MySql.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.MySql.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.MySql.Extensions/CommunityToolkit.Aspire.Hosting.MySql.Extensions.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.TypeScript/aspire.config.json b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.TypeScript/aspire.config.json
index a6fb41be4..5647b3acf 100644
--- a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.TypeScript/aspire.config.json
+++ b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Ngrok": ""
+ "CommunityToolkit.Aspire.Hosting.Ngrok": "../../../src/CommunityToolkit.Aspire.Hosting.Ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.csproj"
}
}
diff --git a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/apphost.ts b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/apphost.ts
index 62c68ed82..a2e8a783e 100644
--- a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/apphost.ts
+++ b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/apphost.ts
@@ -1,4 +1,4 @@
-import { createBuilder } from './.modules/aspire.js';
+import { createBuilder } from "./.modules/aspire.js";
const builder = await createBuilder();
@@ -7,26 +7,6 @@ const collector = await builder.addOpenTelemetryCollector("collector");
await collector.withConfig("./otel-config.yaml");
await collector.withAppForwarding();
-// addOpenTelemetryCollector — settings callback overload
-const routedCollector = await builder.addOpenTelemetryCollector("collector-routed", {
- configureSettings: async (settings) => {
- await settings.forceNonSecureReceiver.set(true);
- await settings.enableGrpcEndpoint.set(true);
- await settings.enableHttpEndpoint.set(true);
- await settings.disableHealthcheck.set(false);
- await settings.registry.set("ghcr.io");
- await settings.image.set("open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib");
- await settings.collectorTag.set("latest");
-
- const _forceNonSecureReceiver: boolean = await settings.forceNonSecureReceiver.get();
- const _collectorTag: string = await settings.collectorTag.get();
- const _collectorImage: string = await settings.collectorImage.get();
- }
-});
-
-await routedCollector.withConfig("./otel-config.yaml");
-await routedCollector.withOpenTelemetryCollectorRouting(collector);
-
// ---- Property access on OpenTelemetryCollectorResource (ExposeProperties = true) ----
const collectorResource = await collector;
const _grpcEndpoint = await collectorResource.grpcEndpoint.get();
@@ -34,10 +14,4 @@ const _httpEndpoint = await collectorResource.httpEndpoint.get();
const _grpcEndpointName = await _grpcEndpoint.endpointName.get();
const _httpEndpointName = await _httpEndpoint.endpointName.get();
-const routedCollectorResource = await routedCollector;
-const _routedGrpcEndpoint = await routedCollectorResource.grpcEndpoint.get();
-const _routedHttpEndpoint = await routedCollectorResource.httpEndpoint.get();
-const _routedGrpcEndpointName = await _routedGrpcEndpoint.endpointName.get();
-const _routedHttpEndpointName = await _routedHttpEndpoint.endpointName.get();
-
await builder.build().run();
diff --git a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/aspire.config.json b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/aspire.config.json
index a56a4ad64..6cc922e9d 100644
--- a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/aspire.config.json
+++ b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector": ""
+ "CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector": "../../../src/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.csproj"
}
}
diff --git a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.TypeScript/aspire.config.json b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.TypeScript/aspire.config.json
index fb102598e..506405be8 100644
--- a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.TypeScript/aspire.config.json
+++ b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.PapercutSmtp": ""
+ "CommunityToolkit.Aspire.Hosting.PapercutSmtp": "../../../src/CommunityToolkit.Aspire.Hosting.PapercutSmtp/CommunityToolkit.Aspire.Hosting.PapercutSmtp.csproj"
}
}
diff --git a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.TypeScript/aspire.config.json b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.TypeScript/aspire.config.json
index 0178c6870..eeb447907 100644
--- a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.csproj"
}
}
diff --git a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.TypeScript/aspire.config.json b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.TypeScript/aspire.config.json
index b5c304659..58adf9fea 100644
--- a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Python.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.Python.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.Python.Extensions/CommunityToolkit.Aspire.Hosting.Python.Extensions.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.TypeScript/aspire.config.json b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.TypeScript/aspire.config.json
index 29c681a02..4a6aa1ac0 100644
--- a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Redis.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.Redis.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.Redis.Extensions/CommunityToolkit.Aspire.Hosting.Redis.Extensions.csproj"
}
}
diff --git a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/apphost.ts b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/apphost.ts
index 6279fb6ce..22fd11ddb 100644
--- a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/apphost.ts
+++ b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/apphost.ts
@@ -1,7 +1,7 @@
import { createBuilder } from './.modules/aspire.js';
const builder = await createBuilder();
-const rustAppPath = "../../../../../examples/rust/actix_api";
+const rustAppPath = "../actix_api";
// addRustApp — minimal call
const rustApp = await builder.addRustApp("rust-app", rustAppPath);
diff --git a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/aspire.config.json b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/aspire.config.json
index da85e3e71..3238e164d 100644
--- a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/aspire.config.json
+++ b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Rust": ""
+ "CommunityToolkit.Aspire.Hosting.Rust": "../../../src/CommunityToolkit.Aspire.Hosting.Rust/CommunityToolkit.Aspire.Hosting.Rust.csproj"
}
}
diff --git a/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.TypeScript/aspire.config.json b/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.TypeScript/aspire.config.json
index bbf97bf32..33ec5199c 100644
--- a/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.TypeScript/aspire.config.json
+++ b/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Sftp": ""
+ "CommunityToolkit.Aspire.Hosting.Sftp": "../../../src/CommunityToolkit.Aspire.Hosting.Sftp/CommunityToolkit.Aspire.Hosting.Sftp.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/apphost.ts b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/apphost.ts
index 7b9740323..0ee6a98d5 100644
--- a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/apphost.ts
+++ b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/apphost.ts
@@ -1,18 +1,22 @@
-import { mkdir } from 'node:fs/promises';
-import { dirname, join } from 'node:path';
-import { fileURLToPath } from 'node:url';
-import { createBuilder } from './.modules/aspire.js';
+import { mkdir, chmod } from "node:fs/promises";
+import { dirname, join } from "node:path";
+import { fileURLToPath } from "node:url";
+import { createBuilder } from "./.modules/aspire.js";
const builder = await createBuilder();
const appHostDirectory = dirname(fileURLToPath(import.meta.url));
-const dataDirectory = join(appHostDirectory, 'data');
+const dataDirectory = join(appHostDirectory, "solr-data");
-await mkdir(dataDirectory, { recursive: true });
+await mkdir(dataDirectory, { recursive: true, mode: 0o777 });
-const solr = await builder.addSolr('solr');
+// force 777 permissions for the data directory to ensure Solr can write to it as the Docker container needs to have
+// write permissions on the folder, or you have to change the folder owner to the UID in the container
+await chmod(dataDirectory, 0o777);
+
+const solr = await builder.addSolr("solr");
const builderCoreName: string = await solr.coreName.get();
await solr.coreName.set(builderCoreName);
-await solr.withDataVolume({ name: 'solr-data' });
+await solr.withDataVolume({ name: "solr-data" });
const resolvedSolr = await solr;
const _primaryEndpoint = await resolvedSolr.primaryEndpoint.get();
@@ -22,14 +26,22 @@ const _coreName: string = await resolvedSolr.coreName.get();
const _connectionString = await resolvedSolr.connectionStringExpression.get();
const _uriExpression = await resolvedSolr.uriExpression.get();
-const bindMountedSolr = await builder.addSolr('solr-bind', { port: 8984, coreName: 'bindcore' });
+const bindMountedSolr = await builder.addSolr("solr-bind", {
+ port: 8984,
+ coreName: "bindcore",
+});
const bindCoreName: string = await bindMountedSolr.coreName.get();
await bindMountedSolr.coreName.set(bindCoreName);
await bindMountedSolr.withDataBindMount(dataDirectory);
if (false) {
- const configsetSolr = await builder.addSolr('solr-configset', { coreName: 'configset-core' });
- await configsetSolr.withConfigset('sample-configset', './configsets/sample-configset');
+ const configsetSolr = await builder.addSolr("solr-configset", {
+ coreName: "configset-core",
+ });
+ await configsetSolr.withConfigset(
+ "sample-configset",
+ "./configsets/sample-configset",
+ );
}
await builder.build().run();
diff --git a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/aspire.config.json b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/aspire.config.json
index cb011427e..ff66ff9b6 100644
--- a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/aspire.config.json
+++ b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Solr": ""
+ "CommunityToolkit.Aspire.Hosting.Solr": "../../../src/CommunityToolkit.Aspire.Hosting.Solr/CommunityToolkit.Aspire.Hosting.Solr.csproj"
}
}
diff --git a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.TypeScript/aspire.config.json b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.TypeScript/aspire.config.json
index 9c781d96d..2cab0502d 100644
--- a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.TypeScript/aspire.config.json
+++ b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.TypeScript/aspire.config.json
@@ -14,6 +14,6 @@
},
"packages": {
"Aspire.Hosting.SqlServer": "",
- "CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects": "13.2.1-polyglot.local"
+ "CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects": "../../../src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/sqlite/CommunityToolkit.Aspire.Hosting.Sqlite.AppHost.TypeScript/aspire.config.json b/examples/sqlite/CommunityToolkit.Aspire.Hosting.Sqlite.AppHost.TypeScript/aspire.config.json
index 633594ece..98fc0ca9c 100644
--- a/examples/sqlite/CommunityToolkit.Aspire.Hosting.Sqlite.AppHost.TypeScript/aspire.config.json
+++ b/examples/sqlite/CommunityToolkit.Aspire.Hosting.Sqlite.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Sqlite": ""
+ "CommunityToolkit.Aspire.Hosting.Sqlite": "../../../src/CommunityToolkit.Aspire.Hosting.Sqlite/CommunityToolkit.Aspire.Hosting.Sqlite.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.TypeScript/aspire.config.json b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.TypeScript/aspire.config.json
index 298903de9..8b3e46eaa 100644
--- a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.TypeScript/aspire.config.json
+++ b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.SqlServer.Extensions": ""
+ "CommunityToolkit.Aspire.Hosting.SqlServer.Extensions": "../../../src/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.csproj"
}
}
diff --git a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.TypeScript/aspire.config.json b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.TypeScript/aspire.config.json
index 62b113c3c..10feabeef 100644
--- a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.TypeScript/aspire.config.json
+++ b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Stripe": ""
+ "CommunityToolkit.Aspire.Hosting.Stripe": "../../../src/CommunityToolkit.Aspire.Hosting.Stripe/CommunityToolkit.Aspire.Hosting.Stripe.csproj"
}
}
diff --git a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.TypeScript/aspire.config.json b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.TypeScript/aspire.config.json
index 89d2536fa..c0d5aeacb 100644
--- a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.TypeScript/aspire.config.json
+++ b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.SurrealDb": ""
+ "CommunityToolkit.Aspire.Hosting.SurrealDb": "../../../src/CommunityToolkit.Aspire.Hosting.SurrealDb/CommunityToolkit.Aspire.Hosting.SurrealDb.csproj"
}
-}
\ No newline at end of file
+}
diff --git a/examples/umami/CommunityToolkit.Aspire.Hosting.Umami.AppHost.TypeScript/aspire.config.json b/examples/umami/CommunityToolkit.Aspire.Hosting.Umami.AppHost.TypeScript/aspire.config.json
index d1b56bc58..1c0270a85 100644
--- a/examples/umami/CommunityToolkit.Aspire.Hosting.Umami.AppHost.TypeScript/aspire.config.json
+++ b/examples/umami/CommunityToolkit.Aspire.Hosting.Umami.AppHost.TypeScript/aspire.config.json
@@ -13,6 +13,6 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Umami": ""
+ "CommunityToolkit.Aspire.Hosting.Umami": "../../../src/CommunityToolkit.Aspire.Hosting.Umami/CommunityToolkit.Aspire.Hosting.Umami.csproj"
}
}
diff --git a/examples/zitadel/CommunityToolkit.Aspire.Hosting.Zitadel.AppHost.TypeScript/aspire.config.json b/examples/zitadel/CommunityToolkit.Aspire.Hosting.Zitadel.AppHost.TypeScript/aspire.config.json
index 0947a2ceb..e0d556620 100644
--- a/examples/zitadel/CommunityToolkit.Aspire.Hosting.Zitadel.AppHost.TypeScript/aspire.config.json
+++ b/examples/zitadel/CommunityToolkit.Aspire.Hosting.Zitadel.AppHost.TypeScript/aspire.config.json
@@ -13,7 +13,7 @@
}
},
"packages": {
- "CommunityToolkit.Aspire.Hosting.Zitadel": "13.2.1-polyglot.local",
+ "CommunityToolkit.Aspire.Hosting.Zitadel": "../../../src/CommunityToolkit.Aspire.Hosting.Zitadel/CommunityToolkit.Aspire.Hosting.Zitadel.csproj",
"Aspire.Hosting.PostgreSQL": ""
}
-}
\ No newline at end of file
+}
diff --git a/src/CommunityToolkit.Aspire.Hosting.KurrentDB/CommunityToolkit.Aspire.Hosting.KurrentDB.csproj b/src/CommunityToolkit.Aspire.Hosting.KurrentDB/CommunityToolkit.Aspire.Hosting.KurrentDB.csproj
index c5544f43d..1c369db03 100644
--- a/src/CommunityToolkit.Aspire.Hosting.KurrentDB/CommunityToolkit.Aspire.Hosting.KurrentDB.csproj
+++ b/src/CommunityToolkit.Aspire.Hosting.KurrentDB/CommunityToolkit.Aspire.Hosting.KurrentDB.csproj
@@ -8,6 +8,7 @@
+
diff --git a/src/CommunityToolkit.Aspire.Hosting.PowerShell/CommunityToolkit.Aspire.Hosting.PowerShell.csproj b/src/CommunityToolkit.Aspire.Hosting.PowerShell/CommunityToolkit.Aspire.Hosting.PowerShell.csproj
index 9513fc8e1..a5acd0a43 100644
--- a/src/CommunityToolkit.Aspire.Hosting.PowerShell/CommunityToolkit.Aspire.Hosting.PowerShell.csproj
+++ b/src/CommunityToolkit.Aspire.Hosting.PowerShell/CommunityToolkit.Aspire.Hosting.PowerShell.csproj
@@ -8,6 +8,7 @@
+
diff --git a/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/TypeScriptAppHostTests.cs b/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/TypeScriptAppHostTests.cs
index 2385aaa6a..a6406da56 100644
--- a/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/TypeScriptAppHostTests.cs
+++ b/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/TypeScriptAppHostTests.cs
@@ -14,6 +14,10 @@ await TypeScriptAppHostTest.Run(
exampleName: "mcp-inspector",
waitForResources: ["inspector-default", "inspector-configured", "inspector-yarn", "inspector-pnpm", "inspector-bun"],
requiredCommands: ["yarn", "pnpm", "bun"],
+ secrets: new Dictionary
+ {
+ ["Parameters:proxy-token"] = "test-proxy-token"
+ },
cancellationToken: TestContext.Current.CancellationToken);
}
}
diff --git a/tests/CommunityToolkit.Aspire.Hosting.Ngrok.Tests/TypeScriptAppHostTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Ngrok.Tests/TypeScriptAppHostTests.cs
index c26b5e45b..79e2a0b6c 100644
--- a/tests/CommunityToolkit.Aspire.Hosting.Ngrok.Tests/TypeScriptAppHostTests.cs
+++ b/tests/CommunityToolkit.Aspire.Hosting.Ngrok.Tests/TypeScriptAppHostTests.cs
@@ -3,6 +3,7 @@
namespace CommunityToolkit.Aspire.Hosting.Ngrok.Tests;
[RequiresDocker]
+[RequiresAuthenticatedTool("ngrok")]
public class TypeScriptAppHostTests
{
[Fact]
diff --git a/tests/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.Tests/TypeScriptAppHostTests.cs b/tests/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.Tests/TypeScriptAppHostTests.cs
index 4430a2138..78da54e48 100644
--- a/tests/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.Tests/TypeScriptAppHostTests.cs
+++ b/tests/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.Tests/TypeScriptAppHostTests.cs
@@ -12,7 +12,7 @@ await TypeScriptAppHostTest.Run(
appHostProject: "CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.TypeScript",
packageName: "CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector",
exampleName: "opentelemetry-collector",
- waitForResources: ["collector", "collector-routed"],
+ waitForResources: ["collector"],
cancellationToken: TestContext.Current.CancellationToken);
}
}
diff --git a/tests/CommunityToolkit.Aspire.Testing/TypeScriptAppHostTest.cs b/tests/CommunityToolkit.Aspire.Testing/TypeScriptAppHostTest.cs
index 879ead6cc..dedc17042 100644
--- a/tests/CommunityToolkit.Aspire.Testing/TypeScriptAppHostTest.cs
+++ b/tests/CommunityToolkit.Aspire.Testing/TypeScriptAppHostTest.cs
@@ -14,6 +14,7 @@ public static class TypeScriptAppHostTest
/// The resources that must reach the expected Aspire state, if any.
/// The Aspire resource status to wait for.
/// Optional commands that must exist on PATH before validation runs.
+ /// Optional dictionary of secret key-value pairs to set via aspire secret set before starting the app host.
/// The cancellation token.
public static async Task Run(
string appHostProject,
@@ -22,6 +23,7 @@ public static async Task Run(
IEnumerable waitForResources,
string waitStatus = "healthy",
IEnumerable? requiredCommands = null,
+ Dictionary? secrets = null,
CancellationToken cancellationToken = default)
{
ArgumentException.ThrowIfNullOrWhiteSpace(appHostProject);
@@ -76,6 +78,12 @@ public static async Task Run(
arguments.Add(string.Join(',', commands));
}
+ if (secrets is { Count: > 0 })
+ {
+ arguments.Add("-Secrets");
+ arguments.Add(string.Join(',', secrets.Select(kvp => $"{kvp.Key}={kvp.Value}")));
+ }
+
await ProcessTestUtilities.RunProcessAsync(shell, arguments, repoRoot, cancellationToken);
}
}
\ No newline at end of file