{"id":21008170,"url":"https://github.com/ediwang/moonglade.contentsecurity","last_synced_at":"2026-05-16T22:02:53.621Z","repository":{"id":198824112,"uuid":"695038630","full_name":"EdiWang/Moonglade.ContentSecurity","owner":"EdiWang","description":"Content security Azure Function for filtering harmful text","archived":false,"fork":false,"pushed_at":"2025-07-29T04:08:50.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-29T06:40:14.639Z","etag":null,"topics":["azure","azure-ai","azure-function"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EdiWang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-09-22T08:12:28.000Z","updated_at":"2025-07-29T04:08:54.000Z","dependencies_parsed_at":"2023-10-10T15:35:15.145Z","dependency_job_id":"89d50069-a662-4fdf-a0b1-d4526553eccf","html_url":"https://github.com/EdiWang/Moonglade.ContentSecurity","commit_stats":null,"previous_names":["ediwang/moonglade.contentsecurity"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EdiWang/Moonglade.ContentSecurity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdiWang%2FMoonglade.ContentSecurity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdiWang%2FMoonglade.ContentSecurity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdiWang%2FMoonglade.ContentSecurity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdiWang%2FMoonglade.ContentSecurity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EdiWang","download_url":"https://codeload.github.com/EdiWang/Moonglade.ContentSecurity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdiWang%2FMoonglade.ContentSecurity/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269931473,"owners_count":24498722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azure-ai","azure-function"],"created_at":"2024-11-19T09:11:44.584Z","updated_at":"2026-05-16T22:02:53.616Z","avatar_url":"https://github.com/EdiWang.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moonglade.ContentSecurity\n\nThe Azure Function used by my blog (https://edi.wang) for filtering harmful text in order to live in China.\n\nThis Function filter harmful text by [Azure AI Content Safety](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/?WT.mc_id=AZ-MVP-5002809)\n\n## Get Started\n\nTools | Alternative\n--- | ---\n[.NET 10.0 SDK](http://dot.net) | N/A\n[Visual Studio 2026](https://visualstudio.microsoft.com/) with Azure Development payload| [Visual Studio Code](https://code.visualstudio.com/)\n[Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/) | N/A\n[Azure CLI](https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest) | N/A\n\n## Deployment\n\n\u003e IMPORTANT: Please use [release](https://github.com/EdiWang/Moonglade.ContentSecurity/tree/release) branch for deployment!!!\n\nBuild and deploy the project to your Azure subscription.\n\nRecommendations:\n\n- Enable 64 bit worker process in Azure Function App settings.\n- Enable Always On in Azure Function App settings.\n- Enable Application Insights in Azure Function App settings.\n- Use App Service Plan hosting model for better performance.\n\n### Azure Moderation\n\nPre-requisite: create an [Azure AI Content Safety](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/?WT.mc_id=AZ-MVP-5002809) resource in Azure Portal, and get the endpoint and key.\n\nOnce deployed to Azure, set the following environment variables in Azure Portal (Configuration blade) or Azure CLI:\n\n- `Endpoint`: the endpoint of your [Azure AI Content Safety](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/?WT.mc_id=AZ-MVP-5002809) resource\n- `OcpApimSubscriptionKey`: the key of your [Azure AI Content Safety](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/?WT.mc_id=AZ-MVP-5002809) resource\n\n## Development and Debugging\n\nFor development, create ```local.settings.json``` under \"**./src/**\", this file defines development time settings. It is by default ignored by git, so you will need to manange it on your own.\n\nSample ```local.settings.json``` file\n\n```json\n{\n  \"IsEncrypted\": false,\n  \"Values\": {\n    \"AzureWebJobsStorage\": \"UseDevelopmentStorage=true\",\n    \"FUNCTIONS_WORKER_RUNTIME\": \"dotnet-isolated\",\n    \"Keywords\": \"example|harmful|words\",\n    \"Endpoint\": \"https://\u003cyour resource name\u003e.cognitiveservices.azure.com/\",\n    \"OcpApimSubscriptionKey\": \"\u003cyour key\u003e\"\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fediwang%2Fmoonglade.contentsecurity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fediwang%2Fmoonglade.contentsecurity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fediwang%2Fmoonglade.contentsecurity/lists"}