From c5c148a06d82d1cb4a687cac8be32fea2832d5e2 Mon Sep 17 00:00:00 2001 From: Bhaskar Mallapragada Date: Mon, 28 Nov 2022 15:56:01 -0800 Subject: [PATCH 1/4] Reading CosmosDB options from data-source section --- src/Config/RuntimeConfig.cs | 2 +- .../Services/MetadataProviders/CosmosSqlMetadataProvider.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Config/RuntimeConfig.cs b/src/Config/RuntimeConfig.cs index 702616c513..8c8d911528 100644 --- a/src/Config/RuntimeConfig.cs +++ b/src/Config/RuntimeConfig.cs @@ -58,7 +58,7 @@ public record RuntimeConfig( Dictionary? RuntimeSettings, [property: JsonPropertyName(Entity.JSON_PROPERTY_NAME)] Dictionary Entities, - [property: JsonPropertyName(CosmosDbOptions.JSON_PROPERTY_NAME)] + [property: JsonPropertyName(DataSource.OPTIONS_PROPERTY_NAME)] CosmosDbOptions? CosmosDb = null) { public const string SCHEMA_PROPERTY_NAME = "$schema"; diff --git a/src/Service/Services/MetadataProviders/CosmosSqlMetadataProvider.cs b/src/Service/Services/MetadataProviders/CosmosSqlMetadataProvider.cs index 5c616ee864..79c8a5cda1 100644 --- a/src/Service/Services/MetadataProviders/CosmosSqlMetadataProvider.cs +++ b/src/Service/Services/MetadataProviders/CosmosSqlMetadataProvider.cs @@ -33,7 +33,7 @@ public CosmosSqlMetadataProvider(RuntimeConfigProvider runtimeConfigProvider, IF _databaseType = _runtimeConfig.DatabaseType; _graphQLSingularTypeToEntityNameMap = _runtimeConfig.GraphQLSingularTypeToEntityNameMap; - CosmosDbOptions? cosmosDb = _runtimeConfig.CosmosDb; + CosmosDbOptions? cosmosDb = _runtimeConfig.DataSource.CosmosDbNoSql; if (cosmosDb is null) { From 687d0102b73db59840bbf8317c2241fa28e08451 Mon Sep 17 00:00:00 2001 From: Bhaskar Mallapragada Date: Tue, 29 Nov 2022 12:58:40 -0800 Subject: [PATCH 2/4] Fixing CLI not to include cosmos as seperate runtime config section Fixing Init tests --- src/Cli/src/ConfigGenerator.cs | 1 - src/Cli/test/InitTests.cs | 7 +------ src/Service/Configurations/RuntimeConfigProvider.cs | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/Cli/src/ConfigGenerator.cs b/src/Cli/src/ConfigGenerator.cs index 589cfca5a1..1d2de62abf 100644 --- a/src/Cli/src/ConfigGenerator.cs +++ b/src/Cli/src/ConfigGenerator.cs @@ -93,7 +93,6 @@ public static bool TryCreateRuntimeConfig(InitOptions options, out string runtim RuntimeConfig runtimeConfig = new( Schema: RuntimeConfig.SCHEMA, DataSource: dataSource, - CosmosDb: cosmosDbNoSqlOptions, RuntimeSettings: GetDefaultGlobalSettings( options.HostMode, options.CorsOrigin, diff --git a/src/Cli/test/InitTests.cs b/src/Cli/test/InitTests.cs index 920b349db5..b7aa6c69fd 100644 --- a/src/Cli/test/InitTests.cs +++ b/src/Cli/test/InitTests.cs @@ -153,16 +153,11 @@ public void CosmosDbNoSqlDatabase() ""schema"": ""schemafile"" } }, - ""cosmos"": { - ""database"": ""testdb"", - ""container"": ""testcontainer"", - ""schema"": ""schemafile"" - }, ""entities"": {} }"; // Adding runtime settings to the above basic config - string expectedRuntimeConfig = AddPropertiesToJson( + string expectedRuntimeConfig = AddPropertiesToJson ( _basicRuntimeConfig, GetDefaultTestRuntimeSettingString()); RunTest(options, expectedRuntimeConfig); diff --git a/src/Service/Configurations/RuntimeConfigProvider.cs b/src/Service/Configurations/RuntimeConfigProvider.cs index 0a71a19b5f..68b9169afd 100644 --- a/src/Service/Configurations/RuntimeConfigProvider.cs +++ b/src/Service/Configurations/RuntimeConfigProvider.cs @@ -245,9 +245,6 @@ public void Initialize( { throw new ArgumentException($"'{nameof(schema)}' cannot be null or empty.", nameof(schema)); } - - CosmosDbOptions? cosmosDb = RuntimeConfiguration.CosmosDb! with { GraphQLSchema = schema }; - RuntimeConfiguration = RuntimeConfiguration with { CosmosDb = cosmosDb }; } } From 852ffc10885991a1b9d28edcd0a30803c5a63135 Mon Sep 17 00:00:00 2001 From: Bhaskar Mallapragada Date: Wed, 30 Nov 2022 23:43:29 -0800 Subject: [PATCH 3/4] Cleanup and test fixes --- src/Config/DataSource.cs | 4 ---- src/Config/RuntimeConfig.cs | 4 +--- src/Service.Tests/Configuration/ConfigurationTests.cs | 2 +- src/Service/Configurations/RuntimeConfigProvider.cs | 4 ++++ 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Config/DataSource.cs b/src/Config/DataSource.cs index 00bd42b79b..8fe8d8b15e 100644 --- a/src/Config/DataSource.cs +++ b/src/Config/DataSource.cs @@ -75,10 +75,6 @@ public record CosmosDbOptions( string? GraphQLSchema) { public const string GRAPHQL_SCHEMA_PATH_PROPERTY_NAME = "schema"; - - // Keeping the name as cosmos only to provide backwards compatibility. - // This property won't be needed going forward. - public const string JSON_PROPERTY_NAME = nameof(DatabaseType.cosmos); } /// diff --git a/src/Config/RuntimeConfig.cs b/src/Config/RuntimeConfig.cs index 8c8d911528..8ecb513468 100644 --- a/src/Config/RuntimeConfig.cs +++ b/src/Config/RuntimeConfig.cs @@ -57,9 +57,7 @@ public record RuntimeConfig( [property: JsonPropertyName(GlobalSettings.JSON_PROPERTY_NAME)] Dictionary? RuntimeSettings, [property: JsonPropertyName(Entity.JSON_PROPERTY_NAME)] - Dictionary Entities, - [property: JsonPropertyName(DataSource.OPTIONS_PROPERTY_NAME)] - CosmosDbOptions? CosmosDb = null) + Dictionary Entities) { public const string SCHEMA_PROPERTY_NAME = "$schema"; public const string SCHEMA = "dab.draft.schema.json"; diff --git a/src/Service.Tests/Configuration/ConfigurationTests.cs b/src/Service.Tests/Configuration/ConfigurationTests.cs index 6a97169093..0726e295c2 100644 --- a/src/Service.Tests/Configuration/ConfigurationTests.cs +++ b/src/Service.Tests/Configuration/ConfigurationTests.cs @@ -426,7 +426,7 @@ public async Task TestSettingConfigurationCreatesCorrectClasses() Assert.IsTrue(isConfigSet, "TryGetRuntimeConfiguration should return true when the config is set."); Assert.AreEqual(DatabaseType.cosmos, configuration.DatabaseType, "Expected cosmos database type after configuring the runtime with cosmos settings."); - Assert.AreEqual(config.Schema, configuration.CosmosDb.GraphQLSchema, "Expected the schema in the configuration to match the one sent to the configuration endpoint."); + Assert.AreEqual(config.Schema, configuration.DataSource.CosmosDbNoSql.GraphQLSchema, "Expected the schema in the configuration to match the one sent to the configuration endpoint."); Assert.AreEqual(config.ConnectionString, configuration.ConnectionString, "Expected the connection string in the configuration to match the one sent to the configuration endpoint."); } diff --git a/src/Service/Configurations/RuntimeConfigProvider.cs b/src/Service/Configurations/RuntimeConfigProvider.cs index 68b9169afd..2f0828f9d8 100644 --- a/src/Service/Configurations/RuntimeConfigProvider.cs +++ b/src/Service/Configurations/RuntimeConfigProvider.cs @@ -245,6 +245,10 @@ public void Initialize( { throw new ArgumentException($"'{nameof(schema)}' cannot be null or empty.", nameof(schema)); } + + CosmosDbOptions? cosmosDb = RuntimeConfiguration.DataSource.CosmosDbNoSql! with { GraphQLSchema = schema }; + DataSource dataSource = RuntimeConfiguration.DataSource with { CosmosDbNoSql = cosmosDb }; + RuntimeConfiguration = RuntimeConfiguration with { DataSource = dataSource }; } } From 7e4ac6f9e80ae9c357b31fe2a57ac8ad5a7a6d8d Mon Sep 17 00:00:00 2001 From: Bhaskar Mallapragada Date: Wed, 30 Nov 2022 23:57:49 -0800 Subject: [PATCH 4/4] Fixing format issue --- src/Cli/test/InitTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cli/test/InitTests.cs b/src/Cli/test/InitTests.cs index b7aa6c69fd..bd1eb6b5f6 100644 --- a/src/Cli/test/InitTests.cs +++ b/src/Cli/test/InitTests.cs @@ -157,7 +157,7 @@ public void CosmosDbNoSqlDatabase() }"; // Adding runtime settings to the above basic config - string expectedRuntimeConfig = AddPropertiesToJson ( + string expectedRuntimeConfig = AddPropertiesToJson( _basicRuntimeConfig, GetDefaultTestRuntimeSettingString()); RunTest(options, expectedRuntimeConfig);