{"id":16318512,"url":"https://github.com/panoukos41/couchdb-openiddict","last_synced_at":"2025-10-04T22:03:26.366Z","repository":{"id":49577279,"uuid":"341270135","full_name":"panoukos41/couchdb-openiddict","owner":"panoukos41","description":"CouchDB Storage Provider for Openiddict","archived":false,"fork":false,"pushed_at":"2021-06-13T20:27:53.000Z","size":136,"stargazers_count":5,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T03:10:20.096Z","etag":null,"topics":["aspnetcore","couchdb","csharp","dotnet","openiddict"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/panoukos41.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-22T16:49:45.000Z","updated_at":"2023-07-21T14:01:32.000Z","dependencies_parsed_at":"2022-09-11T03:34:18.565Z","dependency_job_id":null,"html_url":"https://github.com/panoukos41/couchdb-openiddict","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/panoukos41/couchdb-openiddict","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoukos41%2Fcouchdb-openiddict","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoukos41%2Fcouchdb-openiddict/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoukos41%2Fcouchdb-openiddict/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoukos41%2Fcouchdb-openiddict/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/panoukos41","download_url":"https://codeload.github.com/panoukos41/couchdb-openiddict/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panoukos41%2Fcouchdb-openiddict/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262035179,"owners_count":23248357,"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":["aspnetcore","couchdb","csharp","dotnet","openiddict"],"created_at":"2024-10-10T22:23:45.488Z","updated_at":"2025-10-04T22:03:26.312Z","avatar_url":"https://github.com/panoukos41.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# P41.OpenIddict.CouchDB\n\n[![Release](https://github.com/panoukos41/couchdb-openiddict/actions/workflows/release.yaml/badge.svg)](https://github.com/panoukos41/couchdb-openiddict/actions/workflows/release.yaml)\n[![NuGet](https://buildstats.info/nuget/P41.OpenIddict.CouchDB?includePreReleases=true)](https://www.nuget.org/packages/P41.OpenIddict.CouchDB)\n[![License](https://img.shields.io/github/license/panoukos41/couchdb-openiddict)](https://github.com/panoukos41/couchdb-openiddict/blob/main/LICENSE.md)\n\n[CouchDB](https://couchdb.apache.org/) store provider for the [Openiddict](https://github.com/openiddict/openiddict-core) using [CouchDB.NET](https://github.com/matteobortolazzo/couchdb-net).\n\nThe project was insipired from the existing [OpenIddict](https://github.com/openiddict/openiddict-core) MongoDB implementation.\n\n# Before Getting started\nThis project was made in a hurry and was live tested on a really simple application so some things might not work as expected. Feel free to open an issue and even a pull request.\n\nI will try my best to support the project and provide tests and samples whenever i find time.\n\nThanks for looking at this library 😄\n\n# Getting Started\n\nBy default a database named `openiddict` is used but you can change it using the options overload.\n\nYour [CouchDB](https://couchdb.apache.org/) database must implement the [ddoc.json](ddocs/ddoc.json) in the [ddocs](/ddocs) folder.\n\nAt your `Startup.cs` add your `ICouchClient` in DI and use the following code.\n```csharp\n// Configure OpenIddict stores and services.\nservices.AddOpenIddict()\n    // Register the OpenIddict core components and to use the CouchDb stores and models.\n    .AddCore(options =\u003e options.UseCouchDb())\n```\n\nOr you can provide your own instance of `ICouchClient` in the options.\n```csharp\n// Configure OpenIddict stores and services.\n// With custom client.\nservices.AddOpenIddict()\n    // Register the OpenIddict core components and to use the CouchDb stores and models.\n    .AddCore(options =\u003e options\n        .UseCouchDb(options =\u003e options\n            .UseClient(new CouchClient(\"http://localhost:5984\"))))\n```\n\nYou can also customize the `design document` and `views` used by the library. More information as to what a view returns and when can be found in the [ddocs](/ddocs) fodler.\n\n```csharp\nservices.AddIdentity\u003cCouchDbUser, CouchDbRole\u003e()\n        .AddCouchDbStores(options =\u003e options\n            .UseViewOptions(new CouchDbOpenIddictViewOptions\n            {\n                Document = \"openiddict\";\n                Application = \"application\";\n                ApplicationClientId = \"application.client_id\";\n                ApplicationRedirectUri = \"application.redirect_uris\";\n                ApplicationPostLogoutRedirectUri = \"application.post_logout_redirect_uris\";\n                Authorization = \"authorization\";\n                AuthorizationApplicationId = \"authorization.application_id\";\n                AuthorizationSubject = \"authorization.subject\";\n                AuthorizationPrune = \"authorization.prune\";\n                Scope = \"scope\";\n                ScopeName = \"scope.name\";\n                ScopeResources = \"scope.resources\";\n                Token = \"token\";\n                TokenApplicationId = \"token.application_id\";\n                TokenAuthorizationId = \"token.authorization_id\";\n                TokenReferenceId = \"token.reference_id\";\n                TokenSubject = \"token.subject\";\n                TokenPrune = \"token.prune\";\n            })));\n```\n\nServices are *registered as Singleton* since `ICouchClient` is/should be registered as such and no other dependency is needed.\n\n# LICENSE\nThe project is Licensed under the Apache-2.0 License see the [LICENSE](LICENSE.md) for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanoukos41%2Fcouchdb-openiddict","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpanoukos41%2Fcouchdb-openiddict","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanoukos41%2Fcouchdb-openiddict/lists"}