{"id":28891687,"url":"https://github.com/zitadel/client-ruby","last_synced_at":"2026-03-18T01:12:01.342Z","repository":{"id":290701257,"uuid":"955950108","full_name":"zitadel/client-ruby","owner":"zitadel","description":"Official Zitadel SDK for Ruby. Authenticate and access Zitadel's authentication and management APIs in Ruby.","archived":false,"fork":false,"pushed_at":"2026-03-10T04:15:13.000Z","size":2382,"stargazers_count":6,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"beta","last_synced_at":"2026-03-10T12:47:26.951Z","etag":null,"topics":["client-lib","client-library","iam","sdk","sdk-ruby","zitadel","zitadel-sdk"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/zitadel-client","language":"Ruby","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/zitadel.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":"SECURITY.md","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":"2025-03-27T13:10:02.000Z","updated_at":"2026-03-10T04:15:16.000Z","dependencies_parsed_at":"2025-05-19T08:32:42.015Z","dependency_job_id":"b50546a8-ccbd-4698-9708-35947101521d","html_url":"https://github.com/zitadel/client-ruby","commit_stats":null,"previous_names":["zitadel/client-ruby"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/zitadel/client-ruby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zitadel%2Fclient-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zitadel%2Fclient-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zitadel%2Fclient-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zitadel%2Fclient-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zitadel","download_url":"https://codeload.github.com/zitadel/client-ruby/tar.gz/refs/heads/beta","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zitadel%2Fclient-ruby/sbom","scorecard":{"id":1237755,"data":{"date":"2025-07-06T05:19:04Z","repo":{"name":"github.com/zitadel/client-ruby","commit":"cbd3399dcf56aaa6b47603c3d71e32810b6ea531"},"scorecard":{"version":"v5.1.1","commit":"cd152cb6742c5b8f2f3d2b5193b41d9c50905198"},"score":6.5,"checks":[{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#dependency-update-tool"}},{"name":"Code-Review","score":0,"reason":"Found 0/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#maintained"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/commitlint.yml:16","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/commitlint.yml:17","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/linting.yml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/scorecard.yml:16","Info: topLevel 'contents' permission set to 'read': .github/workflows/commitlint.yml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/depcheck.yml:7","Info: topLevel 'contents' permission set to 'read': .github/workflows/docker.yml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/integration.yml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/linting.yml:19","Warn: topLevel 'contents' permission set to 'write': .github/workflows/pipeline.yml:10","Info: topLevel 'actions' permission set to 'read': .github/workflows/pipeline.yml:11","Warn: topLevel 'checks' permission set to 'write': .github/workflows/pipeline.yml:12","Warn: no topLevel permission defined: .github/workflows/qodana.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release.yml:9","Warn: topLevel 'packages' permission set to 'write': .github/workflows/release.yml:10","Info: topLevel 'checks' permission set to 'read': .github/workflows/release.yml:12","Info: topLevel 'contents' permission set to 'read': .github/workflows/scorecard.yml:9","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/typecheck.yml:15"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/zitadel/client-ruby/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/zitadel/client-ruby/test.yml/main?enable=pin","Info:  16 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:  23 out of  25 third-party GitHubAction dependencies pinned","Info:   1 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#cii-best-practices"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.9.0 not signed: https://api.github.com/repos/zitadel/client-ruby/releases/230182352","Warn: release artifact v1.8.0 not signed: https://api.github.com/repos/zitadel/client-ruby/releases/223632331","Warn: release artifact v1.7.0 not signed: https://api.github.com/repos/zitadel/client-ruby/releases/220924464","Warn: release artifact v1.6.0 not signed: https://api.github.com/repos/zitadel/client-ruby/releases/220855526","Warn: release artifact v1.5.1 not signed: https://api.github.com/repos/zitadel/client-ruby/releases/220851977","Warn: release artifact v1.9.0 does not have provenance: https://api.github.com/repos/zitadel/client-ruby/releases/230182352","Warn: release artifact v1.8.0 does not have provenance: https://api.github.com/repos/zitadel/client-ruby/releases/223632331","Warn: release artifact v1.7.0 does not have provenance: https://api.github.com/repos/zitadel/client-ruby/releases/220924464","Warn: release artifact v1.6.0 does not have provenance: https://api.github.com/repos/zitadel/client-ruby/releases/220855526","Warn: release artifact v1.5.1 does not have provenance: https://api.github.com/repos/zitadel/client-ruby/releases/220851977"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool detected","details":["Info: SAST configuration detected: Qodana","Warn: 0 commits out of 10 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#sast"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#branch-protection"}},{"name":"Contributors","score":3,"reason":"project has 1 contributing companies or organizations -- score normalized to 3","details":["Info: found contributions from: semantic-release"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#contributors"}},{"name":"CI-Tests","score":10,"reason":"10 out of 10 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests"}}]},"last_synced_at":"2025-09-16T08:31:47.105Z","repository_id":290701257,"created_at":"2025-09-16T08:31:47.105Z","updated_at":"2025-09-16T08:31:47.105Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30639124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-18T00:09:27.587Z","status":"ssl_error","status_checked_at":"2026-03-18T00:09:26.123Z","response_time":56,"last_error":"SSL_read: 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":["client-lib","client-library","iam","sdk","sdk-ruby","zitadel","zitadel-sdk"],"created_at":"2025-06-21T01:05:19.813Z","updated_at":"2026-03-18T01:12:01.334Z","avatar_url":"https://github.com/zitadel.png","language":"Ruby","readme":"# Ruby SDK for Zitadel\n\nThis is the Zitadel Ruby SDK, designed to provide a convenient and idiomatic\nway to interact with the Zitadel APIs in Ruby. The SDK provides a seamless\nwrapping of the Zitadel API, making it easy to authenticate service users and\nperform API operations.\n\nThe SDK enables efficient integration with the Zitadel API, allowing you to\nmanage resources and execute actions. However, it's important to note that\nthis SDK is tailored for service users and is not intended for user\nauthentication scenarios. It does not support authentication mechanisms\nlike OAuth2, OIDC, or SAML for client applications, including web, mobile,\nor other environments. For these types of user authentication, you should\nuse other libraries that are designed for the specific platform and\nauthentication method.\n\n**Disclaimer**: This SDK is not suitable for implementing user authentication.\nIt does not handle authentication for client applications using OAuth2, OIDC,\nor SAML and should not be used for scenarios requiring such functionality.\nFor those use cases, consider using other solutions that are designed for\nuser authentication across various platforms like web, mobile, or other\nclient environments.\n\n\u003e [!IMPORTANT]\n\u003e Please be aware that this SDK is currently in an incubating stage. We are releasing it to the community to gather feedback and learn how it is being used. While you are welcome to use it, please note that the API and functionality may evolve based on community input. We encourage you to try it out and share your experiences, but advise caution when considering it for production environments as future updates may introduce changes.\n\n## Getting Started\n\n### Sign up for Zitadel\n\nTo use this SDK, you need a Zitadel account. Sign up at the official\nZitadel website and obtain the necessary credentials to access the API.\n\n### Minimum Requirements\n\nEnsure you have Ruby 3 or higher installed.\n\n## Using the SDK\n\n### Installation\n\nInstall the SDK by running one of the following commands:\n\n```\ngem install zitadel-client\n```\n\nIf you're using Bundler use,\n\n```\nbundle add zitadel-client\n```\n\n## Authentication Methods\n\nYour SDK offers three ways to authenticate with Zitadel. Each method has its\nown benefits—choose the one that fits your situation best.\n\n#### 1. Private Key JWT Authentication\n\n**What is it?**\nYou use a JSON Web Token (JWT) that you sign with a private key stored in a\nJSON file. This process creates a secure token.\n\n**When should you use it?**\n\n- **Best for production:** It offers strong security.\n- **Advanced control:** You can adjust token settings like expiration.\n\n**How do you use it?**\n\n1. Save your private key in a JSON file.\n2. Use the provided method to create an authenticator.\n\n**Example:**\n\n```ruby\nrequire 'zitadel-client'\nrequire 'securerandom'\n\nclient = Zitadel::Client::Zitadel.with_private_key(\"https://example.us1.zitadel.cloud\", \"path/to/jwt-key.json\")\n\nbegin\n  response = client.users.add_human_user(\n    Zitadel::Client::UserServiceAddHumanUserRequest.new(\n      username: SecureRandom.hex,\n      profile: Zitadel::Client::UserServiceSetHumanProfile.new(\n        given_name: 'John',\n        family_name: 'Doe'\n      ),\n      email: Zitadel::Client::UserServiceSetHumanEmail.new(\n        email: \"john.doe@example.com\"\n      )\n    )\n  )\n  puts \"User created: #{response}\"\nrescue StandardError =\u003e e\n  puts \"Error: #{e.message}\"\nend\n```\n\n#### 2. Client Credentials Grant\n\n**What is it?**\nThis method uses a client ID and client secret to get a secure access token,\nwhich is then used to authenticate.\n\n**When should you use it?**\n\n- **Simple and straightforward:** Good for server-to-server communication.\n- **Trusted environments:** Use it when both servers are owned or trusted.\n\n**How do you use it?**\n\n1. Provide your client ID and client secret.\n2. Use the provided method to create an authenticator.\n\n**Example:**\n\n```ruby\nrequire 'zitadel-client'\nrequire 'securerandom'\n\nclient = Zitadel::Client::Zitadel.with_client_credentials(\"https://example.us1.zitadel.cloud\", \"id\", \"secret\")\n\nbegin\n  response = client.users.add_human_user(\n    Zitadel::Client::UserServiceAddHumanUserRequest.new(\n      username: SecureRandom.hex,\n      profile: Zitadel::Client::UserServiceSetHumanProfile.new(\n        given_name: 'John',\n        family_name: 'Doe'\n      ),\n      email: Zitadel::Client::UserServiceSetHumanEmail.new(\n        email: \"john.doe@example.com\"\n      )\n    )\n  )\n  puts \"User created: #{response}\"\nrescue StandardError =\u003e e\n  puts \"Error: #{e.message}\"\nend\n```\n\n#### 3. Personal Access Tokens (PATs)\n\n**What is it?**\nA Personal Access Token (PAT) is a pre-generated token that you can use to\nauthenticate without exchanging credentials every time.\n\n**When should you use it?**\n\n- **Easy to use:** Great for development or testing scenarios.\n- **Quick setup:** No need for dynamic token generation.\n\n**How do you use it?**\n\n1. Obtain a valid personal access token from your account.\n2. Use the provided method to create an authenticator.\n\n**Example:**\n\n```ruby\nrequire 'zitadel-client'\nrequire 'securerandom'\n\nclient = Zitadel::Client::Zitadel.with_access_token(\"https://example.us1.zitadel.cloud\", \"token\")\n\nbegin\n  response = client.users.add_human_user(\n    Zitadel::Client::UserServiceAddHumanUserRequest.new(\n      username: SecureRandom.hex,\n      profile: Zitadel::Client::UserServiceSetHumanProfile.new(\n        given_name: 'John',\n        family_name: 'Doe'\n      ),\n      email: Zitadel::Client::UserServiceSetHumanEmail.new(\n        email: \"john.doe@example.com\"\n      )\n    )\n  )\n  puts \"User created: #{response}\"\nrescue StandardError =\u003e e\n  puts \"Error: #{e.message}\"\nend\n```\n\n---\n\nChoose the authentication method that best suits your needs based on your\nenvironment and security requirements. For more details, please refer to the\n[Zitadel documentation on authenticating service users](https://zitadel.com/docs/guides/integrate/service-users/authenticate-service-users).\n\n### Debugging\n\nThe SDK supports debug logging, which can be enabled for troubleshooting\nand debugging purposes. You can enable debug logging by setting `debugging`\nto `true` via the configuration block when initializing the `Zitadel` client:\n\n```ruby\nzitadel = Zitadel::Client::Zitadel.with_access_token(\n  'your-zitadel-base-url',\n  'your-valid-token'\n) do |config|\n  config.debugging = true\nend\n```\n\nWhen enabled, the SDK will log additional information, such as HTTP request\nand response details, which can be useful for identifying issues in the\nintegration or troubleshooting unexpected behavior.\n\n## Advanced Configuration\n\nThe SDK provides a `TransportOptions` object that allows you to customise\nthe underlying HTTP transport used for both OpenID discovery and API calls.\n\n### Disabling TLS Verification\n\nIn development or testing environments with self-signed certificates, you can\ndisable TLS verification entirely:\n\n```ruby\noptions = Zitadel::Client::TransportOptions.new(insecure: true)\n\nzitadel = Zitadel::Client::Zitadel.with_client_credentials(\n  'https://your-instance.zitadel.cloud',\n  'client-id',\n  'client-secret',\n  transport_options: options\n)\n```\n\n### Using a Custom CA Certificate\n\nIf your Zitadel instance uses a certificate signed by a private CA, you can\nprovide the path to the CA certificate in PEM format:\n\n```ruby\noptions = Zitadel::Client::TransportOptions.new(ca_cert_path: '/path/to/ca.pem')\n\nzitadel = Zitadel::Client::Zitadel.with_client_credentials(\n  'https://your-instance.zitadel.cloud',\n  'client-id',\n  'client-secret',\n  transport_options: options\n)\n```\n\n### Custom Default Headers\n\nYou can attach default headers to every outgoing request. This is useful for\ncustom routing or tracing headers:\n\n```ruby\noptions = Zitadel::Client::TransportOptions.new(\n  default_headers: { 'X-Custom-Header' =\u003e 'my-value' }\n)\n\nzitadel = Zitadel::Client::Zitadel.with_client_credentials(\n  'https://your-instance.zitadel.cloud',\n  'client-id',\n  'client-secret',\n  transport_options: options\n)\n```\n\n### Proxy Configuration\n\nIf your environment requires routing traffic through an HTTP proxy, you can\nspecify the proxy URL. To authenticate with the proxy, embed the credentials\ndirectly in the URL:\n\n```ruby\noptions = Zitadel::Client::TransportOptions.new(proxy_url: 'http://user:pass@proxy:8080')\n\nzitadel = Zitadel::Client::Zitadel.with_client_credentials(\n  'https://your-instance.zitadel.cloud',\n  'client-id',\n  'client-secret',\n  transport_options: options\n)\n```\n\n## Design and Dependencies\n\nThis SDK is designed to be lean and efficient, focusing on providing a\nstreamlined way to interact with the Zitadel API. It relies on the commonly used\nTyphoeus HTTP library for making requests, which ensures that\nthe SDK integrates well with other libraries and provides flexibility\nin terms of request handling and error management.\n\n## Versioning\n\nA key aspect of our strategy is that the SDK's major version is synchronized with the ZITADEL core project's major version to ensure compatibility. For a detailed explanation of this policy and our release schedule, please see our [Versioning Guide](VERSIONING.md).\n\n## Contributing\n\nThis repository is autogenerated. We do not accept direct contributions.\nInstead, please open an issue for any bugs or feature requests.\n\n## Reporting Issues\n\nIf you encounter any issues or have suggestions for improvements, please\nopen an issue in the [issue tracker](https://github.com/zitadel/client-ruby/issues).\nWhen reporting an issue, please provide the following information to help\nus address it more effectively:\n\n- A detailed description of the problem or feature request\n- Steps to reproduce the issue (if applicable)\n- Any relevant error messages or logs\n- Environment details (e.g., OS version, relevant configurations)\n\n## Support\n\nIf you need help setting up or configuring the SDK (or anything\nZitadel), please head over to the [Zitadel Community on Discord](https://zitadel.com/chat).\n\nThere are many helpful people in our Discord community who are ready to\nassist you.\n\nCloud and enterprise customers can additionally reach us privately via our\n[support communication channels](https://zitadel.com/docs/legal/service-description/support-services).\n\n## License\n\nThis SDK is distributed under the Apache 2.0 License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzitadel%2Fclient-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzitadel%2Fclient-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzitadel%2Fclient-ruby/lists"}