[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JN03GDVB0DMP0HSY4YFBGY":3,"skill-same:01M6JN03GDVB0DMP0HSY4YFBGY":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6JN03GDVB0DMP0HSY4YFBGY","azure_resource_manager_postgresql_dotnet",null,"Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: \"PostgreSQL\", \"PostgreSqlFlexibleServer\", \"PostgreSQL Flexible Server\", \"Azure Database for PostgreSQL\", \"PostgreSQL database management\", \"PostgreSQL firewall\", \"PostgreSQL backup\", \"Postgres\".","LongLeo287\u002FOmniClaw","LongLeo287","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F141803367?v=4","01M6JK75C62VCNZKR5BRZ386YV","LongLeo","01M6JK75GQ78TSP1ZPXNKK3MCH",9,"MIT","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_resource_manager_postgresql_dotnet\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"azure","azure resource manager postgresql dotnet","dotnet","postgresql","manager","azure resource manager","for","high","availability","triggers","high availability","postgres","deployments","databases","use","Rules","backup","firewall","server","database","2026-11-10 10:12:30",false,"---\nname: azure_resource_manager_postgresql_dotnet\n\ndescription: |\n  Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: \"PostgreSQL\", \"PostgreSqlFlexibleServer\", \"PostgreSQL Flexible Server\", \"Azure Database for PostgreSQL\", \"PostgreSQL database management\", \"PostgreSQL firewall\", \"PostgreSQL backup\", \"Postgres\".\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n  package: Azure.ResourceManager.PostgreSql\n---\n\n# Azure.ResourceManager.PostgreSql (.NET)\n\nAzure Resource Manager SDK for managing PostgreSQL Flexible Server deployments.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.PostgreSql\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.2.0 (GA)  \n**API Version**: 2023-12-01-preview\n\n> **Note**: This skill focuses on PostgreSQL Flexible Server. Single Server is deprecated and scheduled for retirement.\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group>\nAZURE_POSTGRESQL_SERVER_NAME=\u003Cyour-postgresql-server>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.PostgreSql;\nusing Azure.ResourceManager.PostgreSql.FlexibleServers;\n\nArmClient client = new ArmClient(new DefaultAzureCredential());\n```\n\n## Resource Hierarchy\n\n```\nSubscription\n└── ResourceGroup\n    └── PostgreSqlFlexibleServer              # PostgreSQL Flexible Server instance\n        ├── PostgreSqlFlexibleServerDatabase  # Database within the server\n        ├── PostgreSqlFlexibleServerFirewallRule # IP firewall rules\n        ├── PostgreSqlFlexibleServerConfiguration # Server parameters\n        ├── PostgreSqlFlexibleServerBackup    # Backup information\n        ├── PostgreSqlFlexibleServerActiveDirectoryAdministrator # Entra ID admin\n        └── PostgreSqlFlexibleServerVirtualEndpoint # Read replica endpoints\n```\n\n## Core Workflows\n\n### 1. Create PostgreSQL Flexible Server\n\n```csharp\nusing Azure.ResourceManager.PostgreSql.FlexibleServers;\nusing Azure.ResourceManager.PostgreSql.FlexibleServers.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nPostgreSqlFlexibleServerCollection servers = resourceGroup.GetPostgreSqlFlexibleServers();\n\nPostgreSqlFlexibleServerData data = new PostgreSqlFlexibleServerData(AzureLocation.EastUS)\n{\n    Sku = new PostgreSqlFlexibleServerSku(\"Standard_D2ds_v4\", PostgreSqlFlexibleServerSkuTier.GeneralPurpose),\n    AdministratorLogin = \"pgadmin\",\n    AdministratorLoginPassword = \"YourSecurePassword123!\",\n    Version = PostgreSqlFlexibleServerVersion.Ver16,\n    Storage = new PostgreSqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 128,\n        AutoGrow = StorageAutoGrow.Enabled,\n        Tier = PostgreSqlStorageTierName.P30\n    },\n    Backup = new PostgreSqlFlexibleServerBackupProperties\n    {\n        BackupRetentionDays = 7,\n        GeoRedundantBackup = PostgreSqlFlexibleServerGeoRedundantBackupEnum.Disabled\n    },\n    HighAvailability = new PostgreSqlFlexibleServerHighAvailability\n    {\n        Mode = PostgreSqlFlexibleServerHighAvailabilityMode.ZoneRedundant,\n        StandbyAvailabilityZone = \"2\"\n    },\n    AvailabilityZone = \"1\",\n    AuthConfig = new PostgreSqlFlexibleServerAuthConfig\n    {\n        ActiveDirectoryAuth = PostgreSqlFlexibleServerActiveDirectoryAuthEnum.Enabled,\n        PasswordAuth = PostgreSqlFlexibleServerPasswordAuthEnum.Enabled\n    }\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql-server\", data);\n\nPostgreSqlFlexibleServerResource server = operation.Value;\nConsole.WriteLine($\"Server created: {server.Data.FullyQualifiedDomainName}\");\n```\n\n### 2. Create Database\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\nPostgreSqlFlexibleServerDatabaseCollection databases = server.GetPostgreSqlFlexibleServerDatabases();\n\nPostgreSqlFlexibleServerDatabaseData dbData = new PostgreSqlFlexibleServerDatabaseData\n{\n    Charset = \"UTF8\",\n    Collation = \"en_US.utf8\"\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerDatabaseResource> operation = await databases\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"myappdb\", dbData);\n\nPostgreSqlFlexibleServerDatabaseResource database = operation.Value;\nConsole.WriteLine($\"Database created: {database.Data.Name}\");\n```\n\n### 3. Configure Firewall Rules\n\n```csharp\nPostgreSqlFlexibleServerFirewallRuleCollection firewallRules = server.GetPostgreSqlFlexibleServerFirewallRules();\n\n\u002F\u002F Allow specific IP range\nPostgreSqlFlexibleServerFirewallRuleData ruleData = new PostgreSqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"10.0.0.1\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"10.0.0.255\")\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerFirewallRuleResource> operation = await firewallRules\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"allow-internal\", ruleData);\n\n\u002F\u002F Allow Azure services\nPostgreSqlFlexibleServerFirewallRuleData azureServicesRule = new PostgreSqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\")\n};\n\nawait firewallRules.CreateOrUpdateAsync(WaitUntil.Completed, \"AllowAllAzureServicesAndResourcesWithinAzureIps\", azureServicesRule);\n```\n\n### 4. Update Server Configuration\n\n```csharp\nPostgreSqlFlexibleServerConfigurationCollection configurations = server.GetPostgreSqlFlexibleServerConfigurations();\n\n\u002F\u002F Get current configuration\nPostgreSqlFlexibleServerConfigurationResource config = await configurations\n    .GetAsync(\"max_connections\");\n\n\u002F\u002F Update configuration\nPostgreSqlFlexibleServerConfigurationData configData = new PostgreSqlFlexibleServerConfigurationData\n{\n    Value = \"500\",\n    Source = \"user-override\"\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerConfigurationResource> operation = await configurations\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"max_connections\", configData);\n\n\u002F\u002F Common PostgreSQL configurations to tune\nstring[] commonParams = { \n    \"max_connections\", \n    \"shared_buffers\", \n    \"work_mem\", \n    \"maintenance_work_mem\",\n    \"effective_cache_size\",\n    \"log_min_duration_statement\"\n};\n```\n\n### 5. Configure Entra ID Administrator\n\n```csharp\nPostgreSqlFlexibleServerActiveDirectoryAdministratorCollection admins = \n    server.GetPostgreSqlFlexibleServerActiveDirectoryAdministrators();\n\nPostgreSqlFlexibleServerActiveDirectoryAdministratorData adminData = \n    new PostgreSqlFlexibleServerActiveDirectoryAdministratorData\n{\n    PrincipalType = PostgreSqlFlexibleServerPrincipalType.User,\n    PrincipalName = \"aad-admin@contoso.com\",\n    TenantId = Guid.Parse(\"\u003Ctenant-id>\")\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerActiveDirectoryAdministratorResource> operation = await admins\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"\u003Centra-object-id>\", adminData);\n```\n\n### 6. List and Manage Servers\n\n```csharp\n\u002F\u002F List servers in resource group\nawait foreach (PostgreSqlFlexibleServerResource server in resourceGroup.GetPostgreSqlFlexibleServers())\n{\n    Console.WriteLine($\"Server: {server.Data.Name}\");\n    Console.WriteLine($\"  FQDN: {server.Data.FullyQualifiedDomainName}\");\n    Console.WriteLine($\"  Version: {server.Data.Version}\");\n    Console.WriteLine($\"  State: {server.Data.State}\");\n    Console.WriteLine($\"  SKU: {server.Data.Sku.Name} ({server.Data.Sku.Tier})\");\n    Console.WriteLine($\"  HA: {server.Data.HighAvailability?.Mode}\");\n}\n\n\u002F\u002F List databases in server\nawait foreach (PostgreSqlFlexibleServerDatabaseResource db in server.GetPostgreSqlFlexibleServerDatabases())\n{\n    Console.WriteLine($\"Database: {db.Data.Name}\");\n}\n```\n\n### 7. Backup and Point-in-Time Restore\n\n```csharp\n\u002F\u002F List available backups\nawait foreach (PostgreSqlFlexibleServerBackupResource backup in server.GetPostgreSqlFlexibleServerBackups())\n{\n    Console.WriteLine($\"Backup: {backup.Data.Name}\");\n    Console.WriteLine($\"  Type: {backup.Data.BackupType}\");\n    Console.WriteLine($\"  Completed: {backup.Data.CompletedOn}\");\n}\n\n\u002F\u002F Point-in-time restore\nPostgreSqlFlexibleServerData restoreData = new PostgreSqlFlexibleServerData(AzureLocation.EastUS)\n{\n    CreateMode = PostgreSqlFlexibleServerCreateMode.PointInTimeRestore,\n    SourceServerResourceId = server.Id,\n    PointInTimeUtc = DateTimeOffset.UtcNow.AddHours(-2)\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql-restored\", restoreData);\n```\n\n### 8. Create Read Replica\n\n```csharp\nPostgreSqlFlexibleServerData replicaData = new PostgreSqlFlexibleServerData(AzureLocation.WestUS)\n{\n    CreateMode = PostgreSqlFlexibleServerCreateMode.Replica,\n    SourceServerResourceId = server.Id,\n    Sku = new PostgreSqlFlexibleServerSku(\"Standard_D2ds_v4\", PostgreSqlFlexibleServerSkuTier.GeneralPurpose)\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql-replica\", replicaData);\n```\n\n### 9. Stop and Start Server\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\n\u002F\u002F Stop server (saves costs when not in use)\nawait server.StopAsync(WaitUntil.Completed);\n\n\u002F\u002F Start server\nawait server.StartAsync(WaitUntil.Completed);\n\n\u002F\u002F Restart server\nawait server.RestartAsync(WaitUntil.Completed, new PostgreSqlFlexibleServerRestartParameter\n{\n    RestartWithFailover = true,\n    FailoverMode = PostgreSqlFlexibleServerFailoverMode.PlannedFailover\n});\n```\n\n### 10. Update Server (Scale)\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\nPostgreSqlFlexibleServerPatch patch = new PostgreSqlFlexibleServerPatch\n{\n    Sku = new PostgreSqlFlexibleServerSku(\"Standard_D4ds_v4\", PostgreSqlFlexibleServerSkuTier.GeneralPurpose),\n    Storage = new PostgreSqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 256,\n        Tier = PostgreSqlStorageTierName.P40\n    }\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await server\n    .UpdateAsync(WaitUntil.Completed, patch);\n```\n\n### 11. Delete Server\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\nawait server.DeleteAsync(WaitUntil.Completed);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `PostgreSqlFlexibleServerResource` | Flexible Server instance |\n| `PostgreSqlFlexibleServerData` | Server configuration data |\n| `PostgreSqlFlexibleServerCollection` | Collection of servers |\n| `PostgreSqlFlexibleServerDatabaseResource` | Database within server |\n| `PostgreSqlFlexibleServerFirewallRuleResource` | IP firewall rule |\n| `PostgreSqlFlexibleServerConfigurationResource` | Server parameter |\n| `PostgreSqlFlexibleServerBackupResource` | Backup metadata |\n| `PostgreSqlFlexibleServerActiveDirectoryAdministratorResource` | Entra ID admin |\n| `PostgreSqlFlexibleServerSku` | SKU (compute tier + size) |\n| `PostgreSqlFlexibleServerStorage` | Storage configuration |\n| `PostgreSqlFlexibleServerHighAvailability` | HA configuration |\n| `PostgreSqlFlexibleServerBackupProperties` | Backup settings |\n| `PostgreSqlFlexibleServerAuthConfig` | Authentication settings |\n\n## SKU Tiers\n\n| Tier | Use Case | SKU Examples |\n|------|----------|--------------|\n| `Burstable` | Dev\u002Ftest, light workloads | Standard_B1ms, Standard_B2s |\n| `GeneralPurpose` | Production workloads | Standard_D2ds_v4, Standard_D4ds_v4 |\n| `MemoryOptimized` | High memory requirements | Standard_E2ds_v4, Standard_E4ds_v4 |\n\n## PostgreSQL Versions\n\n| Version | Enum Value |\n|---------|------------|\n| PostgreSQL 11 | `Ver11` |\n| PostgreSQL 12 | `Ver12` |\n| PostgreSQL 13 | `Ver13` |\n| PostgreSQL 14 | `Ver14` |\n| PostgreSQL 15 | `Ver15` |\n| PostgreSQL 16 | `Ver16` |\n\n## High Availability Modes\n\n| Mode | Description |\n|------|-------------|\n| `Disabled` | No HA (single server) |\n| `SameZone` | HA within same availability zone |\n| `ZoneRedundant` | HA across availability zones |\n\n## Best Practices\n\n1. **Use Flexible Server** — Single Server is deprecated\n2. **Enable zone-redundant HA** — For production workloads\n3. **Use DefaultAzureCredential** — Prefer over connection strings\n4. **Configure Entra ID authentication** — More secure than SQL auth alone\n5. **Enable both auth methods** — Entra ID + password for flexibility\n6. **Set appropriate backup retention** — 7-35 days based on compliance\n7. **Use private endpoints** — For secure network access\n8. **Tune server parameters** — Based on workload characteristics\n9. **Use read replicas** — For read-heavy workloads\n10. **Stop dev\u002Ftest servers** — Save costs when not in use\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    ArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql\", data);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Server already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## Connection String\n\nAfter creating the server, connect using:\n\n```csharp\n\u002F\u002F Npgsql connection string\nstring connectionString = $\"Host={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    \"Username=pgadmin;\" +\n    \"Password=YourSecurePassword123!;\" +\n    \"SSL Mode=Require;Trust Server Certificate=true;\";\n\n\u002F\u002F With Entra ID token (recommended)\nvar credential = new DefaultAzureCredential();\nvar token = await credential.GetTokenAsync(\n    new TokenRequestContext(new[] { \"https:\u002F\u002Fossrdbms-aad.database.windows.net\u002F.default\" }));\n\nstring connectionString = $\"Host={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    $\"Username=aad-admin@contoso.com;\" +\n    $\"Password={token.Token};\" +\n    \"SSL Mode=Require;\";\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.PostgreSql` | PostgreSQL management (this SDK) | `dotnet add package Azure.ResourceManager.PostgreSql` |\n| `Azure.ResourceManager.MySql` | MySQL management | `dotnet add package Azure.ResourceManager.MySql` |\n| `Npgsql` | PostgreSQL data access | `dotnet add package Npgsql` |\n| `Npgsql.EntityFrameworkCore.PostgreSQL` | EF Core provider | `dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.PostgreSql |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.postgresql |\n| Product Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fpostgresql\u002Fflexible-server\u002F |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fpostgresql\u002FAzure.ResourceManager.PostgreSql |\n","# Azure.ResourceManager.PostgreSql (.NET)\n\nAzure Resource Manager SDK for managing PostgreSQL Flexible Server deployments.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.PostgreSql\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.2.0 (GA)  \n**API Version**: 2023-12-01-preview\n\n> **Note**: This skill focuses on PostgreSQL Flexible Server. Single Server is deprecated and scheduled for retirement.\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group>\nAZURE_POSTGRESQL_SERVER_NAME=\u003Cyour-postgresql-server>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.PostgreSql;\nusing Azure.ResourceManager.PostgreSql.FlexibleServers;\n\nArmClient client = new ArmClient(new DefaultAzureCredential());\n```\n\n## Resource Hierarchy\n\n```\nSubscription\n└── ResourceGroup\n    └── PostgreSqlFlexibleServer              # PostgreSQL Flexible Server instance\n        ├── PostgreSqlFlexibleServerDatabase  # Database within the server\n        ├── PostgreSqlFlexibleServerFirewallRule # IP firewall rules\n        ├── PostgreSqlFlexibleServerConfiguration # Server parameters\n        ├── PostgreSqlFlexibleServerBackup    # Backup information\n        ├── PostgreSqlFlexibleServerActiveDirectoryAdministrator # Entra ID admin\n        └── PostgreSqlFlexibleServerVirtualEndpoint # Read replica endpoints\n```\n\n## Core Workflows\n\n### 1. Create PostgreSQL Flexible Server\n\n```csharp\nusing Azure.ResourceManager.PostgreSql.FlexibleServers;\nusing Azure.ResourceManager.PostgreSql.FlexibleServers.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nPostgreSqlFlexibleServerCollection servers = resourceGroup.GetPostgreSqlFlexibleServers();\n\nPostgreSqlFlexibleServerData data = new PostgreSqlFlexibleServerData(AzureLocation.EastUS)\n{\n    Sku = new PostgreSqlFlexibleServerSku(\"Standard_D2ds_v4\", PostgreSqlFlexibleServerSkuTier.GeneralPurpose),\n    AdministratorLogin = \"pgadmin\",\n    AdministratorLoginPassword = \"YourSecurePassword123!\",\n    Version = PostgreSqlFlexibleServerVersion.Ver16,\n    Storage = new PostgreSqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 128,\n        AutoGrow = StorageAutoGrow.Enabled,\n        Tier = PostgreSqlStorageTierName.P30\n    },\n    Backup = new PostgreSqlFlexibleServerBackupProperties\n    {\n        BackupRetentionDays = 7,\n        GeoRedundantBackup = PostgreSqlFlexibleServerGeoRedundantBackupEnum.Disabled\n    },\n    HighAvailability = new PostgreSqlFlexibleServerHighAvailability\n    {\n        Mode = PostgreSqlFlexibleServerHighAvailabilityMode.ZoneRedundant,\n        StandbyAvailabilityZone = \"2\"\n    },\n    AvailabilityZone = \"1\",\n    AuthConfig = new PostgreSqlFlexibleServerAuthConfig\n    {\n        ActiveDirectoryAuth = PostgreSqlFlexibleServerActiveDirectoryAuthEnum.Enabled,\n        PasswordAuth = PostgreSqlFlexibleServerPasswordAuthEnum.Enabled\n    }\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql-server\", data);\n\nPostgreSqlFlexibleServerResource server = operation.Value;\nConsole.WriteLine($\"Server created: {server.Data.FullyQualifiedDomainName}\");\n```\n\n### 2. Create Database\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\nPostgreSqlFlexibleServerDatabaseCollection databases = server.GetPostgreSqlFlexibleServerDatabases();\n\nPostgreSqlFlexibleServerDatabaseData dbData = new PostgreSqlFlexibleServerDatabaseData\n{\n    Charset = \"UTF8\",\n    Collation = \"en_US.utf8\"\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerDatabaseResource> operation = await databases\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"myappdb\", dbData);\n\nPostgreSqlFlexibleServerDatabaseResource database = operation.Value;\nConsole.WriteLine($\"Database created: {database.Data.Name}\");\n```\n\n### 3. Configure Firewall Rules\n\n```csharp\nPostgreSqlFlexibleServerFirewallRuleCollection firewallRules = server.GetPostgreSqlFlexibleServerFirewallRules();\n\n\u002F\u002F Allow specific IP range\nPostgreSqlFlexibleServerFirewallRuleData ruleData = new PostgreSqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"10.0.0.1\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"10.0.0.255\")\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerFirewallRuleResource> operation = await firewallRules\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"allow-internal\", ruleData);\n\n\u002F\u002F Allow Azure services\nPostgreSqlFlexibleServerFirewallRuleData azureServicesRule = new PostgreSqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\")\n};\n\nawait firewallRules.CreateOrUpdateAsync(WaitUntil.Completed, \"AllowAllAzureServicesAndResourcesWithinAzureIps\", azureServicesRule);\n```\n\n### 4. Update Server Configuration\n\n```csharp\nPostgreSqlFlexibleServerConfigurationCollection configurations = server.GetPostgreSqlFlexibleServerConfigurations();\n\n\u002F\u002F Get current configuration\nPostgreSqlFlexibleServerConfigurationResource config = await configurations\n    .GetAsync(\"max_connections\");\n\n\u002F\u002F Update configuration\nPostgreSqlFlexibleServerConfigurationData configData = new PostgreSqlFlexibleServerConfigurationData\n{\n    Value = \"500\",\n    Source = \"user-override\"\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerConfigurationResource> operation = await configurations\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"max_connections\", configData);\n\n\u002F\u002F Common PostgreSQL configurations to tune\nstring[] commonParams = { \n    \"max_connections\", \n    \"shared_buffers\", \n    \"work_mem\", \n    \"maintenance_work_mem\",\n    \"effective_cache_size\",\n    \"log_min_duration_statement\"\n};\n```\n\n### 5. Configure Entra ID Administrator\n\n```csharp\nPostgreSqlFlexibleServerActiveDirectoryAdministratorCollection admins = \n    server.GetPostgreSqlFlexibleServerActiveDirectoryAdministrators();\n\nPostgreSqlFlexibleServerActiveDirectoryAdministratorData adminData = \n    new PostgreSqlFlexibleServerActiveDirectoryAdministratorData\n{\n    PrincipalType = PostgreSqlFlexibleServerPrincipalType.User,\n    PrincipalName = \"aad-admin@contoso.com\",\n    TenantId = Guid.Parse(\"\u003Ctenant-id>\")\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerActiveDirectoryAdministratorResource> operation = await admins\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"\u003Centra-object-id>\", adminData);\n```\n\n### 6. List and Manage Servers\n\n```csharp\n\u002F\u002F List servers in resource group\nawait foreach (PostgreSqlFlexibleServerResource server in resourceGroup.GetPostgreSqlFlexibleServers())\n{\n    Console.WriteLine($\"Server: {server.Data.Name}\");\n    Console.WriteLine($\"  FQDN: {server.Data.FullyQualifiedDomainName}\");\n    Console.WriteLine($\"  Version: {server.Data.Version}\");\n    Console.WriteLine($\"  State: {server.Data.State}\");\n    Console.WriteLine($\"  SKU: {server.Data.Sku.Name} ({server.Data.Sku.Tier})\");\n    Console.WriteLine($\"  HA: {server.Data.HighAvailability?.Mode}\");\n}\n\n\u002F\u002F List databases in server\nawait foreach (PostgreSqlFlexibleServerDatabaseResource db in server.GetPostgreSqlFlexibleServerDatabases())\n{\n    Console.WriteLine($\"Database: {db.Data.Name}\");\n}\n```\n\n### 7. Backup and Point-in-Time Restore\n\n```csharp\n\u002F\u002F List available backups\nawait foreach (PostgreSqlFlexibleServerBackupResource backup in server.GetPostgreSqlFlexibleServerBackups())\n{\n    Console.WriteLine($\"Backup: {backup.Data.Name}\");\n    Console.WriteLine($\"  Type: {backup.Data.BackupType}\");\n    Console.WriteLine($\"  Completed: {backup.Data.CompletedOn}\");\n}\n\n\u002F\u002F Point-in-time restore\nPostgreSqlFlexibleServerData restoreData = new PostgreSqlFlexibleServerData(AzureLocation.EastUS)\n{\n    CreateMode = PostgreSqlFlexibleServerCreateMode.PointInTimeRestore,\n    SourceServerResourceId = server.Id,\n    PointInTimeUtc = DateTimeOffset.UtcNow.AddHours(-2)\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql-restored\", restoreData);\n```\n\n### 8. Create Read Replica\n\n```csharp\nPostgreSqlFlexibleServerData replicaData = new PostgreSqlFlexibleServerData(AzureLocation.WestUS)\n{\n    CreateMode = PostgreSqlFlexibleServerCreateMode.Replica,\n    SourceServerResourceId = server.Id,\n    Sku = new PostgreSqlFlexibleServerSku(\"Standard_D2ds_v4\", PostgreSqlFlexibleServerSkuTier.GeneralPurpose)\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql-replica\", replicaData);\n```\n\n### 9. Stop and Start Server\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\n\u002F\u002F Stop server (saves costs when not in use)\nawait server.StopAsync(WaitUntil.Completed);\n\n\u002F\u002F Start server\nawait server.StartAsync(WaitUntil.Completed);\n\n\u002F\u002F Restart server\nawait server.RestartAsync(WaitUntil.Completed, new PostgreSqlFlexibleServerRestartParameter\n{\n    RestartWithFailover = true,\n    FailoverMode = PostgreSqlFlexibleServerFailoverMode.PlannedFailover\n});\n```\n\n### 10. Update Server (Scale)\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\nPostgreSqlFlexibleServerPatch patch = new PostgreSqlFlexibleServerPatch\n{\n    Sku = new PostgreSqlFlexibleServerSku(\"Standard_D4ds_v4\", PostgreSqlFlexibleServerSkuTier.GeneralPurpose),\n    Storage = new PostgreSqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 256,\n        Tier = PostgreSqlStorageTierName.P40\n    }\n};\n\nArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await server\n    .UpdateAsync(WaitUntil.Completed, patch);\n```\n\n### 11. Delete Server\n\n```csharp\nPostgreSqlFlexibleServerResource server = await resourceGroup\n    .GetPostgreSqlFlexibleServerAsync(\"my-postgresql-server\");\n\nawait server.DeleteAsync(WaitUntil.Completed);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `PostgreSqlFlexibleServerResource` | Flexible Server instance |\n| `PostgreSqlFlexibleServerData` | Server configuration data |\n| `PostgreSqlFlexibleServerCollection` | Collection of servers |\n| `PostgreSqlFlexibleServerDatabaseResource` | Database within server |\n| `PostgreSqlFlexibleServerFirewallRuleResource` | IP firewall rule |\n| `PostgreSqlFlexibleServerConfigurationResource` | Server parameter |\n| `PostgreSqlFlexibleServerBackupResource` | Backup metadata |\n| `PostgreSqlFlexibleServerActiveDirectoryAdministratorResource` | Entra ID admin |\n| `PostgreSqlFlexibleServerSku` | SKU (compute tier + size) |\n| `PostgreSqlFlexibleServerStorage` | Storage configuration |\n| `PostgreSqlFlexibleServerHighAvailability` | HA configuration |\n| `PostgreSqlFlexibleServerBackupProperties` | Backup settings |\n| `PostgreSqlFlexibleServerAuthConfig` | Authentication settings |\n\n## SKU Tiers\n\n| Tier | Use Case | SKU Examples |\n|------|----------|--------------|\n| `Burstable` | Dev\u002Ftest, light workloads | Standard_B1ms, Standard_B2s |\n| `GeneralPurpose` | Production workloads | Standard_D2ds_v4, Standard_D4ds_v4 |\n| `MemoryOptimized` | High memory requirements | Standard_E2ds_v4, Standard_E4ds_v4 |\n\n## PostgreSQL Versions\n\n| Version | Enum Value |\n|---------|------------|\n| PostgreSQL 11 | `Ver11` |\n| PostgreSQL 12 | `Ver12` |\n| PostgreSQL 13 | `Ver13` |\n| PostgreSQL 14 | `Ver14` |\n| PostgreSQL 15 | `Ver15` |\n| PostgreSQL 16 | `Ver16` |\n\n## High Availability Modes\n\n| Mode | Description |\n|------|-------------|\n| `Disabled` | No HA (single server) |\n| `SameZone` | HA within same availability zone |\n| `ZoneRedundant` | HA across availability zones |\n\n## Best Practices\n\n1. **Use Flexible Server** — Single Server is deprecated\n2. **Enable zone-redundant HA** — For production workloads\n3. **Use DefaultAzureCredential** — Prefer over connection strings\n4. **Configure Entra ID authentication** — More secure than SQL auth alone\n5. **Enable both auth methods** — Entra ID + password for flexibility\n6. **Set appropriate backup retention** — 7-35 days based on compliance\n7. **Use private endpoints** — For secure network access\n8. **Tune server parameters** — Based on workload characteristics\n9. **Use read replicas** — For read-heavy workloads\n10. **Stop dev\u002Ftest servers** — Save costs when not in use\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    ArmOperation\u003CPostgreSqlFlexibleServerResource> operation = await servers\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-postgresql\", data);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Server already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## Connection String\n\nAfter creating the server, connect using:\n\n```csharp\n\u002F\u002F Npgsql connection string\nstring connectionString = $\"Host={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    \"Username=pgadmin;\" +\n    \"Password=YourSecurePassword123!;\" +\n    \"SSL Mode=Require;Trust Server Certificate=true;\";\n\n\u002F\u002F With Entra ID token (recommended)\nvar credential = new DefaultAzureCredential();\nvar token = await credential.GetTokenAsync(\n    new TokenRequestContext(new[] { \"https:\u002F\u002Fossrdbms-aad.database.windows.net\u002F.default\" }));\n\nstring connectionString = $\"Host={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    $\"Username=aad-admin@contoso.com;\" +\n    $\"Password={token.Token};\" +\n    \"SSL Mode=Require;\";\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.PostgreSql` | PostgreSQL management (this SDK) | `dotnet add package Azure.ResourceManager.PostgreSql` |\n| `Azure.ResourceManager.MySql` | MySQL management | `dotnet add package Azure.ResourceManager.MySql` |\n| `Npgsql` | PostgreSQL data access | `dotnet add package Npgsql` |\n| `Npgsql.EntityFrameworkCore.PostgreSQL` | EF Core provider | `dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.PostgreSql |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.postgresql |\n| Product Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fpostgresql\u002Fflexible-server\u002F |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fpostgresql\u002FAzure.ResourceManager.PostgreSql |\n",{"name":5,"license":15,"metadata":49,"description":53},{"author":50,"package":51,"version":52},"Microsoft","Azure.ResourceManager.PostgreSql","1.0.0","Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: \"PostgreSQL\", \"PostgreSqlFlexibleServer\", \"PostgreSQL Flexible Server\", \"Azure Database for PostgreSQL\", \"PostgreSQL database management\", \"PostgreSQL firewall\", \"PostgreSQL backup\", \"Postgres\".\n","main","c173cdffe08e788a99b91928a831b476b8434838","ecosystem\u002Fskills\u002Fazure_resource_manager_postgresql_dotnet",0,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw","https:\u002F\u002Fportfolio-longleo.vercel.app\u002Flabs\u002Fomniclaw.html","https:\u002F\u002Fgithub.com\u002FLongLeo287","https:\u002F\u002Fwww.facebook.com\u002FResourceRookie2023","2026-09-30 00:58:05",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add LongLeo287\u002FOmniClaw --skill azure_resource_manager_postgresql_dotnet",{"tool":69,"command":70},"bunx","bunx skills add LongLeo287\u002FOmniClaw --skill azure_resource_manager_postgresql_dotnet",{"tool":72,"command":73},"pnpm","pnpm dlx skills add LongLeo287\u002FOmniClaw --skill azure_resource_manager_postgresql_dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_resource_manager_postgresql_dotnet\u002FSKILL.md",true,[77,83,87,91],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"_DIR_IDENTITY.md","REFERENCE","参考文档",202,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_resource_manager_postgresql_dotnet\u002F_DIR_IDENTITY.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"README.md",515,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_resource_manager_postgresql_dotnet\u002FREADME.md",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Facceptance_criteria.md",14124,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_resource_manager_postgresql_dotnet\u002Freferences\u002Facceptance_criteria.md",{"path":92,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":93,"sourceHtmlUrl":94},"schema.json",522,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_resource_manager_postgresql_dotnet\u002Fschema.json",[96,137,158,185,200,227],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":116,"publishedAt":44},"01M6JR0KQP4MHT32TN40D9CBFX","UI-UX Pro Max","Advanced UI\u002FUX analysis and generation skills with data-driven patterns. Python scripts (core.py, search.py) for systematic UI pattern extraction, design system generation, and component search from curated data sources.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fui_components\u002Fui_ux_pro_max\u002FSKILL.md",[102,105,108,113],{"categoryNo":103,"categoryName":104,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",{"categoryNo":114,"categoryName":115,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000033","数据分析师",[117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],"ux","ui","ui ux pro max","max","pro","ui ux","design","component","search","analysis","team","rd","ui-ux","active","systematic","scripts","pattern extraction","sources","advanced","data-driven",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":44},"01M6JR0EF5AEQHP2FSTB57H05P","shadcn-ui","Expert guidance for integrating and building applications with shadcn\u002Fui components, including component discovery, installation, customization, and best practices.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fui_components\u002Fshadcn_ui\u002FSKILL.md",[143],{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},[145,118,146,147,124,148,149,150,151,127,152,153,154,130,155,156,157,30],"shadcn","shadcn ui","components","core","best practices","applications","discovery","customization","guidance","expert","installation","ui components","with",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":167,"publishedAt":44},"01M6JR08F51BEN17RHFYX65WVE","zustand_store_ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fzustand_store_ts\u002FSKILL.md",[164],{"categoryNo":165,"categoryName":166,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[168,169,170,171,172,173,174,175,176,177,178,179,38,180,181,182,157,183,184],"zustand store ts","zustand","store","typescript","microsoft","react","create","state management","state","react state management","management","global","patterns","separation","middleware","action","implementing",{"skillNo":186,"name":169,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":44},"01M6JR00TDMVAFFCZXZ04AN7Q7","Zustand state management guide. Use when working with store code (src\u002Fstore\u002F**), implementing actions, managing state, or creating slices. Triggers on Zustand store development, state management questions, or action implementation.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fzustand\u002FSKILL.md",[],[169,191,175,192,176,193,194,178,195,38,196,197,33,170,157,198,199,183,184],"development","code","actions","src","guide","implementation","zustand state","questions","zustand state management",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":210,"publishedAt":44},"01M6JQZSWV4KWJP112G6XHEP44","youtube_summarizer","Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and provides metadata, key insights, and downloadable transcripts.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fyoutube_summarizer\u002FSKILL.md",[206,209],{"categoryNo":207,"categoryName":208,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},[211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226],"youtube","youtube summarizer","summarizer","generate","metadata","messaging","Video","fetch","telegram","transcription","summarization","structured","full","insights","transcripts","summaries",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":231,"categories":232,"keywords":233,"publishedAt":44},"01M6JQZN3QJB6B77JGKJD62DQT","youtube_clipper","YouTube 视频智能剪辑工具。下载视频和字幕，AI 分析生成精细章节（几分钟级别）， 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频，并生成总结文案。 使用场景：当用户需要剪辑 YouTube 视频、生成短视频片段、制作双语字幕版本时。 关键词：视频剪辑、YouTube、字幕翻译、双语字幕、视频下载、clip video","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fyoutube_clipper\u002FSKILL.md",[],[211,234,235,217,236,237,238,239,240,241,242,243,244,245,246,247,248],"clipper","youtube clipper","Bash","下载","视频","生成","关键词","翻译","read","write","clip","总结","工具","文案","sonnet"]