{"id":28470722,"url":"https://github.com/liteobject/auth0-management-client","last_synced_at":"2025-07-01T20:32:43.279Z","repository":{"id":297689463,"uuid":"997522199","full_name":"LiteObject/auth0-management-client","owner":"LiteObject","description":"A lightweight .NET 9 console client for managing Auth0 users via the Auth0 Management API. Supports listing, creating, and updating users with configurable rate limiting and retry logic.","archived":false,"fork":false,"pushed_at":"2025-06-06T20:58:50.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-06T21:33:05.252Z","etag":null,"topics":["auth0","auth0-management-api","csharp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiteObject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-06-06T17:11:20.000Z","updated_at":"2025-06-06T21:01:56.000Z","dependencies_parsed_at":"2025-06-06T21:33:12.191Z","dependency_job_id":"d25994a9-6a0a-4795-a9cb-3c33907198b8","html_url":"https://github.com/LiteObject/auth0-management-client","commit_stats":null,"previous_names":["liteobject/auth0-management-client"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LiteObject/auth0-management-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiteObject%2Fauth0-management-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiteObject%2Fauth0-management-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiteObject%2Fauth0-management-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiteObject%2Fauth0-management-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiteObject","download_url":"https://codeload.github.com/LiteObject/auth0-management-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiteObject%2Fauth0-management-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263033173,"owners_count":23403111,"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","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":["auth0","auth0-management-api","csharp"],"created_at":"2025-06-07T10:06:11.794Z","updated_at":"2025-07-01T20:32:43.257Z","avatar_url":"https://github.com/LiteObject.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Auth0 Management Client\n\nThis is a .NET console application for managing Auth0 users via the Auth0 Management API.\n\n## Features\n- List users\n- Create user\n- Update user\n\n## Prerequisites\n- .NET 9.0 SDK or later\n- Auth0 account and Management API credentials\n\n## Configuration\n\n1. Copy `appsettings.template.json` to `appsettings.json` in the `Auth0Management.App` directory.\n2. Fill in your Auth0 credentials in `appsettings.json`:\n\n```json\n{\n  \"Auth0\": {\n    \"Domain\": \"YOUR_AUTH0_DOMAIN\",\n    \"ClientId\": \"YOUR_AUTH0_CLIENT_ID\",\n    \"ClientSecret\": \"YOUR_AUTH0_CLIENT_SECRET\",\n    \"ConnectionName\": \"Username-Password-Authentication\",\n    \"RequestsPerSecond\": 10,\n    \"CircuitBreaker\": {\n      \"Threshold\": 5,\n      \"TimeoutMinutes\": 1\n    },\n    \"Retry\": {\n      \"MaxAttempts\": 3,\n      \"BaseDelayMs\": 500\n    }\n  }\n}\n```\n\n\u003e **Note:** The application will fail to start if any required Auth0 configuration is missing. The `appsettings.json` file is automatically copied to the output directory on build.\n\n## Build and Run\n\n```sh\ncd Auth0Management.App\n# Build\n dotnet build\n# Run\n dotnet run\n```\n\n## Options Validation\n- The application uses data annotation attributes (e.g., `[Required]`) on `Auth0Options`.\n- Validation is enforced at startup using `.AddOptions\u003cT\u003e().Bind(...).ValidateDataAnnotations()`.\n- If a required value is missing, a clear error message is shown and the app will not start.\n\n## Project Structure\n- `Auth0Options.cs`: Strongly-typed configuration options with validation attributes.\n- `Auth0Service.cs`: Encapsulates all Auth0 API logic, including rate limiting and user management.\n- `Program.cs`: Main entry point, DI setup, and menu logic.\n- `ProgramLog.cs`: Centralized logging delegates and helpers for performance.\n- `Resources.resx`: Localized strings for menu and prompts.\n- `appsettings.json`: Configuration file (copied to output directory on build).\n\n## Logging\n- Uses high-performance `LoggerMessage` delegates for all logging in `ProgramLog.cs`.\n- All log messages are centralized for maintainability and performance.\n\n## Localization\n- All menu and prompt strings are stored in `Resources.resx` and accessed via the generated `Resources` class.\n\n## Static Code Analysis\n- Static code analysis and code style enforcement are enabled on build.\n- All warnings are treated as errors unless otherwise configured in the `.csproj`.\n\n## Troubleshooting\n- If you see an error about missing `appsettings.json`, ensure the file exists in the project root and is set to copy to output (see `.csproj`).\n- If you see validation errors, check that all required Auth0 values are present in your configuration.\n\n---\n\nFor more details, see the [Microsoft Docs on Options pattern](https://learn.microsoft.com/en-us/dotnet/core/extensions/options).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliteobject%2Fauth0-management-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliteobject%2Fauth0-management-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliteobject%2Fauth0-management-client/lists"}