provider


Nameprovider JSON
Version 0.11.0 PyPI version JSON
download
home_page
SummaryCommon Fate Provider Development Kit
upload_time2023-04-25 16:43:22
maintainer
docs_urlNone
authorCommon Fate
requires_python>=3.9,<4.0
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Provider Development Kit

Common Fate Provider Development Kit for Python.

## What is a provider?

A Provider is a Python service which provides a consistent API for managing fine-grain permissions.

Managing permissions in cloud providers, SaaS applications, and CI/CD platforms usually requires access to highly sensitive secrets, like administrative API tokens. The Provider framework allows for access to be granted and revoked to these platforms without requiring direct access to these tokens:

![diagram of Provider framework](./docs/provider.drawio.svg)

## What does the Provider Development Kit do?

The Provider Development Kit (PDK) makes it easy to develop and deploy Providers.

```python
class Provider(provider.Provider):
    api_url = provider.String()

@access.target()
class Target:
    ...

@access.grant()
def grant(p: Provider, subject: str, target: Target):
    # perform API calls here to grant access
    ...

@access.revoke()
def revoke(p: Provider, subject: str, target: Target):
    # perform API calls here to revoke access
    ...
```

The PDK handles configuration and packaging into a cloud-native function which can be executed by an application.

## Supported runtimes

Currently the supported runtimes for Providers are as follows:

- AWS Lambda

## Provider Schemas

Each Provider has a strongly-typed schema. An example schema is shown below:

```json
{
  "audit": {
    "resourceLoaders": {},
    "resources": {}
  },
  "config": {},
  "target": {
    "MyTarget": {
      "schema": {
        "first": {
          "description": "first var",
          "id": "first",
          "resourceName": null,
          "title": "First",
          "type": "string"
        }
      }
    }
  }
}
```

The schema is based on [JSON Schema](https://json-schema.org/) and allows applications using Providers to interpret the available resources and display the appropriate UI.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "provider",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Common Fate",
    "author_email": "hello@commonfate.io",
    "download_url": "https://files.pythonhosted.org/packages/92/5b/f99c02bf91dcca41f704c72545dc44f5913bb178e1d2b88813c35a2abb9c/provider-0.11.0.tar.gz",
    "platform": null,
    "description": "# Provider Development Kit\n\nCommon Fate Provider Development Kit for Python.\n\n## What is a provider?\n\nA Provider is a Python service which provides a consistent API for managing fine-grain permissions.\n\nManaging permissions in cloud providers, SaaS applications, and CI/CD platforms usually requires access to highly sensitive secrets, like administrative API tokens. The Provider framework allows for access to be granted and revoked to these platforms without requiring direct access to these tokens:\n\n![diagram of Provider framework](./docs/provider.drawio.svg)\n\n## What does the Provider Development Kit do?\n\nThe Provider Development Kit (PDK) makes it easy to develop and deploy Providers.\n\n```python\nclass Provider(provider.Provider):\n    api_url = provider.String()\n\n@access.target()\nclass Target:\n    ...\n\n@access.grant()\ndef grant(p: Provider, subject: str, target: Target):\n    # perform API calls here to grant access\n    ...\n\n@access.revoke()\ndef revoke(p: Provider, subject: str, target: Target):\n    # perform API calls here to revoke access\n    ...\n```\n\nThe PDK handles configuration and packaging into a cloud-native function which can be executed by an application.\n\n## Supported runtimes\n\nCurrently the supported runtimes for Providers are as follows:\n\n- AWS Lambda\n\n## Provider Schemas\n\nEach Provider has a strongly-typed schema. An example schema is shown below:\n\n```json\n{\n  \"audit\": {\n    \"resourceLoaders\": {},\n    \"resources\": {}\n  },\n  \"config\": {},\n  \"target\": {\n    \"MyTarget\": {\n      \"schema\": {\n        \"first\": {\n          \"description\": \"first var\",\n          \"id\": \"first\",\n          \"resourceName\": null,\n          \"title\": \"First\",\n          \"type\": \"string\"\n        }\n      }\n    }\n  }\n}\n```\n\nThe schema is based on [JSON Schema](https://json-schema.org/) and allows applications using Providers to interpret the available resources and display the appropriate UI.\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Common Fate Provider Development Kit",
    "version": "0.11.0",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a592f6d80da0d92497cb1c069635c3107785882d2d5a9b7f13a4641cd100a00",
                "md5": "570de492d67dae0c79be54a883669784",
                "sha256": "183c93918e643c4a1609c5106b53d15c9ef68a69934e98b6d663d22541d1e79d"
            },
            "downloads": -1,
            "filename": "provider-0.11.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "570de492d67dae0c79be54a883669784",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 33055,
            "upload_time": "2023-04-25T16:43:21",
            "upload_time_iso_8601": "2023-04-25T16:43:21.204530Z",
            "url": "https://files.pythonhosted.org/packages/4a/59/2f6d80da0d92497cb1c069635c3107785882d2d5a9b7f13a4641cd100a00/provider-0.11.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "925bf99c02bf91dcca41f704c72545dc44f5913bb178e1d2b88813c35a2abb9c",
                "md5": "466e0628c3789cd8043b1c6c8b40c7e7",
                "sha256": "20dd93e7781220f0f3ff749988613f112ef6eaf09382d8468a2cc741f90a74a9"
            },
            "downloads": -1,
            "filename": "provider-0.11.0.tar.gz",
            "has_sig": false,
            "md5_digest": "466e0628c3789cd8043b1c6c8b40c7e7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 19688,
            "upload_time": "2023-04-25T16:43:22",
            "upload_time_iso_8601": "2023-04-25T16:43:22.907686Z",
            "url": "https://files.pythonhosted.org/packages/92/5b/f99c02bf91dcca41f704c72545dc44f5913bb178e1d2b88813c35a2abb9c/provider-0.11.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-25 16:43:22",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "provider"
}
        
Elapsed time: 0.26322s