intercoop


Nameintercoop JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryIntercooperation library
upload_time2024-10-30 17:23:50
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords crossed services gprd crossed users
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            # python-intercoop


[![CI Status](https://github.com/Som-Energia/intercoop/actions/workflows/main.yml/badge.svg)](https://github.com/Som-Energia/intercoop/actions/workflows/main.yml)
[![Coverage Status](https://coveralls.io/repos/github/Som-Energia/intercoop/badge.svg?branch=master)](https://coveralls.io/github/Som-Energia/intercoop?branch=master)


A Python implementation of the intercoop protocol.

## Purpose

In the context of intercooperation among social economy entities,
these libraries implement a protocol to enable a user of a given entity
to use services provided by other entities having a bilateral agreement.
This is done keeping the users in control of which are the enabled
services and, most important, which entities will be transferred
their personal data to.

Some intended goals:

- Ease extending intercooperation to new entities by sharing a common protocol,
    - single implementation for our users to use services from many other entities,
    - single implementation to offer our services to users of many other entities
- Be certain that the services request comes from the source entity 
- Users control how and whom their personal data is transferred to
- Still avoid the user from having to type personal data again and again


## Install

```bash
$ pip install .

```


## Modules

- Examples:

    - `portalexample`: Flask based example of a source entity portal
    - `apiexample`: Flask based example of a target entity api

- Fully reusable modules:

    - `catalog`: functions to manage a service catalog in a portal
    - `apiclient`: encapsulates remote acces to the target API
    - `package`: encapsulates package marshalling/umarshalling, signing/verification
    - `crypto`: cryptography primitives:
        - hides actual algorithms compexity under simple action names

- Data sources: You normally want to rewrite those, for example to take data from a database or similar. Reference implementation use a directory full of YAML files.

    - Source Portal:
        - `peerinfo`: access yaml info provided by the available targets
        - `userinfo`: access source user personal data

    - Target API:
		- `keyring`: gives access to peers public keys (relies on `peerinfo`)
        - `remoteuserinfo`: temporary stores the transferred data

- Utilities:

    - `translator`: rewrites yamls by picking language on translatable strings
    - `perfume`: a Flask wrapper to enable dependency injection on Flask apps

## Example scripts

- `portal-example-somillusio.py`: _somillusio_ portal
- `api-example-somacme.py`: _somacme_ api and service form


## Other scripts

- `validate-intercoop.py`: Validates a peer info yaml




            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "intercoop",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "crossed services, gprd, crossed users",
    "author": null,
    "author_email": "Som Energia <info@somenergia.coop>",
    "download_url": "https://files.pythonhosted.org/packages/1b/8f/2a173de4718674d1e84e12e365b08db7199c5a510d7a905dd8ef670be164/intercoop-0.2.2.tar.gz",
    "platform": null,
    "description": "# python-intercoop\n\n\n[![CI Status](https://github.com/Som-Energia/intercoop/actions/workflows/main.yml/badge.svg)](https://github.com/Som-Energia/intercoop/actions/workflows/main.yml)\n[![Coverage Status](https://coveralls.io/repos/github/Som-Energia/intercoop/badge.svg?branch=master)](https://coveralls.io/github/Som-Energia/intercoop?branch=master)\n\n\nA Python implementation of the intercoop protocol.\n\n## Purpose\n\nIn the context of intercooperation among social economy entities,\nthese libraries implement a protocol to enable a user of a given entity\nto use services provided by other entities having a bilateral agreement.\nThis is done keeping the users in control of which are the enabled\nservices and, most important, which entities will be transferred\ntheir personal data to.\n\nSome intended goals:\n\n- Ease extending intercooperation to new entities by sharing a common protocol,\n    - single implementation for our users to use services from many other entities,\n    - single implementation to offer our services to users of many other entities\n- Be certain that the services request comes from the source entity \n- Users control how and whom their personal data is transferred to\n- Still avoid the user from having to type personal data again and again\n\n\n## Install\n\n```bash\n$ pip install .\n\n```\n\n\n## Modules\n\n- Examples:\n\n    - `portalexample`: Flask based example of a source entity portal\n    - `apiexample`: Flask based example of a target entity api\n\n- Fully reusable modules:\n\n    - `catalog`: functions to manage a service catalog in a portal\n    - `apiclient`: encapsulates remote acces to the target API\n    - `package`: encapsulates package marshalling/umarshalling, signing/verification\n    - `crypto`: cryptography primitives:\n        - hides actual algorithms compexity under simple action names\n\n- Data sources: You normally want to rewrite those, for example to take data from a database or similar. Reference implementation use a directory full of YAML files.\n\n    - Source Portal:\n        - `peerinfo`: access yaml info provided by the available targets\n        - `userinfo`: access source user personal data\n\n    - Target API:\n\t\t- `keyring`: gives access to peers public keys (relies on `peerinfo`)\n        - `remoteuserinfo`: temporary stores the transferred data\n\n- Utilities:\n\n    - `translator`: rewrites yamls by picking language on translatable strings\n    - `perfume`: a Flask wrapper to enable dependency injection on Flask apps\n\n## Example scripts\n\n- `portal-example-somillusio.py`: _somillusio_ portal\n- `api-example-somacme.py`: _somacme_ api and service form\n\n\n## Other scripts\n\n- `validate-intercoop.py`: Validates a peer info yaml\n\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Intercooperation library",
    "version": "0.2.2",
    "project_urls": {
        "Changelog": "https://github.com/som-energia/intercoop/blob/master/CHANGELOG.md",
        "Documentation": "https://github.com/som-energia/intercoop",
        "Homepage": "https://somenergia.coop",
        "Repository": "https://github.com/som-energia/intercoop"
    },
    "split_keywords": [
        "crossed services",
        " gprd",
        " crossed users"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bbea59cc7e24c363a6df863d6c97cb3e3e5873704063e0338152d4daf9286f18",
                "md5": "f89db8fd919b980e6bf9bdb7f80b84fb",
                "sha256": "048f83549936ff0b261c6ebbb08b0055ce55b391cef37cb111db49fa4d8a239b"
            },
            "downloads": -1,
            "filename": "intercoop-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f89db8fd919b980e6bf9bdb7f80b84fb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 39154,
            "upload_time": "2024-10-30T17:23:48",
            "upload_time_iso_8601": "2024-10-30T17:23:48.904491Z",
            "url": "https://files.pythonhosted.org/packages/bb/ea/59cc7e24c363a6df863d6c97cb3e3e5873704063e0338152d4daf9286f18/intercoop-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b8f2a173de4718674d1e84e12e365b08db7199c5a510d7a905dd8ef670be164",
                "md5": "d1f44a13dbf05ed1150c45eb73828bc4",
                "sha256": "5efe431df088414094a4d111058d751f60326645ac23ac85f768843468798f8e"
            },
            "downloads": -1,
            "filename": "intercoop-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "d1f44a13dbf05ed1150c45eb73828bc4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 28190,
            "upload_time": "2024-10-30T17:23:50",
            "upload_time_iso_8601": "2024-10-30T17:23:50.405618Z",
            "url": "https://files.pythonhosted.org/packages/1b/8f/2a173de4718674d1e84e12e365b08db7199c5a510d7a905dd8ef670be164/intercoop-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-30 17:23:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "som-energia",
    "github_project": "intercoop",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "lcname": "intercoop"
}
        
Elapsed time: 0.40871s