digdeo-syspass-ansible-lookup


Namedigdeo-syspass-ansible-lookup JSON
Version 0.3.3 PyPI version JSON
download
home_pagehttps://git.digdeo.fr/digdeo-system/digdeo-syspass-ansible-lookup
SummaryDigDeo Syspass Ansible Lookup
upload_time2024-09-21 20:25:50
maintainerNone
docs_urlNone
authorDigDeo
requires_pythonNone
licenseGNU GENERAL PUBLIC LICENSE Version 3
keywords digdeo syspass ansible lookup
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![coverage report](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/badges/master/coverage.svg)](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/commits/master) [![pipeline status](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/badges/master/pipeline.svg)](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/commits/master)

# digdeo-ansible-syspass

**Module page**: https://pypi.org/project/digdeo-syspass-ansible-lookup/  
**Documentation**: https://www.readthedoc.io/digdeo-syspass-ansible-lookup  
**Bug Tracker**: https://gitdev.digdeo.fr/digdeo-projets-floss1/digdeo-syspass-ansible-lookup/issues  

## Introduction
**digdeo-ansible-syspass** is a [ansible](https://ansible.com) [lookup](https://docs.ansible.com/ansible/latest/plugins/lookup.html) plugin write in [python](https://www.python.org).

That program is a [ansible](https://ansible.com) plugin interface it use [digdeo-syspass-client](https://pypi.org/project/digdeo-syspass-client/) to dialog with the [syspass](https://www.syspass.org) API. 

It plugin is dedicated to lookup password's from a [syspass](https://www.syspass.org) server.

## Installation

### Normal installation
```shell script
python3 -m venv venv
. venv/bin/activate
pip install digdeo-syspass-ansible-lookup
```

### Force a Ansible version
```shell script
python3 -m venv venv
. venv/bin/activate
pip install wheel "ansible == 2.7.17"
pip install digdeo-syspass-ansible-lookup
```

### Force libxml

On Linux (and most other well-behaved operating systems), pip will manage to build the source distribution as long as ``libxml2`` and ``libxslt`` are properly installed, including development packages, i.e. header files, etc. 

See the requirements section above and use your system package management tool to look for packages like ``libxml2-dev`` or ``libxslt-devel``. If the build fails, make sure they are installed.

Alternatively, setting ``STATIC_DEPS=true`` will download and build both libraries automatically in their latest version, e.g. 

```shell script
STATIC_DEPS=true pip install lxml.
```


Note that module use [digdeo-syspass-client](https://pypi.org/project/digdeo-syspass-client/) python module 
Please pay attention about config.yml file in case you need more information's.


**DISCLAIMER:**<br>
This module has been heavily inspired by https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/lookup/password.py for password generation and term handling and thus is under GPL.

    lookup: syspass
    author: Gousseaud Gaëtan <gousseaud.gaetan.pro@gmail.com>, Pierre-Henry Muller <pierre-henry.muller@digdeo.fr>, Jérôme Ornech <jornech@digdeo.fr>
    short_description: get syspass user password and syspass API client
    description:
    - This lookup returns the contents from Syspass database, a user's password more specificly. Other functions are also implemented for further use.
    ansible_version: ansible 2.7.17 and more with mitogen
    python_version: 3.5 and more
    syspass_version: 3.0, 3.1
 
### Ansible usage:

#### Example 1
**Vars set inside common ansible sub-structure directory**

In case you use the group name `all`.

* Create a sub directory structure `./group_vars/all` and enter inside it directory
* copy paste you variable with right value inside a file name **syspass.yml**
```
syspass_auth_token: ##################################################
syspass_token_pass: ##################################################
syspass_verify_ssl: True
syspass_api_url: ##################################################
syspass_api_version: 3.1
syspass_debug: False
syspass_debug_level: 3
syspass_verbose: True
syspass_verbose_level: 3
```
* start you playbook with ``ansible-playbook playbook.yml``

#### Example 2 
**Vars set inside the playbook file**

In case you use the group name `all` the playbook can look like that:
```
--- # -*- mode: yaml; coding: utf-8 -*-

- hosts: all
  vars:
    syspass_default_length: 42
    syspass_auth_token: ##################################################
    syspass_token_pass: ##################################################
    syspass_verify_ssl: True
    syspass_api_url: ##################################################
    syspass_api_version: 3.1
    syspass_debug: False
    syspass_debug_level: 3
    syspass_verbose: True
    syspass_verbose_level: 3
  tasks:
    - name: SysPass | Force virtual Environement
      set_fact:
        ansible_python_interpreter: "/usr/bin/env python"
    - name: SysPass | Minimal test | get and if not exist insert
      debug:
        msg: "{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}"
      register: pass1
      changed_when: false
    - name: SysPass | Minimal test | get and compare
      debug:
        msg: "{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}"
      register: pass2
      changed_when: pass1.msg == pass2.msg
      failed_when: pass1.msg != pass2.msg
```

### Ansible Vault usage:

In case you use the group name `all`.

* Create a sub directory structure `./group_vars/all` and enter inside it directory
* use command line interface for create **syspass.yml** file `ansible-vault create syspass.yml`
* edit the **syspass.yml** file `ansible-vault edit syspass.yml`
* copy paste you variable with right value inside **syspass.yml** file
```
syspass_auth_token: ##################################################
syspass_token_pass: ##################################################
syspass_verify_ssl: True
syspass_api_url: ##################################################
syspass_api_version: 3.1
syspass_debug: False
syspass_debug_level: 3
syspass_verbose: True
syspass_verbose_level: 3
```
* create a file to store the vault password ``echo "password1234" > /my_directory/vault_passwd"``
* export env var ``DEFAULT_VAULT_PASSWORD_FILE`` via ``export DEFAULT_VAULT_PASSWORD_FILE="/my_directory/vault_passwd"``
* start you playbook with ``ansible-playbook --vault-password-file=$DEFAULT_VAULT_PASSWORD_FILE playbook.yml``

#### Summary
```
> cd directory_where_is_my_ansible.cfg_file
> mkdir -p group_vars/all
> cd group_vars/all
> ansible-vault create syspass.yml
New Vault password: 
Confirm New Vault password: 
> ansible-vault edit syspass.yml
Vault password:
syspass_auth_token: ##################################################
syspass_token_pass: ##################################################
syspass_verify_ssl: True
syspass_api_url: ##################################################
syspass_api_version: 3.1
syspass_debug: False
syspass_debug_level: 3
syspass_verbose: True
syspass_verbose_level: 3
~                                                                                                                                                                                         
~                                                                                                                                                                                         
~                                                                                                                                                                                         
~                                                                                                                                                                                         
-- INSERTION --    
^Z :wq
> export DEFAULT_VAULT_PASSWORD_FILE="/my_private_directory/vault_passwd"
> echo "password1234" > $DEFAULT_VAULT_PASSWORD_FILE
> cd directory_where_is_my_ansible.cfg_file
> ansible-playbook --vault-password-file=$DEFAULT_VAULT_PASSWORD_FILE playbooks/playbook.yml
```

Parameters:
-----------

- **chars**: (Optional)
     
     Type of chars used during a password generation, 
     
     Allowed value: ``ascii_letters``, ``digits``, ``allowed_punctuation``
     
     Default value: ['ascii_letters','digits','allowed_punctuation']
     
- **psswd_length**: (Optional)

     password length, during a password generation, that value is automatically clamped from ``password_length_min`` and ``password_length_max``

     Default value: 42
    
- **password**: (Optional)

     Directly impose a password, it shortcut the password generation
    
- **hostname**: (Optional is set by Ansible)

     Require by Ansible, it correspond to Ansible host, you can impose a specific host from here

- **account**: 
     
     Match with Syspass API Account https://syspass-doc.readthedocs.io/en/3.1/application/api.html#accounts
     
- **login**:
     
     login given to created account
     
- **category**:

     Match with Syspass API Categories https://syspass-doc.readthedocs.io/en/3.1/application/api.html#categories
     
- **customer**:

     Match with Syspass API Clients https://syspass-doc.readthedocs.io/en/3.1/application/api.html#clients
     
- **customer_desc**: (Optional)

     Match with Syspass API Clients creation/description https://syspass-doc.readthedocs.io/en/3.1/application/api.html#clients

- **tags**:

     Match with Syspass API Tags https://syspass-doc.readthedocs.io/en/3.1/application/api.html#tags
     
- **url**: 

     url given to created account (Optional)
     
- **notes**:

     notes given to created account (Optional)
     
- **state**:

     Default Value: ``present``
     Allowed Value: ``present`` or ``absent``
     
- **private**: self.private,

     is this password private for users who have access or public for all users in acl (default false)
     
- **privategroup**: self.privategroup,

    is private only for users in same group (default false)
    
- **expireDate**: self.expireDate

    expiration date given to created account (Optional)
    
    Allowed Value: Expire date in UNIX timestamp format

    
notes:
-----
- Account is only created if exact name has no match.
- A different field passed to an already existing account wont modify it.
- Utility of tokenPass: https://github.com/nuxsmin/sysPass/issues/994#issuecomment-409050974
- Rudimentary list of API accesses (Deprecated): https://github.com/nuxsmin/sysPass/blob/d0056d74a8a2845fb3841b02f4af5eac3e4975ed/lib/SP/Services/Api/ApiService.php#L175
- Usage of ansible vars: https://github.com/ansible/ansible/issues/33738#issuecomment-350819222
    
        syspass function list:
          SyspassClient:
            Account:
              -AccountSearch
              -AccountViewpass
              -AccountCreate
              -AccountDelete
              -AccountView
            Category:
              -CategorySearch
              -CategoryCreate
              -CategoryDelete
            Client:
              -ClientSearch
              -ClientCreate
              -ClientDelete
            Tag:
              -TagCreate
              -TagSearch
              -TagDelete
            UserGroup:
              - UserGroupCreate
              - UserGroupSearch
              - UserGroupDelete
            Others:
              -Backup

### IN PLAYBOOK ###

NOTE: Default values are handled 

##### USAGE 1 #####
```yamlex
    - name: SysPass | Minimal test | get and if not exist insert
      debug:
        msg: "{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}"
      register: pass1
      changed_when: false

    - name: SysPass | Minimal test | get and compare
      debug:
        msg: "{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}"
      register: pass2
      changed_when: pass1.msg == pass2.msg
      failed_when: pass1.msg != pass2.msg
```
**Authors**:
Gousseaud Gaëtan <gousseaud.gaetan.pro@gmail.com>
Pierre-Henry Muller <pierre-henry.muller@digdeo.fr>
Jérôme Ornech <i.dont.share.my.mail@nothing.fr>

            

Raw data

            {
    "_id": null,
    "home_page": "https://git.digdeo.fr/digdeo-system/digdeo-syspass-ansible-lookup",
    "name": "digdeo-syspass-ansible-lookup",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "DigDeo Syspass Ansible Lookup",
    "author": "DigDeo",
    "author_email": "pierre-henry.muller@digdeo.fr",
    "download_url": "https://files.pythonhosted.org/packages/95/4e/0ff9d37df35d9d24acc6e7089d6fd65c7464beb5558a8a41d4fc2c4801f6/digdeo_syspass_ansible_lookup-0.3.3.tar.gz",
    "platform": null,
    "description": "[![coverage report](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/badges/master/coverage.svg)](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/commits/master) [![pipeline status](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/badges/master/pipeline.svg)](https://git.digdeo.fr/digdeo-system/dd-ansible-syspass/commits/master)\n\n# digdeo-ansible-syspass\n\n**Module page**: https://pypi.org/project/digdeo-syspass-ansible-lookup/  \n**Documentation**: https://www.readthedoc.io/digdeo-syspass-ansible-lookup  \n**Bug Tracker**: https://gitdev.digdeo.fr/digdeo-projets-floss1/digdeo-syspass-ansible-lookup/issues  \n\n## Introduction\n**digdeo-ansible-syspass** is a [ansible](https://ansible.com) [lookup](https://docs.ansible.com/ansible/latest/plugins/lookup.html) plugin write in [python](https://www.python.org).\n\nThat program is a [ansible](https://ansible.com) plugin interface it use [digdeo-syspass-client](https://pypi.org/project/digdeo-syspass-client/) to dialog with the [syspass](https://www.syspass.org) API. \n\nIt plugin is dedicated to lookup password's from a [syspass](https://www.syspass.org) server.\n\n## Installation\n\n### Normal installation\n```shell script\npython3 -m venv venv\n. venv/bin/activate\npip install digdeo-syspass-ansible-lookup\n```\n\n### Force a Ansible version\n```shell script\npython3 -m venv venv\n. venv/bin/activate\npip install wheel \"ansible == 2.7.17\"\npip install digdeo-syspass-ansible-lookup\n```\n\n### Force libxml\n\nOn Linux (and most other well-behaved operating systems), pip will manage to build the source distribution as long as ``libxml2`` and ``libxslt`` are properly installed, including development packages, i.e. header files, etc. \n\nSee the requirements section above and use your system package management tool to look for packages like ``libxml2-dev`` or ``libxslt-devel``. If the build fails, make sure they are installed.\n\nAlternatively, setting ``STATIC_DEPS=true`` will download and build both libraries automatically in their latest version, e.g. \n\n```shell script\nSTATIC_DEPS=true pip install lxml.\n```\n\n\nNote that module use [digdeo-syspass-client](https://pypi.org/project/digdeo-syspass-client/) python module \nPlease pay attention about config.yml file in case you need more information's.\n\n\n**DISCLAIMER:**<br>\nThis module has been heavily inspired by https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/lookup/password.py for password generation and term handling and thus is under GPL.\n\n    lookup: syspass\n    author: Gousseaud Ga\u00ebtan <gousseaud.gaetan.pro@gmail.com>, Pierre-Henry Muller <pierre-henry.muller@digdeo.fr>, J\u00e9r\u00f4me Ornech <jornech@digdeo.fr>\n    short_description: get syspass user password and syspass API client\n    description:\n    - This lookup returns the contents from Syspass database, a user's password more specificly. Other functions are also implemented for further use.\n    ansible_version: ansible 2.7.17 and more with mitogen\n    python_version: 3.5 and more\n    syspass_version: 3.0, 3.1\n \n### Ansible usage:\n\n#### Example 1\n**Vars set inside common ansible sub-structure directory**\n\nIn case you use the group name `all`.\n\n* Create a sub directory structure `./group_vars/all` and enter inside it directory\n* copy paste you variable with right value inside a file name **syspass.yml**\n```\nsyspass_auth_token: ##################################################\nsyspass_token_pass: ##################################################\nsyspass_verify_ssl: True\nsyspass_api_url: ##################################################\nsyspass_api_version: 3.1\nsyspass_debug: False\nsyspass_debug_level: 3\nsyspass_verbose: True\nsyspass_verbose_level: 3\n```\n* start you playbook with ``ansible-playbook playbook.yml``\n\n#### Example 2 \n**Vars set inside the playbook file**\n\nIn case you use the group name `all` the playbook can look like that:\n```\n--- # -*- mode: yaml; coding: utf-8 -*-\n\n- hosts: all\n  vars:\n    syspass_default_length: 42\n    syspass_auth_token: ##################################################\n    syspass_token_pass: ##################################################\n    syspass_verify_ssl: True\n    syspass_api_url: ##################################################\n    syspass_api_version: 3.1\n    syspass_debug: False\n    syspass_debug_level: 3\n    syspass_verbose: True\n    syspass_verbose_level: 3\n  tasks:\n    - name: SysPass | Force virtual Environement\n      set_fact:\n        ansible_python_interpreter: \"/usr/bin/env python\"\n    - name: SysPass | Minimal test | get and if not exist insert\n      debug:\n        msg: \"{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}\"\n      register: pass1\n      changed_when: false\n    - name: SysPass | Minimal test | get and compare\n      debug:\n        msg: \"{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}\"\n      register: pass2\n      changed_when: pass1.msg == pass2.msg\n      failed_when: pass1.msg != pass2.msg\n```\n\n### Ansible Vault usage:\n\nIn case you use the group name `all`.\n\n* Create a sub directory structure `./group_vars/all` and enter inside it directory\n* use command line interface for create **syspass.yml** file `ansible-vault create syspass.yml`\n* edit the **syspass.yml** file `ansible-vault edit syspass.yml`\n* copy paste you variable with right value inside **syspass.yml** file\n```\nsyspass_auth_token: ##################################################\nsyspass_token_pass: ##################################################\nsyspass_verify_ssl: True\nsyspass_api_url: ##################################################\nsyspass_api_version: 3.1\nsyspass_debug: False\nsyspass_debug_level: 3\nsyspass_verbose: True\nsyspass_verbose_level: 3\n```\n* create a file to store the vault password ``echo \"password1234\" > /my_directory/vault_passwd\"``\n* export env var ``DEFAULT_VAULT_PASSWORD_FILE`` via ``export DEFAULT_VAULT_PASSWORD_FILE=\"/my_directory/vault_passwd\"``\n* start you playbook with ``ansible-playbook --vault-password-file=$DEFAULT_VAULT_PASSWORD_FILE playbook.yml``\n\n#### Summary\n```\n> cd directory_where_is_my_ansible.cfg_file\n> mkdir -p group_vars/all\n> cd group_vars/all\n> ansible-vault create syspass.yml\nNew Vault password: \nConfirm New Vault password: \n> ansible-vault edit syspass.yml\nVault password:\nsyspass_auth_token: ##################################################\nsyspass_token_pass: ##################################################\nsyspass_verify_ssl: True\nsyspass_api_url: ##################################################\nsyspass_api_version: 3.1\nsyspass_debug: False\nsyspass_debug_level: 3\nsyspass_verbose: True\nsyspass_verbose_level: 3\n~                                                                                                                                                                                         \n~                                                                                                                                                                                         \n~                                                                                                                                                                                         \n~                                                                                                                                                                                         \n-- INSERTION --    \n^Z :wq\n> export DEFAULT_VAULT_PASSWORD_FILE=\"/my_private_directory/vault_passwd\"\n> echo \"password1234\" > $DEFAULT_VAULT_PASSWORD_FILE\n> cd directory_where_is_my_ansible.cfg_file\n> ansible-playbook --vault-password-file=$DEFAULT_VAULT_PASSWORD_FILE playbooks/playbook.yml\n```\n\nParameters:\n-----------\n\n- **chars**: (Optional)\n     \n     Type of chars used during a password generation, \n     \n     Allowed value: ``ascii_letters``, ``digits``, ``allowed_punctuation``\n     \n     Default value: ['ascii_letters','digits','allowed_punctuation']\n     \n- **psswd_length**: (Optional)\n\n     password length, during a password generation, that value is automatically clamped from ``password_length_min`` and ``password_length_max``\n\n     Default value: 42\n    \n- **password**: (Optional)\n\n     Directly impose a password, it shortcut the password generation\n    \n- **hostname**: (Optional is set by Ansible)\n\n     Require by Ansible, it correspond to Ansible host, you can impose a specific host from here\n\n- **account**: \n     \n     Match with Syspass API Account https://syspass-doc.readthedocs.io/en/3.1/application/api.html#accounts\n     \n- **login**:\n     \n     login given to created account\n     \n- **category**:\n\n     Match with Syspass API Categories https://syspass-doc.readthedocs.io/en/3.1/application/api.html#categories\n     \n- **customer**:\n\n     Match with Syspass API Clients https://syspass-doc.readthedocs.io/en/3.1/application/api.html#clients\n     \n- **customer_desc**: (Optional)\n\n     Match with Syspass API Clients creation/description https://syspass-doc.readthedocs.io/en/3.1/application/api.html#clients\n\n- **tags**:\n\n     Match with Syspass API Tags https://syspass-doc.readthedocs.io/en/3.1/application/api.html#tags\n     \n- **url**: \n\n     url given to created account (Optional)\n     \n- **notes**:\n\n     notes given to created account (Optional)\n     \n- **state**:\n\n     Default Value: ``present``\n     Allowed Value: ``present`` or ``absent``\n     \n- **private**: self.private,\n\n     is this password private for users who have access or public for all users in acl (default false)\n     \n- **privategroup**: self.privategroup,\n\n    is private only for users in same group (default false)\n    \n- **expireDate**: self.expireDate\n\n    expiration date given to created account (Optional)\n    \n    Allowed Value: Expire date in UNIX timestamp format\n\n    \nnotes:\n-----\n- Account is only created if exact name has no match.\n- A different field passed to an already existing account wont modify it.\n- Utility of tokenPass: https://github.com/nuxsmin/sysPass/issues/994#issuecomment-409050974\n- Rudimentary list of API accesses (Deprecated): https://github.com/nuxsmin/sysPass/blob/d0056d74a8a2845fb3841b02f4af5eac3e4975ed/lib/SP/Services/Api/ApiService.php#L175\n- Usage of ansible vars: https://github.com/ansible/ansible/issues/33738#issuecomment-350819222\n    \n        syspass function list:\n          SyspassClient:\n            Account:\n              -AccountSearch\n              -AccountViewpass\n              -AccountCreate\n              -AccountDelete\n              -AccountView\n            Category:\n              -CategorySearch\n              -CategoryCreate\n              -CategoryDelete\n            Client:\n              -ClientSearch\n              -ClientCreate\n              -ClientDelete\n            Tag:\n              -TagCreate\n              -TagSearch\n              -TagDelete\n            UserGroup:\n              - UserGroupCreate\n              - UserGroupSearch\n              - UserGroupDelete\n            Others:\n              -Backup\n\n### IN PLAYBOOK ###\n\nNOTE: Default values are handled \n\n##### USAGE 1 #####\n```yamlex\n    - name: SysPass | Minimal test | get and if not exist insert\n      debug:\n        msg: \"{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}\"\n      register: pass1\n      changed_when: false\n\n    - name: SysPass | Minimal test | get and compare\n      debug:\n        msg: \"{{ lookup('syspass', 'Account Name minimal', login='mylogin', category='MySQL', customer='PREP') }}\"\n      register: pass2\n      changed_when: pass1.msg == pass2.msg\n      failed_when: pass1.msg != pass2.msg\n```\n**Authors**:\nGousseaud Ga\u00ebtan <gousseaud.gaetan.pro@gmail.com>\nPierre-Henry Muller <pierre-henry.muller@digdeo.fr>\nJ\u00e9r\u00f4me Ornech <i.dont.share.my.mail@nothing.fr>\n",
    "bugtrack_url": null,
    "license": "GNU GENERAL PUBLIC LICENSE Version 3",
    "summary": "DigDeo Syspass Ansible Lookup",
    "version": "0.3.3",
    "project_urls": {
        "Homepage": "https://git.digdeo.fr/digdeo-system/digdeo-syspass-ansible-lookup"
    },
    "split_keywords": [
        "digdeo",
        "syspass",
        "ansible",
        "lookup"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "be073b34a3dc280eb12f73d0ebc30a288b92942effdfe4a307f8181724e91af1",
                "md5": "6005356f7830a282c500af94982d24e7",
                "sha256": "0d5fee6b6a91a81ed977b86c079c99a69d6844311d917ec9ccbc811096cae682"
            },
            "downloads": -1,
            "filename": "digdeo_syspass_ansible_lookup-0.3.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6005356f7830a282c500af94982d24e7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 29268,
            "upload_time": "2024-09-21T20:25:48",
            "upload_time_iso_8601": "2024-09-21T20:25:48.771841Z",
            "url": "https://files.pythonhosted.org/packages/be/07/3b34a3dc280eb12f73d0ebc30a288b92942effdfe4a307f8181724e91af1/digdeo_syspass_ansible_lookup-0.3.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "954e0ff9d37df35d9d24acc6e7089d6fd65c7464beb5558a8a41d4fc2c4801f6",
                "md5": "a8fb9ab17d44abc93c83b100f9f57d14",
                "sha256": "ac2becc43e78bd4c7434b171269e5495b26b2a3f83cbe5e11fab1734accc3bb4"
            },
            "downloads": -1,
            "filename": "digdeo_syspass_ansible_lookup-0.3.3.tar.gz",
            "has_sig": false,
            "md5_digest": "a8fb9ab17d44abc93c83b100f9f57d14",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 39032,
            "upload_time": "2024-09-21T20:25:50",
            "upload_time_iso_8601": "2024-09-21T20:25:50.617249Z",
            "url": "https://files.pythonhosted.org/packages/95/4e/0ff9d37df35d9d24acc6e7089d6fd65c7464beb5558a8a41d4fc2c4801f6/digdeo_syspass_ansible_lookup-0.3.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-21 20:25:50",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "digdeo-syspass-ansible-lookup"
}
        
Elapsed time: 4.60070s