Metadata-Version: 2.1
Name: ansible-1password-lookup-plugin
Version: 0.2.2
Summary: This is a simple lookup plugin that search for secrets in a local 1Password database (B5.sqlite format). It uses the onepassword-local-search python module that greatly improve performance over querying directly the 1Password servers.
Home-page: https://github.com/mickaelperrin/ansible-onepassword-local-lookup-plugin
Author: Mickaël Perrin
Author-email: dev@mickaelperrin.fr
License: GPLv3
Keywords: ansible onepassword 1password cli password secrets
Platform: UNKNOWN
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Natural Language :: French
Classifier: Topic :: Security
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9.0
Description-Content-Type: text/markdown


1Password Local Lookup Plugin
=========

This is a simple lookup plugin that search for secrets in a local 1Password database (B5.sqlite format). 
It uses the [onepassword-local-search](https://github.com/mickaelperrin/onepassword-local-search) python module that 
greatly improve performance over querying directly the 1Password servers.

Requirements
------------

You require:
- python 3.7
- onepassword-local-search module

```
pip3 install onepassword-local-search
```

Example Playbook
----------------

    - hosts: servers
      roles:
        - role: mickaelperrin.ansible-onepassword-local-lookup-plugin
      tasks
        - debug:
            msg: "{{ lookup('onepassword_local', 'p6iyvjqv4xdxw52hsacpkq4rgi', field='name') }}"
        - debug:
            msg: "{{ lookup('onepassword_local', 'c3264cef-1e5e-4c96-a192-26729539f3f5', field='your_custom_field') }}"
        - debug:
            msg: "{{ lookup('onepassword_local', '1234567890', field='password') }}"

Custom uuid feature
-------------------

uuid in 1Password changes when you move an item from one vault to another. To prevent this issue, a custom uuid mapping feature has been implemented.

You need to add on each item a field named `UUID` (in capitals).

Then run `op-local mapping update` to generate the mapping table relationship.

You can display UUID mapping by running `op-local mapping list`.

As we migrated from Lastpass to 1Password, we have also implemented a UUID mapping feature
related to a field named `LASTPASS_ID`. If the uuid given is 100% numeric, the search query will be performed over this field.


Tests
-----

Tests are managed by `pytest` for the python part and `molecule` for the ansible part with `docker` as driver.

```
mkvirtualenv3 ansible-onepassword-local-lookup-plugin
pip install -r requirements/dev.txt
```

### Pytest

```
pytest
``` 

### Molecule

Ensure that `docker` service is up and running

```
molecule test
``` 

License
-------

GPLv3



