{"id":47714771,"url":"https://github.com/https-richardy/httpsrichardy.federation","last_synced_at":"2026-04-02T18:50:51.290Z","repository":{"id":338455053,"uuid":"1157896542","full_name":"https-richardy/httpsrichardy.federation","owner":"https-richardy","description":"lightweight, easy-to-use authentication and identity management solution designed for modern applications. It focuses on simplicity, ease of consumption, and multi-tenancy support, making it a great fit for projects that require streamlined identity management without unnecessary complexity.","archived":false,"fork":false,"pushed_at":"2026-03-26T23:36:59.000Z","size":197,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-27T09:39:10.784Z","etag":null,"topics":["dotnet","federation","oauth","webapi"],"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/https-richardy.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-14T13:28:01.000Z","updated_at":"2026-03-26T23:36:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/https-richardy/httpsrichardy.federation","commit_stats":null,"previous_names":["https-richardy/httpsrichardy.federation.webapi"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/https-richardy/httpsrichardy.federation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/https-richardy%2Fhttpsrichardy.federation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/https-richardy%2Fhttpsrichardy.federation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/https-richardy%2Fhttpsrichardy.federation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/https-richardy%2Fhttpsrichardy.federation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/https-richardy","download_url":"https://codeload.github.com/https-richardy/httpsrichardy.federation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/https-richardy%2Fhttpsrichardy.federation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31313449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["dotnet","federation","oauth","webapi"],"created_at":"2026-04-02T18:50:50.816Z","updated_at":"2026-04-02T18:50:51.276Z","avatar_url":"https://github.com/https-richardy.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FEDERATION GATEWAY\n\nFederation Gateway is a platform built for teams that need a practical and lightweight **Identity Provider** focused on authentication, identity, and permissions.\n\nThe platform covers the essential identity lifecycle for modern applications, including tenant isolation, user management, access control, and integration through a simple .NET SDK. The goal is to centralize identity concerns without the overhead of large enterprise IAM platforms.\n\n## STRUCTURE\n\nThis repository is a **monorepo** that houses multiple independent applications and packages under a single version-controlled workspace. The monorepo approach is used for centralized visibility, shared tooling, and easier cross-context navigation, but it does not imply hard coupling between the contained systems.\n\nThe repository is organized into two top-level directories, each with a distinct purpose.\n\n```text\n.\n├── .github/                           # ci/cd workflows (pipelines)\n├── Applications/                      # executable applications\n│   ├── Backend/                       # main identity provider backend\n│   └── Proxy/                         # optional gateway/proxy layer\n└── Packages/                          # reusable sdk and contracts\n\t├── Federation.Sdk/\n\t└── Federation.Sdk.Contracts/\n```\n\n## THE ARCHITECTURE BEHIND FEDERATION GATEWAY\n\nFederation Gateway is built with clear boundaries between runtime services and reusable integration packages. The Backend is the core identity service, while SDK packages provide consumer-facing contracts and client utilities.\n\nThe platform is **multi-tenant by design**. Each tenant can have its own users, permissions, and identity boundaries, enabling isolated and predictable behavior across customers.\n\nThe focus is on practical identity needs in real-world projects: issue useful tokens, manage users and permissions, and keep the model simple instead of overloading integrations with unnecessary claims and complexity.\n\n## PROXY (OPTIONAL)\n\nThe Proxy is optional. If you need to handle cross-cutting concerns like quality of service controls and rate limiting, you can deploy it as an edge layer in front of the Backend. For simpler scenarios, you can run only the Backend and consume it directly without the Proxy.\n\n## PACKAGE INSTALLATION (EXAMPLES)\n\nInstall SDK packages in your .NET project:\n\n```bash\ndotnet add package HttpsRichardy.Federation.Sdk\ndotnet add package HttpsRichardy.Federation.Sdk.Contracts\n```\n\n## INTEGRATING WITH YOUR SERVICE\n\nAfter installing the SDK, you can register Federation directly in your service container. This keeps authentication setup centralized and allows each environment to provide its own authority, realm, and client credentials through configuration.\n\n```csharp\nservices.AddFederation(options =\u003e\n{\n    options.Authority = settings.Federation.Authority;       // e.g., https://api.hosted.com (without \"/\")\n    options.Realm = settings.Federation.Realm;               // e.g., \"acme-corp\"\n    options.ClientId = settings.Federation.ClientId;         // e.g., \"client-id-generated\"\n    options.ClientSecret = settings.Federation.ClientSecret; // e.g., \"secret-key-generated\"\n});\n```\n\n## DOCKER IMAGE\n\nFederation Gateway is also distributed as a docker image, so you can run the service quickly without building the source code locally. If you prefer a rolling setup, use the `latest` tag. If you need predictability across environments, use a fixed version tag.\n\nYou can pull either:\n\n```bash\ndocker pull httpsrichardy/federation:latest\ndocker pull httprichardy/federation:3.0.0\n```\n\nTo run the container, provide the required environment variables for database and administration bootstrap:\n\n```bash\ndocker run --name federation \\\n\t-p 8080:8080 \\\n\t-e Settings__Database__ConnectionString=\"mongodb://admin:admin@localhost2017/?authSource=admin\" \\\n\t-e Settings__Database__DatabaseName=\"federation\" \\\n\t-e Settings__Administration__Username=\"admin\" \\\n\t-e Settings__Administration__Password=\"admin\" \\\n\thttpsrichardy/federation:latest\n```\n\nIf needed, replace `httpsrichardy/federation:latest` with a fixed version tag for controlled deployments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhttps-richardy%2Fhttpsrichardy.federation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhttps-richardy%2Fhttpsrichardy.federation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhttps-richardy%2Fhttpsrichardy.federation/lists"}