Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Queue storage extension support for QueueMessage & BinaryData #1470

Merged
merged 146 commits into from
Jun 27, 2023
Merged
Show file tree
Hide file tree
Changes from 129 commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
257add7
Add E2E tests for blob SDK type bindings (#1360)
liliankasem Feb 22, 2023
3f84651
Add analyzer for SupportsDeferredBindingAttribute (#1367)
liliankasem Feb 23, 2023
6b1189a
Update SupportsDeferredBinding diagnostic code & update docs (#1377)
liliankasem Feb 23, 2023
d16ab2d
Revert "Remove types, tests & logic related to the SDK-binding featur…
liliankasem Feb 23, 2023
cdcbc9d
Added unit tests for BlobStorageConverter (#1370)
surgupta-msft Feb 23, 2023
f7853d7
Initial changes
surgupta-msft Mar 16, 2023
9d105a6
Updating metadata
surgupta-msft Mar 17, 2023
0a4342b
Adding a test
surgupta-msft Mar 20, 2023
d5206aa
Code refactoring
surgupta-msft Mar 21, 2023
fae3f6b
Cosmos DB converter for SDK-type support and samples (#1406)
liliankasem Mar 21, 2023
a4da7dc
Execution flow added
surgupta-msft Mar 22, 2023
1b3395e
Update pipeline variables to include tags (#1427)
liliankasem Mar 22, 2023
cb93c71
Update extension variables to not use build number with tags (#1429)
liliankasem Mar 22, 2023
61479cb
Execution flow
surgupta-msft Mar 22, 2023
356b372
cleanup
surgupta-msft Mar 22, 2023
199e6cb
Cleanup
surgupta-msft Mar 23, 2023
379da90
Cleanup
surgupta-msft Mar 23, 2023
71e0be8
Cleanup execution flow
surgupta-msft Mar 23, 2023
ad21fb9
Added test
surgupta-msft Mar 23, 2023
6e14edf
Adding tests
surgupta-msft Apr 7, 2023
a398322
code cleanup
surgupta-msft Apr 7, 2023
df76646
Code cleanup
surgupta-msft Apr 7, 2023
bc9749f
code refactor
surgupta-msft Apr 7, 2023
0eb9b5f
Added logic to check type before sending to converter
surgupta-msft Apr 10, 2023
6630355
Updated tests
surgupta-msft Apr 10, 2023
15752e9
Removing advertised converters from options
surgupta-msft Apr 10, 2023
1ef5181
Adding options back
surgupta-msft Apr 11, 2023
63af451
Changes to check type
surgupta-msft Apr 13, 2023
29bcb97
updating type check logic
surgupta-msft Apr 14, 2023
dfac68e
correction in metadata generation
surgupta-msft Apr 14, 2023
359b38c
code cleanup
surgupta-msft Apr 17, 2023
7211f01
Test cleanup
surgupta-msft Apr 17, 2023
b565b45
Added changes to support poco
surgupta-msft Apr 18, 2023
478f7b9
Metadata generation changes
surgupta-msft Apr 18, 2023
0074cbd
Changes on Invocation side
surgupta-msft Apr 18, 2023
f06b7dd
correcting type check and tests
surgupta-msft Apr 18, 2023
e6b059f
Test for poco invocation support
surgupta-msft Apr 19, 2023
4f8431b
Added tests for poco invocation flows
surgupta-msft Apr 19, 2023
8f88495
Metadata generator minor update
surgupta-msft Apr 19, 2023
5af5a3d
Grpc definition update
surgupta-msft Apr 19, 2023
3aee9e6
Added poco and poco collection check
surgupta-msft Apr 19, 2023
321050d
cleanup metadata generation
surgupta-msft Apr 19, 2023
68b232a
Adding support for type collection
surgupta-msft Apr 21, 2023
ac548ee
Merge branch 'feature/sdk-type-binding' into surgupta/bypass-deferred…
surgupta-msft Apr 21, 2023
e8ebef0
code cleanup
surgupta-msft Apr 21, 2023
c6c922c
Fixing metadata gen
surgupta-msft Apr 21, 2023
b34e939
Test fix
surgupta-msft Apr 21, 2023
b4c9e17
Grpc definition fix
surgupta-msft Apr 22, 2023
54c1cee
Removing BlobContainerClient advertisement
surgupta-msft Apr 22, 2023
3323177
Readding containerclient
surgupta-msft Apr 22, 2023
12fd136
Updated metadata generator
surgupta-msft Apr 25, 2023
deed9ed
Changes as per latest design
surgupta-msft Apr 27, 2023
81f7712
code cleanup
surgupta-msft Apr 28, 2023
5ddcc76
updatin tests input
surgupta-msft Apr 28, 2023
78e4271
code cleanup
surgupta-msft May 1, 2023
02ec62f
Cleanup Metadata generation
surgupta-msft May 1, 2023
0a6468e
correcting converters fallback logic
surgupta-msft May 1, 2023
5073024
Removing converter advertisement on cosmos trigger
surgupta-msft May 1, 2023
0136fc7
Fixing failing test
surgupta-msft May 1, 2023
f1dece6
Undo testing changes in sample app
surgupta-msft May 1, 2023
daa23fc
spacing fix
surgupta-msft May 1, 2023
e918fcd
updated tests
surgupta-msft May 2, 2023
b8b89e0
Addressing PR feedback
surgupta-msft May 3, 2023
7ef0a40
Removed json deserialization attribute
surgupta-msft May 4, 2023
8391cf2
Rename to AllowConverterFallback
surgupta-msft May 4, 2023
bac43ab
Addressing feedback
surgupta-msft May 5, 2023
3971796
Metada generation cleanup
surgupta-msft May 5, 2023
b8507af
Test cleanup
surgupta-msft May 5, 2023
be00b04
Addressing feedback
surgupta-msft May 5, 2023
ed77d96
prototype
liliankasem Mar 30, 2023
28f2a3e
Fix queue message
liliankasem Mar 30, 2023
c26a38b
Support jobject and binarydata
liliankasem Mar 30, 2023
fa876b2
update
liliankasem Mar 31, 2023
81af668
cleanup and add unit test
liliankasem Apr 14, 2023
4fc34e3
QueueMessageJsonConverterTests
liliankasem Apr 14, 2023
cc3d164
cleanup
liliankasem Apr 14, 2023
19c63a8
Update converter and tests
liliankasem Apr 17, 2023
4d2de15
e2e tests
liliankasem Apr 18, 2023
5c5e4c6
refactor QueueMessageJsonConverter and cleanup
liliankasem Apr 19, 2023
58332b1
Remove startup and update exception type
liliankasem Apr 24, 2023
aaed5ae
Rebase and update json conversion
liliankasem Apr 24, 2023
f03bad3
cleanup
liliankasem Apr 25, 2023
42a2df2
move jsonexception catch
liliankasem Apr 25, 2023
663eb03
refactor to multiple converters
liliankasem Apr 26, 2023
532e72a
Refactor
liliankasem Apr 27, 2023
907be41
Rebase with new bypass changes
liliankasem May 5, 2023
1780981
Updated grpcFunctionDefinition for multiple inputConverterAttribute
surgupta-msft May 5, 2023
6c0dd09
Merge branch 'surgupta/bypass-deferredbinding' into liliankasem/queue…
surgupta-msft May 5, 2023
f66894b
Added a test for GRPCFunctionDefinition for queue
surgupta-msft May 5, 2023
f1bcde0
Removing cosmos converter registration
surgupta-msft May 5, 2023
40638ca
Merge branch 'surgupta/bypass-deferredbinding' into liliankasem/queue…
surgupta-msft May 5, 2023
eca26c0
Http assembly in csproj
surgupta-msft May 5, 2023
6197db7
Address PR feedback
surgupta-msft May 5, 2023
9d803b7
Address PR feedback
surgupta-msft May 5, 2023
49e5d04
Test fix
surgupta-msft May 5, 2023
6d4978d
Minor
surgupta-msft May 5, 2023
744a9eb
Updating AllowConverterFallback value
surgupta-msft May 10, 2023
4380e9d
Adding release notes
surgupta-msft May 10, 2023
d27ba03
Updating bypass deferred binding packages
surgupta-msft May 11, 2023
a39601b
Revert "Updating bypass deferred binding packages"
surgupta-msft May 11, 2023
9a18e79
Updating deferred binding packages in sample app
surgupta-msft May 11, 2023
3af7780
Minor updates based on comments
surgupta-msft May 11, 2023
e36726b
Cleanup defaultInputConverterProvider
surgupta-msft May 11, 2023
958375d
Test refactor
surgupta-msft May 12, 2023
ad3a33c
Implement bypass deferred binding (#1462)
surgupta-msft May 12, 2023
d754fa3
Rebased with Bypass binding changes
surgupta-msft May 12, 2023
0e6292c
Merged with base feature branch
surgupta-msft May 12, 2023
a490575
Correcting test
surgupta-msft May 13, 2023
9edd1cb
tidy sample csproj
liliankasem May 18, 2023
7d4427e
Add E2E tests for blob SDK type bindings (#1360)
liliankasem Feb 22, 2023
269a328
Add analyzer for SupportsDeferredBindingAttribute (#1367)
liliankasem Feb 23, 2023
7bd03b9
Update SupportsDeferredBinding diagnostic code & update docs (#1377)
liliankasem Feb 23, 2023
4f0bc28
Revert "Remove types, tests & logic related to the SDK-binding featur…
liliankasem Feb 23, 2023
1d0646a
Added unit tests for BlobStorageConverter (#1370)
surgupta-msft Feb 23, 2023
e2fd111
Cosmos DB converter for SDK-type support and samples (#1406)
liliankasem Mar 21, 2023
28ce921
Update pipeline variables to include tags (#1427)
liliankasem Mar 22, 2023
c3b5a46
Update extension variables to not use build number with tags (#1429)
liliankasem Mar 22, 2023
2100238
Implement bypass deferred binding (#1462)
surgupta-msft May 12, 2023
32005f0
Adding check for PR in yml file (#1546)
surgupta-msft May 18, 2023
0d49e19
Add ability to bind to SBReceivedMessage (#1313)
JoshLove-msft May 22, 2023
dd40f13
[Cosmos Extension] Bump SDK version and remove partition key workarou…
liliankasem May 23, 2023
7cac260
Worker packages version update (#1554)
surgupta-msft May 23, 2023
31ad08a
Updating abstraction version (#1556)
surgupta-msft May 23, 2023
7f1502a
Merge branch 'feature/sdk-type-binding' into liliankasem/queue-messag…
liliankasem May 23, 2023
c1db479
remove
liliankasem May 23, 2023
d7fa322
Updating storage version (#1557)
surgupta-msft May 23, 2023
bb35149
Release steps enabled for tags (#1559)
liliankasem May 23, 2023
7d61464
Removing empty version suffix (#1560)
surgupta-msft May 23, 2023
65b3351
Cleanup
liliankasem May 24, 2023
d046faf
Remove debug console log
liliankasem May 24, 2023
f01d5be
Update release notes
liliankasem May 24, 2023
b582ec8
Add generator test
liliankasem May 24, 2023
cd25c65
Bump extension packages to preview2 to fix dependency (#1562)
liliankasem May 24, 2023
db4ad52
Table converter (#1506)
aishwaryabh May 25, 2023
54ed918
Address comments
liliankasem May 26, 2023
ea9dd93
Add Cosmos emulator brute force script & reenabling tests (#1570) (#1…
liliankasem May 26, 2023
c31f129
Add E2E tests for Cosmos extension (#1426)
liliankasem May 31, 2023
3273466
Merge branch 'feature/sdk-type-binding' into liliankasem/queue-messag…
liliankasem May 31, 2023
42f95da
Merge branch 'feature/sdk-type-binding' into liliankasem/queue-messag…
liliankasem Jun 26, 2023
295c254
Cleanup
liliankasem Jun 26, 2023
2bc27c3
cleanup2
liliankasem Jun 26, 2023
530b3e3
Update converter
liliankasem Jun 26, 2023
dfb7327
Update tests
liliankasem Jun 27, 2023
9aa44a3
separate unit tests oyt
liliankasem Jun 27, 2023
b9bd40c
cleanup e2e
liliankasem Jun 27, 2023
2c91b31
Update test metadata
liliankasem Jun 27, 2023
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
9 changes: 8 additions & 1 deletion DotNetWorker.sln
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Worker.Extensions.Kafka", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdk.Analyzers", "sdk\Sdk.Analyzers\Sdk.Analyzers.csproj", "{055D602D-D2B3-416B-AC59-1972D832032A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdk.Analyzers.Tests", "test\Sdk.Analyzers.Tests\Sdk.Analyzers.Tests\Sdk.Analyzers.Tests.csproj", "{A75EA1E1-2801-460C-87C0-DE6A82D30851}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdk.Analyzers.Tests", "test\Sdk.Analyzers.Tests\Sdk.Analyzers.Tests.csproj", "{A75EA1E1-2801-460C-87C0-DE6A82D30851}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{083592CA-7DAB-44CE-8979-44FAFA46AEC3}"
EndProject
Expand Down Expand Up @@ -119,6 +119,8 @@ EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Worker.Extensions.Shared", "extensions\Worker.Extensions.Shared\Worker.Extensions.Shared.csproj", "{277D77B9-8915-41E3-8763-0B66328ADDDA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WorkerBindingSamples", "samples\WorkerBindingSamples\WorkerBindingSamples.csproj", "{901DA3C3-3ABA-4859-89D3-63343ED2A0AC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WorkerExtensionTests", "test\WorkerExtensionTests\WorkerExtensionTests.csproj", "{17BDCE12-6964-4B87-B2AC-68CE270A3E9A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -293,6 +295,10 @@ Global
{901DA3C3-3ABA-4859-89D3-63343ED2A0AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{901DA3C3-3ABA-4859-89D3-63343ED2A0AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{901DA3C3-3ABA-4859-89D3-63343ED2A0AC}.Release|Any CPU.Build.0 = Release|Any CPU
{17BDCE12-6964-4B87-B2AC-68CE270A3E9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17BDCE12-6964-4B87-B2AC-68CE270A3E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17BDCE12-6964-4B87-B2AC-68CE270A3E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17BDCE12-6964-4B87-B2AC-68CE270A3E9A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -344,6 +350,7 @@ Global
{004DEF24-7EBB-499D-BD1C-E940AC4E122D} = {A7B4FF1E-3DF7-4F28-9333-D0961CDDF702}
{277D77B9-8915-41E3-8763-0B66328ADDDA} = {A7B4FF1E-3DF7-4F28-9333-D0961CDDF702}
{901DA3C3-3ABA-4859-89D3-63343ED2A0AC} = {9D6603BD-7EA2-4D11-A69C-0D9E01317FD6}
{17BDCE12-6964-4B87-B2AC-68CE270A3E9A} = {FD7243E4-BF18-43F8-8744-BA1D17ACF378}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {497D2ED4-A13E-4BCA-8D29-F30CA7D0EA4A}
Expand Down
20 changes: 10 additions & 10 deletions build/pipelines/templates/extensions-variables.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
variables:
${{ if not(contains(variables['Build.SourceBranch'], '/release/' )) }}:
buildNumberTemp: $(Build.BuildNumber)
${{ if contains(variables['Build.SourceBranch'], '/release/' ) }}:
isReleaseBuildTemp: true
buildNumber: $[variables.buildNumberTemp]
isReleaseBuild: $[variables.isReleaseBuildTemp]
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
variables:
${{ if and( not(contains(variables['Build.SourceBranch'], '/release/')), not(startsWith(variables['Build.SourceBranch'], 'refs/tags')) ) }}:
buildNumberTemp: $(Build.BuildNumber)
${{ if or( contains(variables['Build.SourceBranch'], '/release/'), startsWith(variables['Build.SourceBranch'], 'refs/tags') ) }}:
isReleaseBuildTemp: true
buildNumber: $[variables.buildNumberTemp]
isReleaseBuild: $[variables.isReleaseBuildTemp]
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
26 changes: 26 additions & 0 deletions docs/analyzer-rules/AZFW0009.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# AZFW0009: Invalid use of SupportsDeferredBinding attribute

| | Value |
|-|-|
| **Rule ID** |AZFW0009|
| **Category** |[Usage]|
| **Severity** |Error|

## Cause

This rule is triggered when the `SupportsDeferredBinding` attribute is used on any class other
than an input (`InputBindingAttribute`) or trigger (`TriggerBindingAttribute`) binding based class.

## Rule description

The `SupportsDeferredBinding` attribute is used to determine if a binding supports deferred binding.
Currently, this feature is only supported for input and trigger bindings. Output bindings are not supported
and this attribute should not be used on any other class type.

## How to fix violations

Remove the use of the `SupportsDeferredBinding` attribute from your class.

## When to suppress warnings

This rule should not be suppressed because this error may prevent your Azure Functions from running.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

using System;

namespace Microsoft.Azure.Functions.Worker.Extensions.Abstractions
{
/// <summary>
/// Specifies if a converter supports deferred binding when generating function metadata.
/// This is to be used on converters that support deferred binding.
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
public class SupportsDeferredBindingAttribute : Attribute
{
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
<AssemblyName>Microsoft.Azure.Functions.Worker.Extensions.Abstractions</AssemblyName>
<RootNamespace>Microsoft.Azure.Functions.Worker.Extensions.Abstractions</RootNamespace>
<Description>Abstractions for Azure Functions .NET Worker</Description>
<MinorProductVersion>1</MinorProductVersion>
<PatchProductVersion>1</PatchProductVersion>
<MinorProductVersion>2</MinorProductVersion>
<PatchProductVersion>0</PatchProductVersion>
<VersionSuffix>-preview2</VersionSuffix>
</PropertyGroup>

<Import Project="..\..\..\build\Common.props" />
Expand Down
1 change: 1 addition & 0 deletions extensions/Worker.Extensions.CosmosDB/release_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
### Microsoft.Azure.Functions.Worker.Extensions.CosmosDB <version>

- Add `BindingCapabilities` attribute to CosmosDb trigger to express function-level retry capabilities. (#1457)
- Update `Microsoft.Azure.Cosmos` to `3.34.0` (#1550)
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

using System;
using System.Collections.Concurrent;
using Azure.Core;
using Microsoft.Azure.Cosmos;
using Microsoft.Azure.Functions.Worker.Extensions.CosmosDB;

namespace Microsoft.Azure.Functions.Worker
{
internal class CosmosDBBindingOptions
{
public string? ConnectionString { get; set; }

public string? AccountEndpoint { get; set; }

public TokenCredential? Credential { get; set; }

internal string BuildCacheKey(string connectionString, string region) => $"{connectionString}|{region}";
internal ConcurrentDictionary<string, CosmosClient> ClientCache { get; } = new ConcurrentDictionary<string, CosmosClient>();

internal virtual CosmosClient GetClient(string connection, string preferredLocations = "")
{
if (string.IsNullOrEmpty(connection))
{
throw new ArgumentNullException(nameof(connection));
}

string cacheKey = BuildCacheKey(connection, preferredLocations);

CosmosClientOptions cosmosClientOptions = new ()
{
ConnectionMode = ConnectionMode.Gateway
};

if (!string.IsNullOrEmpty(preferredLocations))
{
cosmosClientOptions.ApplicationPreferredRegions = Utilities.ParsePreferredLocations(preferredLocations);
}

return ClientCache.GetOrAdd(cacheKey, (c) => CreateService(cosmosClientOptions));
}

private CosmosClient CreateService(CosmosClientOptions cosmosClientOptions)
{
return string.IsNullOrEmpty(ConnectionString)
? new CosmosClient(AccountEndpoint, Credential, cosmosClientOptions) // AAD auth
: new CosmosClient(ConnectionString, cosmosClientOptions); // Connection string based auth
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

using System;
using Microsoft.Azure.Functions.Worker.Extensions;
using Microsoft.Azure.Functions.Worker.Extensions.CosmosDB;
using Microsoft.Extensions.Azure;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;

namespace Microsoft.Azure.Functions.Worker
{
internal class CosmosDBBindingOptionsSetup : IConfigureNamedOptions<CosmosDBBindingOptions>
{
private readonly IConfiguration _configuration;
private readonly AzureComponentFactory _componentFactory;

public CosmosDBBindingOptionsSetup(IConfiguration configuration, AzureComponentFactory componentFactory)
{
_configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
_componentFactory = componentFactory ?? throw new ArgumentNullException(nameof(componentFactory));
}

public void Configure(CosmosDBBindingOptions options)
{
Configure(Options.DefaultName, options);
}

public void Configure(string name, CosmosDBBindingOptions options)
{
IConfigurationSection connectionSection = _configuration.GetWebJobsConnectionStringSection(name);

if (!connectionSection.Exists())
{
throw new InvalidOperationException($"Cosmos DB connection configuration '{name}' does not exist. " +
"Make sure that it is a defined App Setting.");
}

if (!string.IsNullOrWhiteSpace(connectionSection.Value))
{
options.ConnectionString = connectionSection.Value;
}
else
{
options.AccountEndpoint = connectionSection[Constants.AccountEndpoint];
if (string.IsNullOrWhiteSpace(options.AccountEndpoint))
{
throw new InvalidOperationException($"Connection should have an '{Constants.AccountEndpoint}' property or be a " +
$"string representing a connection string.");
}

options.Credential = _componentFactory.CreateTokenCredential(connectionSection);
}
}
}
}
15 changes: 15 additions & 0 deletions extensions/Worker.Extensions.CosmosDB/src/Constants.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

namespace Microsoft.Azure.Functions.Worker.Extensions.CosmosDB
{
internal static class Constants
{
internal const string CosmosExtensionName = "CosmosDB";
internal const string ConfigurationSectionName = "AzureWebJobs";
internal const string ConnectionStringsSectionName = "ConnectionStrings";
internal const string AccountEndpoint = "accountEndpoint";
internal const string JsonContentType = "application/json";
}
}
Loading