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

NeonPostgres .NET SDK #47145

Merged
merged 6 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
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
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -1003,6 +1003,12 @@
# ServiceLabel: %Large Instance %Mgmt
# ServiceOwners: @8Gitbrix

# PRLabel: %Neon Postgres
/sdk/neonpostgres/Azure.ResourceManager.*/ @ArthurMa1978

# ServiceLabel: %Neon Postgres %Mgmt
# ServiceOwners: @ArthurMa1978

# PRLabel: %Network - CDN
/sdk/cdn/Azure.ResourceManager.*/ @ptnan7

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30309.148
MinimumVisualStudioVersion = 10.0.40219.1
Project("{B572BAAD-0D4F-4AD9-8B3A-505A171C7A37}") = "Azure.ResourceManager.NeonPostgres", "src\Azure.ResourceManager.NeonPostgres.csproj", "{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}"
EndProject
Project("{B572BAAD-0D4F-4AD9-8B3A-505A171C7A37}") = "Azure.ResourceManager.NeonPostgres.Tests", "tests\Azure.ResourceManager.NeonPostgres.Tests.csproj", "{307BCD2D-A761-4156-8284-B821130D18D1}"
EndProject
Project("{B572BAAD-0D4F-4AD9-8B3A-505A171C7A37}") = "Azure.ResourceManager.NeonPostgres.Samples", "samples\Azure.ResourceManager.NeonPostgres.Samples.csproj", "{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}"
EndProject
Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9E3460F6-1887-4CE9-BCF8-C22E1D6DB9A6}
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x64.ActiveCfg = Debug|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x64.Build.0 = Debug|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x86.ActiveCfg = Debug|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Debug|x86.Build.0 = Debug|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|Any CPU.Build.0 = Release|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x64.ActiveCfg = Release|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x64.Build.0 = Release|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x86.ActiveCfg = Release|Any CPU
{82F01D64-CB06-4F3A-ADE3-F0A1B82EF068}.Release|x86.Build.0 = Release|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x64.ActiveCfg = Debug|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x64.Build.0 = Debug|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Debug|x86.Build.0 = Debug|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Release|Any CPU.Build.0 = Release|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Release|x64.ActiveCfg = Release|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Release|x64.Build.0 = Release|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Release|x86.ActiveCfg = Release|Any CPU
{307BCD2D-A761-4156-8284-B821130D18D1}.Release|x86.Build.0 = Release|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x64.ActiveCfg = Debug|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x64.Build.0 = Debug|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x86.ActiveCfg = Debug|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Debug|x86.Build.0 = Debug|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|Any CPU.Build.0 = Release|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x64.ActiveCfg = Release|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x64.Build.0 = Release|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x86.ActiveCfg = Release|Any CPU
{2F3CC342-8ECE-4C5F-B3E8-EA7E157ED20F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Release History

## 1.0.0-beta.1 (2024-11-22)

### Features Added

This package follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities:

- Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET.
- Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing.
- HTTP pipeline with custom policies.
- Better error-handling.
- Support uniform telemetry across all languages.

This package is a Public Preview version, so expect incompatible changes in subsequent releases as we improve the product. To provide feedback, submit an issue in our [Azure SDK for .NET GitHub repo](https://github.com/Azure/azure-sdk-for-net/issues).

> NOTE: For more information about unified authentication, please refer to [Microsoft Azure Identity documentation for .NET](https://docs.microsoft.com//dotnet/api/overview/azure/identity-readme?view=azure-dotnet).
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Add any shared properties you want for the projects under this package directory that need to be set before the auto imported Directory.Build.props
-->
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., Directory.Build.props))\Directory.Build.props" />
</Project>
84 changes: 84 additions & 0 deletions sdk/neonpostgres/Azure.ResourceManager.NeonPostgres/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Microsoft Azure NeonPostgres management client library for .NET

Neon is a modern Postgres database service that takes the world’s most-loved database and delivers it as a serverless platform designed to optimize both performance and cost. It eliminates the need for manual server resizing by offering compute and storage autoscaling, including scale-to-zero for inactive databases to save costs. Additionally, Neon supports database branching, enabling iterative CI/CD workflows and instant point-in-time recovery.

Efficient autoscaling for Postgres. Neon’s autoscaling adjusts resources dynamically based on actual usage, boosting performance during traffic spikes.
Faster developer workflows. Via database branching, developers can instantly create database copies for testing, feature development, and schema migrations.
Perfect for AI apps and agents. With pgvector for vector embeddings, serverless speed for agentic infrastructure, and optimal price performance due to scale-to-zero.

This library follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities:

- Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET.
- Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing.
- HTTP pipeline with custom policies.
- Better error-handling.
- Support uniform telemetry across all languages.

## Getting started

### Install the package

Install the Microsoft Azure NeonPostgres management library for .NET with [NuGet](https://www.nuget.org/):

```dotnetcli
dotnet add package Azure.ResourceManager.NeonPostgres --prerelease
```

### Prerequisites

* You must have an [Microsoft Azure subscription](https://azure.microsoft.com/free/dotnet/).

### Authenticate the Client

To create an authenticated client and start interacting with Microsoft Azure resources, see the [quickstart guide here](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md).

## Key concepts

Key concepts of the Microsoft Azure SDK for .NET can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html)

## Documentation

Documentation is available to help you learn how to use this package:

- [Quickstart](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md).
- [API References](https://docs.microsoft.com/dotnet/api/?view=azure-dotnet).
- [Authentication](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md).

## Examples

Code samples for using the management library for .NET can be found in the following locations
- [.NET Management Library Code Samples](https://aka.ms/azuresdk-net-mgmt-samples)

## Troubleshooting

- File an issue via [GitHub Issues](https://github.com/Azure/azure-sdk-for-net/issues).
- Check [previous questions](https://stackoverflow.com/questions/tagged/azure+.net) or ask new ones on Stack Overflow using Azure and .NET tags.

## Next steps

For more information about Microsoft Azure SDK, see [this website](https://azure.github.io/azure-sdk/).

## Contributing

For details on contributing to this repository, see the [contributing
guide][cg].

This project welcomes contributions and suggestions. Most contributions
require you to agree to a Contributor License Agreement (CLA) declaring
that you have the right to, and actually do, grant us the rights to use
your contribution. For details, visit <https://cla.microsoft.com>.

When you submit a pull request, a CLA-bot will automatically determine
whether you need to provide a CLA and decorate the PR appropriately
(for example, label, comment). Follow the instructions provided by the
bot. You'll only need to do this action once across all repositories
using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For
more information, see the [Code of Conduct FAQ][coc_faq] or contact
<[email protected]> with any other questions or comments.

<!-- LINKS -->
[cg]: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/CONTRIBUTING.md
[coc]: https://opensource.microsoft.com/codeofconduct/
[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/
Loading