[![Python 3.10](https://img.shields.io/badge/python-3.10-blue.svg)](https://www.python.org/downloads/release/python-3105/)
[![Discord](https://img.shields.io/discord/730908778299523072?label=Discord&logo=discord&style=flat-square)](https://discord.gg/nQVpNGGkYu)
# ConsoleMe
Check out our [quick start guide](https://hawkins.gitbook.io/consoleme/quick-start)
, [documentation](https://hawkins.gitbook.io/consoleme/)
, [feature videos](https://hawkins.gitbook.io/consoleme/feature-videos)
, [ReInvent Talk](https://www.youtube.com/watch?v=fXNRYcNyw0c&t=5s),
and [Blog Post](https://netflixtechblog.com/consoleme-a-central-control-plane-for-aws-permissions-and-access-fd09afdd60a8)
.
## Overview
ConsoleMe is a web service that makes AWS IAM permissions and credential management easier for end-users and cloud
administrators.
ConsoleMe provides [**numerous
ways**](https://hawkins.gitbook.io/consoleme/feature-videos/credentials/aws-console-login) to log in to the AWS Console.
An [**IAM Self-Service
Wizard**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/self-service-iam-wizard) lets users
request IAM permissions in plain English. Cross-account resource policies will be automatically generated, and can be
applied with a single click for certain resource types.
[Weep](https://github.com/Netflix/weep) (ConsoleMe’s CLI) supports [**5 different
ways**](https://hawkins.gitbook.io/consoleme/weep-cli/cli) of serving AWS credentials locally.
Cloud administrators can [**create/clone IAM
roles**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/role-creation-and-cloning) and natively [**manage
IAM roles, users, inline/managed policies, S3 Buckets, SQS queues, and SNS
topics**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/policy-editor-for-iam-sqs-sns-and-s3)
across hundreds of accounts in a single interface.
Users can access most of your cloud resources in the AWS Console with a [**single
click**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/multi-account-policies-management). Cloud
administrators can configure ConsoleMe to authenticate users through [**ALB
Authentication**](https://hawkins.gitbook.io/consoleme/configuration/authentication-and-authorization/alb-auth),
[**OIDC/OAuth2**](https://hawkins.gitbook.io/consoleme/configuration/authentication-and-authorization/oidc-oauth2-okta),
or [**SAML**](https://hawkins.gitbook.io/consoleme/configuration/authentication-and-authorization/saml-auth0).
… And more. Check out our [docs](https://hawkins.gitbook.io/consoleme/) to get started.
## Project resources
- [Discord](https://discord.gg/nQVpNGGkYu)
- [Docs](https://hawkins.gitbook.io/consoleme/)
- [Weep (our CLI)](https://github.com/netflix/weep)
- [Source Code](https://github.com/netflix/consoleme)
- [Issue tracker](https://github.com/netflix/consoleme/issues)
- [Blog Post](https://netflixtechblog.com/consoleme-a-central-control-plane-for-aws-permissions-and-access-fd09afdd60a8)
- [ReInvent Talk](https://www.youtube.com/watch?v=fXNRYcNyw0c&t=5s)
- [Anonymous Feedback Form](https://forms.gle/JVgmHVua3Tr7JVsr9)
## Third Party Mentions
- [Achieving least-privilege at FollowAnalytics with Repokid, Aardvark and ConsoleMe](https://medium.com/followanalytics/granting-least-privileges-at-followanalytics-with-repokid-aardvark-and-consoleme-895d8daf604a)
- [Netflix’s ConsoleMe local installation on Linux machine](https://kerneltalks.com/tools/netflixs-consoleme-local-installation-on-linux-machine/)
- [Improving database security at FollowAnalytics with AWS IAM database authentication and ConsoleMe](https://medium.com/followanalytics/improving-database-security-at-followanalytics-with-aws-iam-database-authentication-and-consoleme-d00ea8a6edef)
- [Awesome IAM Policy Tools](https://github.com/kdeldycke/awesome-iam#aws-policy-tools)
- [Netflix on AWS Case Study](https://aws.amazon.com/solutions/case-studies/netflix/)
- [Netflix Open Sources ConsoleMe to Manage Permissions and Access on AWS](infoq.com/news/2021/04/netflix-consoleme-aws/)
## Companies that use ConsoleMe (alphabetically sorted)
- [AB180](https://www.ab180.co/en)
- [Calm](https://www.calm.com/)
- [FollowAnalytics](https://followanalytics.com/)
- [myKaarma](https://mykaarma.com/)
- [National Center for Biotechnology Information](https://www.ncbi.nlm.nih.gov/)
- Feel free to submit a PR or let us know in an [Issue](https://github.com/Netflix/consoleme/issues) if you'd like to
add your company to this list.
Raw data
{
"_id": null,
"home_page": "https://github.com/Netflix/ConsoleMe",
"name": "consoleme",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "consoleme",
"author": "Netflix Security",
"author_email": "consoleme-maintainers@netflix.com",
"download_url": "https://files.pythonhosted.org/packages/85/7e/40cecadddac9e12f4318a788de9e113e7ab93ceb351601635f97e6613852/consoleme-1.4.0.tar.gz",
"platform": null,
"description": "[![Python 3.10](https://img.shields.io/badge/python-3.10-blue.svg)](https://www.python.org/downloads/release/python-3105/)\n[![Discord](https://img.shields.io/discord/730908778299523072?label=Discord&logo=discord&style=flat-square)](https://discord.gg/nQVpNGGkYu)\n\n# ConsoleMe\n\nCheck out our [quick start guide](https://hawkins.gitbook.io/consoleme/quick-start)\n, [documentation](https://hawkins.gitbook.io/consoleme/)\n, [feature videos](https://hawkins.gitbook.io/consoleme/feature-videos)\n, [ReInvent Talk](https://www.youtube.com/watch?v=fXNRYcNyw0c&t=5s),\nand [Blog Post](https://netflixtechblog.com/consoleme-a-central-control-plane-for-aws-permissions-and-access-fd09afdd60a8)\n.\n\n## Overview\n\nConsoleMe is a web service that makes AWS IAM permissions and credential management easier for end-users and cloud\nadministrators.\n\nConsoleMe provides [**numerous\nways**](https://hawkins.gitbook.io/consoleme/feature-videos/credentials/aws-console-login) to log in to the AWS Console.\n\nAn [**IAM Self-Service\nWizard**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/self-service-iam-wizard) lets users\nrequest IAM permissions in plain English. Cross-account resource policies will be automatically generated, and can be\napplied with a single click for certain resource types.\n\n[Weep](https://github.com/Netflix/weep) (ConsoleMe\u2019s CLI) supports [**5 different\nways**](https://hawkins.gitbook.io/consoleme/weep-cli/cli) of serving AWS credentials locally.\n\nCloud administrators can [**create/clone IAM\nroles**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/role-creation-and-cloning) and natively [**manage\nIAM roles, users, inline/managed policies, S3 Buckets, SQS queues, and SNS\ntopics**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/policy-editor-for-iam-sqs-sns-and-s3)\nacross hundreds of accounts in a single interface.\n\nUsers can access most of your cloud resources in the AWS Console with a [**single\nclick**](https://hawkins.gitbook.io/consoleme/feature-videos/policy-management/multi-account-policies-management). Cloud\nadministrators can configure ConsoleMe to authenticate users through [**ALB\nAuthentication**](https://hawkins.gitbook.io/consoleme/configuration/authentication-and-authorization/alb-auth),\n[**OIDC/OAuth2**](https://hawkins.gitbook.io/consoleme/configuration/authentication-and-authorization/oidc-oauth2-okta),\nor [**SAML**](https://hawkins.gitbook.io/consoleme/configuration/authentication-and-authorization/saml-auth0).\n\n\u2026 And more. Check out our [docs](https://hawkins.gitbook.io/consoleme/) to get started.\n\n## Project resources\n\n- [Discord](https://discord.gg/nQVpNGGkYu)\n- [Docs](https://hawkins.gitbook.io/consoleme/)\n- [Weep (our CLI)](https://github.com/netflix/weep)\n- [Source Code](https://github.com/netflix/consoleme)\n- [Issue tracker](https://github.com/netflix/consoleme/issues)\n- [Blog Post](https://netflixtechblog.com/consoleme-a-central-control-plane-for-aws-permissions-and-access-fd09afdd60a8)\n- [ReInvent Talk](https://www.youtube.com/watch?v=fXNRYcNyw0c&t=5s)\n- [Anonymous Feedback Form](https://forms.gle/JVgmHVua3Tr7JVsr9)\n\n## Third Party Mentions\n\n- [Achieving least-privilege at FollowAnalytics with Repokid, Aardvark and ConsoleMe](https://medium.com/followanalytics/granting-least-privileges-at-followanalytics-with-repokid-aardvark-and-consoleme-895d8daf604a)\n- [Netflix\u2019s ConsoleMe local installation on Linux machine](https://kerneltalks.com/tools/netflixs-consoleme-local-installation-on-linux-machine/)\n- [Improving database security at FollowAnalytics with AWS IAM database authentication and ConsoleMe](https://medium.com/followanalytics/improving-database-security-at-followanalytics-with-aws-iam-database-authentication-and-consoleme-d00ea8a6edef)\n- [Awesome IAM Policy Tools](https://github.com/kdeldycke/awesome-iam#aws-policy-tools)\n- [Netflix on AWS Case Study](https://aws.amazon.com/solutions/case-studies/netflix/)\n- [Netflix Open Sources ConsoleMe to Manage Permissions and Access on AWS](infoq.com/news/2021/04/netflix-consoleme-aws/)\n\n## Companies that use ConsoleMe (alphabetically sorted)\n\n- [AB180](https://www.ab180.co/en)\n- [Calm](https://www.calm.com/)\n- [FollowAnalytics](https://followanalytics.com/)\n- [myKaarma](https://mykaarma.com/)\n- [National Center for Biotechnology Information](https://www.ncbi.nlm.nih.gov/)\n- Feel free to submit a PR or let us know in an [Issue](https://github.com/Netflix/consoleme/issues) if you'd like to\n add your company to this list.\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "A central control plane for AWS permissions and access",
"version": "1.4.0",
"project_urls": {
"Homepage": "https://github.com/Netflix/ConsoleMe"
},
"split_keywords": [
"consoleme"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a40b58182be6aa273f69935a76dae3b8c79d00ad92a6a554edb19f4127cf4eb6",
"md5": "d37b7a31e5d3e067e9692d344359e165",
"sha256": "83415856dfb4c00b81632812add7eaddc85f4cf283a74ef0fa4590bf842be01c"
},
"downloads": -1,
"filename": "consoleme-1.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d37b7a31e5d3e067e9692d344359e165",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 10320060,
"upload_time": "2024-05-16T17:32:03",
"upload_time_iso_8601": "2024-05-16T17:32:03.343242Z",
"url": "https://files.pythonhosted.org/packages/a4/0b/58182be6aa273f69935a76dae3b8c79d00ad92a6a554edb19f4127cf4eb6/consoleme-1.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "857e40cecadddac9e12f4318a788de9e113e7ab93ceb351601635f97e6613852",
"md5": "a43ecf4fefb9f94ef0e76721e9731d73",
"sha256": "d8822c159463e74e8ff853abec491f590c40f2e33e1bd60bbd59ccc29dbcc26f"
},
"downloads": -1,
"filename": "consoleme-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "a43ecf4fefb9f94ef0e76721e9731d73",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 10219684,
"upload_time": "2024-05-16T17:32:17",
"upload_time_iso_8601": "2024-05-16T17:32:17.013295Z",
"url": "https://files.pythonhosted.org/packages/85/7e/40cecadddac9e12f4318a788de9e113e7ab93ceb351601635f97e6613852/consoleme-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-16 17:32:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Netflix",
"github_project": "ConsoleMe",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "aiohttp",
"specs": [
[
"==",
"3.8.1"
]
]
},
{
"name": "aiosignal",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "aiozipkin",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "amqp",
"specs": [
[
"==",
"5.1.1"
]
]
},
{
"name": "argcomplete",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "asgiref",
"specs": [
[
"==",
"3.5.2"
]
]
},
{
"name": "astroid",
"specs": [
[
"==",
"2.11.7"
]
]
},
{
"name": "async-timeout",
"specs": [
[
"==",
"4.0.2"
]
]
},
{
"name": "atlassian-python-api",
"specs": [
[
"==",
"3.25.0"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"21.4.0"
]
]
},
{
"name": "bcrypt",
"specs": [
[
"==",
"3.2.2"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
"==",
"4.11.1"
]
]
},
{
"name": "billiard",
"specs": [
[
"==",
"3.6.4.0"
]
]
},
{
"name": "black",
"specs": [
[
"==",
"22.6.0"
]
]
},
{
"name": "bleach",
"specs": [
[
"==",
"5.0.1"
]
]
},
{
"name": "boto",
"specs": [
[
"==",
"2.49.0"
]
]
},
{
"name": "boto3",
"specs": [
[
"==",
"1.24.30"
]
]
},
{
"name": "botocore",
"specs": [
[
"==",
"1.27.30"
]
]
},
{
"name": "cachetools",
"specs": [
[
"==",
"5.2.0"
]
]
},
{
"name": "cchardet",
"specs": [
[
"==",
"2.1.7"
]
]
},
{
"name": "celery",
"specs": [
[
"==",
"5.2.7"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2022.6.15"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.15.1"
]
]
},
{
"name": "chardet",
"specs": [
[
"==",
"4.0.0"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.3"
]
]
},
{
"name": "click-didyoumean",
"specs": [
[
"==",
"0.3.0"
]
]
},
{
"name": "click-plugins",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "click-repl",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "cloudaux",
"specs": [
[
"==",
"1.9.6"
]
]
},
{
"name": "contextlib2",
"specs": [
[
"==",
"21.6.0"
]
]
},
{
"name": "cryptography",
"specs": [
[
"==",
"37.0.4"
]
]
},
{
"name": "datamodel-code-generator",
"specs": [
[
"==",
"0.13.0"
]
]
},
{
"name": "decorator",
"specs": [
[
"==",
"5.1.1"
]
]
},
{
"name": "deepdiff",
"specs": [
[
"==",
"5.8.1"
]
]
},
{
"name": "defusedxml",
"specs": [
[
"==",
"0.7.1"
]
]
},
{
"name": "deprecated",
"specs": [
[
"==",
"1.2.13"
]
]
},
{
"name": "dill",
"specs": [
[
"==",
"0.3.5.1"
]
]
},
{
"name": "dnspython",
"specs": [
[
"==",
"2.2.1"
]
]
},
{
"name": "ecdsa",
"specs": [
[
"==",
"0.18.0"
]
]
},
{
"name": "elasticsearch",
"specs": [
[
"==",
"7.17.4"
]
]
},
{
"name": "elasticsearch-dsl",
"specs": [
[
"==",
"7.4.0"
]
]
},
{
"name": "email-validator",
"specs": [
[
"==",
"1.2.1"
]
]
},
{
"name": "flagpole",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "frozenlist",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "furl",
"specs": [
[
"==",
"2.1.3"
]
]
},
{
"name": "genson",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "gitdb",
"specs": [
[
"==",
"4.0.9"
]
]
},
{
"name": "gitpython",
"specs": [
[
"==",
"3.1.27"
]
]
},
{
"name": "google-api-core",
"specs": [
[
"==",
"2.8.2"
]
]
},
{
"name": "google-api-python-client",
"specs": [
[
"==",
"2.53.0"
]
]
},
{
"name": "google-auth",
"specs": [
[
"==",
"2.9.1"
]
]
},
{
"name": "google-auth-httplib2",
"specs": [
[
"==",
"0.1.0"
]
]
},
{
"name": "google-cloud-core",
"specs": [
[
"==",
"2.3.1"
]
]
},
{
"name": "google-cloud-storage",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "google-crc32c",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "google-resumable-media",
"specs": [
[
"==",
"2.3.3"
]
]
},
{
"name": "googleapis-common-protos",
"specs": [
[
"==",
"1.56.4"
]
]
},
{
"name": "gunicorn",
"specs": [
[
"==",
"20.1.0"
]
]
},
{
"name": "hiredis",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "httplib2",
"specs": [
[
"==",
"0.20.4"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.3"
]
]
},
{
"name": "inflect",
"specs": [
[
"==",
"5.6.1"
]
]
},
{
"name": "inflection",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "isodate",
"specs": [
[
"==",
"0.6.1"
]
]
},
{
"name": "isort",
"specs": [
[
"==",
"5.10.1"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.2"
]
]
},
{
"name": "jmespath",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "json-cfg",
"specs": [
[
"==",
"0.4.2"
]
]
},
{
"name": "jsonschema",
"specs": [
[
"==",
"3.2.0"
]
]
},
{
"name": "kombu",
"specs": [
[
"==",
"5.2.4"
]
]
},
{
"name": "kwonly-args",
"specs": [
[
"==",
"1.0.10"
]
]
},
{
"name": "lazy-object-proxy",
"specs": [
[
"==",
"1.7.1"
]
]
},
{
"name": "logmatic-python",
"specs": [
[
"==",
"0.1.7"
]
]
},
{
"name": "lxml",
"specs": [
[
"==",
"4.6.5"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"2.1.1"
]
]
},
{
"name": "marshmallow",
"specs": [
[
"==",
"3.17.0"
]
]
},
{
"name": "mccabe",
"specs": [
[
"==",
"0.6.1"
]
]
},
{
"name": "multidict",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"0.4.3"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.23.1"
]
]
},
{
"name": "oauthlib",
"specs": [
[
"==",
"3.2.0"
]
]
},
{
"name": "okta-jwt",
"specs": [
[
"==",
"1.3.5"
]
]
},
{
"name": "openapi-schema-validator",
"specs": [
[
"==",
"0.1.6"
]
]
},
{
"name": "openapi-spec-validator",
"specs": [
[
"==",
"0.3.3"
]
]
},
{
"name": "ordered-set",
"specs": [
[
"==",
"4.1.0"
]
]
},
{
"name": "orderedmultidict",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"21.3"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"1.4.3"
]
]
},
{
"name": "parliament",
"specs": [
[
"==",
"1.5.2"
]
]
},
{
"name": "password-strength",
"specs": [
[
"==",
"0.0.3.post2"
]
]
},
{
"name": "pathspec",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "pkgconfig",
"specs": [
[
"==",
"1.5.5"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"2.5.2"
]
]
},
{
"name": "policy-sentry",
"specs": [
[
"==",
"0.12.3"
]
]
},
{
"name": "policyuniverse",
"specs": [
[
"==",
"1.5.0.20220613"
]
]
},
{
"name": "prance",
"specs": [
[
"==",
"0.21.8.0"
]
]
},
{
"name": "presto-python-client",
"specs": [
[
"==",
"0.8.2"
]
]
},
{
"name": "prompt-toolkit",
"specs": [
[
"==",
"3.0.30"
]
]
},
{
"name": "protobuf",
"specs": [
[
"==",
"4.21.2"
]
]
},
{
"name": "py",
"specs": [
[
"==",
"1.11.0"
]
]
},
{
"name": "pyasn1",
"specs": [
[
"==",
"0.4.8"
]
]
},
{
"name": "pyasn1-modules",
"specs": [
[
"==",
"0.2.8"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.21"
]
]
},
{
"name": "pycurl",
"specs": [
[
"==",
"7.45.1"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"1.9.1"
]
]
},
{
"name": "pyjwt",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "pylint",
"specs": [
[
"==",
"2.14.4"
]
]
},
{
"name": "pynacl",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"3.0.9"
]
]
},
{
"name": "pyrsistent",
"specs": [
[
"==",
"0.16.1"
]
]
},
{
"name": "pysnooper",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.8.2"
]
]
},
{
"name": "python-jose",
"specs": [
[
"==",
"3.3.0"
]
]
},
{
"name": "python-json-logger",
"specs": [
[
"==",
"2.0.4"
]
]
},
{
"name": "python3-saml",
"specs": [
[
"==",
"1.14.0"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2022.1"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0"
]
]
},
{
"name": "questionary",
"specs": [
[
"==",
"1.10.0"
]
]
},
{
"name": "redis",
"specs": [
[
"==",
"4.3.4"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.28.1"
]
]
},
{
"name": "requests-oauthlib",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "retry",
"specs": [
[
"==",
"0.9.2"
]
]
},
{
"name": "retrying",
"specs": [
[
"==",
"1.3.3"
]
]
},
{
"name": "rsa",
"specs": [
[
"==",
"4.8"
]
]
},
{
"name": "ruamel-yaml",
"specs": [
[
"==",
"0.17.21"
]
]
},
{
"name": "ruamel-yaml-clib",
"specs": [
[
"==",
"0.2.6"
]
]
},
{
"name": "s3transfer",
"specs": [
[
"==",
"0.6.0"
]
]
},
{
"name": "schema",
"specs": [
[
"==",
"0.7.5"
]
]
},
{
"name": "semver",
"specs": [
[
"==",
"2.13.0"
]
]
},
{
"name": "sentry-sdk",
"specs": [
[
"==",
"1.7.1"
]
]
},
{
"name": "simplejson",
"specs": [
[
"==",
"3.17.6"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "smmap",
"specs": [
[
"==",
"5.0.0"
]
]
},
{
"name": "soupsieve",
"specs": [
[
"==",
"2.3.2.post1"
]
]
},
{
"name": "tenacity",
"specs": [
[
"==",
"8.0.1"
]
]
},
{
"name": "toml",
"specs": [
[
"==",
"0.10.2"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"2.0.1"
]
]
},
{
"name": "tomlkit",
"specs": [
[
"==",
"0.11.1"
]
]
},
{
"name": "tornado",
"specs": [
[
"==",
"6.2"
]
]
},
{
"name": "typed-ast",
"specs": [
[
"==",
"1.5.4"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.3.0"
]
]
},
{
"name": "ujson",
"specs": [
[
"==",
"5.4.0"
]
]
},
{
"name": "uritemplate",
"specs": [
[
"==",
"4.1.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"1.26.10"
]
]
},
{
"name": "uvloop",
"specs": [
[
"==",
"0.16.0"
]
]
},
{
"name": "validate-email",
"specs": [
[
"==",
"1.3"
]
]
},
{
"name": "vine",
"specs": [
[
"==",
"5.0.0"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.5"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "wrapt",
"specs": [
[
"==",
"1.14.1"
]
]
},
{
"name": "xmlsec",
"specs": [
[
"==",
"1.3.12"
]
]
},
{
"name": "yarl",
"specs": [
[
"==",
"1.7.2"
]
]
}
],
"tox": true,
"lcname": "consoleme"
}