Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
### 4.1.1

- Add support for APS alternative environment variables `APS_CLIENT_ID` and `APS_CLIENT_SECRET`

### 4.0.1

* Add Documentation in the `Autodesk.Forge.Core` project.
Expand All @@ -18,18 +22,21 @@

* Migrate to .Net 5
* Support to return HttpStatusCode in HttpRequestException


### 1.0.0.0

* 1.0.0-beta4
* Support concurrency with `SemaphoreSlim`

* Support concurrency with `SemaphoreSlim`

* 1.0.0-beta3
* Configurable timeout

* Configurable timeout

* 1.0.0-beta2
* Fix NuGet package settings

* Fix NuGet package settings

* 1.0.0-beta1
* Support for `FORGE_CLIENT_ID` and `FORGE_CLIENT_SECRET` environment variables via `ForgeAlternativeConfigurationExtensions`

* Support for `FORGE_CLIENT_ID` and `FORGE_CLIENT_SECRET` environment variables via `ForgeAlternativeConfigurationExtensions`
1 change: 1 addition & 0 deletions src/Autodesk.Forge.Core/Autodesk.Forge.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<PropertyGroup>
<Description>Shared code for APS client sdks</Description>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<Version>4.1.1</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
59 changes: 59 additions & 0 deletions src/Autodesk.Forge.Core/LegacySampleConfigurationProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,23 @@ public static IConfigurationBuilder AddForgeAlternativeEnvironmentVariables(this
configurationBuilder.Add(new ForgeAlternativeConfigurationSource());
return configurationBuilder;
}

/// <summary>
/// Adds APS alternative environment variables to the configuration builder.
/// </summary>
/// <param name="configurationBuilder"></param>
/// <returns></returns>

public static IConfigurationBuilder AddAPSAlternativeEnvironmentVariables(this IConfigurationBuilder configurationBuilder)
{
configurationBuilder.Add(new APSAlternativeConfigurationSource());
return configurationBuilder;
}

}



/// <summary>
/// Represents a configuration source for loading Forge alternative configuration.
/// </summary>
Expand Down Expand Up @@ -74,5 +89,49 @@ public override void Load()
}
}
}



/// <summary>
/// Represents a configuration source for loading APS alternative configuration.
/// </summary>

public class APSAlternativeConfigurationSource : IConfigurationSource
{
/// <summary>
/// Build the APS Environment Configuration Provider
/// </summary>
/// <param name="builder"></param>
/// <returns></returns>
public IConfigurationProvider Build(IConfigurationBuilder builder)
{
return new APSAlternativeConfigurationProvider();
}
}

/// <summary>
/// Loads the APS alternative configuration from environment variables.
/// </summary>

public class APSAlternativeConfigurationProvider : ConfigurationProvider
{
/// <summary>
/// Loads the APS alternative configuration from environment variables.
/// </summary>
public override void Load()
{
var id = Environment.GetEnvironmentVariable("APS_CLIENT_ID");
if (!string.IsNullOrEmpty(id))
{
this.Data.Add("Forge:ClientId", id);
}
var secret = Environment.GetEnvironmentVariable("APS_CLIENT_SECRET");
if (!string.IsNullOrEmpty(secret))
{
this.Data.Add("Forge:ClientSecret", secret);
}
}

}
}

17 changes: 17 additions & 0 deletions tests/Autodesk.Forge.Core.Test/TestForgeConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,23 @@ public void TestValuesFromLegacyEnvironment()
Assert.Equal("blabla", config.Value.ClientSecret);
}

[Fact]
public void TestValuesFromAPSEnvironment()
{
Environment.SetEnvironmentVariable("APS_CLIENT_ID", "bla");
Environment.SetEnvironmentVariable("APS_CLIENT_SECRET", "blabla");
var configuration = new ConfigurationBuilder()
.AddAPSAlternativeEnvironmentVariables()
.Build();
var services = new ServiceCollection();
services.AddForgeService(configuration);
var serviceProvider = services.BuildServiceProvider();
var config = serviceProvider.GetRequiredService<IOptions<ForgeConfiguration>>();
Assert.Equal("bla", config.Value.ClientId);
Assert.Equal("blabla",config.Value.ClientSecret);

}

[Fact]
public void TestValuesFromJson()
{
Expand Down