{"id":17482227,"url":"https://github.com/wavesoftware/puppet-passless","last_synced_at":"2026-03-13T14:31:35.356Z","repository":{"id":35336645,"uuid":"211137505","full_name":"wavesoftware/puppet-passless","owner":"wavesoftware","description":"It's a Puppet master password implementation that uses Puppet server's CA to automate password creation.","archived":false,"fork":false,"pushed_at":"2022-10-06T07:13:15.000Z","size":88,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2026-02-27T14:29:55.967Z","etag":null,"topics":["master-password","password-generator","password-manager","passwordless","puppet","puppet-server","secret-management"],"latest_commit_sha":null,"homepage":"","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/wavesoftware.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-26T16:46:16.000Z","updated_at":"2019-10-24T13:58:26.000Z","dependencies_parsed_at":"2023-01-15T18:38:45.759Z","dependency_job_id":null,"html_url":"https://github.com/wavesoftware/puppet-passless","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/wavesoftware/puppet-passless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesoftware%2Fpuppet-passless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesoftware%2Fpuppet-passless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesoftware%2Fpuppet-passless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesoftware%2Fpuppet-passless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wavesoftware","download_url":"https://codeload.github.com/wavesoftware/puppet-passless/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesoftware%2Fpuppet-passless/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30468276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T11:00:43.441Z","status":"ssl_error","status_checked_at":"2026-03-13T11:00:23.173Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["master-password","password-generator","password-manager","passwordless","puppet","puppet-server","secret-management"],"created_at":"2024-10-18T23:04:47.327Z","updated_at":"2026-03-13T14:31:35.330Z","avatar_url":"https://github.com/wavesoftware.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"Passless for Puppet\n===================\n\n[![Travis Build Status](https://travis-ci.com/wavesoftware/puppet-passless.svg?branch=master)](https://travis-ci.com/wavesoftware/puppet-passless)\n[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/spq8dce2slfybs0a/branch/master?svg=true)](https://ci.appveyor.com/project/cardil/puppet-passless/branch/master)\n![Puppet Forge version](https://img.shields.io/puppetforge/v/wavesoftware/passless)\n\n\nIt's a Puppet master password implementation that uses PuppetServer's CA to \nautomate password creation.\n\n#### Table of Contents\n\n1. [Description](#description)\n3. [Usage - Configuration options and additional functionality](#usage)\n5. [Development - Guide for contributing to the module](#development)\n\n## Description\n\nThis module contains a a function `passless::secret` (and an alias `passless`) \nthat will generate a password based on a name given. Each password will be \ngenerated using a master password algorithm. This algorithm will take a \nPuppet CA as a master password. Password generated will be unique to Puppet\nenvironment.\n\n```puppet\nclass { 'postgresql::server':\n  postgres_password =\u003e passless::secret('postgresql::server'),\n}\n```\n\n## Usage\n\nA `passless::secret` function takes a minimum of one argument. That argument is\nname of password to be generated. \n\nEach password generation can be influenced by providing a options. Options are\ngiven on hashmap. Those options are:\n\n * `counter` - A sequential password number. Changing the password should be \n   done by advancing this number. Default value is `1`.\n * `scope` - A definition of scope that the password will be generated from. It \n   may be one of (defaults to `alnum`): \n    * `num` for numeric passwords,\n    * `alpha` for alphabet based passwords, both big and small caps,\n    * `alnum` for alphanumeric passwords, both big and small caps,\n    * `human` for letters and numbers that are easy to distinguish by human,\n    * `keys` for passwords that can be typed by keyboard, so letters, and \n      numbers, and special characters,\n    * `utf8` these passwords contain utf-8 characters, so also a characters \n      that aren't easy to type by keyboard,\n    * `list:` followed by list of chars that might be used. Ex.: \n      `list:abcdef1234567890!$`,\n * `length` - A length of password to be generated in number of signs. Default \n   value is `16`.\n\n```puppet\n$options = {\n  'counter' =\u003e 5,\n  'scope'   =\u003e 'human',\n  'length'  =\u003e 24,\n}\nuser { 'root':\n  password =\u003e passless::secret(\"root@${::fqdn}\", $options),\n}\n```\n\n### Hiera\n\n**Hiera integration isn't done yet (https://github.com/wavesoftware/puppet-passless/issues/1)**\n\nAll options described above can also be set via Hiera. To do this define a key \nthat is created by adding a password name and suffix of `::counter`, `::scope`,\nor `::length`. Ex.:\n\n```yaml\nroot@puppet.example.org::counter: 13\nroot@puppet.example.org::scope: alnum\nroot@puppet.example.org::length: 32\n```\n\nYou can specify a `counter` both in Puppet code and in Hiera, counters will be \nsummed. Specifying `scope` or `length`, in both places isn't supported and will\nresult in compilation error.\n\n## Development\n\nDevelopment is described in separate document [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Release Notes\n\nSee [CHANGELOG.md](CHANGELOG.md) for project release notes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesoftware%2Fpuppet-passless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwavesoftware%2Fpuppet-passless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesoftware%2Fpuppet-passless/lists"}