diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj index 957385921..2e7412939 100644 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj +++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe @@ -15,6 +15,7 @@ + @@ -22,6 +23,9 @@ Always + + Always + diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/Program.cs b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/Program.cs index 09c57225e..68b4418ed 100644 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/Program.cs +++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/Program.cs @@ -1,23 +1,33 @@ var builder = DistributedApplication.CreateBuilder(args); -// Add a SQL Server container -var sqlServer = builder - .AddSqlServer("sql"); +var sqlScript = File.ReadAllText("./sql-server.sql"); -var sqlDatabase = sqlServer.AddDatabase("trek"); +var sqlDatabase = builder + .AddSqlServer("sql") + .WithDataVolume("trek-sql-data") + .AddDatabase("trek") + .WithCreationScript(sqlScript); -// Populate the database with the schema and data -sqlServer - .WithBindMount("./sql-server", target: "/usr/config") - .WithBindMount("../database", target: "/docker-entrypoint-initdb.d") - .WithEntrypoint("/usr/config/entrypoint.sh"); +var dabConfig = new FileInfo("./dab-config.json"); -// Add Data API Builder using dab-config.json var dab = builder.AddDataAPIBuilder("dab") - .WaitFor(sqlServer) + .WithImageTag("1.7.86-rc") + .WithConfigFile(dabConfig) + .WaitFor(sqlDatabase) .WithReference(sqlDatabase); +var mcp = builder + .AddMcpInspector("mcp-inspector", options => + { + options.InspectorVersion = "0.20.0"; + }) + .WithMcpServer(dab, transportType: McpTransportType.StreamableHttp) + .WithParentRelationship(dab) + .WithEnvironment("DANGEROUSLY_OMIT_AUTH", "true") + .WaitFor(dab); + builder.AddProject("blazorApp") - .WithReference(dab); + .WithReference(dab) + .WaitFor(dab); builder.Build().Run(); diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/dab-config.json b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/dab-config.json index 69d8b687c..95b57589b 100644 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/dab-config.json +++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/dab-config.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/Azure/data-api-builder/releases/download/v1.3.19/dab.draft.schema.json", + "$schema": "https://github.com/Azure/data-api-builder/releases/download/v1.7.86-rc/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "@env('ConnectionStrings__trek')", @@ -16,6 +16,9 @@ "path": "/graphql", "allow-introspection": true }, + "mcp": { + "enabled": true + }, "host": { "cors": { "origins": [ diff --git a/examples/data-api-builder/database/create_database.sql b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server.sql similarity index 100% rename from examples/data-api-builder/database/create_database.sql rename to examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server.sql diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server/configure-db.sh b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server/configure-db.sh deleted file mode 100755 index ce7723793..000000000 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server/configure-db.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# set -x - -# Adapted from: https://github.com/microsoft/mssql-docker/blob/80e2a51d0eb1693f2de014fb26d4a414f5a5add5/linux/preview/examples/mssql-customize/configure-db.sh - -# Wait 60 seconds for SQL Server to start up by ensuring that -# calling SQLCMD does not return an error code, which will ensure that sqlcmd is accessible -# and that system and user databases return "0" which means all databases are in an "online" state -# https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-databases-transact-sql?view=sql-server-2017 - -dbstatus=1 -errcode=1 -start_time=$SECONDS -end_by=$((start_time + 60)) - -echo "Starting check for SQL Server start-up at $start_time, will end at $end_by" - -while [[ $SECONDS -lt $end_by && ( $errcode -ne 0 || ( -z "$dbstatus" || $dbstatus -ne 0 ) ) ]]; do - dbstatus="$(/opt/mssql-tools18/bin/sqlcmd -h -1 -t 1 -U sa -P "$MSSQL_SA_PASSWORD" -C -Q "SET NOCOUNT ON; Select SUM(state) from sys.databases")" - errcode=$? - sleep 1 -done - -elapsed_time=$((SECONDS - start_time)) -echo "Stopped checking for SQL Server start-up after $elapsed_time seconds (dbstatus=$dbstatus,errcode=$errcode,seconds=$SECONDS)" - -if [[ $dbstatus -ne 0 ]] || [[ $errcode -ne 0 ]]; then - echo "SQL Server took more than 60 seconds to start up or one or more databases are not in an ONLINE state" - echo "dbstatus = $dbstatus" - echo "errcode = $errcode" - exit 1 -fi - -# Loop through the .sql files in the root of /docker-entrypoint-initdb.d and execute them with sqlcmd -for f in $(find /docker-entrypoint-initdb.d -maxdepth 1 -type f -name "*.sql" | sort); do - echo "- A -=- Processing $f file..." - /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$MSSQL_SA_PASSWORD" -C -d master -i "$f" -done - -# Loop through each subdirectory in /docker-entrypoint-initdb.d -for dir in $(find /docker-entrypoint-initdb.d -mindepth 1 -maxdepth 1 -type d | sort); do - # Loop through the .sql files in each subdirectory and execute them with sqlcmd - for f in $(find "$dir" -maxdepth 1 -type f -name "*.sql" | sort); do - echo "- B -=- Processing $f file in directory $dir..." - /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$MSSQL_SA_PASSWORD" -C -d master -i "$f" - done -done \ No newline at end of file diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server/entrypoint.sh b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server/entrypoint.sh deleted file mode 100755 index fda39d142..000000000 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/sql-server/entrypoint.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Start the script to create the DB and user -/usr/config/configure-db.sh & - -# Start SQL Server -/opt/mssql/bin/sqlservr - diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.BlazorApp/Components/Pages/Home.razor b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.BlazorApp/Components/Pages/Home.razor index 292839671..50235678c 100644 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.BlazorApp/Components/Pages/Home.razor +++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.BlazorApp/Components/Pages/Home.razor @@ -5,9 +5,7 @@ Home -

Aspire Data API Builder Integration

- -

Welcome to your demo app 🖖

+

Data API Builder

@if (series is null) { @@ -15,7 +13,7 @@ } else { -
Here some StarTrek series
+
Here are some Star Trek series 🖖